์‚ฌ์‹ค ๊ณต์œ ๊ธฐ ์ƒํƒœ์—์„œ ์„œ๋ฒ„ ์šด์˜์‹œ ๋ฐฉํ™”๋ฒฝ์„ ๋‚ด๋ถ€ ์‹œ์Šคํ…œ์—์„œ ๊ตฌ์ฒด์ ์œผ๋กœ ์„ค์ •์„ ํ•  ํ•„์š”๋Š” ์—†๋‹ค.

์™œ๋ƒํ•˜๋ฉด ๊ณต์œ ๊ธฐ ์ž์ฒด๊ฐ€ ๋ฐฉํ™”๋ฒฝ ๊ธฐ๋Šฅ์„ ๋‹ด๊ณ  ์žˆ๊ณ  ์„ค์ •์—์„œ ํฌ์›Œ๋”ฉ ๊ธฐ๋Šฅ์„ ์ด์šฉํ•ด์„œ ์ง€์ •๋œ ํฌํŠธ ์™ธ์—๋Š” ์ ‘๊ทผ์ด

๋ถˆ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋‹ค๋งŒ ์ด ๋ฐฉํ™”๋ฒฝ ์‚ฌ์Šฌ์€ ๊ฐœ์ธ ๊ณต์œ ๊ธฐ๊ฐ€ ์•„๋‹Œ ์‹ค์žฌ๋กœ ๊ณ ์ •IP์ƒํƒœ์—์„œ ์ง์ ‘ ๋„คํŠธ์›Œํฌ์— ๋ฌผ๋ ค์žˆ๋Š” ์„œ๋ฒ„ ์ปดํ“จํ„ฐ์—์„œ๋งŒ ํ•ด ์ฃผ๋ฉด ์ข‹์„ ๊ฒƒ์ด๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋ณด์•ˆ์ ์œผ๋กœ ํ•ดํ‚น์„ ๋‹นํ•  ํ™•๋ฅ ์ด ๋†’์•„์ง„๋‹ค.

 

root@nsโ™ฅBunnyโ™ฅ/shellroot]# vi iptables_powerSecurity_script.sh

echo "###################################################################"

echo "#################### ์‹œ์Šคํ…œ ๋ฐฉํ™”๋ฒฝ ์ •์ฑ… ๋ณด์•ˆ ์„ค์ • #################"

echo "#################### ์ž‘์„ฑ์ž : ํ•˜ ํƒœ ์šฉ <bunny>    #################"

echo "#################### http://bunnyblog.tistory.com #################"

echo "#################### E-Mail : bunny@apptree.pe.kr ################"

echo "###################################################################"

IPTABLES="/sbin/iptables"

IP_ADDR=`grep "IPADDR=" /etc/sysconfig/network-scripts/ifcfg-Auto_eth0 | awk -F'=' '{ print $2 }'`

. /etc/init.d/functions

case "$1" in

start|restart)

             echo "$1ing next_firewall :"

             ;;

         stop)

             echo "$1ping next_firewall :"

             $IPTABLES -F

             $IPTABLES -X

             $IPTABLES -P INPUT ACCEPT

             $IPTABLES -P FORWARD ACCEPT

             $IPTABLES -P OUTPUT ACCEPT

             exit

             ;;

            *)

             echo $"Usage: $0 {start|restart|stop}"

             exit

             ;;

esac

echo "================== ๋ฃฐ์…‹ ์ดˆ๊ธฐํ™” ====================="

$IPTABLES -F

echo "==================  ๊ธฐ๋ณธ์ •์ฑ… ์„ค์ • ======================"

$IPTABLES -P INPUT DROP

$IPTABLES -P FORWARD DROP

$IPTABLES -P OUTPUT ACCEPT

echo "================== Loopback ํŠธ๋ž˜ํ”ฝ ํ—ˆ์šฉ ================="

$IPTABLES -A INPUT -i lo -j ACCEPT

echo "==================  ์ž๊ธฐ์ž์‹ ์„ ์†Œ์Šค๋กœ ํ•˜๋Š” ํŠธ๋ž˜ํ”ฝ ์ฐจ๋‹จ  =================="

$IPTABLES -A INPUT -i eth0 -s $IP_ADDR -j DROP

$IPTABLES -A INPUT -i eth0 -s 127.0.0.0/8 -j DROP

echo "================== ์ƒํƒœ์ถ”์  ์„ค์ • ======================="

$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

$IPTABLES -A INPUT -p all -m state --state INVALID -j DROP

echo "================== ๋น„์ •์ƒ์  tcp-flags ์ฐจ๋‹จ ==================="

$IPTABLES -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j DROP

$IPTABLES -A INPUT -p tcp --tcp-flags ALL NONE -j DROP

$IPTABLES -A INPUT -p tcp --tcp-flags ALL PSH,FIN -j DROP

