작업환경
- 가상머신 : Virtual Box 7
- 방화벽(Iptables) : Cent OS 7
- 사무용 PC(Office PC) : Fedora Workstation 35
- DMZ Zone(WebServer) : Fedora Server
관련글
Iptables 예제 1 - Ping, ICMP packet
예시 :기본 정책이 전부 차단된(Drop) 상태에서 방화벽의 전원여부 확인을 위해 Office PC에서 방화벽으로 Ping 연결이 가능하도록 허용
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
#기본정책 전부차단
기본 정책이 전부 차단된 상태에서는 방화벽과 Office PC 간의 어떠한 통신도 불가능합니다.
Ping 은 TCP/IP 프로토콜의 ICMP(Internet Control Protocol) 프로토콜을 사용하는 유틸리티 입니다.
즉 모든 정책이 차단인 상태에서 Ping의 통신만 허용하기 위해서는 ICMP 프로토콜의 패킷만 허용해주면 됩니다.
iptables -A INPUT -p icmp -j ACCEPT
# INPUT 체인의 icmp 패킷 허용
iptables -A OUTPUT -p icmp -j ACCEPT
# OUTPUT 체인의 icmp 패킷 허용
- -A : append, 가장 낮은 순위로 새로운 정책 추가
- -p : protocol, 프로토콜 지정
- -j : jump, 패킷 상태 제어(ACCEPT,DROP)
ICMP 프로토콜의 패킷만 INPUT,OUTPUT 체인이 허용된 상태이므로
Office PC -> Firewall, Firewall -> Office PC 방향의 Ping 통신이 가능합니다.
Office PC에서 방화벽으로 Ping을 보내보면 정상적으로 통신이 되는 걸 확인할 수 있습니다.
Iptables 예제 2 - TCP Packet, Web 서비스 제한하기(80,443)
이번 예제는 기본 정책이 전부 허용된 상태에서 진행됩니다.
또한 TCP 프로토콜의 Web 포트(80,443)을 통한 방화벽 접속만을 제한해보겠습니다.
먼저 방화벽에 Apache HTTP Server이 설치되어 있다고 가정하고 진행합니다.
만약 웹 서버가 설정되어 있지 않다면 아래의 명령어를 통해 설치를 진행하시면 됩니다.
yum install httpd
systemctl restart httpd
Office PC 에서 방화벽의 웹 서버로 접속합니다.(192.168.0.21)
기본 정책이 허용 상태라 정상적으로 접속됩니다.
iptables -A INPUT -p tcp --dport 80 -j DROP
iptables -A INPUT -p tcp --dport 443 -j DROP
iptables -A OUTPUT -p tcp --sport 80 -j DROP
iptables -A OUTPUT -p tcp --sport 443 -j DROP
- -A : append, 가장 낮은 순위로 새로운 정책 추가
- -p : protocol, 특정 프로토콜 지정
- --dport : Destination Port, 목적지 포트 지정
- --sport : Source Port, 출발지 포트 지정
- -j : jump, 패킷 상태 제어
- Port-80 : HTTP 포트, TCP 프로토콜
- Port-443 : HTTPS 포트, TCP 프로토콜
INPUT과 OUTPUT 체인 각각 80,443 포트로 들어오는 혹은 나가는 패킷을 전부 차단합니다.
80,443 포트는 TCP 프로토콜에 해당되므로 해당 프로토콜을 지정해주어야 합니다.
결과는 다음과 같습니다.
Office PC 에서 방화벽으로의 httpd 접속이 불가합니다.
이 경우 80,443의 HTTP/HTTPS 포트로 들어오는 TCP 프로토콜의 패킷이 차단된 것입니다.
헷갈릴만한 점은 Ping의 경우 ICMP 프로토콜에 속하기 때문에 방화벽과 Office PC, WebServer간의
Ping 통신은 정상적으로 진행됩니다.
기초적으로 Ping으로 네트워크 연결 진단을 하다보니 Ping에 대한 개념이 정확하지 않으면
TCP 프로토콜의 패킷 제어와 혼동될 수 있습니다.
다음글은 다른 예시를 통한 문법을 알아보겠습니다.
문법정리
- 기본정책 전부 차단
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
#기본정책 전부차단
- ICMP 프로토콜 패킷 허용
iptables -A INPUT -p icmp -j ACCEPT
# INPUT 체인의 icmp 패킷 허용
iptables -A OUTPUT -p icmp -j ACCEPT
# OUTPUT 체인의 icmp 패킷 허용
- TCP 프로토콜 80,443 포트 패킷 차단
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 443 -j ACCEPT
- -A : append, 가장 낮은 순위로 새로운 정책 추가
- -p : protocol, 특정 프로토콜 지정
- --dport : Destination Port, 목적지 포트 지정
- --sport : Source Port, 출발지 포트 지정
- -j : jump, 패킷 상태 제어
- Port-80 : HTTP 포트, TCP 프로토콜
- Port-443 : HTTPS 포트, TCP 프로토콜
다른글
'정보보안 > 방화벽' 카테고리의 다른 글
Iptables 방화벽의 SSH 서비스에 대한 다양한 설정법 (0) | 2023.01.30 |
---|---|
Iptables 방화벽 SSH 사용 설정 다양한 예시 - 3 (0) | 2023.01.17 |
방화벽 활용을 위한 가상 인프라 구축 - 1 // Iptables, CentOS, Web Server, Office PC (0) | 2023.01.10 |
Virtual Box 인터넷 접속이 되지 않는 경우 - 가상 인프라, 방화벽, NAT, NAT 네트워크 (0) | 2023.01.09 |
Iptables 기초 사용법과 옵션 정리 -1 , 방화벽, Netfilter, 리눅스 (0) | 2023.01.05 |
댓글