HOME | LINUX | CISCO NETWORKING |   
PosgreSQL | Nginx | MariaDB | Bash Shell | GlusterFS | XEN | Cluster | VIM | Iptables | Nagios | Qmail  


iptables 설정 팁

iptables 몇개의 팁


 # ipt변수 설정
 ipt=/sbin/iptables 
 
 # iptables 룰셋 초기화 하기 
 $ipt -F 
 $ipt -X
 $ipt -t nat -F 
 $ipt -t nat -X
 $ipt -t mangle -F
 $ipt -t mangle -X
 $ipt -P INPUT ACCEPT 
 $ipt -P OUTPUT ACCEPT
 $ipt -P FORWARD ACCEPT 
 
 # 이 방화벽을 브릿지로 설정하고 로드밸런싱을 할경우에 
 $ipt -A PREROUTING -i br0 -p tcp --dport 80 -m state --state NEW -m nth --counter 0 --every 3 --packet 0 -j DNAT --to-destination 192.168.10.10:80 
 $ipt -A PREROUTING -i br0 -p tcp --dport 80 -m state --state NEW -m nth --counter 1 --every 3 --packet 1 -j DNAT --to-destination 192.168.10.11:80 
 $ipt -A PREROUTING -i br0 -p tcp --dport 80 -m state --state NEW -m nth --counter 2 --every 3 --packet 2 -j DNAT --to-destination 192.168.10.12:80 
 
 # NIS 연결 허용 
 $ipt -A INPUT -p tcp --dport 111 -j ACCEPT
 $ipt -A INPUT -p udp --dport 111 -j ACCEPT
 $ipt -A INPUT -p tcp --dport 853 -j ACCEPT
 $ipt -A INPUT -p udp --dport 853 -j ACCEPT
 $ipt -A INPUT -p tcp --dport 850 -j ACCEPT
 $ipt -A INPUT -p udp --dport 850 -j ACCEPT    

 # 특정대역에 대한 rsync 허용, 포트와 아이피만 바꾸면 웹, 디비도 똑같이 설정가능
 $ipt -A INPUT -i eth0 -p tcp -s 192.168.10.0/24 --dport 873 -m state --state NEW,ESTABLISHED -j ACCEPT
 $ipt -A OUTPUT -o eth0 -p tcp --sport 873 -m state --state ESTABLISHED -j ACCEPT
 
 # 포트포워딩 
 $ipt -t nat -A PREROUTING -p tcp -d 192.168.10.10 --dport 1024 -j DNAT --to 192.168.10.20:1024 
 
 # recent 모듈을 이용한 60초간 15번의 히트 차단하기 
 # 차단확인방법은 /proc/net/xt_recent/DEFAULT 파일을 확인
 $ipt -A INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --name BLOCKLIST --set
 $ipt -A INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --name BLOCKLIST --update --seconds 60 --hitcount 16 -j DROP
 
 
 # iprange 모듈의 활용 
 $ipt -A INPUT -t filter -m iprange ! --src-range 192.168.10.10-192.168.10.100 -p tcp --dport 22 -j REJECT 
 
 # DDOS 차단 ??? 
 $ipt -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
 $ipt -A INPUT -p tcp ! -syn -m state --state NEW -j DROP
 $ipt -A INPUT -p tcp --tcp-flags ALL aLL -j DROP
 
 # Source NAT 방법
 # POSTROUTING과 PREROUTING은 로컬 프로세싱이 아니다.  
 # 20번만 바꾼다. 
 $ipt -t nat -A POSTROUTING -o eth0 -j SNAT --to 192.168.10.20
 
 # 20번부터 30번까지의 아이피를 모두 바꾼다. 
 $ipt -t nat -A POSTROUTING -o eth0 -j SNAT --to 192.168.10.20-192.168.10.30 
 
 # 20번의 80부터 443까지의 포트를 nat시킴 
 $ipt -t nat -A POSTROUTING -o eth0 -p tcp -j SNAT --to 192.168.10.20:80-443 
 
 
 
 # Destination NAT 방법 
 # 
 $ipt -t nat -A PREROUTING -i eth0 -d 192.168.10.5 -j DNAT --to 192.168.10.20 
 
 $ipt -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.10.10:8080
 
  # 차례로 20-30번 서버로 로드밸런싱, 한번에 하나씩 보낸다. (정직함 ㅋㅋ)
 $ipt -t nat -A PREROUTING -i eth0 -j DNAT --to 192.168.10.20-192.168.10.30
 
 # 포트 NAT 80번으로 오는것을 20서버의 8080포트로 포워딩 
 $ipt -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.10.20:8080 
 
 # 리다이렉션 시키기 (포트포워딩이랑 비교해보기), 이런걸 Transparent Proxying 이라고 한다. 
 $ipt -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8009

 # 이쯤되면 Masquerading 도 필요하겠지 ?
 # 포워딩은 잊지말자 (echo 1 > /proc/sys/net/ipv4/ip_forward)
 $ipt -t nat -A POSTROUTING -o eth0 -j MASQUERADE 


 # 맥어드레스 차단하기 !는 반대
 $ipt -A PREROUTING -i eth0 0-m mac --mac-source ! 00:00:AA:BB:CC:DD -j DROP
 
  
 

iptables 명령어

 

 # 현재 룰셋 저장하기 
 iptables-save > /etc/sysconfig/iptables.new 
 
 # 지정한 파일을 룰셋으로 전환 
 iptables-restore < /etc/sysconfig/iptables.new 
 	
 	


Home | Linux | Network | About Me |