[보안] iptable 사용법
iptables 사용방법
보안에 매우 중요한 iptables 에 대한 자료를 제공해 주신 박상엽님께
감사드립니다.
커널 2.4대로 올라오면서 ipchains대신 iptables를 사용하게 되었습니다.
옵션을 주어 컴파일하거나 모듈을 올리면 ipchains도 사용가능하지만
NAT나 masq.를 셋팅할 수는 없습니다. 부득이 iptables를 사용해야
합니다. 실제로 활용할 만한 레퍼런스가 부족해 가장 많이 사용하는 부분들을
요약정리 했습니다. 참고하시길 바랍니다.
* 체인의 이름이 바뀌었습니다.
input -> INPUT
output -> OUTPUT
forward -> FORWARD
DENY -> DROP
그래서 기존에 ipchains로 input의 default룰을 작성하던 내용은 다음과
같이 변경하면 됩니다.
…
#input default
…
ipchains -A input -s $IP -d 127.0.0.1 -j ACCEPT
ipchians -A input -s $IP -d $IP -j ACCEPT
ipchains -A input -j DENY
iptables를 사용하여 작성하면,
…
#INPUT default
…
iptables -A INPUT -s $IP -d 127.0.0.1 -j ACCEPT
iptables -A INPUT -s $IP -d $IP -j ACCEPT
iptables -A INPUT -j DROP
이 됩니다.
*포트 지정방식이 바뀌었습니다.
시작점의 경우 –sport 포트번호,
목적점의 경우 –dport 포트번호
방식으로 지정해 주어야 합니다.
클라이언트의 네임서버 설정을 보면 다음과 같습니다.
먼저 기존의 ipchains를 사용하여 체인을 설정하는 것은,
#input for nameserver
ipchains -A input -p tcp -s $NAMESERVER domain -d $IP -j ACCEPT
ipchains -A input -p udp -s $NAMESERVER domain -d $IP -j ACCEPT
#output for nameserver
ipchains -A output -p tcp -s $IP -d $NAMESERVER domain -j ACCEPT
ipchains -A output -p udp -s $IP -d $NAMESERVER domain -j ACCEPT
이었습니다. 이것을 iptables를 사용하여 설정해 보겠습니다.
#INPUT for nameserver
iptables -A INPUT -p tcp -s $NAMESERVER –sport domain -d $IP -j ACCEPT
iptables -A INPUT -p udp -s $NAMESERVER –sport domain -d $IP -j ACCEPT
#OUTPUT for nameserver
iptables -A OUTPUT -p tcp -s $IP -d $NAMESERVER –dport domain -j ACCEPT
iptables -A OUTPUT -p tcp -s $IP -d $NAMESERVER –dport domain -A ACCEPT
이 됩니다.