· 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




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.0051 sec