在系統上通常對外無法連都是防火牆沒有安裝或將port沒有開通造成的
關於 ufw(Uncomplicated Firewall)的詳細整理,包括安裝與解除安裝、檢查開機自動執行、修改規則後的處理、常用通訊 Port 的開通與禁止方式,以及一些常用的功能與技巧:
在大多數的 Linux 發行版本中,ufw 都是預設安裝的。如果沒有安裝,可以使用以下指令進行安裝:
sudo apt-get update
sudo apt-get install ufw
如果需要移除 ufw,可以使用以下指令:
sudo apt-get remove ufw
或完全移除及刪除所有設定檔:
sudo apt-get purge ufw
檢查 ufw 的狀態可以使用以下指令:
sudo ufw status
顯示 Status: active 表示 ufw 已啟用,Status: inactive 則表示未啟用。
啟用 ufw:
sudo ufw enable
停用 ufw:
sudo ufw disable
檢查 ufw 是否設置為開機啟動:
sudo systemctl is-enabled ufw
如果顯示 enabled,表示 ufw 會在開機時自動執行。
如果 ufw 沒有設置為開機自動啟動,可以使用以下指令設置:
sudo systemctl enable ufw
在修改 ufw 規則後,通常不需要手動重啟 ufw,因為每個規則的變更會立即生效。但如果需要重新載入所有規則,可以使用:
sudo ufw reload
如果需要完全重啟 ufw,可以使用:
sudo systemctl restart ufw
以下是開通一些常用 Port 的指令範例:
HTTP (Port 80):
sudo ufw allow 80/tcp
HTTP (Port 8080):
sudo ufw allow 8080/tcp
HTTPS (Port 443):
sudo ufw allow 443/tcp
SSH (Port 22):
sudo ufw allow 22/tcp
VNC (Port 5900-5903): 依據 VNC 使用的 Port 號來允許:
sudo ufw allow 5900/tcp
sudo ufw allow 5901/tcp
sudo ufw allow 5902/tcp
sudo ufw allow 5903/tcp
MQTT (Port 1883):
sudo ufw allow 1883/tcp
MQTT over SSL (Port 8883):
sudo ufw allow 8883/tcp
自定義 Port (如 11883):
sudo ufw allow 11883/tcp
如果要禁止某個 Port,可以使用 deny 關鍵字。例如:
sudo ufw deny 80/tcp
禁止 SSH (Port 22):
sudo ufw deny 22/tcp
刪除已添加的規則可以使用以下方式:
刪除允許的 Port 80 規則:
sudo ufw delete allow 80/tcp
刪除禁止的 Port 22 規則:
sudo ufw delete deny 22/tcp
預設拒絕所有進入的連線:
sudo ufw default deny incoming
預設允許所有外出的連線:
sudo ufw default allow outgoing
允許某個特定 IP (例如 192.168.1.100) 通過某個 Port:
sudo ufw allow from 192.168.1.100 to any port 22
允許整個網段 (例如 192.168.1.0/24) 通過某個 Port:
sudo ufw allow from 192.168.1.0/24 to any port 80
開啟 ufw 日誌功能,可以追蹤防火牆活動:
sudo ufw logging on
可以查看 /var/log/ufw.log 來檢查日誌資訊。
如果需要暫時停用所有規則,可以使用 ufw 關閉指令,但這樣會讓防火牆失去保護作用:
sudo ufw disable
重新啟用防火牆:
sudo ufw enable
可以為 SSH 這類容易受到暴力破解攻擊的服務設置速率限制:
sudo ufw limit 22/tcp
這個指令會限制單個 IP 在短時間內的連線數量,防止暴力破解攻擊。
這些 ufw 功能可以幫助你更有效地管理 Linux 系統的防火牆設定,提升系統安全性。希望這些資訊對你有幫助!
如果要針對某個 IP 或整個網段開放所有 Port 的連線,可以使用以下的 ufw 指令來完成設定:
要針對單個 IP(例如 192.168.1.100)開放所有 Port,可以使用以下指令:
sudo ufw allow from 192.168.1.100
這條指令的意思是允許來自 192.168.1.100 的所有連線,不管是哪一個 Port 或是哪一個協議(TCP 或 UDP)。
如果要針對整個網段(例如 192.168.1.0/24)開放所有 Port,可以使用以下指令:
sudo ufw allow from 192.168.1.0/24
這條指令的意思是允許來自 192.168.1.0 到 192.168.1.255 這個範圍內所有 IP 的連線,無論是哪一個 Port 或是哪一個協議(TCP 或 UDP)。
如果希望指定來自某個 IP 或網段的所有連線進入本機的所有 Port,可以添加 to any:
sudo ufw allow from 192.168.1.100 to any
或
sudo ufw allow from 192.168.1.0/24 to any
這樣的設定會允許這些 IP 或網段連接到本機上所有的 Port,這在某些情境下可能是不安全的,請謹慎使用。
如果你的系統有多個網卡,可以指定允許某個 IP 或網段連接到某個特定網卡的所有 Port,例如:
sudo ufw allow from 192.168.1.100 to any interface eth0
這樣的設定僅允許 192.168.1.100 通過網卡 eth0 連接到本機的所有 Port。
如果想刪除上面設定的規則,例如刪除 192.168.1.100 的所有連線許可,請使用以下指令:
sudo ufw delete allow from 192.168.1.100
針對整個網段的刪除方式相同:
sudo ufw delete allow from 192.168.1.0/24
在開放所有 Port 的情況下,需特別小心這可能會對系統的安全性帶來風險。如果可以的話,建議僅針對特定的必要 Port 進行開放,而非整個網段或所有 Port 都開放。這樣可以避免不必要的安全風險。希望這些指令對你有幫助!