UFW防火墙的使用
介绍
- Linux下使用的一款iptables规则管理工具,一般在非红帽系Linux上使用较多
- 与红帽系OS上的firewalld服务功能相同
- 这里有必要说明的一点就是无论是firewalld还是iptables服务,或者是这里说的ufw,它们自身都不具备防火墙的能力,而iptables才是真正的防火墙,是在Linux网络里本身就实现的,通过iptables规则进行工作.
而firewalld、iptables服务、ufw等都是iptables规则的管理工具,也就是说即使没有这几个服务,系统里防火墙功能都是存在的 - 综上,如果你熟悉使用iptables规则,那么完全可以不依赖上述工具,自己编写规则即可!!!
参考
UFW 简单防火墙安装、配置、禁 Ping
debian让ufw日志不要输出在messages和dmesg
在Ubuntu中用UFW配置防火墙
基本配置
- 配置文件
ufw的配置文件在/etc/ufw/
目录下,所有的初始规则都在这里
自身动作的配置在/etc/default/ufw
文件里,这里可以配置是否管理ipv6等自身参数配置
修改完成配置后需要重新加载进行生效ufw reload
- 日志记录
ufw默认会通过rsyslog
日志分发服务以及dmesg
中记录日志,而这个日志量是非常大的,尤其是网络比较繁忙的时候- 关闭syslog日志中的ufw日志打印
将配置文件/etc/rsyslog.d/20-ufw.conf
中的最后的& stop
取消注释,然后通过下面命令重启rsyslog服务即可systemctl restart rsyslog
- 关闭整个ufw的日志
上面的方法只能不让ufw输出日志到syslog里,但是dmesg还是会打印很多,这里参考网友的方式直接将ufw的日志关闭即可ufw logging off
logging的参数有full high low medium off on
默认打开的级别是low
- 关闭syslog日志中的ufw日志打印
- 使能
ufw enable
这里要注意,ufw的默认规则中是没有打开22端口的,所以需要在打开前先配置ssh服务的规则,否则容易造成无法链接的情况 - 查询状态
ufw status
- 关闭
ufw disable
- 重置
ufw reset
- 帮助
ufw help
常用配置规则命令
添加规则
- 允许22端口通过
ufw allow 22
- 将对应规则插入到第一条
ufw insert 1 allow 22
- 查看可以操作的服务
ufw app list
- 允许ssh服务通过
ufw allow OpenSSH
这里如何知道服务到底用的哪个端口呢?ufw是从/etc/services
这个文件中获取的 - 允许22-30的所有端口通过
ufw allow 22:30
- 放通ipv4的22端口的tcp协议
ufw allow to 0.0.0.0/0 port 22 proto tcp
- 放通从192.168.0.89的22端口的tcp协议
ufw allow from 192.168.0.89 to any port 22 proto tcp
- 放通从192.168.0.0/24网段的22端口的tcp协议
ufw allow from 192.168.0.0/24 port 22 proto tcp
- 禁止从192.168.0.123的ip到192.168.0.120的所有报文
ufw deny from 192.168.0.123 to 192.168.0.120
删除规则
- 按添加规则的命令进行删除
就是在你添加规则命令的前面加个delete
即可,例如删除22端口通过的规则ufw delete allow 22
删除ssh服务通过的规则ufw delete allow OpenSSH
当然如果你不知道这个规则添加的详细命令,可以自己撰写命令去删除,只要你这个命令能够添加这个规则,那么就能删除,自行体会!!! - 按照命令编号进行删除
通过该命令显示每个规则的编号ufw status numbered
然后通过编号进行规则的删除,例如删除1号规则ufw delete 1
- 如果要全部删除,那么直接
reset
即可
日志详情
- [UFW BLOCK]:这是记录事件的描述开始的位置。这里,它表示阻止了连接
- IN:如果它包含一个值,那么代表该事件是传入事件
- OUT:如果它包含一个值,那么代表事件是传出事件
- MAC:目的地和源 MAC 地址的组合
- SRC:包源的 IP
- DST:包目的地的 IP
- LEN:数据包长度
- TTL:数据包 TTL,或称为 time to live。 在找到目的地之前,它将在路由器之间跳跃,直到它过期
- PROTO:数据包的协议
- SPT:包的源端口
- DPT:包的目标端口
- WINDOW:发送方可以接收的数据包的大小
- SYN URGP:指示是否需要三次握手,0 表示不需要
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 追逐笔记!
评论