firewall防火墙配置

firewall防火墙配置

Centos 7 和 redhat 7 使用新的防火墙firewall ,之前的版本都是使用iptables ,两者不能共存


firewall引入区域(zone)的概念 ,就是一个个的规则模版
trusted 允许所有的数据包
home 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、mdns、ipp-client、amba-client与dhcpv6-client服务相关,则允许流量
internal 等同于home区域
work 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、ipp-client与dhcpv6-client服务相关,则允许流量
public 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、dhcpv6-client服务相关,则允许流量
external 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量
dmz 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量
block 拒绝流入的流量,除非与流出的流量相关
drop 拒绝流入的流量,除非与流出的流量相关


firewall防火墙的开启与关闭以及状态查看

  • 查看防火墙状态
    service firewalld status

  • 查看防火墙状态
    systemctl list-unit-files | grep firewall

  • 查看firewall防火墙运行状态
    firewall-cmd --state

  • 开启防火墙
    service firewalld start

  • 停止防火墙
    service firewalld stop

  • 重启防火墙
    service firewalld restart

  • 开启防火墙
    systemctl start firewalld

  • 停止防火墙
    systemctl stop firewalld

  • 永久开启防火墙(下次开机生效)
    systemctl enable firewalld

  • 永久关闭防火墙(下次开机生效)
    systemctl disable firewalld

firewall防火墙参数选项

--permanent 表示永久生效(下次开机生效)
--zone 指定区域
--add-protocol 添加协议
--remove-protocol 删除协议
--add-port 添加端口号
--remove-port 删除端口号
--add-rich-rule 添加一条富规则
--remove-rich-rule 删除一条富规则

firewall防火墙富规则选项

family=ipv4 值为ipv4和ipv6
source address 源地址
destination address 目标地址
port=8000-9000 可以指定端口范围
accept 允许
reject 拒绝并返回错误信息
drop 直接丢弃,会返回timeout(连接超时)

firewall防火墙相关查看命令

  • 查看当前防火墙所在默认区域(zone)
    firewall-cmd --get-default-zone

  • 查看所有网卡接口所在区域
    firewall-cmd --get-active-zones

  • 查看"ens33"网卡所在区域
    firewall-cmd --get-zone-of-interface=ens33

  • 重启防火墙(使添加了永久参数的规则立即生效)
    firewall-cmd --reload

  • 查看默认区域防火墙规则
    firewall-cmd --list-all

  • 查看"drop"区域的防火墙规则
    firewall-cmd --zone=drop --list-all

  • 查看防火墙伪装IP地址功能是否开启,端口转发需要用到此功能
    firewall-cmd --query-masquerade

firewall防火墙相关设置

  • 修改防火墙默认区域为"drop"(永久性)
    firewall-cmd --set-default-zone=drop

  • 修改"ens33"网卡区域为"drop"
    firewall-cmd --permanent --zone=drop --change-interface=ens33

  • 设置"drop"区域添加协议icmp(即允许ICMP)
    firewall-cmd --permanent --zone=drop --add-protocol=icmp

  • "--add"改为"--remove"就是删除上一条规则
    firewall-cmd --permanent --zone=drop --remove-protocol=icmp

  • 设置"drop"区域允许tcp的22端口
    firewall-cmd --permanent --zone=drop --add-port=22/tcp

  • "--add"改为"--remove"就是删除上一条规则
    firewall-cmd --permanent --zone=drop --remove-port=22/tcp

  • 设置"drop"区域允许udp的4990-4999端口
    firewall-cmd --permanent --zone=drop --add-port=4990-4999/udp

firewall防火墙富规则设置(源目地址+协议+允许/拒绝)

  • 允许ICMP(accept表示允许)
    firewall-cmd --permanent --add-rich-rule='rule protocol value=icmp accept'

  • "--add"改为"--remove"就是删除上一条规则
    firewall-cmd --permanent --remove-rich-rule='rule protocol value=icmp accept'

  • 将来自192.168.2.0/24网段访问本机22端口的数据丢弃(drop表示丢弃)
    firewall-cmd --permanent --zone=drop --add-rich-rule="rule family="ipv4" source address="192.168.80.0/24" port protocol="tcp" port="22" drop"

  • 将来自192.168.2.0/24网段访问本机22端口的数据允许通过(accept表示允许)
    firewall-cmd --permanent --zone=drop --add-rich-rule="rule family="ipv4" source address="192.168.80.0/24" port protocol="tcp" port="22" accept"

  • 任何访问192.168.80.137(本机)主机的22端口的数据丢弃(相当于禁用了某个网卡的22端口)
    firewall-cmd --permanent --zone=drop --add-rich-rule="rule family="ipv4" destination address="192.168.80.137" port protocol="tcp" port="22" drop"

  • 允许来自192.168.80.0/24网段访问192.168.80.137主机的8000-9000端口
    firewall-cmd --permanent --zone=drop --add-rich-rule='rule family=ipv4 source address=192.168.80.0/24 destination address=192.168.80.137 port port=8000-9000 protocol=tcp accept'

firewall防火墙清除所有规则及端口转发

  • 清除所有规则
    rm -rf /etc/firewalld/zones/*

  • 开启伪装IP地址功能
    firewall-cmd --zone=drop --add-masquerade

  • 禁用伪装IP地址功能
    firewall-cmd --zone=drop --remove-masquerade

  • 将访问本机的TCP_888端口转发到192.168.80.137(本机)的22端口
    firewall-cmd --permanent --zone=drop --add-forward-port=port=888:proto=tcp:toport=22:toaddr=192.168.80.137

  • 来自192.168.80.0/24访问本机888端口转发到192.168.80.137的22端口,协议tcp
    firewall-cmd --permanent --zone=drop --add-rich-rule="rule family=ipv4 source address=192.168.80.0/24 forward-port port=888 protocol=tcp to-port=22 to-addr=192.168.80.137"

firewalld防火墙相关目录及紧急模式

  • firewalld系统目录(不要修改)

/usr/lib/firewalld/

  • firewalld用户目录(不建议修改,建议使用命令配置防火墙规则)

/etc/firewalld/

  • 查看防火墙紧急模式状态
    firewall-cmd --query-panic

  • 启用紧急情况模式,阻断一切网络(远程管理时慎用)
    firewall-cmd --panic-on

  • 关闭紧急模式
    firewall-cmd --panic-off

END

你可能感兴趣的:(firewall防火墙配置)