linux iptables安全技术与防火墙
目录
一、入侵检测系统
二、防火墙
三、防水墙
四、tcpdump抓包
五、实验演示
1.SNAT
一、入侵检测系统
特点:是不阻断任何网络访问,量化、定位来自内外网络的威胁情况,
主要以提供报警和事后监督为主,提供有针对性的指导措施和安全决策依据,类似于监控系统
二、防火墙
1.特点:隔离功能,工作在网络或主机边缘
对进出网络或主机的数据包基于一定的规则检查,并在匹配某规则时由规则定义的行为进行处理的一组功能的组件,
基本上的实现都是默认情况下关闭所有的通过型访问,只开放允许访问的策略,会将希望外网访问的主机放在网络中。
2.防火墙分类:
主机防火墙:服务范围为当前一台主机
网络防火墙:服务范围为防火墙一侧的局域网
3.按实现方式划分:
硬件防火墙:在专用硬件级别实现部分功能的防火墙;另一个部分功能基于软件实现
4.按网络协议划分:
网络层防火墙:OSI模型下四层,又称为包过滤防火墙
应用层防火墙/代理服务器:proxy 代理网关,OSI模型七层
5.Netfilter
Linux防火墙是由Netfilter组件提供的,Netfilter工作在内核空间,集成在linux内核中
6.iptables
由软件包iptables提供的命令行工具,工作在用户空间,用来编写规则,写好的规则被送往netfilter,告诉内核如何去处理信息包
iptables默认安装
Linux的防火墙体系主要工作在网络层针对数据包实施过滤和限制,属于典型的包过滤防火墙(或称为网络层防火墙)。
(1)五元素:
1.源ip地址
2.目标IP地址
3.源端口
4.目标端口
5.协议
(2)五种规则链
1.INPUT:处理入栈数据包
2.OUTPUT:处理出栈数据包
3.FORWORD:处理转发数据包
4.POSTROUTING:处理路由选择后处理数据包
5.PREROUTING:处理路由选择前数据包
(3)四种规则表
1.raw表:确定是对数据包进行状态跟踪
2.mangle表:为数据包设置标记
3.nat表:修改数据包的源目标IP地址或端口
4.fileter表:确认是否放行该数据包
四表五链
规则表的作用:容纳各种规则链
规则链的作用:容纳各种防火墙规则
总结:表里有链,链里有规则
注意事项:
不指定表名时,默认指filter表
不指定链名时,默认指表内的所有链,一般不这么操作
除非设置链的默认策略,否则必须指定匹配条件
选项、链名、控制类型使用大写字母,其余均为小写
(4)内核中数据包的传输过程
1. 当一个数据包进入网卡时,数据包首先进入PREROUTING链,内核根据数据包目的IP判断是否需要转送出去。
2. 如果数据包是进入本机的,数据包就会沿着图向下移动,到达INPUT链。数据包到达INPUT链后, 任何进程都会收到它。
本机上运行的程序可以发送数据包,这些数据包经过OUTPUT链,然后到达
3. 如果数据包是要转发出去的,且内核允许转发,数据包就会向右移动,经过FORWARD链,然后到达POSTROUTING链输出
(5)规则内的匹配顺序
自上向下按顺序依次进行检查,找到相匹配的规则即停止(LOG策略例外,表示记录相关日志)
若在该链内找不到相匹配的规则,则按该链的默认策略处理(未修改的状况下,默认策略为允许)
(6)数据包的常见控制类型
ACCEPT:允许数据包通过。
DROP: 直接丢弃数据包,不给出任何回 应信息。
REJECT:拒绝数据包通过,必要时会给数据发送端一个响应信息。
SNAT: 修改数据包的源地址
DNAT: 修改数据包的目的地址
(7)管理选项
-A 在指定链末尾追加一条
-I 在指定链中插入一条新的,未指定序号默认作为第一条
-P 指定默认策略
-D 删除
-R 修改、替换某一条规则
-L 查看
-n 所有字段以数字形式显示
-v 查看时显示更详细信息,常跟-L一起使用
--line-numbers 规则带编号
-F 清除链中所有规则
-X 清空自定义链的规则,不影响其他链
-Z 清空链的计数器
-S 看链的所有规则或者某个链的规则/某个具体规则后面跟编号
(8)匹配的条件
-p 指定要匹配的数据包的协议类型
-s 指定要匹配的数据包的源IP地址
-d 指定要匹配的数据包的目的IP地址
-i 指定数据包进入本机的网络接口
-o 指定数据包离开本机做使用的网络接口
--sport 指定源端口号
--dport 指定目的端口号
例子演示:
(1)粗略查看默认规则:
(2)数字化的形式查看规则:
(3) 指定表查看:
(4)查看指定表中的指定链
(5) 清空规则(清除前先备份)
(6)备份iptabs
(7)还原iptabes
(8)添加规则,禁止所有主机ping本机
可以看到所有网段无法通信
(9)添加所有网段都可以通信
(10)指定序号插入,插入到第一条
(11) 添加禁止任何主机tcp
(12)添加允许任何主机udp
(13)查看行规则的位置
(14)添加拒绝某一台主机,其他的可以
(15) 拒绝多台主机
(16) 添加指定端口(禁止22端口ssh服务会掉)
(17)添加指定IP地址的服务端口拒绝
可以看到IP地址可以登录,但是使用指定端口不可通信
(18)根据序号删除内容
(19)内容匹配删除(有两个相同的则作用为去重) 如果有两个重复的规则,则删除序号较小的
(20)修改默认规则:
(21)filter三条链的默认值为ACCEPT,修改为DROP
(22)除了icmp以外,所有的协议都可以进入
(23)禁止整个网段访问21和80端口 (小的数字写在前面,大的写在后面)
显示匹配
(1)-m multiport --sport 源端口列表 -m multiport --dport 目的端口列表
(2)IP范围匹配
-m iprange --src-range 源IP范围
-m iprange --dst-range 目的IP范围
(3)MAC匹配
-m mac --mac-source MAC地址
(4) 自定义链使用
(5)自定义链改名
(6)创建自定义链规则
(7)删除自定义规则链:先删除iptables INPUT链中的对应关系,然后删除自定义链中的规则。
7.firewalld
软件包:firewalld、firewalld-config
管理工具:firewall-cmd 命令行工具、firewall-config 图形工作
三、防水墙
特点:广泛意义上的防水墙:防水墙,与防火墙相对,是一种防止内部信息泄漏的安全产品。
防水墙针对这四种泄密途径,在事前、事中、事后进行全面防护。
四、 tcpdump抓包
tcpdump抓包工具的运用
wireshark 抓包工具只在windows中使用。
tcpdump 可以在Linux系统中使用。
1.静态抓包
linux没有查看工具,所有将target.cap导入到外面实验target查看
2.动态抓包
五、实验演示
1.在pc1配置内网地址
重启服务
2.配置外网地址pc3
3.中转服务器pc2,先配置ens33网关
重启网卡
配置ens37网卡作为外网的转发处
重启网卡
4.修改网卡模式
内网和对应网卡为nat,外网为仅主机
网关服务器配置:
外网网卡配置
5.启动转发
进入/etc/sysctl.conf
6.添加规则,允许访问指定网段端口
使用pc1向外网通信
pc3外网访问内网