最後更新日期:2024 年 08 月 27 日
UFW 指的是Uncomplicated Firewall (UFW),這是一個以 iptables 為基礎,簡化其複雜的指令的防火牆,Ubuntu 標準安裝的一部份。
Table of Contents
前置需求
安裝
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>
Comments