linux_学习之防火墙firewalld

自从Linux升级到7后,Linux的防火墙就从原来的iptables改为了firewalld

1、安装


$ yum install -y firewalld

2、基本命令的使用


$ systemctl status firewalld                # 查看状态

$ systemctl start firewalld                  # 启动

$ systemctl stop firewalld                  #关闭

$ systemctl enable firewalld              # 开机启动

$ systemctl disable firewalld             # 取消开机启动

3、开放端口

# 开放单个端口
$ firewall-cmd --zone=public --add-port=80/tcp --permanent

# 开放端口范围
$ firewall-cmd --zone=public --add-port=8388-8389/tcp --permanent

# 对 147.152.139.197 开放10000端口
$ firewall-cmd --permanent --zone=public --add-rich-rule='
        rule family="ipv4"
        source address="147.152.139.197/32"
        port protocol="tcp" port="10000" accept'       

# 拒绝端口:
$ firewall-cmd --permanent --zone=public --add-rich-rule='
              rule family="ipv4"
              source address="47.52.39.197/32"
              port protocol="tcp" port="10000" reject'

# 开放全部端口给IP
$ firewall-cmd --permanent --zone=public --add-rich-rule='
              rule family="ipv4"
              source address="192.168.0.1/32" accept';

# 开放全部端口给网段
$ firewall-cmd --permanent --zone=public --add-rich-rule='
              rule family="ipv4"
              source address="192.168.0.0/16" accept';

4、查看开放及添加的服务

# 查看全部支持的服务
$ firewall-cmd --get-service

# 查看开放的服务
$ firewall-cmd --list-service

# 添加服务,添加https
$ firewall-cmd --add-service=https --permanent

# 修改对应的配置文件是/etc/firewalld/zones/public.xml

5、移除端口

# 移除添加的端口
$ firewall-cmd --zone=public --remove-port=80/tcp --permanent

6、重新装载

# 对路由规则进行修改后,需要重新加载规则才能使规则生效
$ firewall-cmd --reload

最后在此之前介绍centos7中摒弃service工具,采用systemctl这个更强的服务管理工具的使用方法。

注1、systemctl的基本使用方法


启动一个服务:systemctl start firewalld.service

关闭一个服务:systemctl stop firewalld.service

重启一个服务:systemctl restart firewalld.service

显示一个服务的状态:systemctl status firewalld.service

在开机时启用一个服务:systemctl enable firewalld.service

在开机时禁用一个服务:systemctl disable firewalld.service

查看服务是否开机启动:systemctl is-enabled firewalld.service

查看已启动的服务列表:systemctl list-unit-files|grep enabled

查看启动失败的服务列表:systemctl --failed

注2、配置firewalld-cmd命令的基本使用方法

查看版本:firewall-cmd --version

查看帮助:firewall-cmd --help

显示状态:firewall-cmd --state

查看所有打开的端口:firewall-cmd --zone=public --list-ports

更新防火墙规则:firewall-cmd --reload

查看区域信息:  firewall-cmd --get-active-zones

查看指定接口所属区域:firewall-cmd --get-zone-of-interface=eth0

拒绝所有包:firewall-cmd --panic-on

取消拒绝状态:firewall-cmd --panic-off

查看是否拒绝:firewall-cmd --query-panic

注3、如何允许80端口访问服务器?

# 添加
firewall-cmd --zone=public --add-port=80/tcp --permanent    
# (--permanent永久生效,没有此参数重启后失效)

# 重载
firewall-cmd --reload

# 查看端口开通的状态
firewall-cmd --zone= public --query-port=80/tcp

# 删除
firewall-cmd --zone= public --remove-port=80/tcp --permanent
上一篇:CentOS7 防火墙(firewall)的操作命令


下一篇:Centos7 Firewalld 解决防火墙问题