· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
dasomoli/Iptables Rools

#!/bin/sh

#iptables 실행 파일의 경로를 정의한다
IPTABLES="/sbin/iptables"

# 기본 정책을 허용(ACCEPT)으로 설정한다.
$IPTABLES -P INPUT ACCEPT

# 기존에 설정되어 있는 룰을 모두 초기화한다.
$IPTABLES -F

# Loopback 허용
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT

# 이미 세션을 맺어 상태추적 테이블 목록에 있는 ESTABLISHED,RELATED 패킷은 허용한다
# 이를 통해 DNS 서버등 서버에서의 요청에 대한 응답 패킷도 허용된다.
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# 서버를 향해 들어오는 패킷 중 포트스캔이라 의심되는 패킷이 있을 경우 차단한다.
#$IPTABLES -A INPUT -m psd -j DROP

# 삼바 이용 패킷 허용.
$IPTABLES -A INPUT -i eth0 -p TCP -s 192.168.0.0/24 --dport 137:139 -j ACCEPT
$IPTABLES -A INPUT -i eth0 -p UDP -s 192.168.0.0/24 --dport 137:139 -j ACCEPT
# Subversion 허용
$IPTABLES -A INPUT -i eth0 -p TCP -s 192.168.0.0/24 --sport 1024:65535 --dport 5900 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -i eth0 -p TCP -s 192.168.0.0/24 --sport 1024:65535 --dport 3690 -m state --state NEW -j ACCEPT
# 웹 서비스를 제공하기 위해 80번으로 향하는 초기(NEW) 패킷은 혀용한다.
$IPTABLES -A INPUT -i eth0 -p TCP --dport 3690 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -i eth0 -p UDP --dport 3690 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -i eth0 -p TCP --dport 5900 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -i eth0 -p UDP --dport 5900 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -i eth0 -p TCP --dport 2401 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -i eth0 -p UDP --dport 2401 -m state --state NEW -j ACCEPT
# 이후 OUTPUT 은 모두 허용하였고, 응답 패킷 등은 앞에서 ESTABLISHED로 허용해서 이 한 줄 만으로도 서비스가 허용된다.
$IPTABLES -A INPUT -i eth0 -p TCP --sport 1024: --dport 80 -m state --state NEW -j ACCEPT
# 특정한 IP 대역에서만 ftp 서비스를 허용하기 위해 192.168.0.0/24 대역에서 21번으로 향하는 초기(NEW) 패킷은 허용한다. 이후 응답 패킷 등은 앞에서 ESTABLISHED 및 RELATED로 허용해서 이 한줄으로도 active/passive 관계없이 FTP 서비스가 허용된다.
$IPTABLES -A INPUT -i eth0 -p TCP -s 192.168.0.0/24 --sport 1024:65535 --dport 21 -m state --state NEW -j ACCEPT
# SSH 서비스를 허용하기 위해 192.168.0.0/24 대역에서 22000번으로 향하는 초기(NEW) 패킷을 허용한다.
#$IPTABLES -A INPUT -i eth0 -p TCP -s 192.168.0.0/24 --sport 1024: --dport 22000 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -i eth0 -p TCP --sport 1024: --dport 22000 -m state --state NEW -j ACCEPT

# SMTP 서비스를 허용하기 위해 25번으로 향하는 초기(NEW) 패킷은 허용한다.
# SMTP 서비스를 제공한다면 외부에서 들어오는 메일을 서버에서 받아야 함으로 25번은 열려 있어야한다.
$IPTABLES -A INPUT -i eth0 -p TCP --sport 1024: --dport 25 -m state --state NEW -j ACCEPT

# POP3 서비스를 허용하기 위해 110번으로 향하는 초기(NEW) 패킷은 허용한다
#$IPTABLES -A INPUT -i eth0 -p TCP --sport 1024: --dport 110 -m state --state NEW -j ACCEPT

# icmp 패킷 중 ping 요청에 대한 응답 즉, echo-reply 를 허용한다.
$IPTABLES -A INPUT -p ICMP --icmp-type echo-reply -j ACCEPT

# INPUT 은 기본적으로 DROP 한다. FORWARD 는 사용할 필요가 없으므로 역시 기본 정책으로 DROP 한다. 하지만 룰을 단순화하기 위해 OUTPUT 은 ACCPET 한다.
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP


ID
Password
Join
Beware of friends who are false and deceitful.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2006-05-24 09:27:05
Processing time 0.0029 sec