Self-Improvement

방화벽(iptables)2 간단실습 본문

리눅스/보안

방화벽(iptables)2 간단실습

JoGeun 2018. 10. 23. 22:26

*telnet
#iptables -A INPUT -m state --state NEW -p tcp -s 192.168.20.200 -d 192.168.20.100 --dport 23 -j ACCEPT
 - 192.168.20.200에서 192.168.20.100으로의 telnet의 새로운 연결에 대해서 수락을 한다.

*ssh
#iptables -A INPUT -m state NEW -p tcp -s 192.168.20.0/24 -d 192.168.20.100 --dport 22 -j ACCEPT
 - 192.168.20.0/24대역에서 192.168.20.100으로의 ssh의 새로운 연결에 대해서 수락을 한다.

*icmp
#iptables -A OUTPUT -p icmp --icmp-type echo-request -s 192.168.20.100 -d 0/0 -j ACCEPT
 - 192.168.20.100에서 출발하는 echo-request ICMP 패킷을 수락한다.

#iptables -A INPUT -p icmp --icmp-type echo-reply -s 0/0 -d 192.168.20.100 -j ACCEPT
 - 192.168.20.100으로 들어오는 echo-reply ICMP 패킷을 수락한다

#iptables -A INPUT -p icmp --icmp-type destination-unreachable -s 0/0 -d 192.168.20.100 -j ACCEPT
 - 192.168.20.100으로 들어오는 ICMP의 destination-unreachable 패킷을 수락한다.

*WEB
#iptables -A INPUT -m state --state NEW -p tcp -s 0/0 -d 192.168.20.100 --dport 80 -j ACCEPT
 - http 서비스 오픈

#iptables -A INPUT -m state --state NEW -p tcp -s 0/0 -d 192.168.20.100 --dport 443 -j ACCEPT
 - https 서비스 오픈

*MySQL(MariaDB)
#iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

*FTP (active mode)
#iptables -A INPUT -p tcp --dport 21 -j ACCEPT
#iptables -A INPUT -p tcp --dport 20 -j ACCEPT

*FTP (passive mode)
#iptables -A INPUT -p tcp --dport 21 -j ACCEPT
#iptables -A INPUT -p tcp --dport 1024:65535 -j ACCEPT

*DHCP
#iptables -A INPUT -p udp --dport 67:68 –j ACCEPT

*XMAS 패킷 차단
#iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP

*NULL 패킷 차단
#iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP

*MAC 주소로 제어
#iptables -A INPUT -s 192.168.0.3 -m mac --mac-source 00:50:80:FD:E6:32 -j ACCEPT

*포트 주소 범위로 지정
#iptables -A INPUT -p tcp --dport 6881:6890 -j ACCEPT

*NAT
SNAT : Source IP 주소 변경
 ex) 마스커레이딩

DNAT : Destination IP 주소 변경
 ex) Port Forwarding

*SNAT
소스의 주소를 1.2.3.4로 변경하는 예
#iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4

소스의 주소를 1.2.3.4 ~ 1.2.3.6로 변경하는 예
#iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4-1.2.3.6

소스의 주소 1.2.3.4에 포트 1-1023로 변경하는 예
#iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4:1-1023

마스쿼레이딩 설정(SNAT 방식의 특이한 경우)
#iptables -t nat -A POSTROUTING -o eth0(ppp0) -j MASQUERADE
 - NIC 카드의 IP를 사용하는 것

*DNAT

목적지 주소를 1.2.3.4로 변경하는 경우
#iptables -t nat -A PREROUTING -i eth1 -j DNAT --to 1.2.3.4

목적지 주소를 1.2.3.4 ~ 1.2.3.6로 변경하는 경우
#iptables -t nat -A PREROUTING -i eth1 -j DNAT --to 1.2.3.4-1.2.3.6

웹 트래픽에 대한 목적지 주소를 1.2.3.4의 8080 포트로 변경하는 경우
#itpables -t nat -A PREROUTING -p tcp --dport 80 -i eth1 -j DNAT --to 1.2.3.4:8080

방향재설정 - Local Port Forwarding
#iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 443
 - http에 대한 서비스를 https로 전환

위의 설정을 보면 패턴이 보이게 될 것이다. 이를 이용하여 원하는 서비스를 제어하며 이보다 더많은 옵션들이 존재한다.

'리눅스 > 보안' 카테고리의 다른 글

File ACL, 디렉토리의 Default ACL  (0) 2018.10.24
sudo  (0) 2018.10.23
SELinux 기초 명령어 및 실습  (0) 2018.10.23
TCP_Wrappers 서비스  (0) 2018.10.23
방화벽(iptables)  (0) 2018.10.23