sudo ufw status ; sudo ufw enable ; sudo ufw allow port
對應的指令功能都可以上 Ubuntu的 Doc去查詢, 關於 Firewall部分; 接下來使用 Putty從遠端連線 port22 , 不確定 enable之後會不會斷線, 所以先嘗試, 發現使用 Putty後, 並不會馬上斷線, 再立刻加上 sudo ufw allow 22, 避免斷線後無法從遠端連線; 這時候透過瀏覽器再去連線, 發現已經無法看到網頁, 之後再加入, 就可看到
sudo ufw enable
這裡有提醒可能會 disrupt原本的連線, 按下 y (enter) 並沒有斷線
![](https://mrjimmy.ddns.net/wp-content/uploads/2022/07/ufw-statusenable-1.jpg)
sudo ufw 22
後看 status, 之後用 Web Browser發現無法連線後再加入 port 80, 可以看到有 IPV4 & IPV6都同時被允許, 從任何地方到port 22&80 都是被允許的
![](https://mrjimmy.ddns.net/wp-content/uploads/2022/07/ufw-allow-22status-2.jpg)
![](https://mrjimmy.ddns.net/wp-content/uploads/2022/07/2022-07-22-22-49-23-2.jpg)
那麼 ufw的設定檔是什麼樣的概念, 我們先到 /etc/ufw 看看有哪些檔案; 所以我們設定後的 rule就會存放在 user.rules 或 user6.rules (之後看增加過程去對應的檔案發現的)
![](https://mrjimmy.ddns.net/wp-content/uploads/2022/07/ufw-d-files.jpg)
sudo vi ufw.conf 主要說明 enable 和 Loglevel 要在 low, 上網查詢發現有一篇寫得很詳細的文章在 linode.com
![](https://mrjimmy.ddns.net/wp-content/uploads/2022/07/ufw-conf.jpg)
我的 Ubuntu應該是安裝完後就已經有 ufw, 所以不需要另外進行安裝, 如果要安裝就可以採用 linode.com所述 sudo apt install ufw
, 接下來再試者把 80 port deny, 不是刪除 allow, 來看一下
sudo ufw deny 80 這邊可以明顯看出會顯示 80 port被 deny, 所以再用 brower看一下, 確實是無法連線
![](https://mrjimmy.ddns.net/wp-content/uploads/2022/07/ufw-deny-80顯示.jpg)
![](https://mrjimmy.ddns.net/wp-content/uploads/2022/07/deny-80-web-result.jpg)
sudo ufw delete deny 80 , 所以顯示的只剩下 22 , 而並不是 80會變成 allow
![](https://mrjimmy.ddns.net/wp-content/uploads/2022/07/delete-deny-80-status.jpg)
再來試一下, 如果把 80 打成 http 會變成怎樣 sudo ufw allow http 結果發現連 protocol都會明確顯示, 這表示如果單純打 port, 對於 protocol 可能就會是好幾種都可以通過, 所以這邊要注意
![](https://mrjimmy.ddns.net/wp-content/uploads/2022/07/ufw-allow-http-status.jpg)
目前在打 sudo ufw delete allow 80 會是怎樣? 實際上如果允許的是 http 就並不代表允許的是 port 80; 但是可以打 80/tcp = http
![](https://mrjimmy.ddns.net/wp-content/uploads/2022/07/allow-http-後delete-allow-80-status.jpg)
/etc/ufw 下還有一個設定檔, sysctl.conf 也順便打開理解一下; 裡面的描述對語法不熟的我又要開始解讀一番
![](https://mrjimmy.ddns.net/wp-content/uploads/2022/07/etc.ufw_.sysctl.conf-vi-1024x478.jpg)
先找一下 accept_redirects是放在哪, 希望沒有理解錯誤, sudo find -name accept_redirects 一開始沒切換到 / 底下
![](https://mrjimmy.ddns.net/wp-content/uploads/2022/07/2022-07-23-15-09-35_find-redirects路徑-1024x322.jpg)
![](https://mrjimmy.ddns.net/wp-content/uploads/2022/07/net.ipv4_.conf路徑.jpg)
那麼關於 /etc/ufw 底下的 .rules 和 .init又是如何? 先前看到 /etc/ufw 底下檔案, 有幾個 .rules 跟 .init , 我們先看一下內容
before.init 這裡有提到如果是執行, 實際上是由 ufw-init 呼叫, 那麼在查一下 ufw-init是在哪裡
![](https://mrjimmy.ddns.net/wp-content/uploads/2022/07/2022-07-23-15-31-23-1024x127.jpg)
sudo find -name ufw-init 可以看到是在 /usr/lib/ufw底下, 這邊似乎在整個開機運作過程就可以知道自己理解仍有很多不夠清楚; 電腦從開機後, 啟動 BIOS 之後到 硬碟的 MBR, 如果是 Linux本身有多重開機的 Grub(應該是吧, 以前的印象早期是 LILO), 然後就正是整個 Ubuntu開機應該會 call的程序, 這部分之後要花點時間弄懂
![](https://mrjimmy.ddns.net/wp-content/uploads/2022/07/find-ufw-init-1024x105.jpg)
以上, 大致上就是 ufw的一些控制, 同樣地的也可以透過 Firewall的概念去設定 NAT, 此部分在另外學習和紀錄
你有敵人嗎? 很好 那意謂者
你已經在為生命中的某些事情堅持者
而成功就是歷經一次又一次的失敗
卻不失去熱情
Wiston Churchill