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