$IPTABLES -A INPUT -p tcp --tcp-flags ALL URG,PSH,FIN -j DROP

$IPTABLES -A INPUT -p tcp --tcp-flags ALL SYN,ACK,FIN -j DROP

$IPTABLES -A INPUT -p tcp --tcp-flags ALL SYN,FIN,PSH -j DROP

$IPTABLES -A INPUT -p tcp --tcp-flags ALL SYN,FIN,RST -j DROP

$IPTABLES -A INPUT -p tcp --tcp-flags ALL SYN,FIN,RST,PSH -j DROP

$IPTABLES -A INPUT -p tcp --tcp-flags ALL SYN,FIN,ACK,RST -j DROP

$IPTABLES -A INPUT -p tcp --tcp-flags ALL SYN,ACK,FIN,RST,PSH -j DROP

$IPTABLES -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j DROP

$IPTABLES -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP

$IPTABLES -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j DROP

$IPTABLES -A INPUT -p tcp --tcp-flags ACK,URG URG -j DROP

echo "================== ftp servive ========================"

$IPTABLES -A INPUT -p tcp --sport 1024: --dport 20 -m state --state NEW -j ACCEPT

$IPTABLES -A INPUT -p tcp --sport 1024: --dport 21 -m state --state NEW -j ACCEPT

echo "================== ssh servive ========================"

$IPTABLES -A INPUT -p tcp --sport 1024: --dport 22 -m state --state NEW -j ACCEPT

echo "================== telnet servive ======================"

$IPTABLES -A INPUT -p tcp --sport 1024: --dport 23 -m state --state NEW -j ACCEPT

echo "================== smtp servive  ======================="

#$IPTABLES -A INPUT -p tcp --sport 1024: --dport 25 -m state --state NEW -j ACCEPT

echo "================== domainserver servive ====================="

$IPTABLES -A INPUT -p tcp --sport 1024: --dport 53 -m state --state NEW -j ACCEPT

$IPTABLES -A INPUT -p udp --sport 1024: --dport 53 -m state --state NEW -j ACCEPT

echo "================== http servive ====================="

$IPTABLES -A INPUT -p tcp --sport 1024: --dport 80 -m state --state NEW -j ACCEPT

echo "================== OpenVPN service ==================="

$IPTABLES -A INPUT -p udp --sport 1024: --dport 1194 -m state --state NEW -j ACCEPT

echo "================== pop3 servive ====================="

$IPTABLES -A INPUT -p tcp --sport 1024: --dport 110 -m state --state NEW -j ACCEPT

echo "================== identd servive ==================="

$IPTABLES -A INPUT -p tcp --syn --dport 113 -j REJECT --reject-with tcp-reset

echo "================== imap servive =================="

#$IPTABLES -A INPUT -p tcp --sport 1024: --dport 143 -m state --state NEW -j ACCEPT

echo "================== snmp servive =================="

$IPTABLES -A INPUT -p tcp --sport 1024: --dport 161 -m state --state NEW -j ACCEPT

$IPTABLES -A INPUT -p udp --sport 1024: --dport 161 -m state --state NEW -j ACCEPT

$IPTABLES -A INPUT -p udp --sport 1024: --dport 199 -m state --state NEW -j ACCEPT

$IPTABLES -A INPUT -p tcp --sport 1024: --dport 199 -m state --state NEW -j ACCEPT

echo "================== https servive ================="

#$IPTABLES -A INPUT -p tcp --sport 1024: --dport 443 -m state --state NEW -j ACCEPT

echo "================== rsync servive ================="

#$IPTABLES -A INPUT -p tcp --sport 1024: --dport 873 -m state --state NEW -j ACCEPT

echo "================== mysql servive ================="

$IPTABLES -A INPUT -p tcp --sport 1024: --dport 3306 -m state --state NEW -j ACCEPT

echo "================== http servive 3000 =================="

$IPTABLES -A INPUT -p tcp --sport 1024: --dport 3000 -m state --state NEW -j ACCEPT

echo "================== servive luxe =================="

$IPTABLES -A INPUT -p tcp --sport 1024: --dport 39789 -m state --state NEW -j ACCEPT

$IPTABLES -A INPUT -p tcp --sport 1024: --dport 36785 -m state --state NEW -j ACCEPT

$IPTABLES -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

[root@nsโ™ฅBunnyโ™ฅ/shellroot]# sh iptables_powerSecurity_script.sh

[root@nsโ™ฅBunnyโ™ฅ/shellroot]# iptables โ€“L รจ ๋ฐฉํ™”๋ฒฝ ์ •์ฑ…์„ ํ™•์ธํ•œ๋‹ค.

[root@nsโ™ฅBunnyโ™ฅ/shellroot]# iptables โ€“F รจ ๋ฐฉํ™”๋ฒฝ ์ •์ฑ…์„ ์ดˆ๊ธฐํ™” ํ•œ๋‹ค.

