• 防火墙-firewalld


    转载:http://www.52wiki.cn/docs/linux/linux-1ao67g3qlteo0

    一.简介

    firewalld是centos7系统默认的防火墙,和iptables一样,是使用系统中netfilter内核模块的管理工具。

    和iptables不一样的点
    firewalld 使用区域和服务而不是链式规则。
    它动态管理规则集,允许更新规则而不破坏现有会话和连接。

    优点:
    支持动态的配置规则
    有多个预设的区域,可以在不同环境下,简单方便的变更规则

    对于一个接受到的请求具体使用哪个zone,firewalld是通过三种方法来判断的:
    1、source,也就是源地址 优先级最高
    2、interface,接收请求的网卡 优先级第二
    3、firewalld.conf中配置的默认zone 优先级最低

    firewalld有的区域(zone)
    block(拒绝)
    dmz(非军事化)
    drop(丢弃)
    external(外部)
    home(家庭)
    internal(内部)
    public(公开)
    trusted(信任)
    work(工作区)

    文件:
    /etc/firewalld/zones #用户自己定义的
    /usr/lib/firewalld #系统配置文件,预定义配置文件

    状态

    Target:目标
    icmp-block-inversion:ICMP协议类型黑白名单开关(yes/no)
    Interfaces:关联的网卡接口
    sources:来源,可以是IP地址,也可以是mac地址
    services:允许的服务
    ports:允许的目标端口,即本地开放的端口
    protocols:允许通过的协议
    masquerade:是否允许伪装(yes/no),可改写来源IP地址及mac地址
    forward-ports:允许转发的端口
    source-ports:允许的来源端口
    icmp-blocks:可添加ICMP类型,当icmp-block-inversion为no时,这些ICMP类型被拒绝;当icmp-block-inversion为yes时,这些ICMP类型被允许。
    rich rules:富规则,即更细致、更详细的防火墙规则策略,它的优先级在所有的防火墙策略中也是最高的。

    二.操作命令

    启动
    systemctl start firewalld

    查看状态
    systemctl status firewalld / firewall-cmd --state

    停止
    systemctl stop firewalld

    禁用
    systemctl disable firewalld

    三.使用命令

    firewall的状态

    查看防火墙的状态
    --state

    重新加载防火墙,中断用户的连接,将临时配置清掉,加载配置文件中的永久配置
    --reload

    重新加载防火墙,不中断用户的连接(防火墙出严重故障时使用)
    --complete-reload

    紧急模式,强制关闭所有网络连接,–panic-off是关闭紧急模式
    --panic-on

    配置集

    使用firewall-cmd添加的操作,重启会失效

    添加–permanent可以写到配置文件里,永久生效
    firewall-cmd --zone=public --add-service=http

    区域

    可以将配置写到不同与其中,例如public区域允许22端口,而external则允许80端口访问。这样登陆机器开启public,而提供服务的机器开启external。

    查看支持的所有ICMP类型
    --get-icmptypes

    查看所有区域
    --get-zones

    查看当前的默认区域
    --get-default-zone

    更改默认的区域
    --set-default-zone=work

    查看当前正在使用的区域
    --get-active-zones

    查看当前区域支持的服务
    --get-services

    查看当前区域开放的服务列表
    --list-services

    查看此区域内的所有配置,类似与iptables -L -n
    --zone=public --list-all

    查看所有区域配置
    --list-all-zones

    限制规则

    add添加 remove删除/禁用

    将网络接口添加到默认的区域内
    --add-interface=eth0

    将网络接口在默认的区域内删除
    --remove-interface=eth0

    添加端口到区域开放列表中
    --add-port=12222/tcp

    将端口范围添加到开放列表中
    --add-port=5000-10000/tcp

    添加服务到区域开放列表中(注意服务的名称需要与此区域支持的服务列表中的名称一致)
    --add-service=ftp

    区域内将http服务删除在开放列表中删除
    --remove-service=ftp

    添加源地址的流量到指定区域
    --add-source=192.168.1.1

    删除源地址的流量到指定区域
    --remove-source=192.168.1.1

    改变指定的接口到其他区域
    --change-interface=eth1

    确定该网卡接口是否存在于此区域
    --query-interface=eth1

    开启SNAT(源地址转换)
    --add-masquerade

    查询SNAT的状态
    --query-masquerade

    开启SNAT(源地址转换)
    --add-masquerade

    端口转发,本地513到其他机器的22端口,要开启masquerade
    --add-forward-port=port=513:proto=tcp:toport=22:toaddr=192.168.100.101

    四.例子

    服务与端口

    在public中添加一个允许访问http服务
    firewall-cmd --zone=public --add-service=http

    在public中拒绝访问http服务
    firewall-cmd --zone=public --remove-service=http

    允许访问12345端口的tcp流量
    firewall-cmd --zone=public --add-port=12345/tcp

    拒绝访问12345端口的tcp流量
    firewall-cmd --zone=public --remove-port=12345/tcp

    转发

    将本地80端口的流量转发到本地12345端口上
    firewall-cmd --zone="public" --add-forward-port=port=80:proto=tcp:toport=12345

    转发到另一台服务器上需要的区域中激活 masquerade。
    firewall-cmd --zone=public --add-masquerade

    将本地80端口转发到123.456.78.9的8080上
    firewall-cmd --zone="public" --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=123.456.78.9

    将add变成remove就是去除这条
    firewall-cmd --zone="public" --remove-forward-port=port=80:proto=tcp:toport=8080:toaddr=123.456.78.9

    五.丰富规则

    列出你目前的丰富规则
    firewall-cmd --list-rich-rules

    允许192.168.0.14的所有IPv4流量
    firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address=192.168.0.14 accept'

    拒绝192.168.1.10的ipv4访问22端口
    firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address="192.168.1.10" port port=22 protocol=tcp reject'

    允许10.1.0.3的ipv4访问80端口的tcp,并把流量转发到6532上
    firewall-cmd --zone=public --add-rich-rule 'rule family=ipv4 source address=10.1.0.3 forward-port port=80 protocol=tcp to-port=6532'

    六.实际操作

    跳板机

    跳板机通常只开放22端口,其它关闭,并且只允许某ip连接,其它需要拨VPN

    选择public做默认区域
    firewall-cmd --set-default-zone=public

    允许指定ip访问固定端口
    firewall-cmd --add-rich-rule="rule family="ipv4" source address=10.10.10.140 port protocol="tcp" port="22" accept"

    对外服务机器

    允许所有访问80端口
    firewall-cmd --add-port=80/tcp

    允许固定ip访问所有端口
    firewall-cmd --add-rich-rule 'rule family="ipv4" source address=10.10.10.140 accept'

    允许跳板机ip访问22端口
    firewall-cmd --add-rich-rule="rule family="ipv4" source address=10.10.10.140 port protocol="tcp" port="22" accept"

    内部应用服务器

    允许所有端口访问
    firewall-cmd --add-port=1-65535/tcp
    firewall-cmd --add-port=1-65535/udp

     

  • 相关阅读:
    属性与字段的区别
    修改LVDS支持1024*600分辨率
    Altium designer 10如何设置标题栏
    嵌入式C开发人员的最好的0x10道笔试题
    进程线程及堆栈关系的总结
    GDB调试
    c语言
    如何使用autotools生成Makefile
    ubuntu NFS
    Ubuntu安装配置TFTP服务
  • 原文地址:https://www.cnblogs.com/flashfish/p/10956720.html
Copyright © 2020-2023  润新知