Linux

如何在 Fedora 13 linux 的最小安裝中配置防火牆?

  • September 6, 2010

如何在 Fedora 13 的最小安裝中配置防火牆?Fedora防火牆配置的正確方法是什麼?

是否有任何易於使用的命令行工具來操作 /etc/sysconfig/iptables等?

基本上我只想允許傳入的 http/https 流量到幾個埠。

這就是我的/etc/sysconfig/iptables樣子

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

我最終在第一行之前放置了下一REJECT行。這允許來自任何地方的傳入 http(埠 80)流量:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

iptables 幾乎是第 4 層,因此“http”流量對它沒有意義,只有埠才有意義。你有圖形使用者界面嗎?你想做什麼?

可能有第三方工具可以提供幫助,但它的基本用法非常簡單。為了簡單起見,我將假設在鏈上(INPUT)。當收到一個數據包時,iptables 會從上到下遍歷鏈,並將其與每個規則進行比較。如果有一條規則與該數據包完全匹配,它將遵循該規則中提供的指令(DROP、REJECT、ACCEPT)並停止對該數據包的處理(對於鏈來說更複雜一些,它們的作用類似於子程序)。請記住,這是第一個重要的匹配規則,因此如果您有一條規則丟棄所有 TCP 流量,然後有一條規則從您的家庭網路接受 SSH,那麼您的家庭網路將忽略 SSH。如果未找到匹配規則,則遵循策略(ACCEPT、REJECT 或 DROP)。ACCEPT 是預設設置,被認為是好的做法。

要將規則添加到鏈的末尾,請使用 -A CHAIN。添加到開頭,-I CHAIN。要插入特定位置,-I line_number CHAIN。下面的一些例子:

在 INPUT 底部添加一條規則,以允許來自 192.168.1.1 的埠 80 上的 TCP 連接:

iptables -A INPUT -p tcp --source 192.168.1.1 --dport 80 -j ACCEPT

在 INPUT 的頂部​​添加一條規則,以允許來自 12.34.15.0 /24 的埠 443 上的 TCP 連接:

iptables -I INPUT -p tcp --source 12.34.15.0/24 --dport 443 -j ACCEPT

拒絕與埠 80 的任何其他連接:

iptables -A INPUT -p tcp --dport 80 -j REJECT

丟棄(沒有響應)任何其他 TCP 流量(不要執行此流量,否則您將失去 SSH): iptables -A INPUT -p tcp -j DROP

在添加和刪除規則時,您會發現在文本文件中這樣做更容易。要保存到文本文件,請執行以下操作:

iptables-save > /path/to/file

編輯它,然後重新載入:

cat /path/to/file | iptables-restore

另請注意,預設情況下 iptables 在重新啟動後將沒有規則。在 RedHat 系統上,它將從 /etc/sysconfig/iptables 載入預設規則,您可以使用保存規則/etc/init.d/iptables save(反之,使用/etc/init.d/iptables restore

引用自:https://serverfault.com/questions/178522