Linux防火墙命令之 ~ firewall-cmd

在CentOS7之后系统默认的防火墙管理工具出现了变化,使用了firewall-cmd,这一节我们就来看一看firewall-cmd的用法,iptables的用法参看这篇文章Linux防火墙命令之 ~ iptables

一、防火墙管理中 systemctl 常用的命令

  1. 启动/关闭/重启防火墙:
    systemctl start/stop/restart firewalld.service
    
  2. 禁止开机启动防火墙:
    systemctl disable firewalld.service
    
  3. 查看服务运行状态:
    systemctl status firewalld
    

二、防火墙控制台命令:firewall-cmd

  1. 查看8080端口是否已经开放:
    firewall-cmd --query-port=8080/tcp
    
  2. 永久开放TCP8080端口:
    firewall-cmd --zone=public --add-port=8080/tcp --permanent
    
  3. 永久移除TCP8080端口:
    firewall-cmd --zone=public --remove-port=8080/tcp --permanent
    
  4. 重新加载防火墙规则:
    firewall-cmd --reload
    
  5. 查看防火墙运行否:
    firewall-cmd --state
    
  6. 查看端口开放情况:
    firewall-cmd --list-all
    

三、防火墙管理中 netstat 的应用

  1. 安装
    yum install net-tools
    
  2. 查看正在监听的端口
    netstat -lntp
    
  3. 检查端口8080被哪个进程占用
    netstat -lnp | grep 8080
    

四、firewall-cmd 的高级用法

  1. 前面我们是通过直接开放端口的形式来放开对应的服务,这种就是典型的iptables的思路。在firewall中还提供了另外的一种思路,这就是使用开放服务的形式来开放对应的端口,如下:

    firewall-cmd --add-service=http #临时开放http服务
    firewall-cmd --add-service=http --permanent #永久开放http服务
    firewall-cmd --remove-service=http #临时移除http服务
    firewall-cmd --remove-service=http --permanent #永久移除http服务
    
  2. 查看开放的服务、端口

    firewall-cmd --list-services
    firewall-cmd --list-ports
    
  3. 开放、阻止端口

    firewall-cmd --add-port=3306/tcp --permanent #永久开放通过tcp访问3306
    firewall-cmd --add-port=233/udp --permanent  #永久开放通过udp访问233
    firewall-cmd --remove-port=80/tcp --permanent #永久阻止通过tcp访问3306
    
  4. IP伪装:防火墙可以实现伪装IP的功能

    firewall-cmd --query-masquerade # 检查是否允许伪装IP
    firewall-cmd --add-masquerade # 允许防火墙伪装IP
    firewall-cmd --remove-masquerade# 禁止防火墙伪装IP
    
  5. 端口转发

    • 可以在访问指定地址访问指定的端口时,将流量转发至指定地址的指定端口。如果在设置的时候任何一个不设置都使用来源的数据;如果配置好端口转发之后不能用,可以检查下面两个问题:
      • 如我将80端口转发至8080端口,首先检查本地的80端口和目标的8080端口是否开放监听了
      • 检查是否允许IP伪装,没允许的话要开启IP伪装
    • 几个端口转发的例子:
      • 将80端口转发至8080
        firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080
        
      • 将80端口转发至192.168.1.0.1的80端口
        firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.1.0.1
        
      • 将80端口转发至192.168.0.1的8080端口
        firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.0.1:toport=8080
        
    • 端口转发的应用场景
      • 隐藏端口:当我们想把某个端口隐藏起来的时候,就可以在防火墙上阻止那个端口访问,然后再开一个不规则的端口,之后配置防火墙的端口转发,将流量转发过去。
      • 流量分发:一个防火墙拖着好多台运行着不同服务的机器,然后用防火墙将不同端口的流量转发至不同机器。
  6. 其他常用命令

    firewall-cmd --get-zones #列出支持的zone
    firewall-cmd --get-services #列出支持的服务,在列表中的服务是放行的
    firewall-cmd --query-service ftp #查看ftp服务是否支持,返回yes或者no
    iptables -L -n #查看规则,这个命令是和iptables的相同的
    man firewall-cmd ##查看帮助
    

你可能感兴趣的:(Linux防火墙命令之 ~ firewall-cmd)