1. 更新系统及软件包
定期运行sudo apt update && sudo apt upgrade -y,确保Debian系统和OpenSSH服务器等软件包为最新版本,及时修复已知安全漏洞。
2. 配置SSH服务强化基础安全
编辑/etc/ssh/sshd_config文件,进行以下关键设置:
PermitRootLogin行,修改为PermitRootLogin no,防止攻击者通过暴力破解root账户获取系统控制权;PasswordAuthentication设置为no,强制使用密钥认证,避免密码被猜测或窃取;Port 22修改为不常用端口(如2222),减少自动化扫描工具的攻击尝试;AllowTcpForwarding no和X11Forwarding no,禁用端口转发和X11转发,降低潜在攻击面。3. 使用密钥认证替代密码认证
密钥认证比密码更安全,步骤如下:
ssh-keygen -t rsa -b 4096,生成id_rsa(私钥)和id_rsa.pub(公钥);ssh-copy-id user@server_ip,自动将公钥添加到~/.ssh/authorized_keys;/etc/ssh/sshd_config中PubkeyAuthentication yes和AuthorizedKeysFile .ssh/authorized_keys未被注释;sudo systemctl restart sshd,使配置生效。4. 配置Chroot Jail限制用户访问范围
通过Chroot Jail将用户限制在自己的家目录,防止访问系统其他部分:
sftp_users):sudo groupadd sftp_users;sudo useradd -m -G sftp_users username,sudo passwd username;sudo chown root:root /home/username,sudo chmod 755 /home/username(确保root拥有家目录所有权,用户无法修改);/etc/ssh/sshd_config中添加匹配规则:Match Group sftp_users
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
sudo systemctl restart sshd。5. 强化用户权限与目录设置
sudo mkdir /home/username/upload,sudo chown username:username /home/username/upload(用户需有写入权限);sudo chmod 755 /home/username(确保用户只能访问自己的目录,无法修改上级目录);sudo setfacl -R -m u:username:rwx /home/username/upload)。6. 配置防火墙限制访问
使用ufw(Uncomplicated Firewall)限制SSH/SFTP端口访问:
sudo ufw allow 22(若更改端口则替换为对应端口);sudo ufw enable;sudo ufw allow from company_ip to any port 22。7. 安装并配置fail2ban防止暴力破解
fail2ban可监控SSH登录日志,自动封禁多次失败尝试的IP:
sudo apt install fail2ban -y;sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local;jail.local,启用SSH防护:找到[sshd]部分,将enabled设置为true,调整maxretry(如maxretry = 3,3次失败后封禁)和bantime(如bantime = 3600,封禁1小时);sudo systemctl restart fail2ban。8. 监控与日志审计
定期检查SSH/SFTP日志,及时发现异常活动:
sudo tail -f /var/log/auth.log(或/var/log/secure,取决于系统配置);logwatch)生成每日日志报告:sudo apt install logwatch -y,sudo logwatch --service sshd --output mail(需配置邮件服务)。