侧边栏壁纸
博主头像
v林羽博主等级

行动起来,活在当下

  • 累计撰写 171 篇文章
  • 累计创建 34 个标签
  • 累计收到 12 条评论

目 录CONTENT

文章目录

【Linux使用】之--UFW防火墙篇

v林羽
2022-06-10 / 0 评论 / 0 点赞 / 239 阅读 / 7155 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2023-11-01,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

【Linux使用】之–UFW防火墙篇

#Linux #教程 #手册 #系统 #安全防护 #Ubuntu

Uncomplicated Firewall,简称UFW,是Ubuntu系统上默认的防火墙组件。UFW是为轻量化配置iptables而开发的一款工具。UFW提供一个非常友好的界面用于创建基于IPV4,IPV6的防火墙规则。UFW在 Ubuntu 8.04 LTS 后的所有发行版中默认可用。UFW的图形用户界面叫Gufw。

1. ufw防火墙状态查看及安装

ufw在ubuntu系统下一般是默认已安装,未启用状态。

1.1. 启用ufw

查看ufw服务状态:

service ufw status

查看ufw开启状态:

ufw status

启用:

ufw enable

1.2. 安装ufw

如果未按装,可以使用一下命令进行安装:

apt install ufw -y

UFW安装后,启动UFW服务并使其在启动时启动(一般在完成默认配置后再重启):

ufw enable
ufw status

输出结果:

Status: active

还可以通过运行以下命令来禁用UFW防火墙(后面可以通过enable命令随时启用服务):

ufw disable

2. 配置及使用

UFW配置文件情况

  • 默认情况下,ufw的配置文件在/etc/default/ufw,然后用户定义的防火墙规则文件会存在/etc/ufw/*.rules/lib/ufw/*.rules
  • 虽然可以通过命令行添加简单的规则,但仍有可能需要添加或删除更高级或特定的规则。 在运行通过终端输入的规则之前,UFW将运行一个文件 before.rules,它允许回环接口、ping 和 DHCP 等服务。要添加或改变这些规则,编辑 /etc/ufw/before.rules 这个文件。 同一目录中的 before6.rules 文件用于 IPv6 。
  • 还存在一个 after.rule 和 after6.rule 文件,用于添加在 UFW运行你通过命令行输入的规则之后需要添加的任何规则。还有一个配置文件位于 /etc/default/ufw,从此处可以禁用或启用 IPv6,可以设置默认规则,并可以设置UFW以管理内置防火墙链。

2.1. 默认策略

UFW默认策略设置为阻止所有传入流量并允许所有传出流量,日常使用只需要打开部分端口接受传入连接,关闭其他的端口。ufw default 可以用于设置对传入和传出连接的默认设置,然后自己依据使用情况设置自己的规则:

ufw default allow outgoing
ufw default deny incoming

设置完后,UFW配置会在重启后生效,它将拒绝所有传入的连接。ssh也不例外,所以我们需要设置允许ssh连接:

ufw allow ssh

创建防火墙规则默认的22端口上的所有连接,如果已经修改了ssh的登录端口,需要按照下了命令指定开放对应的端口:

ufw allow 22

2.2. 基础使用

2.2.1. 开放端口,允许传入

ufw allow 22

UFW可以基于TCP或UDP协议来过滤对应端口的数据包:

ufw allow 80/tcp
ufw allow 21/udp

2.2.2. 查看状态或修改结果

ufw status verbose

ufw show added

有如下输出:

# 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 show added

ufw allow 80/tcp
ufw allow 21/udp

2.2.3. 关闭端口,拒绝传入

ufw deny 80
ufw deny 21

2.2.4. 删除规则

ufw delete allow 500
ufw delete allow http
ufw delete deny 21

也可以按编号删除规则,使用以下命令查看规则及其编号:

ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 80                         ALLOW IN    Anywhere                  
[ 2] 443                        ALLOW IN    Anywhere     
[ 3] 25                         ALLOW IN    Anywhere     
[ 4] 2591                       ALLOW IN    Anywhere     
ufw delete 3

2.2.5. 特定端口范围

有些情况需要指定端口范围,但指定端口范围时,必须指定规则协议:

ufw allow 6500:6505/tcp
ufw allow 6600:6602/udp

2.2.6. 特定IP地址规则

允许/禁用来自特定IP地址的连接:

ufw allow from 192.168.0.2
ufw deny from 192.168.0.15

2.2.7. 特定IP地址范围

ufw allow from 192.168.0.0/24

2.2.8. 特定IP地址,特定端口

ufw allow from 192.168.0.2 to any port 22

2.2.9. 指定TCP/UDP协议

ufw allow from 192.168.0.2 to any port 22 proto tcp

2.2.10. 启用日志

sudo ufw logging on
sudo ufw logging off
sudo ufw logging low|medium|high    # 指定日志级别日志文件/var/log/ufw.log

日志的格式

其中前面列出了主机防火墙日志的日期、时间、主机名,后面的内容意思是:

[UFW BLOCK]:表示事件描述的开始以及是何种事件。在此例中,它表示阻止了连接。
IN:如果它包含一个值,那么代表该事件是传入事件
OUT:如果它包含一个值,那么代表事件是传出事件
MAC:目的地和源 MAC 地址的组合
SRC:IP数据包的源IP
DST:目的地的IP
LEN:数据包长度
TTL:数据 TTL,或称为time to live。
PROTO:数据包的协议
SPT:数据包的源端口
DPT:目标端口
WINDOW:发送方可以接收的数据包的大小
SYN URGP:指示是否需要三次握手。 0 表示不需要。

2.2.11. 重置防火墙

禁用ufw,并删除所有定义的规则,默认情况下,ufw 会备份规则。

ufw reset

2.2.12. 对IPV6的支持

最新版的UFW默认启用了IPV6配置,你也可以通过以下命令进行检查,可以看到以下输出:

cat /etc/default/ufw | grep -i ipv6

输出结果:

IPV6=yes

如果输出为IPV6=no,可以使用vim编辑该文件将其改为yes。

高级用法可登录Ubuntu Wiki:UFW - Community Help Wiki

0

评论区