茫茫網海中的冷日 - 對這文章發表回應
茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1730064 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
PIMG_00046.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

對這文章發表回應

發表限制: 非會員 可以發表

發表者: 冷日 發表時間: 2005/5/18 19:42:33
iptables經典設置

舉些例子,自己學習
iptables 使用時的樣板
在設定 iptables 的封包過濾規則時,有幾個樣板的動作,若先熟悉它們,往後就可自行套用,依此類推,很快地,您就可以進入這個天地之中。

觀察目前的設定
作法如下︰
iptables -L -n
iptablse -t nat -L -n


定義變數
FW_IP="163.26.197.8"


打開核心 forward 功能
作法如下︰

###-----------------------------------------------------###
# 打開 forward 功能
###-----------------------------------------------------###
echo "1" > /proc/sys/net/ipv4/ip_forward


清除所有的規則
一開始要先清除所有的規則,重新開始,以免舊有的規則影響新的設定。作法如下︰
###-----------------------------------------------------###
# 清除先前的?#93;定
###-----------------------------------------------------###
# 清除預?#93;表 filter 中,所有規則鏈中的規則
iptables -F
# 清除預?#93;表 filter 中,使用者自訂鏈中的規則
iptables -X

# 清除mangle表中,所有規則鏈中的規則
iptables -F -t mangle
# 清除mangle表中,使用者自訂鏈中的規則
iptables -t mangle -X

# 清除nat表中,所有規則鏈中的規則
iptables -F -t nat
# 清除nat表中,使用者自訂鏈中的規則
iptables -t nat -X


選定預設的政策
接著,要選定各個不同的規則鏈,預設的政策為何。作法如下︰

預設全部丟棄︰
###-----------------------------------------------------###
# ?#93;定 filter table 的預?#93;政策
###-----------------------------------------------------###
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP


或者預設全部接受︰
###-----------------------------------------------------###
# ?#93;定 filter table 的預?#93;政策
###-----------------------------------------------------###
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT


各個規則鏈的預設政策可獨立自主的設定,不必受其它鏈的影響。

以下練習,若目標為 DROP,則 policy 請設為 ACCEPT;若目標為 ACCEPT,則 policy 請設為 DROP,如此方可看出效果。

開放某一個介面
作法如下︰
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

注︰IPFW 或 Netfilter 的封?#93;流向,local process 不會經過 FORWARD Chain,
?#93;此 lo 只在 INPUT 及 OUTPUT 二個 chain 作用。

iptables -A INPUT -i eth1 -j ACCEPT
iptables -A OUTPUT -o eth1 -j ACCEPT
iptables -A FORWARD -i eth1 -j ACCEPT
iptables -A FORWARD -o eth1 -j ACCEPT


IP 偽裝
使內部網路的封包經過偽裝之後,使用對外的 eth0 網卡當作代表號,對外連線。作法如下︰
###-----------------------------------------------------###
# 啟動內部對外轉?#125;
###-----------------------------------------------------###

iptables -t nat -A POSTROUTING -o eth0 -s 172.16.0.0/16 -j SNAT --to-source $FW_IP


上述指令意指︰把 172.16.0.0/16 這個網段,偽裝成 $FW_IP 出去。

虛擬主機
利用轉址、轉 port 的方式,使外部網路的封包,可以到達內部網路中的伺服主機,俗稱虛擬主機。這種方式可保護伺服主機大部份的 port 不被外界存取,只開放公開服務的通道(如 Web Server port 80),因此安全性甚高。

作法如下︰
###-----------------------------------------------------###
# 啟動外部對內部轉?#125;
###-----------------------------------------------------###
# 凡對 $FW_IP:80 連線者, 則轉?#125;至 172.16.255.2:80
iptables -t nat -A PREROUTING -i eth0 -p tcp -d $FW_IP --dport 80 -j DNAT --to-destination 172.16.255.2:80


開放內部主機可以 telnet 至外部的主機
開放內部網路,可以 telnet 至外部主機。

