在Ubuntu系統中,配置防火墻以允許SFTP連接通常涉及使用ufw
(Uncomplicated Firewall)或iptables
。以下是使用這兩種方法的步驟:
ufw
配置防火墻啟用 ufw
:
如果你還沒有啟用 ufw
,可以使用以下命令啟用它:
sudo ufw enable
允許SSH連接: SFTP依賴于SSH,因此你需要確保SSH端口(默認是22)是開放的。使用以下命令允許SSH連接:
sudo ufw allow 22/tcp
允許SFTP連接:
默認情況下,允許SSH連接也會允許SFTP連接,因為SFTP是通過SSH協議運行的。如果你需要更細粒度的控制,可以單獨允許SFTP子系統。編輯SSH配置文件 /etc/ssh/sshd_config
:
sudo nano /etc/ssh/sshd_config
確保以下行沒有被注釋掉:
Subsystem sftp /usr/lib/openssh/sftp-server
保存并退出編輯器,然后重啟SSH服務:
sudo systemctl restart sshd
重新加載 ufw
規則:
sudo ufw reload
檢查防火墻狀態: 確認規則已經生效:
sudo ufw status
iptables
配置防火墻允許SSH連接: 使用以下命令允許SSH連接:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
允許SFTP連接:
默認情況下,允許SSH連接也會允許SFTP連接。如果你需要更細粒度的控制,可以單獨允許SFTP子系統。編輯SSH配置文件 /etc/ssh/sshd_config
:
sudo nano /etc/ssh/sshd_config
確保以下行沒有被注釋掉:
Subsystem sftp /usr/lib/openssh/sftp-server
保存并退出編輯器,然后重啟SSH服務:
sudo systemctl restart sshd
保存 iptables
規則:
為了確保重啟后規則仍然有效,你可以使用 iptables-persistent
工具保存規則:
sudo apt-get install iptables-persistent
sudo netfilter-persistent save
sudo netfilter-persistent reload
檢查防火墻狀態: 確認規則已經生效:
sudo iptables -L -v
通過以上步驟,你應該能夠在Ubuntu系統上成功配置防火墻以允許SFTP連接。