查看防火墙linux_查看防火墙规则linux_linux查看防火墙状态

来自:入门小站

查看防火墙linux_查看防火墙规则linux_linux查看防火墙状态

防火墙基本概念

防火墙就是根据系统管理员设定的规则来控制数据包的进出,主要是保护内网的安全,目前 Linux 系统的防火墙类型主要有两种:分别是 [iptables] 和 firewalld

Iptables-静态防火墙

早期的 Linux 系统中默认使用的是 iptables 防火墙,配置文件在 / etc/sysconfig/iptables

主要工作在[网络层]

使用链式规则,只可以过滤互联网的数据包,无法过滤从内网到内网的数据包 Iptables 只可以通过命令行进行配置 Iptables 默认是允许所有,需要通过拒绝去做限制 Iptables 在修改了规则之后必须得全部刷新才可以生效,还会丢失连接(无法守护进程)

Firewalld-动态防火墙

取代了之前的 iptables 防火墙,配置文件在 / usr/lib/firewalld 和 / etc/fiewalld 中,主要工作在网络层,新增区域概念,不仅可以过滤互联网的数据包,也可以过滤内网的数据包,Firewalld 不仅可以通过命令行进行配置,也可以通过图形化界面配置,Firewalld 默认是拒绝所有,需要通过允许去放行,Firewalld 可以动态修改单条规则,动态管理规则集(允许更新规则而不破环现有会话和连接,可以守护进程)

注意事项

iptables 和 firewaldl 都只是 linux 防火墙的管理程序,真正的防火墙执行者是位于内核的 netfilter,只不过 firwalld 和 iptables 的结果以及使用方法不一样 在配置防火墙时,不建议两种配置方法结合使用(建议只使用其中的一种)

Iptables 讲解

Iptables 配置防火墙依靠四个部分实现:表、规则链、规则(匹配条件)、控制类型组成

Iptables 表

处理优先级由高到低,表与表之间都是独立的

raw表

是否对某个数据包进行状态追踪(包含 OUTPUT、PREAUTING 两个规则链)

mangle表

修改数据包内容;可以做流量整形、对数据包设置标记(包含所有规则链)

nat表

负责地址转换功能;修改数据包中的源目 IP 地址或端口(包含 IN、OU、PR、PO 三个规则链)

filter表

负责过滤数据包;对数据包时允许放行还是不允许放行(包含 IN、OU、FO 三个规则链) Iptables 规则链

什么是规则链

很多个规则组成一个规则链,数据包从上往下做匹配,匹配成功就结束匹配,并执行相应的控制类型(建议需要将精准的策略放在上面)

规则链类型

INPUT处理入站的数据包(处理目标是本机的数据包) OUTPUT处理出站的数据包(处理源是本机的数据包,一般不在此链上做规则) PREROUTING在进行路由选择前处理数据包(一般用来做 NAT Server) POSTROUTING在进行路由选择后处理数据包(一般用来做源 NAT) FORWARD处理转发的数据包(处理经过本机的数据包)

Iptables 控制类型

ACCEPT 允许数据包通过 DROP 丢弃数据包(不给对方回应,一般工作时用这个) REJCET 拒绝数据包通过(会给对方回应,对方知道自己被拒绝) SNAT 修改数据包的源地址 DNAT 修改数据包的目的地址 MASQUERADE 伪装程一个非固定的公网 IP 地址 LOG 在 / var/log/messages 文件中记录日志信息,然后将数据包传递给下一条规则

数据包到达防火墙根据下图进行匹配

iptables 进行数据处理关心的是四表五链以及流量的进出

linux查看防火墙状态_查看防火墙linux_查看防火墙规则linux

Iptables 命令配置

配置 iptables 防火墙时需要将防火墙服务开启

systemctl start firewalld 开启防火墙 systemctl status firewalld 查看防火墙状态

查看防火墙规则linux_查看防火墙linux_linux查看防火墙状态

Iptables命令查看防火墙

iptables -nL -t nat 查看 nat 表的规则链 -n 使用数字形式显示输出结果(如:通过 IP 地址) -L 查看当前防火墙有哪些策略 -t 指定查看 iptables 的哪个表(默认是 filter 表)

linux查看防火墙状态_查看防火墙linux_查看防火墙规则linux

Iptables命令配置防火墙

> iptables -P INPUT DROP将 INPUT 规则链的默认流量更改为拒绝
> -P 设置 / 修改默认策略
> iptables -t filter -I INPUT -s 192.168.10.0/24 -j ACCEPT在 filter 表下的 INPUT 规则链中配置规则
> -I num 插入规则(大写 i,默认在链的开头加入规则,可以指定序号)
> -i  从这块网卡流入的数据
> -o 从这块网卡流出的数据
> -s  源地址(加!表示取反)
> -d 目的地址
> -j  限制动作
> iptables -A INPUT -p tcp --dport 1000:1024 -j REJECT拒绝 tcp 端口号为 1000~1024 的数据包
> -A 在链的末尾加入规则
> -p 指定协议类型
> --sport 源端口
> --dport 目的端口
> iptables -D INPUT 1删除 INPUT 规则链的第一条规则
> -D num 删除规则链
> -R 修改规则
> iptables -F清空已有的策略
> iptables-save来保存防火墙策略

注意事项

