回文章列表
作者JoeJohnson.bbs@ptt.cc (不平凡的Joe) 看板: linux
標題Re: [問題] 大家應該會覺得很蠢的iptable問題
時間批踢踢實業 (2008/07/20 Sun 23:11:18)
※ 引述《nike0519 (沒暱稱)》之銘言:
: ※ 引述《lookatit (天空)》之銘言:
: : 以下是在網路上看到的語法
: : 有個地方很奇怪也!
: : 既然一開始INPUT 都DROP 所以封包都進不去才對
: : 那這行就沒有意義啦
: : iptables -A INPUT -p tcp --dport 80 -j ACCEPT
: : 不是進來的封包來的都被DROP了嗎??
: : 麻煩各位大大解惑一下 好怪唷! 可是很多網路上得範例都是這樣寫的
: : ------------------------------------------------------------------
: : ##指定預設 policy
: : #封包可以 OUTPUT
: : iptables -P OUTPUT ACCEPT
: : #封包不可以 INPUT
: : iptables -P INPUT DROP
: : #封包不可以 FORWARD
: : iptables -P FORWARD DROP
:    我想你所說的應該是這個吧 ─→ iptables -P INPUT DROP
:    -P 是設定 default policy 的規則用的
:    指定預設 policy 雖然在 iptable 中會被列在最上面的位置
:    但其實它是當底下所有的規則都不符合時,才會去執行到的規則
:    所以 iptables -P INPUT DROP 的意思是說 ──
:         當其他所有的比對條件都不符合時,才把這個封包給 drop 掉
:    並不是從一開始就把全部的封包都 drop 掉

補述

在運用iptables 的條件上有項規則,「先開放特定,再拒絕所有」
思考上也是用此順序,所以越先增加(-A)的規則,擁有越高的優先權。
而當執行iptables -P INPUT DROP
等同於在「最後一行」補上 iptables -A INPUT -j DROP
也因此它的優先權是最後。

所以,以下兩者效果是相同的:  (若有錯請指教 :P )

    iptables -P INPUT DROP
    iptables -A INPUT -p tcp --dport 80 -j ACCEPT

    與

    iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    iptables -A INPUT -j DROP

都是只有80埠能進入,其他都擋下來。

--
※ 發信站: 批踢踢實業坊(ptt.cc) 
◆ From: 118.165.96.62
文章選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