配置CentOS SFTP防火墙主要涉及两个步骤:一是配置SFTP服务,二是配置防火墙规则以允许SFTP连接。以下是详细的步骤:
安装OpenSSH服务器 如果尚未安装OpenSSH服务器,请使用以下命令安装:
sudo yum install openssh-server
启动并启用SSH服务 启动SSH服务并设置为开机自启:
sudo systemctl start sshd
sudo systemctl enable sshd
配置SSH以允许SFTP
编辑SSH配置文件 /etc/ssh/sshd_config
:
sudo vi /etc/ssh/sshd_config
找到并修改以下行:
Subsystem sftp /usr/libexec/openssh/sftp-server
确保这一行没有被注释掉(即前面没有 #
)。
重启SSH服务 应用配置更改:
sudo systemctl restart sshd
CentOS 7及以上版本使用 firewalld
作为默认防火墙管理工具。
安装firewalld
如果尚未安装 firewalld
,请使用以下命令安装:
sudo yum install firewalld
启动并启用firewalld
启动 firewalld
服务并设置为开机自启:
sudo systemctl start firewalld
sudo systemctl enable firewalld
允许SFTP端口(默认是22) SFTP使用SSH协议,默认端口是22。你可以添加一个规则来允许该端口的流量:
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
验证防火墙规则 检查防火墙状态和已加载的规则:
sudo firewall-cmd --list-all
从本地机器连接到SFTP服务器 使用以下命令测试连接:
sftp username@your_server_ip
替换 username
和 your_server_ip
为实际的用户名和服务器IP地址。
检查连接状态 如果连接成功,你应该能够看到SFTP提示符并开始文件传输操作。
sestatus
如果SELinux处于 enforcing 模式,可以尝试临时将其设置为 permissive 模式以测试连接:sudo setenforce 0
如果连接成功,说明SELinux可能是问题所在。可以通过编辑 /etc/selinux/config
文件将 SELinux 设置为 permissive 或 disabled 来永久解决。通过以上步骤,你应该能够成功配置CentOS上的SFTP防火墙。