04
2023
05
10:05:49

关于UFW防火墙应用小结

简介

LInux原始的防火墙工具iptables由于过于繁琐,所以ubuntu系统默认提供了一个基于iptable之上的防火墙工具ufw。而UFW支持图形界面操作,只需在命令行运行ufw命令即能看到一系列的操作

UFW 全称为Uncomplicated Firewall,是Ubuntu 系统上默认的防火墙组件, 为了轻量化配置iptables 而开发的一款工具。 UFW 提供一个非常友好的界面用于创建基于IPV4,IPV6的防火墙规则。

  Linux 2.4内核以后提供了一个非常优秀的防火墙工具:netfilter/iptables,他免费且功能强大,可以对流入、流出的信息进行细化控制,它可以 实现防火墙、NAT(网络地址翻译)和数据包的分割等功能。netfilter工作在内核内部,而iptables则是让用户定义规则集的表结构。

但是iptables的规则稍微有些“复杂”,因此ubuntu提供了ufw这个设定工具,以简化iptables的某些设定,其后台仍然是 iptables。ufw 即uncomplicated firewall的简称,一些复杂的设定还是要去iptables。(ufw还有图形化的Gufw)


安装部署

apt install ufw  #安装


apt install gufw     #安装图形化ufw


ufw enable          #启用ufw


ufw disable         #禁用

1

2

3

4

5

6

7

ufw的配置文件

ufw相关的文件和文件夹有:

  /etc /ufw/:里面是一些ufw的环境设定文件,如 before.rules、after.rules、sysctl.conf、ufw.conf,及 for ip6 的 before6.rule 及 after6.rules。这些文件一般按照默认的设置进行就ok。

  若开启ufw之 后,/etc/ufw/sysctl.conf会覆盖默认的/etc/sysctl.conf文件,若你原来的/etc/sysctl.conf做了修 改,启动ufw后,若/etc/ufw/sysctl.conf中有新赋值,则会覆盖/etc/sysctl.conf的,否则还以/etc /sysctl.conf为准。当然你可以通过修改/etc/default/ufw中的“IPT_SYSCTL=”条目来设置使用哪个 sysctrl.conf.

  /var/lib/ufw/user.rules 这个文件中是我们设置的一些防火墙规则,打开大概就能看明白,有时我们可以直接修改这个文件,不用使用命令来设定。修改后记得ufw reload重启ufw使得新规则生效。


 ls   /etc /ufw/

 vim  /etc/ufw/sysctl.conf

1

2

安装后,ufw不启动,默认策略:进入数据拒绝,转发拒绝,发出数据允许。默认策略跟踪进入\转发的新连接。除此外还增加了下列默认规则集:


- DROP packets with RH0 headers

1

丢弃含RH0头的数据


- DROP INVALID packets

1

丢弃无效数据


 - ACCEPT certain icmp packets (INPUT and FORWARD): destination-unreach‐

       able, source-quench, time-exceeded, parameter-problem, and echo-request

       for IPv4. destination-unreachable, packet-too-big,  time-exceeded,  pa‐ rameter-problem, and echo-request for IPv6.

1

2

3

ufw的默认的规则

进入数据拒绝

转发拒接

   

发出数据允许

  

默认策略跟踪进入,转发的新链接


除此之外还增加了以下默认规则集:

  DROP packgets with RHO headers

  丢弃RHO头的数据

  DROP INVALID packgets

  丢弃无效数据

  ACCPEPT certain icmp packgets (INPUT and FORWARD)

  允许icmp的输入和转发

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

基本语法和示例

允许和拒绝(特定规则)


(1)允许

# ufw allow <端口> / <可选:协议>

示例:允许在端口53上传入tcp和udp数据包


# ufw  allow  53


示例:允许端口53上的传入tcp数据包


# ufw  allow   53/tcp


示例:允许端口53上的传入udp数据包


# ufw  allow  53/udp




(2)拒绝


# ufw deny <端口> / <可选:协议>

示例:拒绝端口53上的tcp和udp数据包


# ufw deny 53


示例:拒绝端口53上的传入tcp数据包


