×

Ubuntu配置UFW防火墙

dingpeng dingpeng 发表于2024-01-10 14:51:41 浏览262 评论0

抢沙发发表评论

Ubuntu配置UFW防火墙

转载自:https://www.cnblogs.com/52by/articles/14083408.html

查看当前防火墙状态

  sudo ufw status   命令查看当前防火墙状态;

       inactive状态是防火墙关闭状态     active是开启状态。

 

开启防火墙

     使用   sudo ufw enable   命令来开发防火墙 

关闭防火墙

     使用   sudo ufw disable   命令来关闭防火墙。

 

Ubuntu中其他常用的防火墙命令

ufw default allow/deny:外来访问默认允许/拒绝

ufw allow/deny 20:允许/拒绝 访问20端口,20后可跟/tcp或/udp,表示tcp或udp封包。

ufw allow/deny servicename:ufw从/etc/services中找到对应service的端口,进行过滤。

ufw allow proto tcp from 10.0.1.0/10 to 本机ip port 25:允许自10.0.1.0/10的tcp封包访问本机的25端口。

ufw delete allow/deny 20:删除以前定义的"允许/拒绝访问20端口"的规则

 

例如开启允许80端口被访问,如下图所示

 

以上内容收集整理于百度经验

https://jingyan.baidu.com/article/73c3ce283ee2c1e50343d9f6.html

配置默认策略

sudo vim /etc/default/ufw

有如下默认规则:(开启IPV6访问)

IPV6=yes

这个开启时,写一条规则将自动变成两条:IPv4的和IPv6的;如果用不上的话可以将其改为no。

配置进入规则

默认情况下开启ufw,会禁止一切从外到内的连接,可以直接建立白名单规则。

也可以手动配置是否禁用一切进入:

sudo ufw default allow incoming
sudo ufw default deny incoming

单个端口

开放ssh:

sudo ufw allow ssh

等价于

sudo ufw allow 22

因为在/etc/services文件中记录了ssh对应的端口是22。

范围端口

开放6000到6007之间的TCP、UDP端口:

sudo ufw allow 6000:6007/tcp
sudo ufw allow 6000:6007/udp

限定外部ip

sudo ufw allow from 203.0.113.4

这里的IP也可以是一个网段:

sudo ufw allow from 203.0.113.0/24

限定外部ip+内部port

允许某个IP连接ssh:

sudo ufw allow from 203.0.113.4 to any port 22

限定网络接口

若有多个网络接口,可以通过allow in on限定允许接入的网络接口,比如指定只能从eth0网络接口访问80端口:

sudo ufw allow in on eth0 to any port 80

配置外出规则

也可以限制从内向外的连接,这样能防止连接到反弹木马等不可预料的服务上。

默认情况下是允许一切外出连接的,这里先禁止一切外出,再添加白名单:

sudo ufw default deny outgoing

限定连向某个端口

sudo ufw allow out 53 # DNS 53

限定连向某个IP+端口

sudo ufw allow out to 11.22.33.44 port http   # TCP 80sudo ufw allow out to 11.22.33.44 port https  # TCP 443

限定从某个网络接口外出

sudo ufw allow out on ens33 to any port 53

查看状态和管理规则

查看防火墙状态:

sudo ufw status
sudo ufw status verbose

查看带编号的规则,删除第2条:

sudo ufw status numbered
sudo ufw delete 2

也可以删除指定的端口

sudo ufw delete allow http

sudo ufw delete allow 80

这个能同时删除 IPv4 和 IPv6 的规则。

重启 UFW 服务:

ufw reload

禁用ICMP

为了防止nmap等软件扫描,可以禁用ICMP响应。

修改配置文件/etc/ufw/before.rules

  cp /etc/ufw/before.rules /etc/ufw/before.rules_backup_date

vim /etc/ufw/before.rules

初始内容如下:

# 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 source-quench -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

将上面的ACCEPT修改为DROP:

# ok icmp codes for INPUT-A ufw-before-input -p icmp --icmp-type destination-unreachable -j DROP
-A ufw-before-input -p icmp --icmp-type source-quench -j DROP
-A ufw-before-input -p icmp --icmp-type time-exceeded -j DROP
-A ufw-before-input -p icmp --icmp-type parameter-problem -j DROP
-A ufw-before-input -p icmp --icmp-type echo-request -j DROP

重启 UFW 服务即可:

  ufw reload

以上内容来源于: https://blog.csdn.net/zhang35/article/details/105787009/