linux之iptables防火墙

本文详细介绍了Linux防火墙技术,包括iptables的四表五链结构、管理选项、匹配条件、控制类型,以及NAT地址转换。同时涵盖了firewalld的特点和与iptables的区别,涉及通信要素、规则增删和端口管理。
摘要由CSDN通过智能技术生成

目录

一、安全技术:

二、防火墙:

1、通信的五要素和四要素?

三、iptables:

1、四表五链:

2、iptables的管理选项:

3、iptables匹配条件:

4、iptables控制类型:

5、iptables操作:

6、总结:

四、设置NAT地址转换

五、centos7防火墙:firewalld


一、安全技术:
  1. 入侵检测机制:特点是阻断,量化,定位来自内外的网络的威胁情况。提供报警和时候监督。类似于监控
  2. 入侵防御系统:以透明模式工作,分析数据包的内容,一切进入本机的内容进行防护,如木马,蠕虫,系统漏洞进行分析判断,然后进行阻断。主动的防护机制。部署在整个架构,或者是集群的入口处。(必经之路)
  3. 防火墙:隔离功能,工作在网络或者主机的边缘

对网络或者主机进出的数据包按照一定规则进行检查。(网络层转发数据包)

我们工作中,一般对防火墙的设置都是白名单,拒绝所有,允许换个别。

  1. 防水墙:透明模式工作,华为的ensp监控就是防水墙。一切对于防水墙来说都是透明的。可以在事前、事中、事后都可以进行检测

二、防火墙:

保护范围:

主机防火墙:仅为当前主机服务

网络防火墙:防护的是另一侧的局域网

网络层防火墙:iptables、包过滤防火墙

访问控制,每个数据包的源ip地址,目的IP地址,端口号,协议等进行组合式的监控,由此来判断数据包是否允许通过

1、通信的五要素和四要素?

五要素:源/目的ip  源/目的端口 协议

四要素:源/目的ip  源/目的端口

iptables:系统自带的包过滤防火墙

firewalld:主机防火墙,他也有包过滤的功能。centos7以后集成的。

三、iptables:

内核防火墙,内置四个表,而且在所有的表中,配置规则。配置后立即生效,不需要重启服务。

1、四表五链:

四个表:

raw:连接跟踪跟踪数据的一种机制。配置了之后,可以加快防火墙的穿越速度(关闭raw里面的追踪)

mangle:修改数据包的标记位规则

nat:地址转换的规则表

filter:包过滤规则表。根据预定义的规则,人工设置的规则,对符合条件的数据包进行过滤,也是iptables的默认表

四个表的优先级:

raw——mangle——nat——filter

五链:

PREROUTING链:处理数据包进入本机之前的规则

input链:处理数据包进入本机规则

forward链:处理数据包,转发到其他主机的规则

output链:处理本机发出的数据包的规则,一般不做处理

postrouting链:处理数据包离开本机之后的规则 NAT

表里有链,链里面有规则

iptables的配置规则,写在链中

规则内的匹配顺序:

自上向下按顺序依次进行检查,找到相匹配的规则即停止(LOG策略例外,表示记录相关日志)

若在该链内找不到相匹配的规则,则按该链的默认策略处理(未修改的状况下,默认策略为允许)

iptables和linux防火墙有冲突要关闭

yum -y install iptables iptables-services

2、iptables的管理选项:

-A:在指定链的末尾进行追加

-I(大写):在指定链插入新的规则。可以指定插入规则的位置

-P(大写):修改默认策略(链的策略)

-D:删除

-R:修改或者替换规则

-L:查看指定链当中的规则

-n:以数字形式显示规则

-v:查看详细信息

--line-numbers:给每个链中的规则进行编号查看

-F:清空指定链当中的规则(慎用)

-X(大写):清空自定义链的规则

-t:指定表名

3、iptables匹配条件:

-p:指定数据包的协议类型

-s:指定数据包的原IP地址

-d:指定数据包的目的IP地址

-i:指定数据包进入本机的网络接口,也就是网卡设备如ens33

