×

ufw:简易防火墙设置菜鸟专用手册

Falcon 2022-05-16 views:
摘要

正在生成中……

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

通过dmesg可以查看ufw屏蔽的日志,对debug很有用。

sudo dmesg  | grep "UFW BLOCK"
 
 
本文收录于