在CentOS系统中配置SFTP(SSH File Transfer Protocol)的防火墙规则,通常涉及以下几个步骤:
首先,确保你的CentOS系统上已经安装并启用了防火墙。CentOS 7及更高版本默认使用firewalld作为防火墙管理工具。
sudo systemctl start firewalld
sudo systemctl enable firewalld
SFTP通常通过SSH协议进行传输,默认端口是22。你需要确保防火墙允许通过这个端口的流量。
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
如果你的系统启用了SELinux,可能需要配置SELinux策略以允许SFTP连接。
sudo setsebool -P ssh_sysadm_login on
sudo setsebool -P ssh_keysign on
你可以使用firewall-cmd命令来添加特定的防火墙规则。例如,如果你想允许特定IP地址访问SFTP服务器,可以使用以下命令:
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="22" accept'
sudo firewall-cmd --reload
最后,验证你的防火墙规则是否正确配置。
sudo firewall-cmd --list-all
假设你想允许IP地址为192.168.1.100的设备通过SFTP访问你的服务器,可以按照以下步骤操作:
允许SSH端口:
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
添加特定IP的防火墙规则:
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="22" accept'
sudo firewall-cmd --reload
验证规则:
sudo firewall-cmd --list-all
你应该能看到类似以下的输出,表明规则已成功添加:
firewall-cmd (v0.0.0-59.el7_9.2) 09:15:29
public zones:
interfaces: lo eth0
sources:
services: ssh sftp
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="22" accept
通过以上步骤,你应该能够在CentOS系统上成功配置SFTP的防火墙规则。