Firewalld防火墙基本操作

孤者浪人 提交于 2019-12-16 04:47:27

规则状态

  • runtime(运行时)
    修改规则马上生效,但是临时生效
  • permanent(持久配置)
    修改后需要reload重载后才会生效

服务基本操作

  • 查看防火墙状态

    systemctl status firewalld
    
  • 关闭防火墙

    systemctl stop firewalld
    
  • 开启防火墙

    systemctl start firewalld
    
  • 永久开启防火墙

    systemctl enable firewalld
    
  • 永久关闭防火墙

    systemctl disable firewalld
    
  • 重载防火墙规则

    firewall-cmd --reload
    
  • 查看防火墙状态

    firewall-cmd --state	
    
  • 查看版本

    firewall-cmd --version
    
  • 查看帮助

    firewall-cmd --help
    
  • 查看所有配置信息

    firewall-cmd --list-all
    
  • 查看所有开放的端口
    所有区域

    firewall-cmd --list-ports
    

    指定区域

    firewall-cmd --zone=public --list-ports
    
  • 查看所有允许的服务

    firewall-cmd --list-services
    
  • 获取所有支持的服务

    firewall-cmd --get-services
    
  • 禁用传统防火墙服务

    systemctl mask iptables
    systemctl mask ip6tables
    systemctl mask ebtables
    
  • 备份firewall的相关配置文件

    cp -r /etc/firewalld/ /etc/firewalld_bak_20191210
    

firewall-cmd命令分类

zone区域相关指令
参数 作用
–get-default-zone 查询默认的区域名称
–set-default-zone=<zone> 设置默认的区域,使其永久生效
–get-active-zones 显示当前正在使用的区域与网卡名称
–get-zones 显示总共可用的区域
–new-zone=<zone> 新增区域
service服务相关指令
参数 作用
–get-services 显示预先定义的服务
–add-service=<service> 设置默认区域允许该服务的流量
–remove-service=<service> 设置默认区域不再允许该服务的流量
port端口相关指令
参数 作用
–add-port=<端口号/协议> 设置默认区域允许该端口的流量
–remove-port=<端口号/协议> 设置默认区域不再允许该端口的流量
interface网卡相关指令
参数 作用
–add-interface=<网卡名称> 将源自该网卡的所有流量都导向某个指定区域
–change-interface=<网卡名称> 将某个网卡与区域进行关联
其他相关指令
参数 作用
–reload 显示当前区域的网卡配置参数,资源,端口以及服务等信息
–list-all 重载当前的配置规则

操作案例

区域切换及白名单添加
  • 将网络接口关联至drop区域
     firewall-cmd --permanent --change-interface=eth0 --zone=drop
     firewall-cmd --reload
    
  • 添加网段白名单
    #对192.168.47网段生效
    firewall-cmd --permanent --add-source=192.168.47.0/24 --zone=trusted
    #对192.168.47.101地址生效
    firewall-cmd --permanent --add-source=192.168.47.101/32 --zone=trusted
    firewall-cmd --reload
    
端口开放/移除
  • 开放指定端口

    firewall-cmd --zone=public --add-port=80/tcp --permanent
    firewall-cmd --reload
    

    添加多个端口

    firewall-cmd --permanent --zone=public --add-port=8080-8083/tcp
    
  • 移除开放的端口

    firewall-cmd --zone=public --remove-port=80/tcp --permanent
    firewall-cmd --reload
    
服务开放/移除
  • 允许访问http,https服务

    firewall-cmd --permanent --add-service=http --add-service=https 
    firewall-cmd --reload
    
  • 移除开放访问的服务

    firewall-cmd --permanent --remove-service=http 
    firewall-cmd --reload
    
  • SSH修改端口后,加入服务后无法访问
    修改firewalld中SSH服务的默认端口22–>修改后的ssh端口

    vim /usr/lib/firewalld/services/ssh.xml
    <service>
    	<short>SSH</short>
    	<description>Secure Shell (SSH) </description>
    	<port protocol="tcp" port="11122"/>
    </service>
    
端口转发策略
  • 流量转发命令
    firewall-cmd  --permanent --zone=<区域> --add-forward-port=port=<源端口>:proto=<协议>:toport=<目的端口>:toaddr=<目的地址>
    
  • 将本机2222/tcp端口转发至192.168.47.111:22端口
    开启IP伪装
    firewall-cmd --permanent --add-masquerade
    
    配置端口转发规则
    firewall-cmd  --permanent --zone=public --add-forward-port=port=2222:proto=tcp:toport=22:toaddr=192.168.47.111
    
  • 删除端口转发规则
    firewall-cmd  --permanent --zone=public --remove-forward-port=port=2222:proto=tcp:toport=22:toaddr=192.168.47.111
    
    重载防火墙
    firewall-cmd --reload
    
富规则策略
  • 富规则帮助手册

     man firewalld.richlanguage
    
  • 仅允许192.168.47.111访问8080端口

    firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=192.168.47.111/32 port port=8080 protocol=tcp accept'
    
  • 将192.168.47.111加入白名单

     firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.47.111" accept"     
    
  • 删除配置的富规则

     firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="192.168.47.111/32" port port="8080" protocol="tcp" accept' 
    
    firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.47.111" accept"
    
  • 拒绝192.168.47.111访问ssh服务

    firewall-cmd --permanent --zone=public --add-rich-rule='rule family=ipv4 source address=192.168.47.111/32 service name=ssh drop'  
    
  • 将远程192.168.47.1主机请求firewalld的3333端口转发至本机22端口

    firewall-cmd --permanent --zone=public --add-rich-rule='rule family=ipv4 source address=192.168.47.1/32 forward-port port=3333 protocol=tcp to-port=22'
    
  • 将远程192.168.47.1主机请求firewalld的4444端口转发至192.168.47.111的22端口

    firewall-cmd --permanent --add-masquerade
    firewall-cmd --permanent --zone=public --add-rich-rule='rule family=ipv4 source address=192.168.47.1/32 forward-port port=4444 protocol=tcp to-port=22 to-addr=192.168.47.111'
    
  • 重载防火墙

    firewall-cmd --reload
    
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!