-o:指定数据包离开本机的时候,使用的网络接口

--sport:指定原端口

--dport:指定目的端口号

4、iptables控制类型:

-j:后面跟上下面的控制类型

ACCEPT:允许数据包通过

DROP:拒绝数据包通过,直接丢弃数据包,不给任何回应的信息

REJECT:拒绝数据包通过,但是会给回应信息

SNAT:修改数据包的原地址

DNAT:修改数据包的目的地址

5、iptables操作:

iptables -t filter -vnL 指定查看filter中的链和规则

iptables -vnL iptables默认filter表,可以省略-t

iptables -vnL --line-numbers 给链和链中的规则编号

iptables -vnL INPUT --line-numbers 查看指定表中的指定链,并且给链中的规则编号

iptables -F 清空filter表中所有规则(慎用)

只要不-t指定表明,统统默认是对filter表操作

iptables -A INPUT -p icmp -j ACCEPT

指定在INPUT链的末尾添加,拒绝icmp协议

-A:在指定链的末尾进行追加

-p:指定数据包的协议类型

-j:选择控制类型

因为自上向下按顺序依次进行检查,找到相匹配的规则即停止,上面设置的规则第一条是REJECT,执行之后,不再执行下面的ACCEPT

现在将第2条规则ACCEPT放到REJECT前面

-s:指定源数据包的IP地址 ,多个地址可以逗号隔开

--dport指定数据包的源端口

限制ssh登录

iptables -A INPUT -p tcp --dport 22 -s 20.0.0.40 -j REJECT

规则删除:

修改规则:

修改iptables的默认策略:

设置默认策略DROP或REJECT时要慎用,生效时默认全部数据不能输入

通用匹配规则:IP地址+端口+网段+接口(网卡设备).

iptables -A INPUT -i ens33 -s 20.0.0.0/24 -j DROP

进制20.0.0.0整个网段的数据从ens33网卡设备进来

隐藏扩展模块:

-p指定协议时,不需要使用-m指明扩展模块。-m tcp

-m 显示匹配:

-m扩展模块,明确指定类型,多端口,Mac地址,IP范围。

如何指定多端口:

-m multiport --sport /--dport

iptables -A INPUT -p tcp -m multiport --dport 80,22,21,20,53 -j REJECT

指定IP地址的范围:

-m iprange --src-range  源IP范围

-m iprange --dst-range 目的IP范围

在20-50范围内的主机不允许ping主机

iptables -A INPUT -p icmp -m iprange --src-range 20.0.0.20-20.0.0.50 -j REJECT

备份还原:

如何使用自定义链:

先添加自定义链:

添加规则:

把自定义规则添加到系统下才能生效:

如何删除:

先删除添加系统链中的规则,再删自定义链中的规则,最后删除自定义链。和添加正好顺序相反

6、总结:

多端口、IP范围

通信要素,四表五链

查、增

iptables  -t 指定表 -vnL --line-numbers

增:-A INPUT 新增

-I INPUT 插入

-R 改

-D INPUT 删除

生产中默认策略:DROP,配置规则都是ACCEPT,所以清空规则 iptables -F 慎用

命令格式:

iptables -I INPUT 1 -s 20.0.0.40 -p tcp --dport 80 -j REJECT

命令严谨,有先后顺序

四、设置NAT地址转换

SNAT和DNAT:

SANT:源地址转换

DANT:目的地址转换

通过iptables进行地址转换

SNAT内到外,把内网地址换换成可以访问公网的地址

DNAT外到内,使公网地址可以访问内网资源

实验条件:三台pc主机

test1 20.0.0.10 内网

test2 ens33:内网网关:20.0.0.254

ens36:外网网关:12.0.0.254

 做SANT的地址转换

test3 20.0.0.100 外网

先添加网卡,ifconfig查看新网卡名,去

vim改

内外机器安装httpd,浏览器访问

改内外网卡:

重启网卡

地址转换:

