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"
'리눅스-Linux' 카테고리의 다른 글
Linux DRBD(Distribute replication Block Device) 설치 (1) | 2016.11.16 |
---|---|
DNS 서버 bind9 설정 관련 (0) | 2015.10.11 |
[리눅스] 유용한 find , grep 사용법 (1) | 2015.10.11 |
[Linux] iscsi.conf timeout 관련 (0) | 2015.06.10 |
[리눅스] 파일 무결성 검증 (1) | 2014.11.18 |