Debian系统开放防火墙端口的常用方法
UFW(Uncomplicated Firewall)是Debian/Ubuntu系统的默认防火墙工具,操作简单直观,适合大多数用户。
sudo apt update
sudo apt install ufw # 安装UFW
sudo ufw enable # 启用UFW(默认拒绝所有入站,允许所有出站)
sudo ufw allow 80/tcp
sudo ufw allow 53/udp
sudo ufw allow 3000:3100/tcp
192.168.1.100访问SSH(端口22):sudo ufw allow from 192.168.1.100 to any port 22
sudo ufw status verbose # 显示详细规则(包括端口和协议)
sudo ufw delete allow 80/tcp
建议设置默认策略,增强安全性:
sudo ufw default deny incoming # 拒绝所有入站连接(默认)
sudo ufw default allow outgoing # 允许所有出站连接(默认)
iptables是Linux内核级的防火墙工具,功能强大但配置复杂,适合需要精细控制的场景。
sudo apt update
sudo apt install iptables iptables-persistent # 安装iptables及持久化工具
sudo netfilter-persistent save # 保存当前规则(首次安装后执行)
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 67:68 -j ACCEPT
10.0.0.5访问FTP(端口21):sudo iptables -A INPUT -p tcp -s 10.0.0.5 --dport 21 -j ACCEPT
sudo netfilter-persistent save # 手动保存规则(重启后仍有效)
sudo systemctl enable netfilter-persistent # 设置开机自动保存
例如删除TCP端口443的规则:
sudo iptables -D INPUT -p tcp --dport 443 -j ACCEPT
firewalld是Red Hat系默认工具,支持动态规则管理(无需重启服务),但Debian需手动安装。
sudo apt update
sudo apt install firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld
sudo firewall-cmd --permanent --zone=public --add-port=25/tcp
sudo firewall-cmd --reload # 重新加载配置(使永久规则生效)
sudo firewall-cmd --zone=public --add-port=25/tcp
sudo firewall-cmd --list-ports # 查看所有开放端口
sudo firewall-cmd --list-all # 查看完整规则(包括区域、服务)
deny,仅开放必要端口。telnet或nc命令测试端口是否可达(如telnet your-server-ip 80)。sudo ufw export > ufw-backup.txt)。通过以上方法,可根据需求选择合适的工具开放Debian防火墙端口,确保系统安全。