防火牆是可以協助電腦在內部網路和外部網路之間構建一道相對隔絕的保護屏障,從而保護資料資訊的一種技術。如果伺服器開啟了防火牆,並設定了屏蔽外界訪問的規則,那麼在遠端連線該伺服器時,可能會導致訪問失敗。本文主要介紹在Linux作業系統中,如何開啟或關閉系統防火牆。
操作說明
Linux系統存在不同的發行版本,不同發行版本中開啟或關閉系統防火牆的命令不同,請根據現場環境匹配下列發行版本的操作命令。
為避免因使用管理員權限不當造成不可預期的風險,建議您使用ecs-user使用者或普通使用者操作。如果普通使用者沒有sudo許可權,具體操作,請參見如何為普通使用者添加sudo許可權。
CentOS 7/CentOS Stream 8/Red Hat 7、8/Alibaba Cloud Linux2、3
查看防火牆運行狀態
系統防火牆預設為關閉狀態,您可以使用此命令確認防火牆目前狀態。
sudo firewall-cmd --state
說明not running
:系統防火牆為關閉狀態。running
:系統防火牆為開啟狀態。出現報錯
-bash: firewall-cmd: command not found
:表示未安裝系統防火牆,若您需開啟防火牆,請執行命令sudo yum install firewalld -y
安裝防火牆,再參考下方操作開啟。
開啟防火牆
sudo systemctl start firewalld
注意:如果您希望實現在每次重開機時自動啟動服務,執行如下命令,開啟開機自動啟動防火牆服務。
sudo systemctl enable firewalld
關閉防火牆
sudo systemctl stop firewalld
注意:如果您不希望實現在每次重開機時自動啟動服務,執行如下命令,關閉開機自動啟動防火牆服務。
sudo systemctl disable firewalld
Ubuntu
查看防火牆運行狀態
系統防火牆預設為關閉狀態,您可以使用此命令確認防火牆目前狀態。
sudo ufw status
說明Status: inactive
:系統防火牆為關閉狀態。Status: active
:系統防火牆為開啟狀態。開啟防火牆
執行如下命令開啟防火牆,如果Linux執行個體重啟,防火牆仍會自動開啟。
sudo ufw enable
關閉防火牆
執行如下命令關閉防火牆,如果Linux執行個體重啟,防火牆仍為關閉狀態。
sudo ufw disable
Debian
在Debian系統中,預設沒有安裝防火牆,可以通過清空防火牆策略,刪除相關屏蔽規則。清空策略前,請務必備份防火牆策略。若需恢複規則,可以使用備份檔案恢複防火牆策略。
查看防火牆策略
sudo iptables -L
關閉防火牆:清空防火牆策略
您可以通過清空防火牆策略,刪除相關屏蔽規則,實現關閉防火牆功能。
說明請替換
[$Iptables]
為實際防火牆策略的備份檔案地址。建立備份檔案
sudo touch [$Iptables]
備份防火牆策略
sudo sh -c "iptables-save > [$Iptables]"
清空防火牆策略
sudo iptables -F
開啟防火牆:根據備份檔案恢複防火牆策略
您可以通過恢複防火牆策略或者添加新的防護規則開啟防火牆功能。
說明請替換
[$Iptables]
為實際防火牆策略的備份檔案地址。sudo iptables-restore < [$Iptables]
常見問題
如何為普通使用者添加sudo許可權?
CentOS 7/CentOS Stream 8/Red Hat 7、8/Alibaba Cloud Linux2、3
使用
root
使用者遠端連線Linux伺服器。具體操作,請參見使用Workbench工具以SSH協議登入Linux執行個體。
運行以下命令,建立一個普通使用者
test
並設定密碼。useradd test passwd test
運行以下命令,為
/etc/sudoers
檔案賦予許可權。chmod 750 /etc/sudoers
運行以下命令,編輯
/etc/sudoers
檔案。vim /etc/sudoers
按
i
鍵進入編輯模式並添加以下配置:test ALL=(ALL) NOPASSWD: ALL
按
Esc
鍵,輸入:wq,按Enter
鍵儲存並退出檔案。運行以下命令,切換到
test
使用者。su - test
運行以下命令,測試
sudo
許可權。sudo cat /etc/shadow
如果能看到該檔案內容,表示
sudo
許可權已經添加成功。
Ubuntu/Debian
使用
root
使用者遠端連線Linux伺服器。具體操作,請參見使用Workbench工具以SSH協議登入Linux執行個體。
運行以下命令,建立一個普通使用者
test
並設定密碼。sudo adduser test
運行以下命令,為使用者增加
sudo
許可權。sudo usermod -aG sudo test
運行以下命令,切換到test使用者。
sudo su - test
運行以下命令,測試
sudo
許可權。sudo cat /etc/shadow
輸入密碼驗證後,如果能看到該檔案內容,表示
sudo
許可權已經添加成功。
關閉系統防火牆後,仍無法訪問執行個體
如果關閉防火牆後,您仍無法遠端存取執行個體,您可以嘗試排查其他可能原因,詳情請參見無法串連Linux執行個體的排查方法。