在CentOS上配置SFTP服务时,遵循以下最佳实践可以确保服务器的安全性和稳定性:
确保安装了OpenSSH服务器软件包。可以使用以下命令进行更新和安装:
sudo yum update
sudo yum install openssh-server
为需要SFTP访问的用户创建一个新账户,并设置密码。例如,创建名为sftpuser
的用户:
sudo useradd -m -d /home/sftpuser -s /sbin/nologin sftpuser
sudo passwd sftpuser
编辑SSH配置文件/etc/ssh/sshd_config
,确保以下配置项已正确设置:
# 启用SFTP子系统
Subsystem sftp /usr/libexec/openssh/sftp-server
# 禁止root用户通过SSH登录
PermitRootLogin no
# 允许密码认证
PasswordAuthentication yes
# 如果使用chroot,确保用户的根目录权限设置正确
Match User sftpuser
ChrootDirectory /home/sftpuser
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
为用户创建主目录,并设置正确的权限:
sudo mkdir -p /home/sftpuser
sudo chown sftpuser:sftpuser /home/sftpuser
sudo chmod 755 /home/sftpuser
如果不需要X11转发和TCP端口转发,可以在sshd_config
中添加以下配置来禁用这些功能:
X11Forwarding no
AllowTcpForwarding no
保存配置文件更改后,重启SSH服务以应用新的设置:
sudo systemctl restart sshd
确保防火墙允许SFTP使用的端口(默认为22):
sudo firewall-cmd --permanent --add-port=22/tcp
sudo firewall-cmd --reload
如果使用SELinux,可能需要调整相关设置以允许SFTP操作。可以临时禁用SELinux进行测试:
sudo setenforce 0
或者配置SELinux策略以允许SFTP。
使用SFTP客户端(如FileZilla)从另一台计算机或本地机器连接到SFTP服务器,验证配置是否正确。
通过遵循这些最佳实践,可以在CentOS上安全地配置SFTP服务,确保数据传输的安全性和用户的访问控制。