作法如下︰(預設 policy 為 DROP)
###-----------------------------------------------------###
# open 外部主機 telnet port 23
###-----------------------------------------------------###

iptables -A OUTPUT -o eth0 -p tcp -s $FW_IP --sport 1024:65535 -d any/0 --dport 23 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp ! --syn -s any/0 --sport 23 -d $FW_IP --dport 1024:65535 -j ACCEPT


開放郵包轉遞通道
開放任意的郵件主機送信包給你的 Mail Server,而你的 Mail Server 也可以送信包過去。

作法如下︰(預設 policy 為 DROP)
###-----------------------------------------------------###
# open SMTP port 25
###-----------------------------------------------------###

# 以下是︰別人可以送信給你
iptables -A INPUT -i eth0 -p tcp -s any/0 --sport 1024:65535 -d $FW_IP --dport 25 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp ! --syn -s $FW_IP --sport 25 -d any/0 --dport 1024:65535 -j ACCEPT

# 以下是︰你可以送信給別人
iptables -A OUTPUT -o eth0 -p tcp -s $FW_IP --sport 1024:65535 -d any/0 --dport 25 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp ! --syn -s any/0 --sport 25 -d $FW_IP --dport 1024:65525 -j ACCEPT


開放對外離線下載信件的通道
開放內部網路可以對外部網路的 POP3 server 取信件。

作法如下︰(預設 policy 為 DROP)
###-----------------------------------------------------###
# open 對外部主機的 POP3 port 110
###-----------------------------------------------------###

iptables -A OUTPUT -o eth0 -p tcp -s $FW_IP --sport 1024:65535 -d any/0 --dport 110 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp ! --syn -s any/0 --sport 110 -d $FW_IP --dport 1024:65535 -j ACCEPT


開放觀看網頁的通道
開放內部網路可以觀看外部網路的網站。

作法如下︰(預設 policy 為 DROP)
###-----------------------------------------------------###
# open 對外部主機的 HTTP port 80
###-----------------------------------------------------###

iptables -A OUTPUT -o eth0 -p tcp -s $FW_IP --sport 1024:65535 -d any/0 --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp ! --syn -s any/0 --sport 80 -d $FW_IP --dport 1024:65535 -j ACCEPT


開放查詢外部網路的 DNS 主機
開放內部網路,可以查詢外部網路任何一台 DNS 主機。

作法如下︰(預設 policy 為 DROP)
###-----------------------------------------------------###
# open DNS port 53
###-----------------------------------------------------###

# 第一次會用 udp 封?#93;來查詢
iptables -A OUTPUT -o eth0 -p udp -s $FW_IP --sport 1024:65535 -d any/0 --dport 53 -j ACCEPT
iptables -A INPUT -i eth0 -p udp -s any/0 --sport 53 -d $FW_IP --dport 1024:65535 -j ACCEPT

# 若有錯誤,會改用 tcp 封?#93;來查詢
iptables -A OUTPUT -o eth0 -p tcp -s $FW_IP --sport 1024:65535 -d any/0 --dport 53 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp ! --syn -s any/0 --sport 53 -d $FW_IP --dport 1024:65535 -j ACCEPT

# ?#125;放這台主機上的 DNS 和外部的 DNS 主機互動查詢︰使用 udp
iptables -A OUTPUT -o eth0 -p udp -s $FW_IP --sport 53 -d any/0 --dport 53 -j ACCEPT
iptables -A INPUT -i eth0 -p udp -s any/0 --sport 53 -d $FW_IP --dport 53 -j ACCEPT
# ?#125;放這台主機上的 DNS 和外部的 DNS 主機互動查詢︰使用 tcp
iptables -A OUTPUT -o eth0 -p tcp -s $FW_IP --sport 53 -d any/0 --dport 53 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp ! -y -s any/0 --sport 53 -d $FW_IP --dport 53 -j ACCEPT


開放內部主機可以 ssh 至外部的主機
開放內部網路,可以 ssh 至外部主機。

