防火墻是可以幫助計算機在內部網絡和外部網絡之間構建一道相對隔絕的保護屏障,從而保護數據信息的一種技術。如果服務器開啟了防火墻,并設置了屏蔽外界訪問的規則,那么在遠程連接該服務器時,可能會導致訪問失敗。本文主要介紹在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實例的排查方法。