关于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         #禁用

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

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

- DROP packets with RH0 headers

丢弃含RH0头的数据

- DROP INVALID packets

丢弃无效数据

 - 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.

ufw的默认的规则

进入数据拒绝
	
转发拒接
   
发出数据允许
  
默认策略跟踪进入,转发的新链接

除此之外还增加了以下默认规则集:
 	DROP packgets with RHO headers
 	丢弃RHO头的数据
 	DROP INVALID packgets
 	丢弃无效数据
 	ACCPEPT certain icmp packgets (INPUT and FORWARD)
 	允许icmp的输入和转发

基本语法和示例

允许和拒绝(特定规则)

(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

高级语法

还可以使用更完整的语法,指定源和目标地址,端口和协议。
语法格式:
在这里插入图片描述
在这里插入图片描述
例如:

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

高级ufw防火墙规则编写

允许访问
在这里插入图片描述
(1)允许子网
在这里插入图片描述
(2)允许特定端口的ip地址访问
在这里插入图片描述
例如:

ufw allow from 192.168.1.1 to any port 22 

(3)允许通过特定端口,ip地址,协议访问
在这里插入图片描述
例如:

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

或者修改为“丢弃”
在这里插入图片描述

拒接访问
(1)拒绝指定ip地址访问
在这里插入图片描述
例如:

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地址访问指定端口
在这里插入图片描述
例如:

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)使用编号规则
在这里插入图片描述
例如:

root@fff-PC:~# ufw status numbered 
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22                         ALLOW IN    Anywhere                  
[ 2] 22/tcp                     ALLOW IN    192.168.58.102            
[ 3] Anywhere                   DENY IN     10.0.0.1                  
[ 4] Anywhere                   DENY IN     10.0.0.1 8888             
[ 5] 8888                       DENY IN     10.0.0.1                  
[ 6] 22 (v6)                    ALLOW IN    Anywhere (v6)             

root@fff-PC:~# ufw delete 4
Deleting:
 deny from 10.0.0.1 port 8888
Proceed with operation (y|n)? y
Rule deleted
root@fff-PC:~# ufw status numbered 
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22                         ALLOW IN    Anywhere                  
[ 2] 22/tcp                     ALLOW IN    192.168.58.102            
[ 3] Anywhere                   DENY IN     10.0.0.1                  
[ 4] 8888                       DENY IN     10.0.0.1                  
[ 5] 22 (v6)                    ALLOW IN    Anywhere (v6)             

root@fff-PC:~# 

应用程序配置文件命令
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
防火墙规则优化
随着设置规则的增加,可能会产生许多相互矛盾的规则,应及时的调整和修改。
而且规则编号也会跟着变动。

ufw日志功能
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值