温馨提示×

Debian防火墙远程访问

小樊
38
2026-01-03 17:30:07
栏目: 智能运维

Debian 防火墙远程访问配置指南

一、前置准备与最小可用规则

  • 确认已安装并运行 SSH 服务:sudo apt update && sudo apt install openssh-server;sudo systemctl start ssh;sudo systemctl enable ssh。如修改了默认端口,后续放行对应端口即可。
  • 使用 UFW 快速放行 SSH:sudo ufw allow 22/tcp(或自定义端口如 2222/tcp);sudo ufw enable。注意启用 UFW 时可能提示“Command may disrupt existing ssh connections”,如当前通过 SSH 操作,请谨慎执行或先确保有备用通道。
  • 使用 iptables 的最小规则集(远程操作风险高,务必先放行 SSH 再设置默认策略):
    • 放行回环与已建立连接:sudo iptables -A INPUT -i lo -j ACCEPT;sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
    • 放行 SSH:sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
    • 设置默认策略:sudo iptables -P INPUT DROP;sudo iptables -P FORWARD DROP;sudo iptables -P OUTPUT ACCEPT
  • 验证:ss -tnlp | grep ‘:22’ 或 sudo ufw status verbose;必要时用 nmap 对公网 IP 的 22 端口做连通性测试。

二、常用场景与命令速查

场景 UFW 命令 iptables 命令
放行 SSH(默认端口 22 sudo ufw allow 22/tcp sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
放行自定义 SSH 端口(如 2222 sudo ufw allow 2222/tcp sudo iptables -A INPUT -p tcp --dport 2222 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
放行 HTTP/HTTPS sudo ufw allow 80/tcp;sudo ufw allow 443/tcp sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT;sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
放行数据库(如 3306 仅内网) sudo ufw allow from 192.168.1.0/24 to any port 3306/tcp sudo iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 3306 -j ACCEPT
仅允许特定 IP 访问 SSH sudo ufw allow from 203.0.113.10 to any port 22/tcp sudo iptables -I INPUT -p tcp -s 203.0.113.10 --dport 22 -j ACCEPT(随后可 DROP 其他来源)
启用/关闭/查看状态 sudo ufw enable;sudo ufw disable;sudo ufw status verbose sudo iptables -L -n -v;按需保存/恢复规则(见下节)

三、规则持久化与系统差异

  • UFW:规则默认随 UFW 启用而持久;如需备份/恢复,可使用:sudo ufw status numbered > ufw-backup.txt;按需编辑后用 sudo ufw 恢复。
  • iptables:Debian 常用 iptables-persistent 保存与恢复:sudo apt install iptables-persistent;安装时选择保存当前规则;后续可用 sudo netfilter-persistent save 与 sudo netfilter-persistent reload 管理。也可手动保存/加载:sudo iptables-save > /etc/iptables/rules.v4;sudo iptables-restore < /etc/iptables/rules.v4
  • nftables(Debian 11+ 常见):sudo apt install nftables;示例:sudo nft add table inet filter;sudo nft add chain inet filter input { type filter hook input priority 0; };sudo nft add rule inet filter input tcp dport 22 accept;sudo systemctl restart nftables;查看:sudo nft list ruleset。

四、安全加固与远程变更建议

  • 优先采用 密钥登录 并禁用密码:ssh-keygen -t rsa -b 4096;ssh-copy-id user@ip -p 22/2222;编辑 /etc/ssh/sshd_config:PasswordAuthentication no,重启 ssh:sudo systemctl restart ssh
  • 修改默认 SSH 端口为 2222 等非标准端口,并仅放行必要来源 IP,降低暴力扫描风险。
  • 远程调整防火墙前,建议:保持当前会话不中断;先添加“放行 SSH”的新规则并确认生效,再移除旧规则或收紧策略;必要时在控制台/带外管理通道中操作。
  • 如需限制某端口仅内网访问,使用源地址限制(如仅 192.168.1.0/24 或办公网段)。

0