์ฌ์ค ๊ณต์ ๊ธฐ ์ํ์์ ์๋ฒ ์ด์์ ๋ฐฉํ๋ฒฝ์ ๋ด๋ถ ์์คํ ์์ ๊ตฌ์ฒด์ ์ผ๋ก ์ค์ ์ ํ ํ์๋ ์๋ค.
์๋ํ๋ฉด ๊ณต์ ๊ธฐ ์์ฒด๊ฐ ๋ฐฉํ๋ฒฝ ๊ธฐ๋ฅ์ ๋ด๊ณ ์๊ณ ์ค์ ์์ ํฌ์๋ฉ ๊ธฐ๋ฅ์ ์ด์ฉํด์ ์ง์ ๋ ํฌํธ ์ธ์๋ ์ ๊ทผ์ด
๋ถ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ด๋ค. ๋ค๋ง ์ด ๋ฐฉํ๋ฒฝ ์ฌ์ฌ์ ๊ฐ์ธ ๊ณต์ ๊ธฐ๊ฐ ์๋ ์ค์ฌ๋ก ๊ณ ์ 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 ์ ์ฑ ============================================================================================================= |
'๐2017๋ ์ด์ ํฌ์คํ ๋ชจ์ ๐ > ๐Linux OS๐' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ ์ ๋ฉ์์ง ์์ ๋ฐ ๊ณต์ง ์ฌํญ ์ค์ (0) | 2015.04.04 |
---|---|
Sendmail-pop3-imap ์ ๋ฐ์ ์ธ ์ค์ (0) | 2015.03.09 |
OPENSSH ๋ณด์ ์ ์ ์๋ฒ ์ค์ (0) | 2015.03.09 |
Sulinux Bind ๋๋ฉ์ธ ์๋ฒ ์ค์ (0) | 2015.03.09 |
Sulinux ์ ์ ์ ๊ทธ๋ฃน๊ด๋ฆฌ ์ค์ ๋ฐ ๊ด๋ จ ๋ช ๋ น์ด ์ฌ์ฉ๋ฒ (0) | 2015.03.07 |