ubuntu

ubuntu sftp安全策略有哪些

小樊
41
2025-10-10 15:43:10
栏目: 智能运维

1. 创建专用SFTP用户及组
为隔离普通用户与SFTP用户权限,需创建专用用户组(如sftpusers)及用户,并禁止其登录shell。例如:

sudo groupadd sftpusers  # 创建组
sudo useradd -m -g sftpusers -s /bin/false sftpuser  # 创建用户(-s /bin/false禁止shell登录)
sudo passwd sftpuser  # 设置强密码

此步骤可防止用户通过SSH登录系统,仅允许SFTP传输。

2. 配置SSH限制SFTP访问
编辑/etc/ssh/sshd_config文件,通过Match指令针对SFTP用户组设置严格规则:

Match Group sftpusers
    ChrootDirectory %h  # 将用户限制在其家目录(Chroot Jail)
    ForceCommand internal-sftp  # 强制使用SFTP,禁用SSH shell
    AllowTcpForwarding no  # 禁用TCP转发(防止端口转发攻击)
    X11Forwarding no  # 禁用X11转发(防止图形界面攻击)

修改后重启SSH服务生效:sudo systemctl restart sshd
此配置是SFTP安全的核心,通过Chroot隔离用户访问范围,ForceCommand彻底禁用非SFTP功能。

3. 设置严格的目录权限

4. 启用公钥认证(禁用密码认证)
密码认证易受暴力破解,建议使用公钥认证提升安全性:

5. 配置防火墙限制访问IP
使用ufw(Uncomplicated Firewall)仅允许可信IP访问SFTP端口(默认22):

sudo ufw allow from <trusted_ip> to any port 22  # 替换<trusted_ip>为可信IP
sudo ufw enable  # 启用防火墙

若需允许整个网段,可将<trusted_ip>替换为网段地址(如192.168.1.0/24)。此措施可减少非法IP的连接尝试。

6. 安装并配置Fail2ban防暴力破解
Fail2ban可自动检测多次登录失败的IP并封禁:

7. 日志监控与审计
开启SSH详细日志,定期检查用户活动:

8. 可选:使用SELinux或AppArmor增强隔离

0
看了该问题的人还看了