• 防火墙系列之firewall


    firewalld 介绍

    防火墙守护 firewalld 服务引入了一个信任级别的概念来管理与之相关联的连接与接口。它支持 ipv4 与 ipv6,并支持网桥,采用 firewall-cmd (command) 或 firewall-config (gui) 来动态的管理 kernel netfilter 的临时或永久的接口规则,并实时生效而无需重启服务。

    Firewall 能将不同的网络连接归类到不同的信任级别,Zone 提供了以下几个级别 
    drop: 丢弃所有进入的包,而不给出任何响应 
    block: 拒绝所有外部发起的连接,允许内部发起的连接 
    public: 允许指定的进入连接 
    external: 同上,对伪装的进入连接,一般用于路由转发 
    dmz: 允许受限制的进入连接 
    work: 允许受信任的计算机被限制的进入连接,类似 workgroup 
    home: 同上,类似 homegroup 
    internal: 同上,范围针对所有互联网用户 
    trusted: 信任所有连接

    firewall-cmd命令需要firewalld进程处于运行状态。我们可以使用systemctl status/start/stop/restart firewalld来控制这个守护进程。firewalld进程为防火墙提供服务。
    当我们修改了某些配置之后(尤其是配置文件的修改),firewall并不会立即生效。可以通过两种方式来激活最新配置systemctl restart firewalld和firewall-cmd --reload两种方式,前一种是重启firewalld服务,建议使用后一种“重载配置文件”。重载配置文件之后不会断掉正在连接的tcp会话,而重启服务则会断开tcp会话。

    1.1 服务使用

    systemctl start firewalld    # 启动,
    systemctl enable firewalld   # 开机启动
    systemctl stop firewalld     # 关闭
    systemctl disable firewalld  # 取消开机启动

    1.2 查看防火墙配置

    [root@linux-node1 ~]# firewall-cmd --list-all
    public
    target: default
    icmp-block-inversion: no
    interfaces: 
    sources: 
    services: dhcpv6-client ssh
    ports: 80/tcp 666/tcp 9092/tcp 8085/tcp 9200/tcp 10051/tcp 10050/tcp 10091/tcp 667/tcp #开放的端口
    protocols: 
    masquerade: yes #端口转发,必须开启这个
    forward-ports: port=666:proto=tcp:toport=22:toaddr=172.16.221.0 #端口转发设置
    port=667:proto=tcp:toport=59741:toaddr=172.16.220.252
    source-ports: 
    icmp-blocks: 
    rich rules: 
    rule family="ipv4" source address="172.16.221.1" port port="5601" protocol="tcp" accept
    rule family="ipv4" source address="172.16.221.1" port port="8080" protocol="tcp" accept

    1.3 开启端口&关闭端口

    firewall-cmd --remove-port=80/tcp --permanent # 阻止通过tcp访问80
    firewall-cmd --add-port=80/udp --permanent    # 开放通过udp访问80

    1.4 查看开放的端口

    [root@linux-node1 ~]# firewall-cmd --list-ports  # 查看开放的端口
    80/tcp 666/tcp 9092/tcp 8085/tcp 9200/tcp 10051/tcp 10050/tcp 10091/tcp 667/tcp

    1.5 永久修改

    firewall-cmd --add-port=667/tcp --permanent ##如果需要修改后,必须添加--permanent

    1.6 重载服务

    所有防火墙配置完毕后,需要重载服务

    firewall-cmd --reload

    1.7 伪装IP

    防火墙可以实现伪装IP的功能,端口转发就会用到这个功能。

    firewall-cmd --query-masquerade              # 检查是否允许伪装IP
    firewall-cmd --add-masquerade --permanent    # 允许防火墙伪装IP
    firewall-cmd --remove-masquerade --permanent # 禁止防火墙伪装IP

    1.8 端口转发

    端口转发可以将指定地址访问指定的端口时,将流量转发至指定地址的指定端口。

    转发的目的如果不指定ip的话就默认为本机,如果指定了ip却没指定端口,则默认使用来源端口。
    如果配置好端口转发之后不能用,可以检查下面两个问题:
    - 比如我将80端口转发至8080端口,首先检查本地的80端口和目标的8080端口是否开放监听了
    - 其次检查是否允许伪装IP,没允许的话要开启伪装IP
    # 将80端口的转发至本机8080

    firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080 --permanent

    # 将80端口转发至192.168.0.1的8080端口

    firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.0.1:toport=8080 --permanent

    1.9 移除端口转发

    firewall-cmd --remove-forward-port=port=59744:proto=tcp:toaddr=172.16.220.252:toport=22 --permanent
    firewall-cmd --reload
  • 相关阅读:
    控制反转(IOC)/依赖注入(DI)理解
    MySQL常用命令总结
    Java继承与清理
    Java组合与继承生成的类中构造函数的执行顺序
    Java中4种权限的理解
    C# 选项卡控件
    USMART 组件移植到STM32
    c# 规范用户输入控件
    c# 图像呈现控件PictureBox
    C# 制作软件启动界面
  • 原文地址:https://www.cnblogs.com/syavingcs/p/8243506.html
Copyright © 2020-2023  润新知