歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> 一些網絡中流傳的 iptables 腳本的誤區

一些網絡中流傳的 iptables 腳本的誤區

日期:2017/2/27 9:35:47   编辑:更多Linux
  經常看到一些網絡中流傳的 iptables 腳本在開頭的位置大多是如下內容

#!/bin/sh # modprobe ipt_MASQUERADE modprobe ip_conntrack_FTP modprobe ip_nat_ftp iptables -F iptables -t nat -F iptables -X iptables -t nat -X iptables -P INPUT DROP 摘自 http://bbs.chinaunix.net/viewthread.PHP?tid=712506 有的是這樣的 # 2.0 載入模組 PATH=/sbin:/bin:/usr/sbin:/usr/bin eXPort PATH EXTIF INIF INNET modprobe ip_tables > /dev/null 2>&1 modprobe iptable_nat > /dev/null 2>&1 modprobe ip_nat_ftp > /dev/null 2>&1 modprobe ip_nat_irc > /dev/null 2>&1 modprobe ip_conntrack > /dev/null 2>&1 modprobe ip_conntrack_ftp > /dev/null 2>&1 modprobe ip_conntrack_irc > /dev/null 2>&1 網上流傳的東西未必就都是正確的,針對上面一些誤區,我來做一下詳細說明 (上面第二個出自鳥哥的腳本,我們只討論技術,沒有得罪的意思 ^_^) 1、modprobe ip_tables 當 iptables 對 filter、nat、mangle 任意一個表進行操作的時候,會自動加載 ip_tables 模塊 另外,iptable_filter、iptable_nat、iptable_mangle 模塊也會自動加載,情形例如 # lsmod Module Size Used by Not tainted iptable_mangle 2136 0 (autoclean) (unused) iptable_filter 1708 0 (autoclean) (unused) ip_tables 12832 2 [iptable_mangle iptable_filter] 8139too 13704 1 mii 2544 0 [8139too] reiserfs 183376 2 (autoclean) raid1 13068 1 (autoclean)


md 44480 2 [raid1] 因此,腳本裡不用寫 modprobe ip_tables[/color] 2、modprobe ip_conntrack ip_conntrack 是狀態檢測機制,state 模塊要用到 當 iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 時,ip_conntrack 自動加載,例如

# lsmod Module Size Used by Not tainted ipt_state 536 1 (autoclean) ip_conntrack 25096 0 (autoclean) [ipt_state] iptable_filter 1708 1 (autoclean) ip_tables 12832 2 [ipt_state iptable_filter] 8139too 13704 1 mii 2544 0 [8139too] reiserfs 183376 2 (autoclean) raid1 13068 1 (autoclean) md 44480 2 [raid1] 另外,modprobe ip_conntrack_ftp 時也會自動加載 ip_conntrack [color=red]因此,腳本裡不用寫 modprobe ip_conntrack[/color] 3、modprobe ip_conntrack_ftp ip_conntrack_ftp 是本機做 FTP 時用的 ip_nat_ftp 是通過本機的 FTP 需要用到的(若你的系統不需要路由轉發,沒必要用這個) 當 modprobe ip_nat_ftp 時,系統自動會加載 ip_conntrack_ftp 模塊,例如

# lsmod Module Size Used by Not tainted ip_nat_ftp 2736 0 (unused)

iptable_nat 18040 4 [ip_nat_ftp] ip_tables 12544 12 [iptable_filter iptable_nat] ip_conntrack_ftp 3856 1 ip_conntrack 20268 3 [ip_nat_ftp iptable_nat ip_conntrack_ftp] 8139too 13704 1 mii 2544 0 [8139too] reiserfs 183376 2 (autoclean) raid1 13068 1 (autoclean) md 44480 2 [raid1] 因此,當需要用到 ip_nat_ftp 時,腳本裡不用寫 modprbe ip_conntrack 和 modprobe ip_conntrack_ftp4、iptables -P OUTPUT DROP 除非你明白 filter 中 OUTPUT 鏈的作用,除非你想限制 Linux 本機上網 否則,不要 iptables -P OUTPUT DROP!5、先設置規則,還是先設置默認策略 不少腳本都是這樣寫的 iptables -F xxxiptables -Xiptables -P INPUT DROPmodprobe ip_nat_ftp之後才是具體規則 iptables -P INPUT DROP 是什麼意思? 設置默認規則為 DROP,也就是說如果數據包沒有被鏈中規則匹配,則默認按默認規則處理 試想,假如你在遠程調試一個腳本,當前 filter 表的 INPUT 鏈默認規則是 DROP,iptables -F 後意味著什麼? 因此,我建議大家 [color=red] 先設置默認規則為 ACCEPT 然後添加具體鏈的規則 最後設置默認規則為 DROP 若用基於 RedHat(CentOS) 的發行版,可以用 service iptables stop 來卸載內核中與 iptables 和 netfilter 有關的東西







Copyright © Linux教程網 All Rights Reserved