28.使用命令行配置防火墙
作者:码农 | 发布时间:
1.使用命令行工具firewall-cmd配置防火墙
firewall-cmd命令一般格式为:
firewall-cmd 参数1 [参数2] [参数3] ……
|
参数 |
作用 |
|
--state |
查询当前防火墙状态 |
|
--panic-on |
拒绝所有包。 |
|
--permanent |
永久生效的设置。永久选项不直接影响运行时的状态,仅在重载或者重启服务时可用 |
|
--reload |
重新加载“永久”生效的配置规则,使其立即生效,否则要重启后才生效 |
|
--zone=<区域名称> |
指定区域,若未指定区域则为当前默认区域 |
|
--get-services |
查看当前所有被允许的服务 |
|
--get-active-zones |
查看当前活动区域(已经有网络接口连接的区域) |
|
--get-service --permanent |
查看当前服务配置是否生启后还是生效 |
|
--get-default-zone |
查询当前默认的区域 |
|
--set-default-zone=<区域名称> |
将指定区域设置为默认区域,。此命令会改变运行时配置和永久配置 |
|
--list-ports |
查看默认区域或指定区域的端口 |
|
--list-services |
查看所有允许的服务 |
|
--list-all [--zone=<区域名>] |
显示指定区域全部启用的特性。若省略区域,将显示默认区域的信息 |
|
--list-all-zones |
显示所有区域的特性(网卡配置参数,资源,端口以及服务等信息。 |
|
--get-zones |
显示所有可用的区域。列出当前有几个zone |
|
--get-services |
显示预先定义的服务 |
|
--get-active-zones |
显示当前正在使用 (被网卡或源关联) 的所有区域 |
|
--add-source= |
将来源于此IP或子网的流量导向指定的区域 |
|
--remove-source= |
不再将此IP或子网的流量导向某个指定区域 |
查询命令
查看firewalld服务当前所使用的区域:
[root@linux ~]# firewall-cmd --get-default-zone
public
查询ens33网卡在firewalld服务中的区域:
[root@linux ~]# firewall-cmd --get-zone-of-interface=ens33
public
查看当前所有被允许的服务:
[root@linux ~]# firewall-cmd --get-services
RH-Satellite-6 amanda-client amanda-k5-client amqp amqps apcupsd audit bacula bacula-client bgp bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc ceph ceph-mon cfengine condor-collector ctdb dhcp dhcpv6 dhcpv6-client distcc dns docker-registry docker-swarm dropbox-lansync elasticsearch etcd-client etcd-server finger freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client
把firewalld服务的当前默认区域设置为public:
[root@linux ~]# firewall-cmd --set-default-zone=public
success
[root@linux ~]# firewall-cmd --get-default-zone
public
启动/关闭firewalld防火墙服务的应急状况模式,阻断一切网络连接(当远程控制服务器时请慎用):
[root@linux ~]# firewall-cmd --panic-on
success
[root@linux ~]# firewall-cmd --panic-off
success
查询public区域是否允许请求SSH和HTTPS协议的流量:
[root@linux ~]# firewall-cmd --zone=public --query-service=ssh
yes
[root@linux ~]# firewall-cmd --zone=public --query-service=https
no
把firewalld服务中请求HTTPS协议的流量设置为永久允许,并立即生效:
[root@linux ~]# firewall-cmd --zone=public --add-service=https
success
[root@linux ~]# firewall-cmd --permanent --zone=public --add-service=https
success
[root@linux ~]# firewall-cmd --reload
success
把firewalld服务中请求HTTP协议的流量设置为永久拒绝,并立即生效:
[root@linux ~]# firewall-cmd --permanent --zone=public --remove-service=http
success
[root@linux ~]# firewall-cmd --reload
success
把在firewalld服务中访问8080和8081端口的流量策略设置为允许,但仅限当前生效:
[root@linux ~]# firewall-cmd --zone=public --add-port=8080-8081/tcp
success
[root@linux ~]# firewall-cmd --zone=public --list-ports
8080-8081/tcp
在firewalld服务中配置一条富规则,使其拒绝192.168.10.0/24网段的所有用户访问本机的ssh服务
[root@linux ~]# firewall-cmd --permanent --zone=public --add-rich-rule=“rule family="ipv4" source address="192.168.10.0/24" service name="ssh" reject"
success
[root@linux ~]# firewall-cmd --reload
success