🍬 博主介绍
👨?🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ?主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞?评论?收藏 == 养成习惯(一键三连)😋 🎉欢迎关注💗一起学习👍一起讨论??一起进步📝文末有彩蛋 🙏作者水平有限,欢迎各位大佬指点,相互学习进步!
一、ufw 介绍
UFW,或称Uncomplicated Firewall,是iptables的一个接口,为不熟悉防火墙概念的初学者提供了易于使用的界面,同时支持IPv4和IPv6,广受欢迎。 ufw程序用于管理Linux防火墙,旨在为用户提供易于使用的界面。 Linux原始的防火墙工具iptables由于过于繁琐,所以ubuntu系统默认提供了一个基于iptables之上的防火墙工具ufw。而UFW支持图形界面操作,只需在命令行运行ufw命令即能看到一系列的操作。
二、ufw 安装
任意一台安装有Linux发行版的主机 root权限(以下命令默认在root账户下运行,如果是其他账户,使用sudo也是一样的) Kali是基于Debian,我用kali和centos分别演示以下安装,后面的命令就不演示了,直接用就行
1、Ubuntu & Debian
1.安装防火墙
apt-get install ufw -y
2.验证安装成功
ufw status
2、CentOS
1.安装EPEL软件源
CentOS默认软件源不提供UFW,所以你需要安装EPEL软件源,运行以下命令
yum install epel-release -y
2.安装UFW防火墙
安装完成后使用以下命令安装UFW
yum install --enablerepo="epel" ufw -y
验证安装成功
ufw status
三、ufw 常用命令参数
1、语法格式:ufw [参数]
常用参数如下
enable 启动ufw
disable 关闭ufw
reload 重新加载ufw
logging on|off|LEVEL 日志 启动|关闭|级别
reset 重置配置
status 查看状态
show REPORT 显示“报告”
allow 允许
deny 拒绝
delete 删除
2、实例讲解
ufw enable 设置开机启动ufw,启动ufw
ufw disable 禁止开机启动,关闭ufw
ufw reload 重启ufw防火墙
ufw status 显示防火墙状态及规则
ufw reset 重置ufw防火墙配置(这将禁用UFW并删除之前定义的任何规则)
ufw show raw 显示“报告”
ufw allow ssh 允许ssh进入
ufw deny ssh 拒绝ssh进入
ufw delete allow ssh 删除允许ssh进入这条记录
四、ufw 进阶命令
1、开启Ipv6
最新版的UFW默认启用了IPV6配置,你也可以通过以下命令进行检查,可以看到以下输出
cat /etc/default/ufw | grep -i ipv6
IPV6=yes
如果输出为IPV6=no,可以使用vim编辑该文件将其改为yes。
2、设置UFW默认策略
默认情况下,UFW默认策略设置为阻止所有传入流量并允许所有传出流量,你可以使用以下命令来设置自己的默认策略
ufw default allow outgoing(允许传出)
ufw default deny incoming(拒绝传入)
如果现在重启机器(这会儿不要这么做),UFW配置会在重启后生效,它将拒绝所有传入的连接。因为我们没有允许SSH连接,这意味着,重启过后我们将无法远程连接到服务器。如果我们希望服务器响应这些类型的请求,我们就需要明确指定允许传入连接的规则 (例如SSH或HTTP连接)。
3、允许端口 / 协议(port)(协议)
要将防火墙配置为允许传入SSH连接,可以使用以下命令
ufw allow ssh
这将创建防火墙规则允许端口22上的所有连接,这是SSH守护程序默认监听的端口,类似的快捷指令还有
ufw allow http
ufw allow https
实际上也可以通过直接指定端口来创建等效规则,下面这条命令将产生相同的结果
ufw allow 22
如果你的SSH守护程序配置在其他端口,则需要手动指定相应的端口。
4、TCP / UDP 过滤数据包(port/tcp)(port/udp)
UFW可以基于TCP或UDP协议来过滤数据包,命令如下:
ufw allow 80/tcp
ufw allow 21/udp
之后使用以下命令检查已添加规则的状态,应该可以看到如下输出
ufw status verbose
Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), deny (routed) New profiles: skip To Action From 80/tcp ALLOW IN Anywhere 21/udp ALLOW IN Anywhere 80/tcp (v6) ALLOW IN Anywhere (v6) 21/udp (v6) ALLOW IN Anywhere (v6)
还可以使用以下命令随时拒绝指定端口任何传入和传出的流量:
ufw deny 80
ufw deny 21
5、删除规则(delete)
如果要删除HTTP允许的规则,只需在原始规则前加上delete即可,如下所示:
ufw delete allow http
ufw delete deny 21
也可以按编号删除规则,使用以下命令查看规则及其编号:
ufw status numbered
OutputStatus: active To Action From – ------ ---- [ 1] 22/tcp ALLOW IN Anywhere [2] 443/tcp ALLOW IN Anywhere [3] 22/tcp (v6) ALLOW IN Anywhere (v6) [4] 443/tcp (v6) ALLOW IN Anywhere (v6) 举例 要删除允许端口443上的HTTPS连接规则,也就是编号2 删除完规则后编号会自动更新
ufw delete 2
在设置完规则后,重启机器即可完成UFW配置。
6、指定端口范围(port:port)
某些应用程序使用多个端口而不是单个端口,你可能需要使用UFW指定端口范围,指定端口范围时,必须指定规则应适用的协议( tcp或udp ) 例如,要允许使用端口9000-9002范围内的连接,可以使用以下命令
ufw allow 9000:9002/tcp
ufw allow 9000:9002/udp
7、指定IP地址(from ip)
出于某些情况,你可能需要允许/禁用来自特定IP地址的连接,如下
ufw allow from 192.168.29.36
ufw deny from 192.168.29.36
还可以在UFW中允许IP地址范围,以下命令将允许从192.168.1.1到192.168.1.254的所有连接
ufw allow from 192.168.1.0/24
要允许IP地址192.168.29.36连接特定的端口80,可以运行以下命令:
ufw allow from 192.168.29.36 to any port 80
进一步的,可以指定TCP/UDP:
ufw allow from 192.168.29.36 to any port 80 proto tcp
8、实例讲解
ufw status [verbose | numbered] 查看规则、状态 【详细 | 序号】
ufw enable | disable | reload | reset 开启、关闭、重启、重置
ufw logging on | off | LEVEL 日志 启动\关闭\级别
ufw allow 53 允许使用53端口
ufw allow 25/tcp 允许使用25端口,且为TCP协议
ufw allow smtp 允许smtp应用
ufw allow in http 允许http应用数据进入本机
ufw deny proto tcp to any port 80 拒绝指向任意地址使用80端口tcp协议的数据进入本机
ufw allow in on eth0 from 192.168.0.0/16 允许来自192.168.0.0-192.168.255.255的数据通过eth0网卡进入主机
ufw allow out on eth1 to 10.0.0.0/8 允许指向10.0.0.0-10.255.255.255的数据通过eth1网卡从本机发出
ufw deny from 192.168.0.4 to any port 22 阻止从192.168.0.4访问端口22
ufw deny from 192.168.0.10 to any port 22 阻止从192.168.0.10访问端口22
ufw allow from 192.168.0.0/24 to any port 22 允许所有IP访问端口22
|