將遠端的攻擊者隔除在區域網路之外是網路安全性的一個相當重要的要素,要透過嚴厲的防火牆規則來保護區域 網路的完整性免受惡意遠端使用者的攻擊。然而如果使用預設的政策來阻隔所有的流入、流出以及轉送的封包,將使得防火牆閘道器與內部的區網使用者無法彼此或與外部通訊。如要允許使用者執行網路相關的功能,並且使用網路連線的應用程式,系統管理員必須開啟某些連接埠以供通訊使用。
例如,要允許防火牆上的連接埠 80,請增加下列的規則:
iptables -A INPUT -p tcp -m tcp --sport 80 -j ACCEPT iptables -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT |
這個規則將會允許來自透過連接埠號 80 的網站進行一般的網頁瀏覽,如要允許存取安全的網站(如 https://www.example.com/), 您必須也開啟埠號 443。
iptables -A INPUT -p tcp -m tcp --sport 443 -j ACCEPT iptables -A OUTPUT -p tcp -m tcp --dport 443 -j ACCEPT |
![]() | 重要 | |
|---|---|---|
當您要建立一個 iptables 規則組時,請特別注意順序是很重要的。舉例來說,假如一個鏈結指定任何來自 本地端 192.168.100.0/24 子網路的封包都丟棄(DROP),然後此鏈結再加上(-A) 允許來自 192.168.100.13 的封包(此網路是位於封包將被丟棄的限制子網路中),那麼所加上的規則將會被 忽視。您必須設定一個規則先允許 192.168.100.13,然後再於該子網路設定一個丟棄(DROP)的規則。 如要在一個既有的鏈結規則中強制插入規則,請使用 -I 選項,後面再加上您想要插入之規則的鏈結,以及您想要此規則放置位置的規則號碼(1,2,3,...,n),例如:
此規則將被放入 INPUT 鏈結的第一個規則,以允許本機的 loopback 裝置流量。 |
有時候您需要從區域網路外遠端存取區網,您可以使用例如 SSH 與 CIPE 等安全的服務來進行加密的遠端連線到區網的服務。對於使用 PPP 為主資源(例如數據機庫或大量的 ISP 帳號)的系統管理員,可以使用撥接存取來安全地繞行防火牆障礙,因為數據機連線的直接連線基本上都是在防火牆/閘道器以內的。然而,對於擁有寬頻連線的遠端使用者,您可以設定 iptables 接受來自遠端 SSH 與 CIPE 用戶端的連線。舉例來說,如要允許遠端的 SSH 存取,可以使用下列的規則:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A OUTPUT -p udp --sport 22 -j ACCEPT |
尚有其他您或許需要用來定義規則的服務,請參考 Red Hat Enterprise Linux 參考手冊 一書以取得關於 iptables 較廣泛的資訊以及它的許多種選項。
這些規則允許來往於某台機器的任何存取,例如連到網際網路或防火牆 / 閘道器的一台獨立 PC。然而,這些規則並不允許防火牆 / 閘道器之後的節點存取這些服務。要讓區域網路存取這些服務,您可以使用含有 iptables 過濾規則的 NAT。