웹마스터 팁
page_full_width">
fedora core4 기준으로 iptables 최소한 이정도는 막아줘야 할듯,,
2005.11.19 23:59
#!/bin/bash
########## CONFIG ##########
IPT="/sbin/iptables" // iptables 라는 글자를 IPT로 줄였습니다.
MYIP="210.123.94.21" // 자신의 아이피 주소를 입력하시면 됩니다.
########## base rule ########## // 기본적인 구성이구요..
$IPT -F
$IPT -t nat -F
$IPT mangle -F
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A INPUT -o lo -j ACCEPT
$IPT -P INPUT ACCEPT
$IPT -P FORWARD ACCEPT
$IPT -P OUTPUT ACCEPT
########## TCP-flags ########## // SYN와 ACK 그 외 URG나 FIN 등 위조신호를 막기위한 구축입니다..
$IPT -A INPUT -p TCP --tcp-flags ACK,FIN FIN -j DROP
$IPT -A INPUT -p TCP --tcp-flags ALL NONE -j DROP
$IPT -A INPUT -p TCP --tcp-flags ALL PSH,FIN -j DROP
$IPT -A INPUT -p TCP --tcp-flags ALL URG,PSH,FIN -j DROP
$IPT -A INPUT -p TCP --tcp-flags ALL SYN,ACK,FIN -j DROP
$IPT -A INPUT -p TCP --tcp-flags ALL SYN,FIN,PSH -j DROP
$IPT -A INPUT -p TCP --tcp-flags ALL SYN,FIN,RST -j DROP
$IPT -A INPUT -p TCP --tcp-flags ALL SYN,FIN,RST,PSH -j DROP
$IPT -A INPUT -p TCP --tcp-flags ALL SYN,FIN,ACK,RST -j DROP
$IPT -A INPUT -p TCP --tcp-flags ALL SYN,ACK,FIN,RST,PSH -j DROP
$IPT -A INPUT -p TCP --tcp-flags FIN,RST FIN,RST -j DROP
$IPT -A INPUT -p TCP --tcp-flags SYN,FIN SYN,FIN -j DROP
$IPT -A INPUT -p TCP --tcp-flags ACK,PSH PSH -j DROP
$IPT -A INPUT -p TCP --tcp-flags ACK,URG URG -j DROP
########## STATE ########## // state 쪽 방화벽 구축입니다.
$IPT -A INPUT -m state --state INVALID -j ACCEPT
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
########## source address packet filter ########## // 쓰지않는 대역폭에 대한 위조신호 방지 방화벽 구축입니다..
##### myip #####
$IPT -A INPUT eth0 -s $MYIP -j DROP
##### A class #####
$IPT -A INPUT eth0 -s 10.0.0.0/8 -j DROP
##### B class #####
$IPT -A INPUT eth0 -s 172.16.0.0/12 -j DROP
##### C class #####
$IPT -A INPUT eth0 -s 192.168.0.0/16 -j DROP
##### D class #####
$IPT -A INPUT eth0 -s 224.0.0.0/4 -j DROP
##### E class #####
$IPT -A INPUT eth0 -s 240.0.0.0/5 -j DROP
##### loop back source address #####
$IPT -A INPUT eth0 -s 127.0.0.0/8 -j DROP
########## RESERVED IP area ########## // 이미 예약된 ip 대역으로서 이런 아이피라면 위조된 신호이므로 방화벽을 구축했습니다.
$IPT -A INPUT -i eth0 -s 0.0.0.0/8 -j DROP
$IPT -A INPUT -i eth0 -s 169.254.0.0/16 -j DROP
$IPT -A INPUT -i eth0 -s 192.0.2.0/24 -j DROP
$IPT -A INPUT -i eth0 -s 248.0.0.0/5 -j DROP
저의 경우에는 이것을 default.firewall 이라고 저장을 해서
/etc/rc.d/init.d 에 저장을 해두고
cp 명령어를 이용하여
cp /etc/rc.d/init.d/default.firewall /etc/rc.d/rc3.d/S100d.firewall
S 가 무슨 역할을 하시는지는 아실거라 믿고
암튼 이렇게 해서 터미널창에서 reboot 시키시고 나면
iptables -L
하시면 적용된것이 나올겁니다.
p.s. 만약 방화벽을 전부다 내리고 싶으실때는
본인이 저장한 경로의 파일을 삭제해 주시고 reboot 시키시면 됩니다.
질문은 리플로 주세요~
########## CONFIG ##########
IPT="/sbin/iptables" // iptables 라는 글자를 IPT로 줄였습니다.
MYIP="210.123.94.21" // 자신의 아이피 주소를 입력하시면 됩니다.
########## base rule ########## // 기본적인 구성이구요..
$IPT -F
$IPT -t nat -F
$IPT mangle -F
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A INPUT -o lo -j ACCEPT
$IPT -P INPUT ACCEPT
$IPT -P FORWARD ACCEPT
$IPT -P OUTPUT ACCEPT
########## TCP-flags ########## // SYN와 ACK 그 외 URG나 FIN 등 위조신호를 막기위한 구축입니다..
$IPT -A INPUT -p TCP --tcp-flags ACK,FIN FIN -j DROP
$IPT -A INPUT -p TCP --tcp-flags ALL NONE -j DROP
$IPT -A INPUT -p TCP --tcp-flags ALL PSH,FIN -j DROP
$IPT -A INPUT -p TCP --tcp-flags ALL URG,PSH,FIN -j DROP
$IPT -A INPUT -p TCP --tcp-flags ALL SYN,ACK,FIN -j DROP
$IPT -A INPUT -p TCP --tcp-flags ALL SYN,FIN,PSH -j DROP
$IPT -A INPUT -p TCP --tcp-flags ALL SYN,FIN,RST -j DROP
$IPT -A INPUT -p TCP --tcp-flags ALL SYN,FIN,RST,PSH -j DROP
$IPT -A INPUT -p TCP --tcp-flags ALL SYN,FIN,ACK,RST -j DROP
$IPT -A INPUT -p TCP --tcp-flags ALL SYN,ACK,FIN,RST,PSH -j DROP
$IPT -A INPUT -p TCP --tcp-flags FIN,RST FIN,RST -j DROP
$IPT -A INPUT -p TCP --tcp-flags SYN,FIN SYN,FIN -j DROP
$IPT -A INPUT -p TCP --tcp-flags ACK,PSH PSH -j DROP
$IPT -A INPUT -p TCP --tcp-flags ACK,URG URG -j DROP
########## STATE ########## // state 쪽 방화벽 구축입니다.
$IPT -A INPUT -m state --state INVALID -j ACCEPT
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
########## source address packet filter ########## // 쓰지않는 대역폭에 대한 위조신호 방지 방화벽 구축입니다..
##### myip #####
$IPT -A INPUT eth0 -s $MYIP -j DROP
##### A class #####
$IPT -A INPUT eth0 -s 10.0.0.0/8 -j DROP
##### B class #####
$IPT -A INPUT eth0 -s 172.16.0.0/12 -j DROP
##### C class #####
$IPT -A INPUT eth0 -s 192.168.0.0/16 -j DROP
##### D class #####
$IPT -A INPUT eth0 -s 224.0.0.0/4 -j DROP
##### E class #####
$IPT -A INPUT eth0 -s 240.0.0.0/5 -j DROP
##### loop back source address #####
$IPT -A INPUT eth0 -s 127.0.0.0/8 -j DROP
########## RESERVED IP area ########## // 이미 예약된 ip 대역으로서 이런 아이피라면 위조된 신호이므로 방화벽을 구축했습니다.
$IPT -A INPUT -i eth0 -s 0.0.0.0/8 -j DROP
$IPT -A INPUT -i eth0 -s 169.254.0.0/16 -j DROP
$IPT -A INPUT -i eth0 -s 192.0.2.0/24 -j DROP
$IPT -A INPUT -i eth0 -s 248.0.0.0/5 -j DROP
저의 경우에는 이것을 default.firewall 이라고 저장을 해서
/etc/rc.d/init.d 에 저장을 해두고
cp 명령어를 이용하여
cp /etc/rc.d/init.d/default.firewall /etc/rc.d/rc3.d/S100d.firewall
S 가 무슨 역할을 하시는지는 아실거라 믿고
암튼 이렇게 해서 터미널창에서 reboot 시키시고 나면
iptables -L
하시면 적용된것이 나올겁니다.
p.s. 만약 방화벽을 전부다 내리고 싶으실때는
본인이 저장한 경로의 파일을 삭제해 주시고 reboot 시키시면 됩니다.
질문은 리플로 주세요~
댓글 3
-
Jini
2006.02.02 19:51
저기서 자신의 아이피란.. 서버 아이피?? 아님 접속 아이피? -
인호씨
2006.03.19 08:34
서버아이피를 의미합니다. -
enteroa
2014.08.04 14:05
MYIP=`ifconfig|grep "inet addr:"|head -1|awk '{print $2}'|cut -d : -f 2`
ifconfig 해서 나오는 정보의 첫번째 디바이스의 ipaddr 을 변수 MYIP 로 입력합니다 'ㅅ'a