一、防火墙基础命令
1、开启防火墙
[root@server ~]# systemctl start firewalld
2、查看防火墙状态
[root@server ~]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2021-05-17 06:31:53 EDT; 1 weeks 1 days ago Docs: man:firewalld(1) Main PID: 710 (firewalld) Tasks: 2 Memory: 1.4M CGroup: /system.slice/firewalld.service └─710 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid
3、关闭防火墙
[root@server ~]# systemctl stop firewalld
4、开机启动
[root@server ~]# systemctl enable firewalld
5、关闭开机启动
[root@server ~]# systemctl disable firewalld
6、添加防火墙规则
添加192.168.0.0/16网段访问本机80端口
[root@server ~]# firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.0.0/16" port protocol="tcp" port="80" accept"
7、查看防火墙规则
[root@server ~]# firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: ens33 sources: services: dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: rule family="ipv4" source address="192.168.0.0/16" port port="80" protocol="tcp" accept
8、删除防火墙规则
[root@server ~]# firewall-cmd --permanent --zone=public --remove-rich-rule="rule family="ipv4" source address="192.168.0.0/16" port port="80" protocol="tcp" accept"
9、添加单个端口开放访问
firewall-cmd --zone=public --permanent --add-port=3389/tcp --permanent
10、添加指定范围端口开放访问
[root@server ~]# firewall-cmd --zone=public --add-port=10001-11999/tcp --permanent
11、删除开放端口规则
firewall-cmd --permanent --remove-port=10001-11999/tcp
12、重新加载防火墙规则
[root@server ~]# firewall-cmd --reload success
二、防火墙命令进阶
Firewalld 一般已经默认内置了 9 个区域(zone),大部分情况下,这些已经足够使用,按从最不信任到最受信任的顺序为:
drop:最低信任级别。所有传入的连接都将被丢弃而不会回复,并且只能进行传出连接。
block:与上述类似,但不是简单地删除连接,而是使用 icmp-host-prohibitedor 和 icmp6-adm-prohibited 消息拒绝传入的请求。
public:表示不信任的公共网络。您不信任其他计算机,但可能会视情况允许选择的传入连接。默认情况下,此区域为激活状态。
external:如果你使用防火墙作为网关,则为外部网络。将其配置为 NAT 转发,以便你的内部网络保持私有但可访问。
internal:external 区域的另一侧,用于网关的内部。这些计算机值得信赖,并且可以使用一些其他服务。
dmz:用于 DMZ (DeMilitarized Zone) 中的计算机(将无法访问网络其余部分的隔离计算机),仅允许某些传入连接。
work:用于工作机。信任网络中的大多数计算机。可能还允许其他一些服务。
home:家庭环境。通常,这意味着您信任其他大多数计算机,并且将接受其他一些服务。
trusted:信任网络中的所有计算机。可用选项中最开放的,应谨慎使用。
1、添加指定IP段访问
[root@server ~]# firewall-cmd --permanent --zone=trusted --add-source=173.245.48.0/24
2、添加指定IP访问
[root@server ~]# firewall-cmd --permanent --zone=trusted --add-source=173.245.48.1
3、重新加载防火墙规则 (添加永久参数 --permanent 一定要重启,否则不生效)
[root@server ~]# firewall-cmd --reload
4、查看规则
[root@server ~]# firewall-cmd --zone=trusted --list-all
5、删除规则
[root@server ~]# firewall-cmd --permanent --zone=trusted --remove-source=173.245.48.1