shell第九章iptables防火墙

防火墙:隔离功能

部署点:部署在网络边缘,或者主机边缘,在工作中,防火墙的主要作用,决定那些数据可以被外网访问,以及哪些数据可以进入内网访问

讨论防火墙,主要就是在网络层进行讨论

安全技术:

1,入侵检测系统:检测数威胁,病毒,木马,不会阻断网络访问,时候提供报警和监控。

2,入侵防御系统:一旦检测出威胁,会立即予以阻断,主动的方式保护网络安全。透明模式工作的,一般都是在线部署(所有数据进出的必经之路)

现在市面上的大部分的防火墙都是上述二者的结合体。

防水墙:water wall,主要是防止内部资料信息泄露。

防火墙的种类:

1,软件防火墙:360,卡巴斯基,金山毒霸,IPtables,firewall

2,硬件防火墙:路由器,交换机,三层交换机

防火墙的划分方式:

1,保护范围

)1,主机防火墙:服务范围就是当前自己的主机。

)2,网络防火墙:必经之路,所有数据的进出都要通过这里。

2,实现方式

)1,硬件防火墙,既有专业的硬件来自实现防火墙功能,又有软件来进行配合。(价格高)

)2,软件防火墙:主要靠自带代码判断。

3,网络协议划分

)1,网络层:(数据包)包过滤防火墙

)2,应用层(代理服务器):设置数据的进出。

Linux防火墙的种类

1,firewalld centos7专门自带的

2,iptable 包过滤防火墙

3,selinux 自带的安全工具

他们集合在一个内核中:netfilter组件

iptable 包过滤防火墙 工作地点以及作用

1,工作在:网络层

2,作用:针对数据包进行过滤和限制

 

过滤数据包:ip地址——端口——协议。都可以在iptable中进行配置,可以限制,也可以放行

协议:主要讨论的就是tcp

iptable的构成和工作机制:

iptable的组成本部分:四表五链组成(selinux,也是一个表,不在我们讨论范围之内。)

1,四表

)1,raw:链接跟踪机制,加快封包穿过防火墙的速度,主要是数据包的跟踪。

)2,mangle:数据标记。

)3,nat:地址转换表。

)4,filter:过滤规则表,根据规则来定义或者过滤符合条件的数据包,是iptable的默认表。

四表的优先级:

raw——》mangel——》nat——》filter

 

2,五链:容纳各种规则

)1,INPUT:处理数据包进入本机的规则。

)2,OUTPUT:处理数据包发出的规则,一般是不做处理的。

)3,preouting:处理数据包进入的规则。(结合地址转换使用)

)4,postouting:处理数据包离开本机之后的规则。(结合地址转换使用)

)5,FORWARD:处理数据转发的规则。

iptable的规则:

表里面有链,链里面有规则,规则就是我们自定义的对于数据包的控制命令

匹配顺序:

1,根据表的优先级匹配,在表中从上到下进行检查,找到匹配规则,立即停止,不在表中向下继续查找,如果匹配不到规则,会按照链的默认规则进行处理。

2,报文流向

)1,流入本机:prerouting——>iuput——>用户进程(httpd服务)——>请求访问——>响应——>数据要返回用户

)2,流出本机:httpd——>响应报文——>output-——>postrouting(是否需要做地址转换——>用户

)3,转发:数据包进来,转发肯定不是同一网段,路由器转发——>数据包出去,不允许转发,数据包直接丢弃

 

iptable命令格式

iptable [-t 表名](不指定表名,默认就是filter表) +管理选项 +[链名] [匹配条件] [-j 控制类型]

管理选项命令:(基本都是大写)

-A :表示在链的末尾添加一条

-I(大写的i) :在链中插入一条新的规则,可以指定序号。-I 后面跟上数字,表示序号

-P:修改链的默认策略

-D:删除

-R:修改,替换规则

-L:查看链中的规则(一般和vnL结合使用)

vnL:1,v:显示详细信息

2,n:把规则以数字形式进行展示

vnL --line-number 查看规则的序号

-F :清空链中的所有规则,慎用

匹配条件:(基本都是小写)

-p:指定匹配的协议类型。

-s:指定匹配的源ip地址。

-d:指定匹配数据包的ip地址。

-i:指定数据包进入本机的网络接口。

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

--sport:指定源端口号。

--dport:指定目的的端口号。

控制类型:(全部大写)-j +控制选项

ACCEPT:允许数据包通过。

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

REJECT:拒绝,会给响应信息。

SNAT:修改数据包的源ip地址

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

指定多个ip地址用(逗号),隔开

在生产中。iptables所有的链的默认规则都是DROP

如何修改链的默认规则