当创建的规则内容与已有规则一致时,不会覆盖原先的规则,会直接加入到现有规则链中(即此时此规则链下有两条一摸一样的规则,只是顺序不同) 以上关于防火墙的配置是 runtime 模式,即配置成功后立即生效,但是重启后会失效(需要将配置保存,重启后才不会失效)

firewalld 讲解

frewalld 是服务名称,firewall-cmd 和 firewall-config 是配置工具名称

firewall-cmd 基于命令行配置

firewall-config 基于图形化界面配置(这两个配置方式实时同步)

Firewalld 区域概念

默认所有网卡都是 public 区域,可以根据需要将网卡设置为不同的区域

> Trust信任区域
> 允许所有流量(所有的网络连接都可以接受)
> Public公共区域
> 仅接受 ssh、dhcpv6-client 服务连接(默认区域)
> External外部区域
> 仅接收 ssh 服务连接(默认通过此区域转发的 IPv4 流量将会进行地址伪装)
> Home家庭区域
> 仅接受 ssh、msdns、ipp-client、samba-client、dhcpv6-client 服务网络连接
> Internal内部区域
> 同 home 区域
> Work工作区域
> 仅接受 ssh、ipp-client、dhcpv6-client 服务连接
> Dmz隔离区域(非军事区域)
> 仅接收 ssh 服务连接
> Block限制区域
> 拒绝所有传入流量(有回应)
> Drop丢弃区域
> 丢弃所有传入流量(无回应)

数据包到达防火墙匹配规则

firewall 进行数据处理只关心区域

Firewalld 两种配置方法

临时配置(runtime 当前生效表)

立即生效,重启后失效,不中断现有连接,无法修改服务配置永久配置(permanent 永久生效表)

不立即生效,重启后生效,或者立即同步后生效 会终端现有连接 可以修改服务配置

firewall-cmd 命令行基础配置

如何实现永久配置

–permanent表示此配置加入到永久生效(默认临时生效) 或者在配置结束后执行此命令 firewall-cmd –runtime-to-permanent 将临时更改为永久 永久配置完成后需要立即同步 firewall-cmd –reload立即同步永久配置

查看默认区域并进行更改

> firewall-cmd --get-zones               查询可用的区域
> firewall-cmd --get-default-zone          查询默认区域的名称
> firewall-cmd --get-active-zone           显示当前正在使用的区域与网卡名称
> firewall-cmd --set-default-zone=trusted    设置默认区域为 trusted 区域

linux查看防火墙状态_查看防火墙linux_查看防火墙规则linux

将网卡 / 子网与区域绑定(允许 / 拒绝此子网通过)

> firewall-cmd --zone=drop --add-source=192.168.20.0/24将此子网与 drop 区域绑定(拒绝从此子网发来的流量)
> firewall-cmd --zone=trusted--add-interface=ens160  将此网卡与 trusted 区域绑定(允许从此网卡发来的流量)
> --remove-source  删除子网与区域的绑定
> --change-source  更改子网与区域的绑定

linux查看防火墙状态_查看防火墙linux_查看防火墙规则linux

配置区域允许 / 拒绝的协议 / 端口号

> firewall-cmd --list-all显示当前区域的端口号、网卡、服务等信息
> --list-all-zones        显示所有区域的
> firewall-cmd --get-services                     列举出来当前所有被允许的协议
> firewall-cmd --zone=public --add-service http    配置 public 区域允许通过 http 协议
> --remove-service ssh    拒绝通过 ssh 协议
> --add-port=123/tcp     允许通过 tcp 的 123 端口
> --remove-port=123/tcp  拒绝通过 tcp 的 123 端口
> cat /etc/services     保存的协议类型和端口号

查看防火墙linux_linux查看防火墙状态_查看防火墙规则linux

配置协议端口转换(端口映射)

> firewall-cmd --permanent --zone=public --add-forward-port=port=888:proto=tcp:toport=22:toaddr=192.168.10.1
> 将 192.168.10.1 主机的 tcp 22 端口号转为 888 端口号(public 区域接收 ssh)
> --remove-forward-port 删除此端口映射

linux查看防火墙状态_查看防火墙规则linux_查看防火墙linux

其它配置

> --panic-on  紧急模式,切断一切的网络连接(特殊情况去使用)
> --panic-off 恢复一切的网络连接

配置富规则 rich(更复杂、更详细的防火墙策略配置)

优先级最高(高于默认规则,两个并不冲突) 能够根据源目地址、端口号来限制用户

> firewall-cmd  --zone=public --list-rich-rule  显示 public 区域已经配置的富规则
> firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4"source address="192.168.100.1/24"service 允许来自 192.168.

100.1 的主机访问 22 端口

> --add-rich-rule         添加一个富规则
> --remove-ruch-rule     删除一个富规则
> reject                  拒绝访问

linux查看防火墙状态_查看防火墙规则linux_查看防火墙linux

firewall-config 图形化配置

安装 firewall-config

配置 Yum 源(软件仓库)

安装软件 dnf install firewall-config

linux查看防火墙状态_查看防火墙linux_查看防火墙规则linux

系统界面讲解

END

官方站点:

Linux命令大全:

限时特惠:本站每日持续更新海量各大内部网赚创业教程,会员可以下载全站资源点击查看详情
站长微信:11082411

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。