同时,另一方面,它也提供了命令行界面,为系统管理员准备了一套复杂的命令,用来设置复杂的防火墙规则。
UFW 对像 Debian、Ubuntu 和 Linux Mint 这些发布版本来说也是上上之选。
注明:ufw并不是一个防火墙,尽管它叫做Ubuntu firewall,但它本身并没有防火墙的功能,它只是一个管理netfilter防火墙的工具,其核心还是netfilter的iptables
Ubuntu下UFW的安装与防火墙的配置
防火墙的开启与关闭
打开Linux终端 (管他三七二十一,我们先对软件源列表更新下,防止安装软件的时候出现无法定位软件包的问题)
执行更新软件源列表命令:sudo apt-get udpate
安装ufw
执行安装ufw命令: sudo apt-get install ufw (注:Ubuntu下默认已经安装了ufw了)
开启防火墙
注意:在开启防火墙之前,你需要确保你允许了 SSH 连接,否则当你关闭远程连接后,你就无法再连上了。博主自己就曾用这招坑了自己!
执行开启防火墙命令: sudo ufw enable
关闭防火墙
执行关闭防火墙命令: sudo ufw disable
重启防火墙(编辑或新增规则后需要重启防火墙才能生效)
执行重启防火墙命令: sudo ufw reload
查看防火墙状态
执行查看防火墙状态命令: sudo ufw status
例如:我开放了192.168.31.143这个IP,并只为这个IP开放了11211端口,执行sudo ufw status命令后,会显示如下信息
查看UFW状态和配置规则
执行查看防火墙状态和配置规则命令: sudo ufw status verbose
配置防火墙规则
当你需要开始配置你的防火墙规则时,首先,你需要设置默认规则:拒绝所有流入连接,允许流出连接。意思是,不允许任何人连接你的主机,允许主机内的任何应用访问外部网络。
sudo ufw default deny incoming
sudo ufw default allow outgoing
开启一个端口
(开启端口的意思就是:如果一个端口打开了,那么外部网络就可以通过这个端口来访问我们的服务
例如:我在Linux上安装了Memcached服务,它的默认端口号是11211。(我这台Linux服务器的IP地址是192.168.31.165) 现在我在这台Linux服务器中开启防火墙,并打开了这个11211端口,那么外部网络就可以通过192.168.31.165:11211这个地址来请求这个Memcached服务。如果我关闭了这个11211端口,那么外部网络再想通过192.168.31.165:11211这个地址来请求Memcached服务,就会被防火墙拦截,这样外网就无法请求成功了。
执行开启11211端口命令: sudo ufw allow 11211 (即:允许外部访问11211端口)
禁用端口
执行禁用11211端口命令: sudo ufw delete allow 11211 (即:禁止外部访问11211端口)
开放指定IP访问
执行开放IP命令: sudo ufw allow from 192.168.31.1 (即:允许192.168.31.1这个IP访问所有的本机端口)
禁用指定IP访问
执行禁止IP命令: sudo ufw deny allow from 192.168.31.1 (即:禁止192.168.31.1这个IP访问所有的本机端口)
删除规则
(例如:上面定义了一个开放指定IP访问的规则,我们通过下面语句就可以将这条规则删除)
执行删除规则命令: sudo ufw delete allow from 192.168.31.1
(即:删除“允许192.168.31.1这个IP访问所有的本机端口的规则”)
开放指定IP指定端口
sudo ufw allow from 192.168.31.1 to any port 11211 (即:允许192.168.31.1这个IP访问11211这个端口)
指定端口范围 【指定端口范围时,你必须指定协议类型(TCP 或 UDP)】
你可以指定一个端口范围,来配置防火墙策略,当有些服务需要使用多个端口时,这个就起到了作用。
如,为了允许所有 X11 连接,他们使用的端口范围是 6000 ~ 6007,你可以这样配置:
sudo ufw allow 6000:6007/tcp
sudo ufw allow 6000:6007/udp
配置子网
当你需要允许子网内所有的 IP,你可以 CIDR 的格式来配置,例如:当你需要允许 IP 地址从 192.168.1.1 到 192.168.1.254 内所有 IP 的连接时,你可以这样配置:
sudo ufw allow from 192.168.1.1/24
配置子网,并指定端口号
当你需要允许子网内所有的 IP来访问服务器中的11211这个端口的时候,你可以 CIDR 的格式来配置,例如:当你需要允许 IP 地址从 192.168.1.1 到 192.168.1.254 内所有 IP 的连接访问11211这个端口时,你可以这样配置:
sudo ufw allow from 192.168.1.1/24 to any port 11211
使用IPv6
最后的话
最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!
资料预览
给大家整理的视频资料:
给大家整理的电子书资料:
如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!