<์ฐธ๊ณ  ๋‚ด์šฉ>

iptables ๋ณด์•ˆ ์‚ฌ์Šฌ ์˜ต์…˜

-A(--append) : ์ •์ฑ…์•ˆ์— ๊ทœ์น™์„ ๋ง๋ถ™์ธ๋‹ค. -D(--delete) : ํ•œ๊ฐœ๋˜๋Š” ๊ทธ์ด์ƒ์˜ ์„ ํƒ๋œ ๊ทœ์น™์„ ์ง€์šด๋‹ค

-R(--replace) :์„ ํƒ๋œ ๊ทœ์น™์„ ์ƒˆ๋กœ์šด ๊ทœ์น™์œผ๋กœ ๋Œ€์ฒดํ•œ๋‹ค. -I(--insert) : ์ •์ฑ…์†์— ์ƒˆ๋กœ์šด ๊ทœ์น™์„ ๋„ฃ๋Š”๋‹ค.

-P(--policy) : ๊ธฐ๋ณธ ์ •์ฑ…์„ ๋ณ€๊ฒฝํ•œ๋‹ค  -N(--new-chain) : ์ƒˆ๋กœ์šด ์ •์ฑ…์ˆ˜๋ฆฝํ•œ๋‹ค

-X(--delete-chain) : ์ •์˜๋˜์ง€ ์•Š์€ ๊ทœ์น™์€ ์ง€์šด๋‹ค.  -L(--list) : ๊ฐ ์ •์ฑ…์„ ๋‚˜์—ดํ•œ๋‹ค.

0-F(--flush) : ๋ชจ๋“ ์ •์ฑ…์„ ์ง€์šด๋‹ค  -Z(--zero) ์ •์ฑ…์•ˆ์—์žˆ๋Š” ๋ชจ๋“  ๊ทœ์น™๋“ค์˜ ํŒจํ‚ท์ด๋‚˜ ์นด์šดํ„ฐ์˜ ๋ฐ”์ดํŠธ๊ฐ’์„ 0์œผ๋กœ

์ดˆ๊ธฐํ™”ํ•œ๋‹ค.

์ถ”๊ฐ€์˜ต์…˜  รจ ACCEPT <๋‹น์—ฐํžˆ ๋ฐ›์•„๋“ค์ธ๋‹ค๋Š” ๋œป์ด๊ณ >   REJECT

โ€“ DENY <๊ฑฐ๋ถ€ํ•œ๋‹ค๋Š” ๋œป์ธ๋ฐ REJECT๋Š” ์นœ์ ˆํ•˜๊ฒŒ '๊ฑฐ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค>

DENY <๋ถˆ์นœ์ ˆํ•˜๊ฒŒ ์•„๋ฌด๋Ÿฐ ์‘๋‹ต์ด ์—†๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค>

์„ธ๋ถ€ ์˜ต์…˜  รจ -p(--protocol) ์ด ๊ทœ์น™์˜ protocol  -s(--source)  ๋ฐœ์‹ ์ง€ ์ฃผ์†Œ  -sport(--source-port)

 ๋ฐœ์‹ ์ง€ port(๋ชจ๋“ ์ฃผ์†Œ์— ๋Œ€ํ•ด์„œ) 

-d(--destination) ๋„์ฐฉ์ง€ ์ฃผ์†Œ  -dport(--destination-port) ๋„์ฐฉ์ง€ port(๋ชจ๋“  ์ฃผ์†Œ์— ๋Œ€ํ•ด์„œ) -icmp-type 

ICMP type์„ ๋‚˜ํƒ€๋‚ธ๋‹ค -j(--jump)  ํŒจํ‚ท์„ ์ ํ”„์‹œํ‚จ๋‹ค. -i(--interface) ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ง€์ •ํ•ด์ค€๋‹ค.

======================================================================================

iptables -s 211.238.165.111 -j DROP   รจ ๋ง‰๊ธฐ

iptables -A INPUT -s 211.238.165.111 -p tcp --destination-port telnet -j DROP รจ Service ์ฐจ๋‹จํ•˜๊ธฐ

iptables -A INPUT -p tcp --destination-port telnet -i ppp0 -j DROP  รจ ์„ ํƒ์ ์ธ ์ฐจ๋‹จ

iptables -A INPUT -i ppp0 -p tcp --syn -j DROP  รจ SYN Packets ๋ง‰๊ธฐ

iptables -A INPUT -i ppp0 -p tcp --syn --destination-port ! 80 -j DROP รจ SYN Packets web ๋ง‰๊ธฐ

iptables -P FORWARD ACCEPT  รจ Chain ์ •์ฑ…

=============================================================================================================

 

 

 

+ Recent posts