ubuntu 使用防火墙firewalld
一、ubuntu22.04安装防火墙firewalld
1、安装防火墙
sudo apt install -y firewalld
2、开启防火墙
sudo systemctl start firewalld
3、开机启动防火墙
sudo systemctl enable firewalld
4、查看防火墙状态
sudo systemctl status firewalld
二、ubuntu防火墙的基本命令
1、查看版本: firewall-cmd --version
2、查看帮助: firewall-cmd --help
3、显示状态: firewall-cmd --state
4、查看所有打开的端口: firewall-cmd --zone=public --list-ports
5、更新防火墙规则: firewall-cmd --reload
6、查看区域信息: firewall-cmd --get-active-zones
7、查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0
8、拒绝所有包:firewall-cmd --panic-on
9、取消拒绝状态: firewall-cmd --panic-off
10、查看是否拒绝: firewall-cmd --query-panic
三、firewalld应用实例
1、增加“开放端口”
firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
2、重新载入配置
firewall-cmd --reload
3、查看”已经开放“的端口
firewall-cmd --zone=public --query-port=80/tcp
4、关闭“开放端口”
firewall-cmd --zone=public --remove-port=80/tcp --permanent
你需要安装 libxml2库和和libxslt库相关的依赖项。
这边看到您的系统是Ubuntu系统需要执行的安装libxml2库命令是:
apt-get update -y
apt-get install libxml2 libxml2-dev libxslt-dev -y
安装完成后再尝试安装nginx。如果使用以上安装命令提示没有相应的软件依赖,您可以尝试更换系统的软件源来进行再次安装。
安装 UFW
如还没有安装,可以使用 apt 命令来安装
1、更新软件包
sudo apt update
2、安装 UFW
sudo apt install ufw
3、如果你在远程位置连接你的服务器,在启用 UFW 防火墙之前,你必须显式允许进来的 SSH 连接。否则,你将永远都无法连接到机器上。
sudo ufw allow 22/tcp
如果 SSH 运行在非标准端口,你需要将上述命令中的 22 端口替换为对应的 SSH 端口。
4、启动 UFW
sudo ufw enable
在使用前,你应该检查下 UFW 是否已经在运行。
ufw status #查看防火墙状态
ps -ef|grep xxxx #查看服务状态
如果你发现状态是 inactive ,意思是没有被激活或不起作用。
启用/禁用(重启防火墙)
ufw enable #启用
ufw disable #禁用
#防火墙解除(甲骨文云)
开放所有端口
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
Ubuntu镜像默认设置了Iptable规则,关闭它
apt-get purge netfilter-persistent
reboot
或者强制删除
rm -rf /etc/iptables && reboot
TextCopy
使用与配置
列出当前UFW规则
ufw status verbose
添加规则
允许入站(allow)
默认情况,没有允许就是拒绝(入站),使用 ufw allow <端口> 来添加允许访问的端口或协议。
ufw allow smtp #允许所有的外部IP访问本机的25/tcp (smtp)端口
ufw deny smtp #禁止外部访问smtp服务
ufw allow 22/tcp #允许所有的外部IP访问本机的22/tcp (ssh)端口
ufw allow 2333/tcp #添加2333端口,仅TCP协议
ufw allow 6666/udp #添加6666端口,仅UDP协议
ufw allow 8888:9999 #添加8888到9999之间的端口
ufw delete allow smtp #删除上面建立的某条规则
ufw allow ssh #添加22端口
ufw allow http #添加80端口
ufw allow https #添加443端口
ufw allow 53 #允许外部访问53端口(tcp/udp)
ufw allow from 192.168.1.100 #允许此IP访问所有的本机端口
ufw allow proto udp 192.168.0.1 port 53 to 192.168.0.2 port 53
拒绝访问(deny)
使用 ufw deny <端口> 来添加拒绝入站的端和协议,与添加允许的类似。
删除规则
先使用 ufw status 查看规则,再使用 ufw delete [规则] <端口> 来删除规则。
ufw delete allow 2333/tcp
如果你有很多条规则,使用 numbered 参数,可以在每条规则上加个序号数字。
然后使用 ufw delete <序号> 来删除规则。
root@p3terx:~# ufw status numbered #列出规则,并加上序号。
Status: active
To Action From
-- ------ ----
[ 1] 20,21,22,80,888,8888/tcp ALLOW IN Anywhere
[ 2] 39000:40000/tcp ALLOW IN Anywhere
[ 3] 8896/tcp ALLOW IN Anywhere
[ 4] 8896/udp ALLOW IN Anywhere
[ 5] 443/tcp ALLOW IN Anywhere
[ 6] 20,21,22,80,888,8888/tcp (v6) ALLOW IN Anywhere (v6)
[ 7] 39000:40000/tcp (v6) ALLOW IN Anywhere (v6)
[ 8] 8896/tcp (v6) ALLOW IN Anywhere (v6)
[ 9] 8896/udp (v6) ALLOW IN Anywhere (v6)
[10] 443/tcp (v6) ALLOW IN Anywhere (v6)
root@p3terx:~# ufw delete 4 #删除上面的第4条规则
Deleting:
allow 8896/udp
Proceed with operation (y|n)? y #最后会询问你是否进行操作
Ubuntu卸载firewalld防火墙
使用root权限卸载firewalld,先禁用防火墙,然后卸载firewalld,命令依次如下:
1.查找防火墙的全称:
dpkg --list|grep "fire*"
2.禁用防火墙firewalld:
systemctl disable firewalld
systemctl stop firewalld
禁用ufw:
ufw disable
3.卸载防火墙:
sudo apt-get --purge remove firewalld
使用 UFW 禁止 ICMP 协议访问(禁 ping)
打开 UFW 配置文件
vim /etc/ufw/before.rules
修改配置
允许 ping
-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT
禁止 ping
-A ufw-before-input -p icmp --icmp-type echo-request -j DROP
让配置生效
ufw reload
以上都是一些简单常用的一些命令,想要深入了解,可以输入 man ufw 查看 ufw 用户手册。