centos7防火墙设置 ip和端口限制

  1. 使用 netstat -tunlp 查询程序端口占用

    • -n 不解析域名,直接显示ip
    • -tu 只列出 tcp/udp协议的进程
    • -l 只列出listening 状态的进程
    • -p 显示 pid和program name
  2. linux 防火墙放行指定的 端口

    • firewall-cmd --zone=public --add-port=6379/tcp --permanent 开发端口6379
      • --zone=public 共有访问权限
      • -add-port=6379/tcp 指定端口和 协议类型
      • --permanent 持久化的有效(重启不丢失)
    • firewall-cmd --reload 重新加载修改的配置
    • firewall-cmd --complete-reload 重新加载修改的配置(会断开连接)
  3. 查看开放的端口

    • firewall-cmd --list-ports
  4. 添加多个端口(卡通8000-9000的端口)

    • firewall-cmd --permanent --zone=public --add-port=8000-9000/tcp
  5. 删除端口(永久删除端口3006)

    • firewall-cmd --permanent --zone=public --remove-port=3306/tcp
  6. 对某个ip开放/禁止

    • 允许指定ip访问指定协议的指定端口

      firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.100.1" port protocol="tcp" port="3306" accept"
      
    • 禁止指定ip访问指定协议的指定端口

      firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.100.1" port protocol="tcp" port="6379" reject"
      
    • rule family="ipv4" source address="192.168.100.1" port protocol="tcp" port="3306" accept 是一条规则
      image-20230327142516271

  7. 删除某个ip

    • firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.100.1" port protocol="tcp" port="3306" accept"
    • --remove-rich-rule后面的内容需要和--add-rich-rule后面的完全一样
  8. IP段的访问(192.168.0.0/16 表示 前面16位是网络号,后面的16位是主机号,192.168是网络号,这个网络下面的都允许访问)

    • firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.0.0/16" accept"
  9. 端口转发

    • firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080 # 将80端口的流量转发至8080
    • firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.100.1 # 将80端口的流量转发至192.168.100.1
    • firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.100.1:toport=8080 #将80端口的流量转发至192.168.100.1的8080端口
  10. 查询zone列表(zone类似于防火墙的家庭网络,区域网络,公用网络,通过切换网络环境切换不同的拦截规则,或者说是一堆拦截规则的集合名字),默认是public

    • firewall-cmd --list-all-zones #查询所有zone,并且或列出里面的配置
    • firewall-cmd --get-zones #查询所有zone,只是查看zone有哪些
      image-20230327112533505
  11. 设置指定区域为默认zone

    • firewall-cmd --set-default-zone=home
    • firewall-cmd --get-default-zone #查询默认的zone
  12. zone和网卡的

    • firewall-cmd --get-zone-of-interface=ens33 #查询某个网卡所在的zone
    • firewall-cmd --zone=public --change-interface=ens33 #把某个网卡设置到指定zone
    • firewall-cmd --zone=public --add-interface=ens33 #给当前zone添加指定网卡(如果网卡已经存在于背的zone 会报错,这时候用--change-interface)
    • firewall-cmd --get-active-zones #查询当前zone下面有哪些网卡
  13. zone和网络规则

    • firewall-cmd --zone=public --list-all #查看指定zone下面的规则
    • firewall-cmd --get-services #查询所有zone下面的服务
    • firewall-cmd --list-service #查询当前zone下面的服务
  14. 防火墙配置文件位置

    • more /etc/firewalld/zones/public.xml #这个文件可以手动修改
      image-20230327135055369
  15. docker 默认会给自己映射的端口开放防火墙端口,可以手动关闭
    iptables设置为false,

     {
            "registry-mirrors": ["https://dockerhub.xianfish.site"],
            "iptables": false
     }
    

posted on 2023-03-27 21:12  zhangyukun  阅读(2048)  评论(0)    收藏  举报

导航