作者: 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




----------