在Debian上安全配置SFTP(SSH File Transfer Protocol)涉及多个步骤,以确保文件传输的安全性和系统的稳定性。以下是一个详细的指南:
首先,确保你的Debian系统是最新的:
sudo apt update && sudo apt upgrade -y
如果你还没有安装OpenSSH服务器,可以使用以下命令进行安装:
sudo apt install openssh-server -y
编辑SSH配置文件 /etc/ssh/sshd_config
:
sudo nano /etc/ssh/sshd_config
找到并修改以下行,禁止root用户通过SSH登录:
PermitRootLogin no
确保以下行没有被注释掉:
Subsystem sftp /usr/lib/openssh/sftp-server
为了进一步提高安全性,可以配置Chroot Jail,限制SFTP用户的根目录。
创建一个组用于SFTP用户:
sudo groupadd sftpusers
创建一个目录用于SFTP用户的根目录,并设置权限:
sudo mkdir /home/sftpusers
sudo chown root:root /home/sftpusers
sudo chmod 755 /home/sftpusers
创建一个SFTP用户并将其添加到sftpusers组:
sudo adduser --shell /bin/false --gecos "SFTP User" sftpuser
sudo usermod -aG sftpusers sftpuser
修改SFTP用户的家目录权限:
sudo chown root:sftpusers /home/sftpuser
sudo chmod 755 /home/sftpuser
在 /etc/ssh/sshd_config
中添加以下配置:
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
保存并关闭配置文件后,重启SSH服务以应用更改:
sudo systemctl restart sshd
确保防火墙允许SSH连接。如果你使用的是ufw
,可以运行以下命令:
sudo ufw allow OpenSSH
sudo ufw enable
使用SFTP客户端(如FileZilla)连接到你的服务器,确保一切配置正确。
定期检查SSH和SFTP日志文件以监控任何可疑活动:
sudo tail -f /var/log/auth.log
通过以上步骤,你可以在Debian上安全地配置SFTP,确保文件传输的安全性和系统的稳定性。