ufw:簡易防火牆設置
Linux 上的 iptables 可能太難,我們不是專業的資安工程師,也不是什麼 Linux 老鳥。像我們這種菜鳥,還是用 ufw 就好了。這篇整理一些常用的 ufw 設定。
安裝 ufw
ufw 的全名是 Uncomplicated Firewall,意思是不複雜的防火牆。它的指令不但好記,寫好的規則也淺顯易懂,不會像 iptables 的裹腳布又臭又長。
大部分的 Ubuntu 系統應該都已經裝好 ufw。如果你是 Debian,或是什麼特別瘦身版的 Ubuntu 的話,可以透過以下指令安裝:
sudo apt-get install ufw
設定防火牆預設規則
如果你想要規則嚴一點,可以預設封鎖所有通訊埠,再選擇性打開幾個 port;你也可以預設開放所有 port,然後再封鎖幾個 port。預設允許/封鎖的指令如下:
sudo ufw default allow # 預設允許
sudo ufw default deny # 預設封鎖
允許/封鎖通訊埠(port)
如果你要允許 SSH port 的話,可以這樣下:
sudo ufw allow ssh
或是
sudo ufw allow 22
也可以允許或封鎖其他的 port:
sudo ufw allow 80 # 允許 80
sudo ufw allow 443 # 允許 443
sudo ufw deny 3389 # 封鎖 3389
sudo ufw deny 21 # 封鎖 21
甚至可以一次允許一個範圍的 port:
sudo ufw allow 6000:6007/tcp # 允許 TCP 6000~6007
sudo ufw allow 6000:6007/udp # 允許 UDP 6000~6007
來自特定 IP 的規則
上面的規則是針對所有 IP,如果你想要針對某些 IP 可以不受控管,你也可以這樣設定:
sudo ufw allow from 192.168.11.10 # 允許 192.168.11.10 的所有連線
sudo ufw allow from 192.168.11.0/24 # 允許 192.168.11.1~192.168.11.255 的所有連線
sudo ufw deny from 192.168.11.4 # 封鎖 192.168.11.4 的所有連線
如果你只是不想讓某個小明偷偷連到你的 SSH Port,你也可以針對他封鎖:
sudo ufw deny from 192.168.11.7 to any port 22
查看目前設了什麼規則
推薦使用這個指令來看目前設了什麼規則:
sudo ufw status numbered
這個指令會幫你把規則前面加上編號:
Numbered Output:
Status: active
To Action From
-- ------ ----
[ 1] 22 ALLOW IN Anywhere
[ 2] 80 ALLOW IN Anywhere
[ 3] 443 ALLOW IN Anywhere
如果你突然不喜歡某個規則了,可以直接刪除它:
sudo ufw delete 3
那個規則就不見囉!
開啟/關閉/重設防火牆
設定完所有規則後,記得把防火牆打開。
如果你是用 SSH 連線,別忘了要先 allow 自己的 SSH 連線。
sudo ufw enable # 啟用防火牆
sudo ufw disable # 停用防火牆
如果你把規則改爛了,想要重新來過的話,可以重設:
sudo ufw reset
以上就是常用的 ufw 指令,找台機器試試看吧!沒有機器卻躍躍欲試的話,快 開一臺 DigitalOcean 機器(介紹,贈免費額度)!