摘要
正在生成中……
UFW
,英文名为Uncomplicated Firewall
,不复杂防火墙,这玩意可以看成是iptables
的简化版,它的定位就是让原本复杂的iptables
设定变得平易近人,所以大部分规则都相当简练,大大降低了学习成本,这里总结了实际中比较常见的用法。
安装:
Ubuntu20.04 LTS
已经自带,centos
需要从 EPEL 软件源中安装
yum install epel-release -y
yum install --enablerepo="epel" ufw -y
查看ufw
状态,注意:默认是未激活的。
ufw status
#输出 Status: inactive
启用
ufw enable
#激活,警告:可能影响ssh连接,会在重启后激活
#Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
#Firewall is active and enabled on system startup
ufw disable
#禁用
查看默认设置
#查看是否支持了ipv6
cat /etc/default/ufw | grep -i ipv6
# Set to yes to apply rules to support IPv6 (no means only IPv6 on loopback
IPV6=yes
一般设置
设置默认策略
ufw default allow outgoing #允许所有出站
ufw default deny incoming #禁止所有入站,除了明确放行的规则外
允许ssh入站
ufw allow ssh #如果修改了ssh默认22端口,需要指定端口
ufw allow 22 #或者指定端口
允许http/https入站
ufw allow http
ufw allow https
也可以通过协议和端口来指定,如:
ufw allow 80/tcp
ufw allow 21/udp
禁止连接
ufw deny 22 #封锁22端口的连接
可以指定端口范围
ufw allow 6000:6007/tcp # 允许 TCP 6000~6007 tcp连接
ufw allow 6000:6007/udp # 允许 UDP 6000~6007 udp连接
查看规则
ufw status verbose #普通模式,可以查看默认策略及各端口的规则
ufw status numbered #对规则编号,方便删除操作
删除规则
ufw delete allow http #在原始规则前加delete
ufw delete 2 #根据ufw status numbered打印出来的规则编号删除
如果想重设所有规则
ufw reset
针对特定 IP 的规则
上面的规则是针对所有ip的,如果只想针对某个ip,可以这样设置
ufw allow from 192.168.29.36 #允许某个ip的全部连接
ufw deny from 192.168.29.36 #禁止某个ip的全部连接
还可以指定IP范围或者指定协议
ufw allow from 192.168.11.0/24 # 允许 192.168.11.1~192.168.11.255 的所有连接
ufw deny from 192.168.11.7 to any port 22 proto tcp #只禁止192.168.11.7 连接到22端口的tcp协议
一些复杂的例子
ufw deny from 192.168.0.4 to any port 22
ufw deny from 192.168.0.10 to any port 22
ufw allow from 192.168.0.0/24 to any port 22
以上命令将会阻止从192.168.0.4和192.168.0.10访问端口22,但允许该网段其他IP访问端口22。
update20240515