Ubuntu 防火墙的配置--ufw工具的使用
1.ufw安装
Ubuntu22.04默认安装了ufw,若没有安装,则使用以下命令安装:
sudo apt-get install ufw
2.查看ufw的状态
一般ufw是不会开启的,激活ufw用sudo ufw enable来激活。需要注意的是,在激活的时候,默认是不允许ssh端口连接的,ufw会保持当前的连接,这时候执行sudo ufw allow ssh 来开启ssh的端口。如果不执行,重启后下次ssh连接就不能正常连接,因为ufw默认允许内部流量出去,但不允许外部流量进来。
你可以通过下面的命令来检查ufw的状态。
sudo ufw status verbose
一般ufw命令只能在具有sudo权限的用户以及root用户下执行。执行完上面的命令后,如果开启了ufw则会输出下面这段文字和防火墙的规则。
Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip
如果没有激活ufw,则输出应该为Status: inactive 。
查看ufw的规则还有另一条命令
sudo ufw status
这条指令相比于上面的sudo ufw status verbose。这条指令则没有上面那条输出的信息多,上面那条指令会输出更为详细的端口规则。
还有一条查看的命令会给规则前面加上序列号,通过序列号可以删除规则。
sudo ufw status numbered
3.端口规则设置
ufw激活后的默认的策略是允许出去,不允许流量进来,这个可以在ufw的配置文件中看到。在配置文件/etc/default/ufw中可以看到DEFAULT_OUTPUT_POLICY=“ACCEPT”,如果需要端口可以出去,则需要自己配置。
可以通过ufw的命令来直接修改端口规则。
命令格式为: ufw allow port_number/protocol
ufw配置了一些特定的端口的规则,我们可以直接用。
sudo ufw allow http #允许http连接 sudo ufw denty http #阻止http连接
这些特定的端口定义在文件/etc/services 中。
我们也可以自己配置端口的规则。
sudo ufw allow 22/tcp #允许22端口的TCP sudo ufw allow 22/udp #允许22端口的UDP sudo ufw denty 22/tcp #阻止22端口的TCP sudo ufw denty 22/udp #阻止22端口的UDP
如果不带有TCP或者UDP,则默认两种都可以。
sudo ufw allow 22 #允许22端口的连接 sudo ufw denty 22 #阻止22端口的连接
如果要配置一组连续的端口,则可以这样。
sudo ufw allow 20:22/tcp #允许20到22端口的TCP sudo ufw denty 20:22/tcp #阻止20到22端口的UDP
4.设置特定IP连接
可以设置特定的IP可以连接过来。
sudo ufw allow from xx.xx.xx.xx #允许特定IP连接过来 sudo ufw denty from xx.xx.xx.xx #阻止特定IP访问
指定特定IP连接到特定端口:
sudo ufw allow from xx.xx.xx.xx to any poart 22 #允许特定IP通过端口22 sudo ufw denty from xx.xx.xx.xx to any poart 22 #阻止特定IP通过端口22
设置特定的子网连接:
sudo ufw allow from xx.xx.xx.xx/24 #允许特定子网连接 sudo ufw denty from xx.xx.xx.xx/24 #阻止特定子网连接
5.配置出入
默认的规则都是进来的,我们可以通过in和out配置。
sudo ufw allow in 22 #允许22端口的流量进来 sudo ufw denty in 22 #阻止22端口的流量进来 sudo ufw allow out 22 #允许22端口的流量出去 sudo ufw denty out 22 #阻止22端口的流量出去
6.删除端口规则
删除有两种方式:
通过在规则前面加上delete删除规则。
sudo ufw delete allow 22/tcp #删除 allow 22/tcp这条规则
还有一种方法是通过查看规则序列号来删除。
sudo ufw status numbered
#执行后的接结果
Status: active To Action From -- ------ ---- [ 1] 22/tcp ALLOW IN Anywhere [ 2] 80/tcp ALLOW IN Anywhere [ 3] 8080/tcp ALLOW IN Anywhere sudo ufw delete 1 #删除第一条规则。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战