使用 iptables 設置 Linux 防火牆

如果您的 Linux 服務器或桌面需要一個好的防火牆,iptables 是一個不錯的選擇。它非常靈活且快速。在本指南中,我們將向您展示如何在 Linux 上設置 iptables 防火牆。

在 Linux 上安裝 iptables

要在Linux 系統上使用 iptables設置防火牆,您需要先安裝它。打開終端窗口並按照下面適用於您的 Linux 操作系統的安裝說明進行操作。iptables 可以安裝在 Linux 桌面和服務器上,如果您更喜歡 iptables 的通用 Linux 下載,您可以訪問官方網站。安裝完成後,您可以繼續使用 iptables 設置防火牆。

Ubuntu指令

sudo apt install iptables

Debian 說明

sudo apt-get install iptables

Arch Linux 說明

sudo pacman -S iptables

軟呢帽說明

sudo dnf 安裝 iptables

OpenSUSE 指令

iptables 中的 sudo sudo zypper

EPEL 發行版(Rhel、CentOS、Rocky、Alma 等)

須藤 yum 安裝 iptables

如何創建 iptables 規則集

在嘗試將其用作防火牆之前,您必須創建新的 iptables 規則集。打開終端窗口,並確保您可以輸入sudo命令。如果您的用戶無法登錄,請使用su登錄 root 帳戶。

從這裡,使用iptables -F命令。此命令將刪除並刷新系統上 iptables 的所有先前規則。

sudo iptables -F

運行上述命令後,您可以運行iptables -L命令來檢查並確認規則已被刪除。

sudo iptables -L

一旦您確認 iptables 規則已刷新,請使用下面的iptables -P命令默認阻止傳入流量。

警告:如果您通過 SSH 編輯 iptables,請斷開連接並在物理機上進行編輯。運行以下命令將自動斷開您與 SSH 的連接,直到您允許它通過防火牆。

sudo iptables -P 輸入丟棄

接下來,您必須允許通過 iptables 從系統發出的流量。您可以通過輸入以下iptables -P命令來允許傳出流量通過 iptables 防火牆。

sudo iptables -P 輸出接受

禁用傳入流量並啟用傳出流量後,您可以繼續允許特定服務。

如何允許端口通過 iptables 防火牆

默認情況下,運行 iptables -P INPUT DROP 會禁用來自所有來源(SSH、HTTP 等)的傳入流量。要啟用這些服務,您需要添加到 iptables 規則中。

為了簡單起見,這裡列出了您可能希望在 iptables 防火牆中啟用的常見端口。複製與您希望通過 iptables 防火牆啟用的端口關聯的命令。

  • HTTP(端口 80):sudo iptables -A INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
  • HTTPS(端口 443):sudo iptables -A INPUT -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
  • SSH(端口 22):sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
  • FTP(端口 21):sudo iptables -A INPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
  • SMTP(端口 25):sudo iptables -A INPUT -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
  • DNS(端口 53):sudo iptables -A INPUT -p udp --dport 53 -j ACCEPT用於 UDP 或sudo iptables -A INPUT -p tcp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPTTCP
  • DNS over TLS (DoT)(端口 853):sudo iptables -A INPUT -p tcp --dport 853 -m state --state NEW,ESTABLISHED -j ACCEPT
  • DNS over HTTPS (DoH)(端口 443):sudo iptables -A INPUT -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
  • 遠程桌面協議 (RDP)(端口 3389):sudo iptables -A INPUT -p tcp --dport 3389 -m state --state NEW,ESTABLISHED -j ACCEPT
  • 虛擬網絡計算 (VNC)(端口 5900):sudo iptables -A INPUT -p tcp --dport 5900 -m state --state NEW,ESTABLISHED -j ACCEPT
  • 具有 X11 轉發的安全 Shell (SSH)(端口 6010):sudo iptables -A INPUT -p tcp --dport 6010 -m state --state NEW,ESTABLISHED -j ACCEPT
  • MySQL數據庫(端口3306):sudo iptables -A INPUT -p tcp --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
  • PostgreSQL 數據庫(端口 5432):sudo iptables -A INPUT -p tcp --dport 5432 -m state --state NEW,ESTABLISHED -j ACCEPT

