debian防火墙如何定制化规则
导读:Debian防火墙定制化规则指南 Debian系统中,防火墙定制化主要通过UFW(Uncomplicated Firewall)或iptables/nftables实现。UFW作为简化工具更适合新手,iptables/nftables则提供...
Debian防火墙定制化规则指南
Debian系统中,防火墙定制化主要通过UFW(Uncomplicated Firewall)或iptables/nftables实现。UFW作为简化工具更适合新手,iptables/nftables则提供更底层、灵活的控制。以下是具体操作步骤:
一、UFW(Uncomplicated Firewall)定制化规则
UFW是基于iptables的前端工具,通过直观命令降低配置复杂度,适合大多数日常场景。
1. 安装与基础配置
- 安装UFW:
sudo apt update & & sudo apt install ufw
- 启用UFW:
sudo ufw enable # 启用后,默认拒绝所有入站、允许所有出站
- 设置默认策略(强化安全):
sudo ufw default deny incoming # 拒绝所有入站连接 sudo ufw default allow outgoing # 允许所有出站连接
2. 常见自定义规则
- 允许特定端口:
- 允许HTTP(80端口):
sudo ufw allow 80/tcp
- 允许HTTPS(443端口):
sudo ufw allow 443/tcp
- 允许HTTP(80端口):
- 允许特定服务:
- 允许SSH(系统默认22端口):
sudo ufw allow ssh # 或 sudo ufw allow 22/tcp
- 允许SSH(系统默认22端口):
- 允许/拒绝特定IP:
- 允许单个IP(如192.168.1.100)访问所有端口:
sudo ufw allow from 192.168.1.100
- 拒绝单个IP访问所有端口:
sudo ufw deny from 192.168.1.101
- 允许IP段(如192.168.1.0/24)访问SSH:
sudo ufw allow from 192.168.1.0/24 to any port 22
- 允许单个IP(如192.168.1.100)访问所有端口:
- 允许端口范围:
- 开放2290-2300端口的TCP连接:
sudo ufw allow 2290:2300/tcp
- 开放2290-2300端口的TCP连接:
3. 高级配置
- 限制连接频率(防暴力破解):
- 限制SSH每30秒最多5次新连接:
sudo ufw limit 22/tcp
- 限制SSH每30秒最多5次新连接:
- 启用日志记录(故障排查):
sudo ufw logging on # 日志默认保存至/var/log/ufw.log
- 基于接口的规则:
- 允许eth1接口的172.0.0.0/24网段访问SSH:
sudo ufw allow in on eth1 from 172.0.0.0/24 to any port 22
- 允许eth1接口的172.0.0.0/24网段访问SSH:
4. 管理与持久化
- 查看规则:
- 查看简要规则:
sudo ufw status
- 查看详细规则(含规则编号):
sudo ufw status verbose
- 查看简要规则:
- 删除规则:
- 删除指定端口规则(如80/tcp):
sudo ufw delete allow 80/tcp
- 按规则编号删除(需先查看规则编号):
sudo ufw delete 1 # 删除编号为1的规则
- 删除指定端口规则(如80/tcp):
- 保存规则:
UFW规则默认自动保存至/etc/ufw/user.rules
,重启后仍有效。如需手动导出:sudo ufw export > /etc/ufw/user.rules
二、iptables/nftables定制化规则
iptables是Linux内核级防火墙工具,功能强大但命令复杂;nftables是其替代工具,语法更简洁,适合高级用户。
1. 安装与基础配置
- 安装iptables:
sudo apt update & & sudo apt install iptables
- 安装nftables:
sudo apt update & & sudo apt install nftables
2. iptables常见规则示例
- 查看规则:
sudo iptables -L -n -v # 查看filter表规则 sudo iptables -t nat -L -n -v # 查看nat表规则
- 允许特定IP访问SSH:
sudo iptables -A INPUT -s 192.168.1.100 -p tcp --dport 22 -j ACCEPT
- 拒绝特定IP访问:
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
3. nftables常见规则示例
- 查看规则集:
sudo nft list ruleset
- 允许特定IP访问SSH:
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
4. 持久化规则
- iptables持久化:
- 安装
iptables-persistent
包:sudo apt install iptables-persistent
- 手动保存规则:
sudo netfilter-persistent save sudo netfilter-persistent reload
- 安装
- nftables持久化:
规则默认保存至/etc/nftables.conf
,重启服务后自动加载。
注意事项
- 优先使用UFW:除非需要底层控制,否则推荐UFW,降低误操作风险。
- 避免锁死自己:修改规则前,确保已允许SSH连接(如
sudo ufw allow 22/tcp
),否则可能无法远程登录。 - 测试规则:修改后通过
ping
、telnet
等工具验证规则是否生效。 - 备份规则:定期备份规则文件(如
/etc/ufw/user.rules
或/etc/nftables.conf
),便于恢复。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: debian防火墙如何定制化规则
本文地址: https://pptw.com/jishu/733990.html