# ufw deny  53/tcp


示例:拒绝端口53上的传入udp数据包


# ufw deny  53/udp



删除现有规则

要删除规则,只需在原始规则前面加上delete。例如,如果原始规则是:


# ufw deny 80/tcp


使用它删除它:


#  ufw  delete  deny 80/tcp


通过服务名,设置规则

您也可以按服务名称允许或拒绝,因为ufw从/ etc / services中读取 要查看获取服务表:

按服务名称允许


# ufw allow <服务名称>

示例:按名称允许ssh


# ufw allow ssh


按服务名称拒绝

# ufw deny <服务名称>

示例:按名称拒绝ssh


# ufw deny   ssh



服务状态

检查ufw的状态将告诉您ufw是启用还是禁用,并且还列出了应用于iptables的当前ufw规则。

要检查ufw的状态:


# ufw status

Status: active

Logging: on (low)         //有效正在登录:(低)

Default: deny (incoming), allow (outgoing), disabled (routed)

New profiles: skip     //默认值:拒绝(传入),允许(传出)新的个人资料:跳过用户


To                         Action      From

--                         ------      ----

22                         ALLOW IN    Anywhere       

53                         DENY IN     Anywhere

22                         ALLOW IN    192.168.200.20



如果未启用ufw,则输出为:


# ufw status

Status: inactive


要启用日志记录,请使用:


#  ufw logging on


要禁用日志记录,请使用:


#  ufw   logging   off


高级语法

还可以使用更完整的语法,指定源和目标地址,端口和协议。

语法格式:

68e318836da59cad6682abaf26cfb0d9_9dc50b0fe88e40d89ba78c2ae7714667.png


例如:


ufw route allow in on eth0 out eth1 to 172.16.0.0/24 from 192.168.1.0/24 


高级ufw防火墙规则编写

允许访问

b5bdf5d354f0ecb8623bab11b57f2ba3_3e171388dfeb4824862f07404cedd04b.png

(1)允许子网


(2)允许特定端口的ip地址访问

image.png

例如:


ufw allow from 192.168.1.1 to any port 22 

1

(3)允许通过特定端口,ip地址,协议访问

f53845ad954ba8635c58d234e00a7133_568db34dbeb34e3cbd9127f7bc0459c5.png

例如:


root@fff-PC:~# ufw allow from 192.168.58.102 to any port 22 proto tcp



(4)允许ping或者禁止ping


如果要禁止ping则,编辑 vim /etc/ufw/before.rules 文件,删除一下几项


root@fff-PC:~# cat  /etc/ufw/before.rules | grep icmp

# ok icmp codes for INPUT

-A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT

-A ufw-before-input -p icmp --icmp-type time-exceeded -j ACCEPT

-A ufw-before-input -p icmp --icmp-type parameter-problem -j ACCEPT

-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT



或者修改为“丢弃”

8838c599246679d93b6a282b201693c1_5ed106761f4b48f8a0332a6e646c76b6.png


拒接访问

(1)拒绝指定ip地址访问

image.png

例如:


root@fff-PC:~# ufw deny from 10.0.0.1 

Rule added

root@fff-PC:~# ufw status 

Status: active


To                         Action      From

--                         ------      ----

22                         ALLOW       Anywhere                  

22/tcp                     ALLOW       192.168.58.102            

Anywhere                   DENY        10.0.0.1                  

22 (v6)                    ALLOW       Anywhere (v6)      


(2)拒绝某个ip地址访问指定端口

image.png

例如:


root@fff-PC:~# ufw deny from 10.0.0.1 to any port 8888

Rule added

root@fff-PC:~# ufw status 

Status: active


To                         Action      From

--                         ------      ----

22                         ALLOW       Anywhere                  

22/tcp                     ALLOW       192.168.58.102            

Anywhere                   DENY        10.0.0.1                  

Anywhere                   DENY        10.0.0.1 8888             

8888                       DENY        10.0.0.1                  

22 (v6)                    ALLOW       Anywhere (v6)    


(3)使用编号规则

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述




推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://hqyman.cn/post/4043.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: