Debian防火墙定制化规则指南
Debian系统中,防火墙定制化主要通过UFW(Uncomplicated Firewall)或iptables/nftables实现。UFW作为简化工具更适合新手,iptables/nftables则提供更底层、灵活的控制。以下是具体操作步骤:
UFW是基于iptables的前端工具,通过直观命令降低配置复杂度,适合大多数日常场景。
sudo apt update && sudo apt install ufw
sudo ufw enable # 启用后,默认拒绝所有入站、允许所有出站
sudo ufw default deny incoming # 拒绝所有入站连接
sudo ufw default allow outgoing # 允许所有出站连接
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow ssh # 或 sudo ufw allow 22/tcp
sudo ufw allow from 192.168.1.100
sudo ufw deny from 192.168.1.101
sudo ufw allow from 192.168.1.0/24 to any port 22
sudo ufw allow 2290:2300/tcp
sudo ufw limit 22/tcp
sudo ufw logging on # 日志默认保存至/var/log/ufw.log
sudo ufw allow in on eth1 from 172.0.0.0/24 to any port 22
sudo ufw status
sudo ufw status verbose
sudo ufw delete allow 80/tcp
sudo ufw delete 1 # 删除编号为1的规则
/etc/ufw/user.rules,重启后仍有效。如需手动导出:sudo ufw export > /etc/ufw/user.rules
iptables是Linux内核级防火墙工具,功能强大但命令复杂;nftables是其替代工具,语法更简洁,适合高级用户。
sudo apt update && sudo apt install iptables
sudo apt update && sudo apt install nftables
sudo iptables -L -n -v # 查看filter表规则
sudo iptables -t nat -L -n -v # 查看nat表规则
sudo iptables -A INPUT -s 192.168.1.100 -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -s 192.168.1.101 -j DROP
sudo iptables -P INPUT DROP # 拒绝所有入站
sudo iptables -P FORWARD DROP # 拒绝所有转发
sudo iptables -P OUTPUT ACCEPT # 允许所有出站
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo nft list ruleset
sudo nft add rule inet filter input tcp dport 22 ip saddr 192.168.1.100 accept
sudo nft list ruleset > /etc/nftables.conf # 保存至配置文件
sudo systemctl enable nftables
sudo systemctl start nftables
iptables-persistent包:sudo apt install iptables-persistent
sudo netfilter-persistent save
sudo netfilter-persistent reload
/etc/nftables.conf,重启服务后自动加载。sudo ufw allow 22/tcp),否则可能无法远程登录。ping、telnet等工具验证规则是否生效。/etc/ufw/user.rules或/etc/nftables.conf),便于恢复。