我們都知道,Linux 系統當中有一款十分牛逼的防火牆叫做 iptables的,它能做的遠遠超過了防火牆的範疇...... 不過,一般來講,我們還是習慣于只把它當做防火牆來用。
不過,如果你只是想對某個埠進行策略,那似乎也並不需要去面對 iptables的 那冗長的配置命令。現在,我就來給你介紹另外一款更加簡單的防火牆:
Uncomplicated Firewall
一看名字就十分的明確「不復雜防火牆」沒錯,它就是 ufw,在 Ubuntu的 作業系統當中已經內置,使用它可以簡單快速的操作防火牆的功能,比如開關埠,訪問 IP,限制連接等等等等。它與一系列 Linux 下防火牆都差不多,也是使用了 iptables 作為後臺,所以,你同樣可以在 iptables的 上做更多的自訂,兩者可以一起使用...... 當然了,我不推薦你這麼做。iptables 的規則要優先于 ufw。
之所以推薦 ufw,是因為這貨在 Ubuntu 裡邊內置,所以剛剛建好 vps 你就可以先用它來快速部署啦!
基礎開關命令
1 2 3 4 5 6 7 8 9 |
ufw enable // 启用防火墙 ufw disable // 禁用防火墙 ufw reload //重新加载防火墙 ufw status // 显示防火墙状态 ufw status verbose // 查看防火墙详细状态 |
1 |
ufw default deny //设置默认 input 流量为拒绝 |
注意,如果你是通過 ssh 連接到伺服器,那麼你應該先添加規則,然後再開啟防火牆,否則後果自負。
這裡說一下,ufw 啟用防火牆則會自動設定開機啟動,禁用則會取消開機啟動。
基本控制命令
一般我們可以使用 allow 和 deny 選項來允許或者禁止連接,後接埠號或者協定名稱都行,用斜杠「/」分割,然後可以顯式追加 TCP 還是 UDP,不追加則預設兩者都算。另外,我們一般更傾向于配置 input 條目,如果你要控制output 條目,則可以在 allow 或者 deny 與埠號之間顯式的強調 in 或者 out,當然預設肯定是 in。
1 2 |
ufw allow|deny [in|out] PORT [/tcp|udp] // 允许或者阻止 进入或者流出 端口 协议 |
下面是幾顆栗子:
1 2 3 4 5 6 |
ufw allow 22 //允许任何人通过端口22连入本机(包括 UDP 和 TCP) ufw deny 53/tcp //阻止任何人通过53端口用TCP 连入本机 ufw allow smtp //用协议名字方式来添加条目 |
高級控制命令
1 2 3 4 5 6 7 8 |
ufw show raw //以 iptables 格式输出当前的规则 ufw status [verbose|numbered] //显示详细的状态,如果要删除条目,你可能需要用到 numbered ufw delete NUM //删除某个条目,号码参考上一条命令。 ufw delete allow 53/udp //也可以在之前的命令当中直接添加 delete 参数来删除条目 |
與 allow、deny 選項對應的,其實還有 limit 和 reject,前者用於限制30秒內連接次數,超過6次則自動 deny 掉 IP;後者和 deny 功能相同,但不會返回「你被拒絕」的消息。
如果你有多個網卡,那麼在強調 in 和 out 後追加 on 選項,可以針對某一個網卡做策略,舉個栗子:
1 |
ufw allow in on eth0 to any port 80 proto tcp |
添加更複雜的控制語句
通過編輯檔:
1 2 3 4 5 |
/etc/ufw/before.rules //在 ufw 的所有条目之前生效 /etc/ufw/after.rules //在 ufw 的所有条目之后生效 |
來添加更加複雜的、ufw 命令無法支援的 iptables 控制語句,比如說開啟轉發或者 nat 位址偽裝等等,它的命令格式和 iptables 命令格式完全相同——因為這兩個檔的載入方式就是 iptables-restore
當然,修改完這兩個檔之後,你需要對 ufw 重啟才能使它們生效。
延伸閱讀
好了,基本上常用的介紹就這麼多,如果你還想使用更高級的功能,請移步:
另:如果你使用桌上出版,這貨其實還有圖形端,叫做 Gufw。😜
本文由 落格博客 原創撰寫:落格博客 » Ubuntu 下更簡單的防火牆 Uncomplicated Firewall
轉載請保留出處和原文鏈接:https://www.logcg.com/archives/988.html
註釋