防火墙区域
| 区域 | 默认策略 |
|---|---|
| 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 | 拒绝流入的流量,除非与流出的流量相关,非法流量采取丢弃操作 |
防火墙设置
yum install httpd -ysystemctl start httpdsystemctl stop firewalld #关闭防火墙之后可以访问systemctl status firewalld #查看运行状态systemctl stop firewalld #停止防火墙 生产环境不可操作systemctl start firewalld #启动防火墙systemctl restart firewalld #重启防火墙systemctl reload firewalld #重载操作systemctl enable firewalld #设置开机启动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
