centos

CentOS如何配置SFTP的防火墙规则

小樊
53
2025-10-05 00:41:16
栏目: 智能运维

在CentOS系统中配置SFTP(SSH File Transfer Protocol)的防火墙规则,通常涉及以下几个步骤:

1. 确保防火墙已启用

首先,确保你的CentOS系统上已经安装并启用了防火墙。CentOS 7及更高版本默认使用firewalld作为防火墙管理工具。

sudo systemctl start firewalld
sudo systemctl enable firewalld

2. 允许SSH端口

SFTP通常通过SSH协议进行传输,默认端口是22。你需要确保防火墙允许通过这个端口的流量。

sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload

3. 配置SELinux(如果启用)

如果你的系统启用了SELinux,可能需要配置SELinux策略以允许SFTP连接。

sudo setsebool -P ssh_sysadm_login on
sudo setsebool -P ssh_keysign on

4. 配置防火墙规则

你可以使用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

5. 验证防火墙规则

最后,验证你的防火墙规则是否正确配置。

sudo firewall-cmd --list-all

示例:允许特定IP访问SFTP

假设你想允许IP地址为192.168.1.100的设备通过SFTP访问你的服务器,可以按照以下步骤操作:

  1. 允许SSH端口

    sudo firewall-cmd --permanent --add-service=ssh
    sudo firewall-cmd --reload
    
  2. 添加特定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
    
  3. 验证规则

    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的防火墙规则。

0
看了该问题的人还看了