深度思维者

永远年轻,永远热泪盈眶

firewall通用指令合集

常用指令

  1. 查看防火墙状态

    firewall-cmd --state
    
  2. 停止firewall

    systemctl stop firewalld.service
    
  3. 禁止开机启动

    systemctl disable firewalld.service
    
  4. 开放某个服务端口--允许所有IP访问

    firewall-cmd --add-port=16379/tcp --permanent 
    
  5. 移除6379端口-禁止访问

    firewall-cmd --permanent --remove-port=6379/tcp
    firewall-cmd --reload
    
  6. ** 只允许指定端口访问指定服务器端口**

    # 允许192.168.142.166 IP 访问ES 9200端口
    firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.142.166" \
                  port protocol="tcp" port="9200" accept"
    firewall-cmd --reload
    
  7. 删除规则:删除上一条规则--撤销192.168.142.166访问本机9200端口的访问权限

    firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.142.166" 
                  port protocol="tcp" port="9200" accept"
    firewall-cmd --reload
    
  8. 其他指令

    #查看开放的端口
    $ firewall-cmd --list-ports
    
    #查询6379端口是否开放
    $ firewall-cmd --query-port=6379/tcp
    
    # 查看当前系统打开的所有端口
    firewall-cmd --zone=public --list-ports
    
    # 获取已激活的zonesudo dockerd –debug
    firewall-cmd --get-active-zones
    
    
  9. docker启动失败,防火墙问题

    ZONE_CONFLICT: 'docker0' already bound to a zone
    #Check if docker zone exists in firewall-cmd
    $ firewall-cmd --get-active-zones
    
    #If "docker" zone is available, change interface to docker0 (not persisted)
    $ sudo firewall-cmd --zone=docker --change-interface=docker0
    
    #If "docker" zone is available, change interface to docker0 (persisted, thanks rbjorklin)
    $ sudo firewall-cmd --permanent --zone=docker --change-interface=docker0
    
    $ sudo systemctl restart firewalld
    
  10. 查看所有的规则

    firewall-cmd --list-all
    
  11. 端口转发: 只允许外部通过访问18088端口访问服务器8088 web服务, 外部无法通过8088端口服务

    1. 启用端口转发:
      sudo firewall-cmd --permanent --add-masquerade
      sudo firewall-cmd --reload
      
    2. 添加转发规则:
      sudo firewall-cmd --permanent --add-forward-port=port=18088:proto=tcp:toport=8088
      sudo firewall-cmd --reload
      
    3. 禁用外部通过8088端口访问 web服务
      firewall-cmd --permanent --remove-port=8088/tcp
      sudo firewall-cmd --reload
      

    这些命令将启用端口转发并添加相应的转发规则。

    第一个命令启用了IP伪装(masquerade),允许转发流量。

    第二个命令添加了转发规则,将通过18088端口的流量转发到8088端口。

    第三个:防火墙中添加了阻止8088端口访问的规则

    请注意:如果你已经在防火墙中添加了阻止80端口访问的规则,则可以跳过第一步

应用

外部通过访问10022端口访问ssh服务

  1. 检查防火墙是否启用

    service firewalld status
    
    #如果未启用则启用firewalld服务
    service firewalld start
    
  2. 检查防火墙现有规则

    firewall-cmd --list-all
    
    # 输出如下
    443/tcp 80/tcp 10022/tcp 9092/tcp 8088/tcp 8080/tcp 22/tcp 20514/udp 
    
  3. 检查sshd服务, 添加sshd额外监听端口10022,如果已配置,忽略此步骤

    vim /etc/ssh/sshd_config
    
    # 添加第18行代码
    ...
    17 Port 22
    18 Port 10022
    19 #AddressFamily any
    20 #ListenAddress 0.0.0.0
    21 #ListenAddress ::
    ...
    
    # 重启ssh 服务
    service sshd restart
    
  4. 启用 firewall端口转发规则功能

    sudo firewall-cmd --permanent --add-masquerade
    sudo firewall-cmd --reload
    
  5. 添加端口转发规则:将10022端口转发至端口22

    sudo firewall-cmd --permanent --add-forward-port=port=10022:proto=tcp:toport=22
    sudo firewall-cmd --reload
    
  6. 禁用外部通过22端口访问sshd服务

    firewall-cmd --permanent --remove-port=22/tcp
    firewall-cmd --reload
    
  7. 防火墙中添加了阻止8088/8080端口(星海大数据管理平台)访问的规则

    firewall-cmd --permanent --remove-port=8088/tcp
    firewall-cmd --permanent --remove-port=8080/tcp
    
    firewall-cmd --reload
    
  8. 添加端口转发规则:将19092端口转发至端口9092(KAFKA服务),同时禁用外部通过9092访问KAFKA服务

    firewall-cmd --permanent --add-forward-port=port=19092:proto=tcp:toport=9092
    firewall-cmd --permanent --remove-port=9092/tcp
    
    sudo firewall-cmd --reload
    
posted @ 2024-08-05 16:22  failymao  阅读(97)  评论(0编辑  收藏  举报