1. 更新系统与OpenSSH软件包
定期运行sudo apt update && sudo apt upgrade -y,确保Debian系统及OpenSSH服务器(openssh-server)为最新版本,及时修补已知安全漏洞。
2. 配置SSH服务限制SFTP访问
编辑/etc/ssh/sshd_config文件,进行以下关键设置:
PermitRootLogin no,防止攻击者通过暴力破解root账户获取系统最高权限;Subsystem sftp internal-sftp未被注释,使用OpenSSH内置的SFTP服务(更安全);Match Group sftpusers块,包含以下指令:ChrootDirectory %h(将用户限制在其家目录,无法访问系统其他路径);ForceCommand internal-sftp(强制用户只能使用SFTP,禁止SSH shell访问);AllowTcpForwarding no(禁用端口转发,防止隧道攻击);X11Forwarding no(禁用X11图形界面转发,减少攻击面)。3. 创建专用SFTP用户组与用户
sudo groupadd sftpusers;sudo useradd -m -G sftpusers -s /bin/false sftpuser(-s /bin/false禁止用户登录shell);sudo chpasswd(交互式输入密码,建议使用强密码)。4. 正确设置用户家目录权限
sudo mkdir /home/sftpuser/uploads;sudo chown root:root /home/sftpuser;sudo chmod 755 /home/sftpuser(防止用户修改目录权限);sudo chown sftpuser:sftpusers /home/sftpuser/uploads;sudo chmod 755 /home/sftpuser/uploads。5. 启用SSH密钥认证(禁用密码登录)
ssh-keygen -t ed25519(推荐Ed25519算法,安全性更高);ssh-copy-id sftpuser@your_server_ip;/etc/ssh/sshd_config:设置PubkeyAuthentication yes(启用密钥认证)、PasswordAuthentication no(禁用密码认证);sudo systemctl restart sshd。6. 配置防火墙限制访问
sudo ufw allow OpenSSH;sudo ufw enable;sudo ufw allow from your_trusted_ip to any port 22。7. 安装与配置Fail2Ban防暴力破解
sudo apt install fail2ban -y;sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local;jail.local,启用SSH防护:设置[sshd]部分的enabled = true、maxretry = 3(3次失败后封禁)、bantime = 3600(封禁1小时);sudo systemctl restart fail2ban。8. 定期监控与审计日志
sudo tail -f /var/log/auth.log(Debian默认日志路径);logwatch)定期分析日志,关注异常登录尝试(如频繁失败、陌生IP)。9. 其他增强措施
openssh-server),减少系统攻击面;/etc/ssh/sshd_config,设置Port 2222(非标准端口),降低被自动扫描工具发现的概率(需同步修改防火墙规则);sudo apt install selinux-basics selinux-policy-default)或AppArmor(默认启用),限制SFTP进程的权限。