在CentOS上设置SFTP(Secure File Transfer Protocol)服务时,安全性是首要考虑的因素。以下是一些关键的安全设置步骤和最佳实践:
确保你的CentOS系统上安装了OpenSSH服务器,因为SFTP是OpenSSH的一部分。
sudo yum install openssh-server
为了提高安全性,建议为SFTP服务创建专门的用户,而不是使用root用户。
sudo useradd -m sftpuser
sudo passwd sftpuser
将用户添加到sftp用户组:
sudo usermod -a -G sftpusers sftpuser
使用chrootDirectory
选项将用户限制在其家目录中,防止他们访问系统其他部分。
Match group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
确保用户家目录的所有者为root:
sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
在用户的主目录下创建.ssh
目录,并在其中创建authorized_keys
文件,用于存储用户的公钥,以确保只有授权的公钥才能用于登录。
mkdir /home/sftpuser/.ssh
chmod 700 /home/sftpuser/.ssh
touch /home/sftpuser/.ssh/authorized_keys
chmod 600 /home/sftpuser/.ssh/authorized_keys
为了提高安全性,禁用不必要的SSH功能,如X11转发和TCP转发。
AllowTcpForwarding no
X11Forwarding no
确保防火墙允许SSH连接,并限制访问SSH的端口(默认是22)。
sudo firewall-cmd --zone=public --permanent --add-port=22/tcp
sudo firewall-cmd --reload
确保所有用户都使用强密码,可以通过修改/etc/login.defs
文件来强制执行这些要求。
PASS_MIN_LEN 10
定期更新系统和软件包,以修复已知的安全漏洞,并监控SSH/SFTP日志以检测可疑活动。
sudo yum update