在 Ubuntu 中用 UFW 配置防火牆
UFW,即簡單防火牆,是一個 Arch Linux、Debian 或 Ubuntu 中管理防火牆規則的前端。 UFW 透過命令列使用(儘管它有可用的 GUI),它的目的是使防火牆配置簡單(即不復雜)。
開始之前
1、 熟悉我們的入門指南,並完成設定伺服器主機名和時區的步驟。
2、 本指南將盡可能使用 sudo
。 在完成保護你的伺服器指南的章節,建立一個標準使用者帳戶,強化 SSH 訪問和移除不必要的網路服務。 但不要跟著建立防火牆部分 - 本指南是介紹使用 UFW 的,它對於 iptables 而言是另外一種控制防火牆的方法。
3、 更新系統
Arch Linux
sudo pacman -Syu
Debian / Ubuntu
sudo apt-get update && sudo apt-get upgrade
安裝 UFW
UFW 預設包含在 Ubuntu 中,但在 Arch 和 Debian 中需要安裝。 Debian 將自動啟用 UFW 的 systemd 單元,並使其在重新啟動時啟動,但 Arch 不會。 這與告訴 UFW 啟用防火牆規則不同,因為使用 systemd 或者 upstart 啟用 UFW 僅僅是告知 init 系統開啟 UFW 守護程式。
預設情況下,UFW 的規則集為空,因此即使守護程式正在執行,也不會強制執行任何防火牆規則。 強制執行防火牆規則集的部分在下面。
Arch Linux
1、 安裝 UFW:
sudo pacman -S ufw
2、 啟動並啟用 UFW 的 systemd 單元:
sudo systemctl start ufw
sudo systemctl enable ufw
Debian / Ubuntu
1、 安裝 UFW
sudo apt-get install ufw
使用 UFW 管理防火牆規則
設定預設規則
大多數系統只需要開啟少量的埠接受傳入連線,並且關閉所有剩餘的埠。 從一個簡單的規則基礎開始,ufw default
命令可以用於設定對傳入和傳出連線的預設響應動作。 要拒絕所有傳入並允許所有傳出連線,那麼執行:
sudo ufw default allow outgoing
sudo ufw default deny incoming
ufw default
也允許使用 reject
引數。
警告:
除非明確設定允許規則,否則配置預設
deny
或reject
規則會鎖定你的伺服器。確保在應用預設deny
或reject
規則之前,已按照下面的部分配置了 SSH 和其他關鍵服務的允許規則。
新增規則
可以有兩種方式新增規則:用埠號或者服務名表示。
要允許 SSH 的 22 埠的傳入和傳出連線,你可以執行:
sudo ufw allow ssh
你也可以執行:
sudo ufw allow 22
相似的,要在特定埠(比如 111)上 deny
流量,你需要執行:
sudo ufw deny 111
為了更好地調整你的規則,你也可以允許基於 TCP 或者 UDP 的包。下面例子會允許 80 埠的 TCP 包:
sudo ufw allow 80/tcp
sudo ufw allow http/tcp
這個會允許 1725 埠上的 UDP 包:
sudo ufw allow 1725/udp
高階規則
除了基於埠的允許或阻止,UFW 還允許您按照 IP 地址、子網和 IP 地址/子網/埠的組合來允許/阻止。
允許從一個 IP 地址連線:
sudo ufw allow from 123.45.67.89
允許特定子網的連線:
sudo ufw allow from 123.45.67.89/24
允許特定 IP/ 埠的組合:
sudo ufw allow from 123.45.67.89 to any port 22 proto tcp
proto tcp
可以刪除或者根據你的需求改成 proto udp
,所有例子的 allow
都可以根據需要變成 deny
。
刪除規則
要刪除一條規則,在規則的前面加上 delete
。如果你希望不再允許 HTTP 流量,你可以執行:
sudo ufw delete allow 80
刪除規則同樣可以使用服務名。
編輯 UFW 的配置檔案
雖然可以透過命令列新增簡單的規則,但仍有可能需要新增或刪除更高階或特定的規則。 在執行透過終端輸入的規則之前,UFW 將執行一個檔案 before.rules
,它允許迴環介面、ping 和 DHCP 等服務。要新增或改變這些規則,編輯 /etc/ufw/before.rules
這個檔案。 同一目錄中的 before6.rules
檔案用於 IPv6 。
還存在一個 after.rule
和 after6.rule
檔案,用於新增在 UFW 執行你透過命令列輸入的規則之後需要新增的任何規則。
還有一個配置檔案位於 /etc/default/ufw
。 從此處可以禁用或啟用 IPv6,可以設定預設規則,並可以設定 UFW 以管理內建防火牆鏈。
UFW 狀態
你可以在任何時候使用命令:sudo ufw status
檢視 UFW 的狀態。這會顯示所有規則列表,以及 UFW 是否處於啟用狀態:
Status: active
To Action From
-- ------ ----
22 ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
22 (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
啟用防火牆
隨著你選擇規則完成,你初始執行 ufw status
可能會輸出 Status: inactive
。 啟用 UFW 並強制執行防火牆規則:
sudo ufw enable
相似地,禁用 UFW 規則:
sudo ufw disable
UFW 會繼續執行,並且在下次啟動時會再次啟動。
日誌記錄
你可以用下面的命令啟動日誌記錄:
sudo ufw logging on
可以透過執行 sudo ufw logging low|medium|high
設計日誌級別,可以選擇 low
、 medium
或者 high
。預設級別是 low
。
常規日誌類似於下面這樣,位於 /var/logs/ufw
:
Sep 16 15:08:14 <hostname> kernel: [UFW BLOCK] IN=eth0 OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:00:00 SRC=123.45.67.89 DST=987.65.43.21 LEN=40 TOS=0x00 PREC=0x00 TTL=249 ID=8475 PROTO=TCP SPT=48247 DPT=22 WINDOW=1024 RES=0x00 SYN URGP=0
前面的值列出了你的伺服器的日期、時間、主機名。剩下的重要資訊包括:
- [UFW BLOCK]:這是記錄事件的描述開始的位置。在此例中,它表示阻止了連線。
- IN:如果它包含一個值,那麼代表該事件是傳入事件
- OUT:如果它包含一個值,那麼代表事件是傳出事件
- MAC:目的地和源 MAC 地址的組合
- SRC:包源的 IP
- DST:包目的地的 IP
- LEN:資料包長度
- TTL:資料包 TTL,或稱為 time to live。 在找到目的地之前,它將在路由器之間跳躍,直到它過期。
- PROTO:資料包的協議
- SPT:包的源埠
- DPT:包的目標埠
- WINDOW:傳送方可以接收的資料包的大小
- SYN URGP:指示是否需要三次握手。
0
表示不需要。
via: https://www.linode.com/docs/security/firewalls/configure-firewall-with-ufw
相關文章
- Ubuntu 下使用 UFW 設定防火牆Ubuntu防火牆
- 在Ubuntu上配置SSH訪問並關閉防火牆Ubuntu防火牆
- 防火牆在RAC上的配置防火牆
- ubuntu 關閉防火牆命令 ubuntu怎樣關閉防火牆Ubuntu防火牆
- 防火牆配置防火牆
- 在Linux中,如何配置防火牆?Linux防火牆
- ubuntu 開啟/關閉ubuntu防火牆Ubuntu防火牆
- 配置防火牆示例防火牆
- CiscoPIX防火牆配置指南防火牆
- linux 防火牆配置Linux防火牆
- Linux 配置防火牆Linux防火牆
- Linux配置防火牆Linux防火牆
- ubuntu的ufw基本操作命令Ubuntu
- ubuntu系統下的防火牆使用Ubuntu防火牆
- Linux 防火牆配置使用Linux防火牆
- iptables 配置LINUX防火牆Linux防火牆
- 在linux上用arptables配置arp防火牆Linux防火牆
- 在Linux中,如何配置防火牆和安全規則?Linux防火牆
- 教你如何開啟/關閉ubuntu防火牆Ubuntu防火牆
- Centos6防火牆基本配置CentOS防火牆
- 防火牆基礎Firewalld命令配置防火牆
- 天網防火牆的配置方法防火牆
- waf 應用防火牆部署配置防火牆
- 配置ModSecurity防火牆與OWASP規則防火牆
- CentOS 7 以上防火牆簡單配置CentOS防火牆
- linux防火牆使用以及配置Linux防火牆
- 阿里雲Centos配置iptables防火牆阿里CentOS防火牆
- centos6.8防火牆操作與配置CentOS防火牆
- 網路防火牆的配置與管理防火牆
- CentOS 7 Docker 防火牆簡單配置CentOSDocker防火牆
- solaris上如何檢視防火牆配置防火牆
- 配置suse10.2防火牆薦防火牆
- 用FWTK配置Linux防火牆(轉)Linux防火牆
- linux中的firewalld防火牆配置Linux防火牆
- WAb防火牆與傳統防火牆防火牆
- 防火牆防火牆
- pfSense——跑在 Vmware 上的防火牆防火牆
- ubuntu下開啟/關閉防火牆 及埠 - 命令Ubuntu防火牆