防火墙区域

区域 默认策略
trusted 允许所有数据包
home 拒绝流入的流量,除非与流出的流量相关,允许ssh,mdns,ippclient,amba-client,dhcpv6-client服务通过
internal 等同于home
work 拒绝流入的流量,除非与流出的流量相关,允许ssh,ipp-client,dhcpv6-client服务通过
public 拒绝流入的流量,除非与流出的流量相关,允许ssh,dhcpv6-client服务通过
external 拒绝流入的流量,除非与流出的流量相关,允许ssh服务通过
dmz 拒绝流入的流量,除非与流出的流量相关,允许ssh服务通过
block 拒绝流入的流量,除非与流出的流量相关,非法流量采取拒绝操作
drop 拒绝流入的流量,除非与流出的流量相关,非法流量采取丢弃操作

防火墙设置

  1. yum install httpd -y
  2. systemctl start httpd
  3. systemctl stop firewalld #关闭防火墙之后可以访问
  4. systemctl status firewalld #查看运行状态
  5. systemctl stop firewalld #停止防火墙 生产环境不可操作
  6. systemctl start firewalld #启动防火墙
  7. systemctl restart firewalld #重启防火墙
  8. systemctl reload firewalld #重载操作
  9. systemctl enable firewalld #设置开机启动
  10. systemctl disable firewalld #设置开机不启动

防火墙规则

# firewall-cmd [选项1] [选项2] [...N] 

firewall-cmd --get-default-zone #查看防火墙默认的区域(zone)#public.....

firewall-cmd --get-zones #查看所有支持的区域(zones)

firewall-cmd --list-all #查看当前域是设置规则

firewall-cmd --list-all-zones #查看所有域的设置规则
#--------------------------------------------------------------------------------------------------------------------------------------------
firewall-cmd --zone=public --add-service=服务的名称 # 通过服务的名称添加规则 备注:服务必须存储在/usr/lib/firewalld/services目录中

firewall-cmd --zone=public --add-service=http #把http服务添加到防火墙的规则中,允许通过防火墙

firewall-cmd --zone=public --remove-service=http #把http服务从防火墙规则中移除,不允许其通过防火墙

firewall-cmd --list-all
#--------------------------------------------------------------------------------------------------------------------------------------------
firewall-cmd --zone=public --add-port=端口号/tcp #通过服务的端口号添加规则

ss -naltp |grep httpd

firewall-cmd --zone=public --add-port=80/tcp #把80/tcp添加到防火墙规则中,允许通过防火墙

firewall-cmd --zone=public --remove-port=80/tcp #从firewalld防火墙中把80端口的规则移除掉

拓展

在Linux的新版防火墙firewalld中,其模式一共分为两大类:运行模式(临时模式)+ 永久模式。
运行模式:不会把规则保存到防火墙的配置文件中,设置完成后立即生效
永久模式:会把规则写入到防火墙的配置文件中,但是其需要reload重载后才会立即生效

# 根据服务名称添加规则(永久)
# firewall-cmd --zone=public --add-service=服务名称 --permanent
# firewall-cmd --reload

# 根据端口号添加规则(永久)
# firewall-cmd --zone=public --add-port=服务占用的端口号 --permanent
# firewall-cmd --reload

# 把80端口添加到firewalld防火墙规则中,要求永久生效
# firewall-cmd --zone=public --add-port=80/tcp --permanent
# firewall-cmd --reload
# firewall-cmd --list-all