怎样提高Debian SFTP的安全性
导读:1. 更新系统及软件包 定期运行sudo apt update && sudo apt upgrade -y,确保Debian系统和OpenSSH服务器等软件包为最新版本,及时修复已知安全漏洞。 2. 配置SSH服务强化基础...
1. 更新系统及软件包
定期运行sudo apt update &
&
sudo apt upgrade -y,确保Debian系统和OpenSSH服务器等软件包为最新版本,及时修复已知安全漏洞。
2. 配置SSH服务强化基础安全
编辑/etc/ssh/sshd_config文件,进行以下关键设置:
- 禁用root远程登录:找到
PermitRootLogin行,修改为PermitRootLogin no,防止攻击者通过暴力破解root账户获取系统控制权; - 禁用密码认证(可选但推荐):将
PasswordAuthentication设置为no,强制使用密钥认证,避免密码被猜测或窃取; - 更改默认端口(可选):将
Port 22修改为不常用端口(如2222),减少自动化扫描工具的攻击尝试; - 限制功能:添加
AllowTcpForwarding no和X11Forwarding no,禁用端口转发和X11转发,降低潜在攻击面。
3. 使用密钥认证替代密码认证
密钥认证比密码更安全,步骤如下:
- 在客户端生成RSA密钥对(4096位强度):
ssh-keygen -t rsa -b 4096,生成id_rsa(私钥)和id_rsa.pub(公钥); - 将公钥复制到服务器:
ssh-copy-id user@server_ip,自动将公钥添加到~/.ssh/authorized_keys; - 配置SSH允许密钥认证:确保
/etc/ssh/sshd_config中PubkeyAuthentication yes和AuthorizedKeysFile .ssh/authorized_keys未被注释; - 重启SSH服务:
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 - 重启SSH服务:
sudo systemctl restart sshd。
5. 强化用户权限与目录设置
- 为用户创建专用上传目录:
sudo mkdir /home/username/upload,sudo chown username:username /home/username/upload(用户需有写入权限); - 设置家目录权限:
sudo chmod 755 /home/username(确保用户只能访问自己的目录,无法修改上级目录); - 可选:使用ACL实现更细粒度权限控制(如
sudo setfacl -R -m u:username:rwx /home/username/upload)。
6. 配置防火墙限制访问
使用ufw(Uncomplicated Firewall)限制SSH/SFTP端口访问:
- 允许SSH端口(默认22或自定义端口):
sudo ufw allow 22(若更改端口则替换为对应端口); - 启用防火墙:
sudo ufw enable; - 可选:限制访问IP(如仅允许公司IP访问):
sudo ufw allow from company_ip to any port 22。
7. 安装并配置fail2ban防止暴力破解
fail2ban可监控SSH登录日志,自动封禁多次失败尝试的IP:
- 安装fail2ban:
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小时); - 重启fail2ban:
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(需配置邮件服务)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 怎样提高Debian SFTP的安全性
本文地址: https://pptw.com/jishu/746627.html
