温馨提示×

Debian SFTP如何与防火墙配合

小樊
31
2025-12-14 00:14:09
栏目: 智能运维

Debian SFTP 与防火墙配合

一、基础准备

  • 确认已安装并运行 OpenSSH 服务器:sudo apt update && sudo apt install openssh-server;sudo systemctl status ssh(未运行则 sudo systemctl start ssh)。
  • 默认情况下 SFTP 复用 SSH 的端口 22/TCP,无需额外端口;如需修改端口,后续防火墙需同步放行对应端口。
  • 建议先做连通性验证:本地执行 sftp username@your_server_ip,确认账号与网络可达。

二、使用 UFW 放行 SFTP

  • 放行 SSH(等价于放行 SFTP):sudo ufw allow OpenSSH 或 sudo ufw allow 22/tcp;如需开机启用:sudo ufw enable;查看状态:sudo ufw status
  • 仅允许指定来源访问 SFTP:sudo ufw allow from 192.168.1.100 to any port 22
  • 修改 SSH 端口(例如 2222)后,需同步放行:sudo ufw allow 2222/tcp

三、使用 nftables 放行 SFTP

  • 放行端口 22/TCP:sudo nft add rule ip filter input tcp dport 22 accept
  • 仅允许指定来源:sudo nft add rule ip filter input ip saddr 203.0.113.10 tcp dport 22 accept
  • 持久化(Debian 10+/nftables 默认):sudo nft list ruleset > /etc/nftables.conf;确保系统启用 nftables 服务(如已迁移到 nftables 作为默认后端)。

四、使用 iptables 放行 SFTP

  • 放行端口 22/TCP:sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  • 仅允许指定来源:sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT
  • 保存规则(Debian 常用做法):sudo iptables-save > /etc/iptables/rules.v4;查看规则:sudo iptables -L -v -n

五、安全加固与验证

  • /etc/ssh/sshd_config 中建议:禁用 root 登录(PermitRootLogin no)、启用公钥认证(PubkeyAuthentication yes)、按需限制登录来源(AllowUsers your_username@your_ip)、设置会话保活(ClientAliveInterval 300ClientAliveCountMax 3)。
  • 如需将 SFTP 用户限制在特定目录,可使用 Chroot Jail:创建 sftpusers 组,配置 Match Group sftpusers 段(ChrootDirectory %hForceCommand internal-sftpAllowTcpForwarding noX11Forwarding no),并确保对应目录属主为 root:root 且权限 755,否则 chroot 会失败。
  • 修改 SSH 配置后重启服务:sudo systemctl restart ssh
  • 连接与日志验证:sftp username@your_server_ip;实时查看认证日志:sudo tail -f /var/log/auth.log

0