iptables -t nat -A POSTROUTING -s 20.0.0.0/24 -o ens36 -j SNAT --to 10.0.0.10

-t:指定表名

nat:专门用来做地址转换的表明

-A:添加一条规则,在行尾追加

POSTROUTING:在出本机的时候添加一个地址转换的规则

-s 20.0.0.0/24:指定原IP地址

-o ens36:从网卡设备ens36出去的数据都会做转换

-j SNAT:指定控制类型 SANT做原地址转换

--to 10.0.0.10:所有的源IP属于20.0.0.0网段,只要你是从ens36出来的,都会把他们的IP地址转换成10.0.0.10

/etc/sysctl.conf 修改内核参数文件,可以立即生效

将作为路由器的转发功能打卡

查看nat表规则:iptables -t nat -vnL

sysctl -p 使配置完的文件立即生效

test2 再添加一条规则

iptables -t nat -A PREROUTING -d 11.0.0.11 -i ens36 -p tcp --dport 80 -j DNAT --to 20.0.0.10:80

-t nat:指定地址转换表

-a PREROUTING:在进入本机之后添加地址转换的规则

-d 11.0.0.11:指定目的地址

-i ens36:进入内网的设备接口

-p tcp:指定协议tcp (httpd)

--dport:指定目的端口 :80(httpd)

-j DANT:转换目的地址

--to 20.0.0.10:80:只要是从ens36这个网络接口进入本机内网的IP地址,访问内网服务http的80端口,目的IP地址都可以转换成11.0.0.11

网访问内:

linux系统能抓包么?

wrieshark只适用于Windows 抓包

tcpdump 是linux自带的抓包工具

抓包方式:1、指定抓包的数量

2、动态抓包,一直会获取包,排除人工体质

tcpdump命令:

制定抓包数量,抓10个包

tcpdump tcp -i ens33 -t -s0 -c 10 and dst port 80 and src net 20.0.0.0/24 -w ./target.cap

tcpdump:抓包命令,固定开头

tcp:抓包协议(udp也可以抓)

-i ens33:经过,只抓进过ens33的数据

-t:不显示时间戳

-s0:抓完整的数据包

-c 10:指定抓包格式,10个

dst port 80:访问的是httpd的80端口

src net 20.0.0.0/24:指定访问的地址

-w:抓包的数据,保存的位置(位置可指定)

设成.cap结尾是因为,linux不能分析数据,拖出来Windows的wireshrak分析(wireshark识别.cap文件)

tcpdump -i ens33 -s0 -w ./ens33.cap

sz 文件名:下载到桌面

五、centos7防火墙:firewalld

firewalld:centos7自带的。和iptables一样,也是包过滤防火墙

firewalld过滤,通过区域来进行配置

iptables是一个静态防火墙,只有满足条件他才会触发

firewalld是动态防火墙

iptables靠规则

firewalld靠区域

firewalld的区域:

  1. trusted:信任区,所有流量都可以传入
  2. public:公共区域,允许ssh或者dhcpv6-client的流量可以传入,其他的全部拒绝,也是firewalld的默认区域。

dhcpv6-client:获取ipv6地址的客户端工具

  1. external:外部区域,允许ssh或者dhcpv6-client的流量可以传入,其他的全部拒绝,默认通过此区域转发的ipv4流量地址,可以进行伪装。
  2. home:家庭区域,允许ssh或者dhcpv6-client的流量可以传入,其他的全部拒绝
  3. internal:内部区域,默认值与home区域的作用相同
  4. work:工作区域。允许ssh或者dhcpv6-client的流量可以传入,其他的全部拒绝
  5. DMZ:隔离区/非军事区,允许ssh和其他的预定义好的配置,其他的全部拒绝
  6. block:限制区,所有流量都会被拒绝
  7. drop:丢弃区,所有流量都会丢弃,没有任何响应

实验:开启防火墙,下载httpd

限制不立即生效,放行立即生效

.

以上都是临时添加:

永久添加:

永久删除:

端口管理:

在区域中添加 移除端口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值