>> Edit article
이름
제목
패스워드
linux.co.kr에 있는 강좌를 토대로 몇가지 추가해서 쓰고 있는 예제입니다. 참고하세요. #!/bin/sh IPTABLES=`which iptables` if [ $? != 0 ]; then echo "Error: iptables doesn't exist in your path." exit 1 fi # 우선 모든 Rule을 정리한다. $IPTABLES -F # 다음으로 각각의 CHAIN에 대한 정책을 세운다. $IPTABLES -P INPUT DROP $IPTABLES -P OUTPUT ACCEPT $IPTABLES -P FORWARD ACCEPT # localhost와 내부 네트워크에서의 traffic을 받아들인다. $IPTABLES -A INPUT -i lo -j ACCEPT $IPTABLES -A INPUT -i eth1 -j ACCEPT # 이 쪽에서 확립한 연결에 대한 Packet을 받아들인다. $IPTABLES -A INPUT -i eth0 -p tcp ! --syn -j ACCEPT # DNS 응답을 받아들인다. $IPTABLES -A INPUT -i eth0 -p tcp --source-port 53 -j ACCEPT $IPTABLES -A INPUT -i eth0 -p udp --source-port 53 -j ACCEPT # HTTP, FTP, SSH, SFTP 서비스를 제공한다. $IPTABLES -A INPUT -i eth0 -p tcp --destination-port 80 -j ACCEPT $IPTABLES -A INPUT -i eth0 -p udp --destination-port 80 -j ACCEPT $IPTABLES -A INPUT -i eth0 -p tcp --destination-port 21 -j ACCEPT $IPTABLES -A INPUT -i eth0 -p udp --destination-port 21 -j ACCEPT $IPTABLES -A INPUT -i eth0 -p tcp --destination-port 22 -j ACCEPT $IPTABLES -A INPUT -i eth0 -p udp --destination-port 22 -j ACCEPT $IPTABLES -A INPUT -i eth0 -p tcp --destination-port 115 -j ACCEPT $IPTABLES -A INPUT -i eth0 -p udp --destination-port 115 -j ACCEPT # 인증 연결을 거부한다(그렇지 않을 경우 메일서버가 # 오랫동안 타임아웃 상태가 될 것이다.) $IPTABLES -A INPUT -i eth0 -p tcp --destination-port 113 -j REJECT # echo나 목적지에 도착 못하거나 시간 초과된 icmp packet들을 받아들인다. $IPTABLES -A INPUT -i eth0 -p icmp --icmp-type 0 -j ACCEPT $IPTABLES -A INPUT -i eth0 -p icmp --icmp-type 3 -j ACCEPT $IPTABLES -A INPUT -i eth0 -p icmp --icmp-type 11 -j ACCEPT # 내부 네트워크의 인터넷 사용을 위한 마스커레이드를 설정한다. $IPTABLES -A POSTROUTING -t nat -s 192.168.1.0/24 -o eth0 -j MASQUERADE # 소리바다가 외부 연결로 부터 패킷을 읽는 포트를 연다. $IPTABLES -A PREROUTING -t nat -i eth0 -p tcp --dport 9001:9004 -j DNAT --to 192.168.1.2 $IPTABLES -A PREROUTING -t nat -i eth0 -p udp --dport 9001:9004 -j DNAT --to 192.168.1.2
Copyleft
1999-2026 by
JSBoard Open Project
Theme Designed by
IDOO
All right reserved