iptables -P INPUT DROP

iptables -A INPUT -P tcp --dport 22 -j ACCEPT

iptables -A INPUT -P tcp --dport 80 -j ACCEPT

实验:真个网段禁止访问80端口的服务

iptables -A INPUT -s 192.168.233.0/24 -p tcp --dport 80 -j REJECT

隐藏扩展模块:

-p 指定协议时,tcp,udp指明了是什么协议,就不需要再用-m指定扩展模块

指定端口,可以用冒号的形式,也可以用-m隐藏模块来实现

-m 可以用明确的形式指出类型,多端口,mac地址,ip地址,数据包的状态

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

-m multiport :指定多个端口,多个端口号逗号分开

ip范围:

-m iprange --scr-range:源ip地址的范围

-m iprange --dst-range:目的地址范围

iptables -A INPUT -p icmp -m iprane -- src-range

mac地址

-m mac --mac-source

iptables的备份与还原:

1,写在命令行当中的都是临时配置

2,把我们的规则配置在服务当中,形成永久生效

iptables -save > /opt/data 备份,导出

cat /etc/sysconfig/iptables

cat /opt/data > /etc/sysconfig/iptables

iptables -restore < /opt/data 导入

永久生效要写入 /etc/sysconfig/iptables配置文件中

自定义链:

1,创建自定义链:iptables -N +自定义链名(没有指定表,就默认在filter表中添加一个自定义链)

2,给自定义链改名:iptables -E +原链名 +新链名

3,添加新的规则 iptables -I ky30 -p icmp

iptables -I INPUT -p icmp -j ky30 创建在自定义链当中的规则,需要添加到默认链中,才能够使用

-j ky30 自定义的链名。

4,删除自定义链接

)1,自定义链的规则被默认链使用,要先在默认链当中国删除,再把自定义链当中的规则删除,最后才能把自定义链删除 iptables -X ky30 (自定义链名)

SNAT和DNAT

SNAT:修改数据包的源ip地址

内网到外网——>源

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

外网到内网——>目的

 

10.0.0.10 192.168.233.10

 

web服务器 网关服务器 网关服务器 客户端

地址转换

12.0.0.10 源 192.168.233.10 web服务器——网关服务器——12.0.0.10——网关服务器——客户端发起请求

web服务器响应请求——网关服务器——网关服务器——客户端

-t nat :指定表名

-A PREROUTING

-d :指定目的ip

-p:指定协议

--dport :指定端口号

-j DNAT:目标地址转换

--to 192.168.233.10:80

所有外部来的访问ip地址都变成11.0.0.11来访问内网,目标端口为80,协议是tcp协议的流量转发到192.168.233.10:80的端口、

外部客户端可以通过10.0.0.11:80来访问内部服务192.168.233.10:80的http服务

/etc/sysctl.conf
修改内个参数,永久生效

firewalld:防火墙,包过滤防火墙。网络层centos7自带的默认防火墙,取代iptables

两种配置模式:

1,运行时配置

2,永久配置

iptable是静态防火墙

firewalld是动态防火墙

firewalld按照区域来进行划分,一共有9个区域

9个区域的作用:

trusted:信任区域,允许所有的流量接入。

public:公共区,默认区域,默认只允许ssh和dhcpv6两个预定义服务的流量可以传入,其余都是拒绝。

external:外部区域,只允许ssh和dhcpv6两个预定义服务的流量可以传入,其余都是拒绝。如果通过此区域转发的ipv4流量,可以进行地址伪装。

home:家庭区域,只允许ssh和dhcpv6两个预定义服务的流量可以传入,其余都是拒绝。

internal:内部区域,默认值和home一个作用

work:工作区域,只允许ssh和dhcpv6两个预定义服务的流量可以传入,其余都是拒绝。

dmz:隔离区域,也称为非军事区域,只允许ssh和dhcpv6两个预定义服务的流量可以传入,其余都是拒绝。

block:限制区域,所有的流量都拒绝

drop:丢弃区域,直接丢弃,没有显回信息

预定义服务:

ssh:远程连接协议

dhcpv6:通过dhcpv6服务器进行报文交互,获取ipv6的地址

ipp:编程语言交互

samba:打印机

mdns:主机名地址解析,主要解析小型网络的ip地址

面试题:

表里时链,链里是股则,从上到下匹配,匹配到立即停止

Linux系统如何抓包?

tcpdump来实现Linux抓包,自带的工具

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

指定抓包的协议时tcp

-i ens33 只抓经过ens33的数据包

-t 不显示时间戳

-s0 抓取完整的数据包

and 目的端口是80,and 192.168.233.0/24数据包的源地址

-w 把抓包的文件保存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值