在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连接。