作法如下︰(預設 policy 為 DROP)
###-----------------------------------------------------###
# open 外部主機 ssh port 22
###-----------------------------------------------------###

iptables -A OUTPUT -o eth0 -p tcp -s $FW_IP --sport 1024:65535 -d any/0 --dport 22 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp ! --syn -s any/0 --sport 22 -d $FW_IP --dport 1024:65535 -j ACCEPT

# 以下是 ssh protocol 比較不同的地方
iptables -A OUTPUT -o eth0 -p tcp -s $FW_IP --sport 1020:1023 -d any/0 --dport 22 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp ! --syn -s any/0 --sport 22 -d $FW_IP --dport 1020:1023 -j ACCEPT


開放內部主機可以 ftp 至外部的主機
開放內部網路,可以 ftp 至外部主機。

作法如下︰(預設 policy 為 DROP)
###-----------------------------------------------------###
# open 對外部主機 ftp port 21
###-----------------------------------------------------###

# 以下是打?#125;命令 channel 21
iptables -A OUTPUT -o eth0 -p tcp -s $FW_IP --sport 1024:65535 -d any/0 --dport 21 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp ! --syn -s any/0 --sport 21 -d $FW_IP --dport 1024:65535 -j ACCEPT

# 以下是打?#125;資料 channel 20
iptables -A INPUT -i eth0 -p tcp -s any/0 --sport 20 -d $FW_IP --dport 1024:65535 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp ! --syn -s $FW_IP --sport 1024:65535 -d any/0 --dport 20 -j ACCEPT

# 以下是打?#125; passive mode FTP 資料通道
iptables -A OUTPUT -o eth0 -p tcp -s $FW_IP --sport 1024:65535 -d any/0 --dport 1024:65535 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp ! --syn -s any/0 --sport 1024:65535 -d $FW_IP --dport 1024:65535 -j ACCEPT

開放 ping
可以對外 ping 任何一台主機。

作法如下︰(預設 policy 為 DROP)
iptables -A OUTPUT -o eth0 -p icmp -s $FW_IP --icmp-type 8 -d any/0 -j ACCEPT
iptables -A INPUT -i eth0 -p icm -s any/0 --icmp-type 0 -d $FW_IP -j ACCEPT 
內容圖示
url email imgsrc image code quote
樣本
bold italic underline linethrough   


吃太飽Good JobHiJolinOMGOrz哭XD三八萌水汪汪大眼水草舞失魂打小人
打瞌睡石化交出來印堂黑黑吐吐血(不明液體版)吐血(鮮血版)好心情好夢入睡守門員之魂冷汗直流冷吱吱
完美計畫我不依沒什麼嘛狂暴狂驚幸福御守昏死泡澡空南無南無怒火中燒挖鼻孔
指苦惱煙狂倒地哭哭不害羞扭扭射門烏鴉飛過笑裡藏刀茶高處不勝寒鬼點子崩潰
推眼鏡淒涼淚奔爽被咬了喔呵呵無力感無言無辜畫圈掰掰催眠微笑
感冒想入非非愛之轟炸搞自閉萬年奸臣裝死跪拜禮嘆息槌飛你漫不經心疑惑遠目
鼻青臉腫嘲笑噴暴走撞人樂奔熱蔥不聽蔥妹恭喜樣蔥寶恭喜衝刺運球頭昏目眩濕
臉紅紅舉紅牌舉黃牌翻桌瓊瑤跪哭讚美主勾拳一記偽可愛賊親一個洗澡畢業了
藍藍路壞大叔啦啦隊鞭K書捲心被一臉肅殺怕怕阿飄無盡漩渦窮帥
orz-v2驚-v2不行了驕傲內傷眼睛一亮跌坐-V2熱-V2囧
 [詳情...]
validation picture

注意事項:
預覽不需輸入認證碼,僅真正發送文章時才會檢查驗證碼。
認證碼有效期10分鐘,若輸入資料超過10分鐘,請您備份內容後,重新整理本頁並貼回您的內容,再輸入驗證碼送出。

選項

Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|