1. 系统基础安全加固
保持Debian系统及OpenSSH服务器软件包为最新版本,及时修复已知安全漏洞。通过sudo apt update && sudo apt upgrade -y命令完成系统更新,降低因软件漏洞被利用的风险。
2. 最小化SSH访问控制
/etc/ssh/sshd_config文件,设置PermitRootLogin no,防止攻击者通过暴力破解root密码获取系统最高权限。AllowUsers指令指定允许登录的SFTP用户(如AllowUsers sftpuser1@192.168.1.100),仅允许可信IP地址的用户连接,减少非法访问尝试。3. 配置SFTP专用子系统与Chroot限制
/etc/ssh/sshd_config,将Subsystem sftp设置为internal-sftp(而非外部程序),提升传输稳定性和安全性。Match Group sftpusers规则,将SFTP用户限制在其家目录内(ChrootDirectory %h),禁止访问系统其他路径。同时,配合ForceCommand internal-sftp强制用户只能使用SFTP命令,无法切换至Shell环境。需确保用户家目录的父目录属主为root(如sudo chown root:root /home/sftpuser)且权限为755(sudo chmod 755 /home/sftpuser),避免用户越权修改目录结构。4. 强化身份认证机制
/etc/ssh/sshd_config中设置PasswordAuthentication no,仅允许SSH密钥对认证,避免密码被猜测或暴力破解。ssh-keygen -t ed25519),将公钥(id_ed25519.pub)添加至用户家目录的~/.ssh/authorized_keys文件中,并设置严格权限(chmod 600 ~/.ssh/authorized_keys)。密钥认证比密码更安全,能有效防止未经授权的用户登录。5. 网络层访问控制
使用防火墙(如UFW)限制SFTP(默认端口22)的访问范围,仅允许可信IP地址或网段访问。例如,通过sudo ufw allow from 192.168.1.0/24 to any port 22命令,允许192.168.1.0/24网段的设备连接SSH/SFTP服务,拒绝其他IP地址的请求。
6. 日志监控与异常检测
定期检查SSH和SFTP日志文件(/var/log/auth.log),监控用户登录、文件传输等活动。通过sudo tail -f /var/log/auth.log实时查看日志,或使用工具(如Logwatch)生成每日报告,及时发现异常登录(如频繁失败尝试)、未授权访问等行为。
7. 额外安全增强措施
/etc/ssh/sshd_config中设置X11Forwarding no(禁用X11转发)、AllowTcpForwarding no(禁用TCP端口转发),减少潜在的攻击面。sshd -T | grep ciphers查看当前支持的加密算法,必要时修改/etc/ssh/sshd_config中的Ciphers指令。