最後更新日期:2024 年 08 月 27 日

UFW 指的是Uncomplicated Firewall (UFW),這是一個以 iptables 為基礎,簡化其複雜的指令的防火牆,Ubuntu 標準安裝的一部份。

前置需求

安裝

Ubuntu 系統已內建,無需安裝,如果不小心刪除,可用以下指令安裝。

<span class="line"><span style="color: #88C0D0">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">apt</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">install</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">ufw</span></span>

帳號權限

我們需要登入一個有 sudo 權限的帳號

控制指令

<span class="line"><span style="color: #616E88"># 檢查啟動狀態</span></span>
<span class="line"><span style="color: #88C0D0">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">ufw</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">status</span></span>
<span class="line"></span>
<span class="line"><span style="color: #616E88"># 啟動</span></span>
<span class="line"><span style="color: #88C0D0">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">ufw</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">enable</span></span>
<span class="line"></span>
<span class="line"><span style="color: #616E88"># 關閉防火牆</span></span>
<span class="line"><span style="color: #88C0D0">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">ufw</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">disable</span></span>




設定規則介紹

當你開啟防火牆時,預設的狀況是會阻擋所有的連線,所以我們需要新增允許通過的規則,來讓用戶可以使用我們的服務。

指定規則設定的目標主體有很多種方式,常見的有以下三種:

1、埠號加協定:如 22/tcp 就是指 ssh

2、通用的服務名稱:如 ssh

3、應用程式名稱:如 OpenSSH

對於新手而言,用應用程式名稱來設定最為直覺簡單。

以「應用程式名稱」來設定規則

列出可用的 應用程式名稱

<span class="line"><span style="color: #88C0D0">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">ufw</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">app</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">list</span></span>
系統剛裝好時,只有一個 OpenSSH,所以指令的執行結果如下:
<span class="line"><span style="color: #88C0D0">Available</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">applications:</span></span>
<span class="line"><span style="color: #D8DEE9FF">  </span><span style="color: #88C0D0">OpenSSH</span></span>

允許應用程式通過

如果我們要允許 OpenSSH 這個應用程式,指令如下

<span class="line"><span style="color: #616E88"># 允許 OpenSSH</span></span>
<span class="line"><span style="color: #88C0D0">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">ufw</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">allow</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">OpenSSH</span></span>

刪除允許的規則

刪除 OpenSSH 的允許規則

<span class="line"><span style="color: #88C0D0">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">ufw</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">delete</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">allow</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">OpenSSH</span></span>

以「通用服務名稱」來設定規則

<span class="line"><span style="color: #88C0D0">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">ufw</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">allow</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">ssh</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88C0D0">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">ufw</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">delete</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">allow</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">ssh</span></span>

以「埠號加協定」來設定規則

<span class="line"><span style="color: #88C0D0">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">ufw</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">allow</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">22</span><span style="color: #A3BE8C">/tcp</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88C0D0">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">ufw</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">delete</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">allow</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">22</span><span style="color: #A3BE8C">/tcp</span></span>

應用實例

開放 apache 網站服務

安裝完 apache2 後,執行以下指令,這會同時允許 http 及 https

<span class="line"><span style="color: #88C0D0">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">ufw</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">app</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">list</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88C0D0">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">ufw</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">allow</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">"</span><span style="color: #A3BE8C">Apache Full</span><span style="color: #ECEFF4">"</span></span>

開放 postfix 寄件服務

<span class="line"><span style="color: #88C0D0">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">ufw</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">allow</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">Postfix</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88C0D0">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">ufw</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">allow</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">"</span><span style="color: #A3BE8C">Postfix SMTPS</span><span style="color: #ECEFF4">"</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88C0D0">sufo</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">ufw</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">allow</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">"</span><span style="color: #A3BE8C">Postfix Submission</span><span style="color: #ECEFF4">"</span></span>

參考資料

Ubuntu Server 20.04.1 預設 UFW 防火牆 Firewall 設定規則詳解和教學

Last modified: 2024-08-27

Author

Comments

Write a Reply or Comment

Your email address will not be published.