iptables 간단하게 정리하고 자주쓰이는 기능에 대해서 정리하고자 한다

크게 2가지 filter, nat table이 존재함

각 table에는 아래와 같은 Chain 룰셋이 있다

1) input

2) forward - filter table에만 존재

3) output 

4) nat(PREROUTING, POSTROUTING) - nat table에만 존재


옵션은 2가지만 알자 

-A (Add) - rule 추가

-D (Del) - rule 삭제


[사용법]

1) iptables 읽기

# iptables -L : 리눅스 iptable은 기본으로 filter table을 읽음

# iptables -t nat -L : nat table 읽음 

2) iptables 삭제

# iptables -F


[예제]

1) Linux OS에서 출처 input chain 제어

# iptables -A input -j DROP - 모든 input 패킷 드랍

# iptables -A input -s 192.168.100.100 -j DROP - 출발지가 192.168.100.100인 패킷 드랍

iptables -A input -d 192.168.100.100 -j DROP - 목적지가 192.168.100.100 패킷 드랍

# iptables -A input -p TCP -j ACCEPT - TCP 프로토콜 쓰는 패킷 허용

# iptables -A input -p TCP --dport 80 -j DROP - TCP 80포트로 목적지로 사용하는 패킷 DROP

# iptables -A input -i eth0 -p TCP --dport 80 -j DROP - eth0 TCP 80포트로 목적지를 사용하는 패킷 DROP 

여기서 참고로 인터페이스 옵션은 input chain은 -i 만 output chain은 -o 만 옵션만 사용 가능함 


Masqurade 

iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE 

sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"


사용법 : iptables

테이블(filter, nat, mangle, raw)

체인(INPUT, OUTPUT, FORWARD, PREROUTING, POSTROUTING)

룰설정 : -A : append , -l : insert , -D : 삭제 , -F : 해당 Chain 모든 삭제, -R: replace 치환

           -p : 프로토콜(tcp,udp,icmp), -s 출발지 , -d 목적지 , --sport 출발지 포트, -dport 목적지 포트 -i 입력인터페이스, -o 출력 인터페이스

정책지정 : -j 옵션을 통해서 타겟 체인 설정(ACCEPT, DROP(차단), REJECT(차단하면서 ICMP 응답 전송), LOG)

 

iptables -t nat -A PREROUTING -p tcp -d 10.13.31.91 --dport 80 -j DNAT --to 10.244.0.34:80

iptables -t nat -A PREROUTING -p tcp -d 10.13.31.91 --dport 443 -j DNAT –to 10.244.0.34:443

iptables -t nat -A PREROUTING -p tcp -d $INTERNAL_IP --dport 4443 -j DNAT –to 10.244.0.34:4443

 

iptables -t nat -A PREROUTING -p tcp -d 10.13.31.91 --dport 8022 -j DNAT --to 10.244.0.34:22

 

iptables -t nat -A PREROUTING -i eth1 -p tcp -d 10.13.31.91 --dport 8022 -j DNAT --to 10.244.0.34:22

iptables -A FORWARD -p tcp -i eth1 -d 10.13.31.91 --dport 8022 -j ACCEPT

 

 

iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE

 

 

sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

Posted by 뭉탁거림
,