一些網絡中流傳的 iptables 腳本的誤區
發表于:2007-05-26來源:作者:點擊數:
標簽:
經??吹揭恍?網絡 中流傳的iptables腳本在開頭的位置大多是如下內容 #!/bin/sh # modprobeipt_MASQUERADE modprobeip_conntrack_ftp modprobeip_nat_ftp iptables-F iptables-tnat-F iptables-X iptables-tnat-X iptables-PINPUTDROP 摘自http://bbs.chinau
經??吹揭恍?STRONG>
網絡中流傳的 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
摘自 http://linux.vbird.org/linux_server/0250simple_firewall.php#simple_firewall_script
網上流傳的東西未必就都是正確的,針對上面一些誤區,我來做一下詳細說明
(上面第二個出自鳥哥的腳本,我們只討論技術,沒有得罪的意思 ^_^)
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]
[color=red]因此,腳本里不用寫 modprobe ip_tables[/color]
2、modprobe ip_conntrack
ip_conntrack 是狀態檢測機制,state 模塊要用到
當 iptables -A INPUT -m state --state RELATED,ESTABLISHED -j A
CCEPT 時,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]
[color=red]因此,當需要用到 ip_nat_ftp 時,腳本里不用寫 modprbe ip_conntrack 和 modprobe ip_conntrack_ftp[/color]
4、iptables -P OUTPUT DROP
除非你明白 filter 中 OUTPUT 鏈的作用,除非你想限制
Linux 本機上網
[color=red]否則,不要 iptables -P OUTPUT DROP![/color]
5、先設置規則,還是先設置默認策略
不少腳本都是這樣寫的
iptables -F xxx
iptables -X
iptables -P INPUT DROP
modprobe ip_nat_ftp
之后才是具體規則
iptables -P INPUT DROP 是什么意思?
設置默認規則為 DROP,也就是說如果數據包沒有被鏈中規則匹配,則默認按默認規則處理
試想,假如你在遠程調試一個腳本,當前 filter 表的 INPUT 鏈默認規則是 DROP,iptables -F 后意味著什么?
因此,我建議大家
[color=red]
先設置默認規則為 ACCEPT
然后添加具體鏈的規則
最后設置默認規則為 DROP
若用基于 RedHat(CentOS) 的發行版,可以用 service iptables stop 來卸載內核中與 iptables 和 netfilter 有關的東西
[/color]
原文轉自:http://www.kjueaiud.com
老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
|