當您允許所有您希望允許的端口時,您可以使用iptables -L檢查您的規則。

sudo iptables -L

最後,將 iptables 規則保存到文件中以供備份。您可以使用iptables-save命令來執行此操作。

sudo iptables-save > /path/tosave/where/you/wish/to/save/rules/iptable-rules-backup

如何恢復 iptables 備份

如果您需要在另一台計算機上重新部署 iptables 防火牆,請執行以下操作。首先,使用iptables -F命令刷新現有規則。

sudo iptables -F

接下來,將備份文件複製到系統。複製完畢後,恢復備份。

sudo iptables-restore <>

留下評論

Fix Screen Tearing on Intel Graphics in Pardus Linux: A Result-Focused Guide

Fix Screen Tearing on Intel Graphics in Pardus Linux: A Result-Focused Guide

Fix Intel graphics screen tearing in Pardus Linux by checking X11 vs. Wayland, compositor settings, refresh rate, active Xorg driver, and TearFree only when appropriate.

如何使用 firewall-cmd 設定 SLES 15 防火牆

如何使用 firewall-cmd 設定 SLES 15 防火牆

在 SLES 15 上設定 firewalld:檢查區域、允許服務或連接埠、儲存永久規則、安全重新載入並驗證存取。

SLES 線上修補程式配置指南:無需重新啟動即可套用核心更新

SLES 線上修補程式配置指南:無需重新啟動即可套用核心更新

在 SLES 15 SP7 上啟用核心即時修補,無需重新啟動即可應用支援的修復程序,驗證活動補丁,並了解何時仍需要重新啟動核心。

如何在 SUSE Linux Enterprise Server 15 上啟用 FIPS 模式

如何在 SUSE Linux Enterprise Server 15 上啟用 FIPS 模式

使用 SUSE 支援的設定公用程式在 SLES 15 上啟用 FIPS 模式,安全重啟,驗證核心和加密策略狀態,並檢查認證限制。

如何在不違反安全策略的情況下在 Gooroom OS 上安裝 Google Chrome

如何在不違反安全策略的情況下在 Gooroom OS 上安裝 Google Chrome

使用官方 .deb 軟體包、APT、策略檢查、更新指南和受管設備修復程序,安全地在 Gooroom OS 上安裝 Google Chrome。

如何安全地將SLES系統日誌匯出到遠端Syslog伺服器

如何安全地將SLES系統日誌匯出到遠端Syslog伺服器

使用 rsyslog、TLS 憑證、對等名稱驗證、佇列、驗證和測試,安全地將 SLES 系統日誌轉送到遠端 syslog 伺服器。

SLES 15 Active Directory 與 SSSD 整合:逐步指南

SLES 15 Active Directory 與 SSSD 整合:逐步指南

使用 YaST 將 SLES 15 加入到具有 SSSD 的 Active Directory。準備 DNS 和時間,配置網域登錄,驗證 Kerberos,並比較 SSSD、Winbind 和 realmd。

修正 Pardus Linux 系統上的 Realtek RTL8821CE Wi-Fi 驅動程式問題

修正 Pardus Linux 系統上的 Realtek RTL8821CE Wi-Fi 驅動程式問題

透過檢查內建的 rtw88 驅動程式、Realtek 韌體、rfkill、NetworkManager 和安全性回退選項來修復 Pardus Linux 上的 RTL8821CE Wi-Fi。

修正 Debian 12 中 systemd-resolved 導致的「DNS 解析暫時失敗」問題

修正 Debian 12 中 systemd-resolved 導致的「DNS 解析暫時失敗」問題

使用 systemd-resolved 診斷和修復 Debian 12 DNS 解析失敗,包括 resolv.conf、NetworkManager、networkd、快取和驗證。

如何安全地在 Windows 11 系統上安裝 Pardus Linux 雙系統

如何安全地在 Windows 11 系統上安裝 Pardus Linux 雙系統

在 Windows 11 旁邊安裝 Pardus 25.2,方法是備份、縮小 Windows 磁碟區、啟動 UEFI USB 並保護現有的 EFI 和復原分割區。