微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

centos7 中iptables、firewalld 、netfilter 关系

centos7系统使用firewalld服务替代了iptables服务,但是依然可以使用iptables来管理内核的netfilter

但其实iptables服务和firewalld服务都不是真正的防火墙,只是用来定义防火墙规则功能的管理工具,将定义好的规则交由内核中的netfilter(网络过滤器来读取)从而实现真正的防火墙功能

在iptables命令中设置数据过滤或处理数据包的策略叫做规则,将多个规则合成一个链。

常见的控制类型

ACCEPT 允许通过

LOG  记录日志信息,然后传给下一条规则继续匹配

REJECT  拒绝通过,必要时给出提示

DROP  直接丢弃,不给出任何回应。

规则链则依据处理数据包的位置不同而进行分类

PREROUTING进行路由选择前处理数据包

INPUT  处理入站数据包

OUTPUT  处理出站数据包

FORWARD  处理转发的数据包

POSTROUTING  在进行路由选择后处理数据包

iptables中的规则表是用于容纳规则链,规则表认是允许状态的,那么规则链就是设置被禁止的规则,而反之如果规则表是禁止状态的,那么规则链就是设置被允许的规则。

raw表:确定是否对该数据包进行状态跟踪

mangle表:为数据包设置标记

nat表:修改数据包中的源,目标IP地址或端口

filter表:确定是否放行该数据包(过滤)

默认指filter表。

不指定规则链则指表内所有的规则链。

在规则链中匹配规则时会依次检查,匹配即停止(LOG规则除外),若没匹配项则按链的认状态处理。

基本的命令参数

iptables命令用于管理防火墙的规则策略,格式为:“iptables [-t 表名] 选项[链名][条件]  [-j 控制类型]”不指定表,认netfilter

 

禁止所有的ping操作

iptables -I INPUT -p icmp -j DROP

firewalld防火墙

区域规则

 

firewall-cmd

 

 

 

很多人因为防火墙的设置太繁杂,所以经常直接systemctl stop firewalld关闭防火墙。

其实这样是不安全的,关闭防火墙之后,不法分子就可以轻易的攻击服务器了。

下面我以开启http为例子,展示如何让http能通过防火墙

firewall-cmd --list-all获取当前的防火墙规则

我的是dmz

firewall-cmd --add-service=http

如果是success,那么服务器上的http服务就能通过防火墙了。但是只是暂时的。

firewall-cmd --permanent --zone=dmz --add-service=http

如果是开放某个端口

firewall-cmd --permanent --zone=dmz --add-port=xxx/tcp

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