SFTP在Debian上的安全设置有哪些
导读:1. 更新系统及安装OpenSSH服务器 确保Debian系统为最新状态,修复已知安全漏洞: sudo apt update && sudo apt upgrade -y 安装OpenSSH服务器(若未安装): sudo...
1. 更新系统及安装OpenSSH服务器
确保Debian系统为最新状态,修复已知安全漏洞:
sudo apt update &
&
sudo apt upgrade -y
安装OpenSSH服务器(若未安装):
sudo apt install openssh-server -y
2. 配置SSH服务限制SFTP访问
编辑SSH主配置文件/etc/ssh/sshd_config
,进行以下关键设置:
- 禁用root远程登录:防止root账户通过SSH/SFTP直接登录,降低提权风险。
PermitRootLogin no
- 启用内部SFTP子系统:替代传统sftp-server,提升性能并集成到SSH中。
Subsystem sftp internal-sftp
- 限制用户/组访问:通过
Match
指令针对特定用户或组应用严格规则(以组sftpusers
为例)。Match Group sftpusers ChrootDirectory %h # 将用户根目录限制为其家目录(如/home/sftpuser) ForceCommand internal-sftp # 强制使用SFTP,禁止SSH shell访问 AllowTcpForwarding no # 禁用TCP端口转发(防止隧道攻击) X11Forwarding no # 禁用X11图形界面转发
- 可选:禁用密码认证(推荐公钥认证):减少密码猜测攻击风险。
PasswordAuthentication no PubkeyAuthentication yes
保存配置后,重启SSH服务使更改生效:
sudo systemctl restart sshd
3. 创建专用SFTP用户组及用户
- 创建sftpusers组:集中管理SFTP用户权限。
sudo groupadd sftpusers
- 添加SFTP用户:创建无shell登录权限的用户(避免通过SSH登录系统)。
sudo adduser --shell /bin/false --gecos "SFTP User" sftpuser
- 将用户加入sftpusers组:
sudo usermod -aG sftpusers sftpuser
4. 设置用户主目录及权限
- 锁定用户家目录:Chroot环境要求家目录属主为root,权限为755(防止用户修改目录结构)。
sudo chown root:root /home/sftpuser sudo chmod 755 /home/sftpuser
- 创建用户可写子目录:在用户家目录下创建用于上传/下载文件的子目录(如
upload
),并设置正确权限(属主为用户,属组为sftpusers
)。sudo mkdir /home/sftpuser/upload sudo chown sftpuser:sftpusers /home/sftpuser/upload sudo chmod 755 /home/sftpuser/upload
注:若需更细粒度权限(如允许用户修改自身文件),可使用ACL扩展权限:
sudo setfacl -R -m u:sftpuser:rwx /home/sftpuser/upload sudo setfacl -R -m d:u:sftpuser:rwx /home/sftpuser/upload
5. 配置防火墙限制访问
使用ufw
(Uncomplicated Firewall)限制SFTP(默认端口22)仅允许可信IP访问:
- 安装ufw(若未安装):
sudo apt install ufw -y
- 允许SSH/SFTP连接:
sudo ufw allow OpenSSH
- 限制访问IP:仅允许指定IP(如
192.168.1.100
)访问SSH端口(22),拒绝其他IP。sudo ufw deny from all to any port 22 sudo ufw allow from 192.168.1.100 to any port 22
- 启用ufw并检查状态:
sudo ufw enable sudo ufw status verbose # 确认规则生效
注:若使用
iptables
,可通过以下命令实现相同效果:sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 22 -j DROP sudo netfilter-persistent save # 保存规则
6. 启用SSH密钥认证(增强身份验证)
- 生成密钥对:在客户端生成RSA密钥(4096位强度)。
ssh-keygen -t rsa -b 4096
- 复制公钥到服务器:将客户端的公钥(
id_rsa.pub
)添加到服务器用户的~/.ssh/authorized_keys
文件中。ssh-copy-id sftpuser@your_server_ip
- 配置SSH优先使用密钥认证:确保
/etc/ssh/sshd_config
中以下设置已启用:PubkeyAuthentication yes PasswordAuthentication no
重启SSH服务使密钥认证生效:
sudo systemctl restart sshd
7. 监控与维护
- 定期更新系统:保持OpenSSH及系统软件包为最新版本,修复安全漏洞。
sudo apt update & & sudo apt upgrade -y
- 检查日志文件:定期查看
/var/log/auth.log
,监控SFTP登录及异常活动(如多次失败尝试)。sudo tail -f /var/log/auth.log | grep sftp
- 备份配置文件:定期备份
/etc/ssh/sshd_config
及用户家目录权限设置,便于故障恢复。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: SFTP在Debian上的安全设置有哪些
本文地址: https://pptw.com/jishu/719255.html