作者: kenduest (小州) 站內: LinuxNetwork
標題: [文件]使用 iptables 設定一些安全防護功能 (1)
時間: Tue Feb 27 23:55:46 2001
常看到有人亂使用 port scan 軟體,(ex:nmap) 來亂掃他人的 port,
實在很討厭 @_@
這裡提供幾個方式,透過 linux kernel 2.4 的新核心機制 + iptables
來進行一些設限:
# NMAP FIN/URG/PSH
iptables -A INPUT -i eth0 -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
# Xmas Tree
iptables -A INPUT -i eth0 -p tcp --tcp-flags ALL ALL -j DROP
# Another Xmas Tree
iptables -A INPUT -i eth0 -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
# Null Scan(possibly)
iptables -A INPUT -i eth0 -p tcp --tcp-flags ALL NONE -j DROP
# SYN/RST
iptables -A INPUT -i eth0 -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
# SYN/FIN -- Scan(possibly)
iptables -A INPUT -i eth0 -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
這是針對一些像是使用 scan 軟體,配合所謂的 Stealth 等機制去亂掃他人
主機時,可以把這些封包丟棄不處理。那對方一掃就卡死了,或者是
要等連線 timeout 才能夠繼續工作,拉長 scan 所需的時間。
作者: kenduest (小州) 站內: LinuxNetwork
標題: [文件]使用 iptables 設定一些安全防護功能 (2)
時間: Wed Feb 28 00:13:17 2001
下面是我設定 iptables 的一些簡單規則,可以參考一下。(與 NAT 無關喔)
# 掛入相關 module
modprobe ip_tables
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
# 重設
iptables -F
iptables -X
iptables -F -t nat
iptables -X -t mangle
# 把 FORWARD 關閉
iptables -P FORWARD DROP
# 這是打開讓自己網域可以方便連結,也就是該網域不設防
iptables -A INPUT -p all -s ip_net/netmask -j ACCEPT
# 允許相關連結服務
iptables -A INPUT -i eth0 -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 23 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 53 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 113 -j ACCEPT
iptables -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -m state --state NEW,INVALID -j DROP
上面是打開允許 port 20、21、22、23、25、53、110、113 等服務才能夠
被外面所連線。
port 20、21 : ftp 使用的。
port 22 : ssh 連線
port 23 : telnet 連線。方便使用,其實不開放比較安全。
port 25 : sendmail 使用。讓信件可以寄進來。
port 53 : dns 使用。dns 需要打開 udp 使用。
port 110 : pop3 使用
port 113 : auth 身份確認。我打開是讓一些使用該 113 確認身份的主機
不至於反查時會卡住很久。
最後一行是對於主動連線或者是不合法連線,一律通通拒絕掉。
這個 script 內容,很適用只允許外面連結特定的 port 服務,剩下的其餘
port 就拒絕外面主動建立的連線。比方使用 Modem 撥接,只希望裡面可以
正常連線出去,外面都無法連線進來這個需求。(ps: modem 是使用 ppp0
等這些介面,上面的 eth0 要改成 ppp0 )
作者: kenduest (小州) 站內: LinuxNetwork
標題: [文件]使用 iptables 設定一些安全防護功能 (3)
時間: Tue May 15 19:28:55 2001
防止 sync flood 攻擊的設定:
iptables -N synfoold
iptables -A synfoold -p tcp --syn -m limit --limit 1/s -j RETURN
iptables -A synfoold -p tcp -j REJECT --reject-with tcp-reset
iptables -A INPUT -p tcp -m state --state NEW -j synfoold
這個方式對於一個很忙碌的站台來說,這個設定方式會不會有不良影響呢?
測試過一個很忙碌的站台用這個設定,老實說並不好....
所以也許可以調整時間與次數的觸發值。
防止 Ping of Death :
iptables -N ping
iptables -A ping -p icmp --icmp-type echo-request -m limit --limit \
1/second -j RETURN
iptables -A ping -p icmp -j REJECT
iptables -I INPUT -p icmp --icmp-type echo-request -m state --state NEW \
-j ping
這裡只有把 icmp 的 echo request 部份拒絕掉,可以視情況再調整。
或者是直接設定主機不回應 echo request 。
/proc/sys/net/ipv4/icmp_echo_ignore_all
----------
|