没有域名做网站,河南做网站公司哪家专业,wordpress发表的文章在页面找不到,360易托管建站工具目录 一. 防火墙简介
1. 防火墙定义
2. 防火墙分类
①. 网络层防火墙
②. 应用层防火墙
二. iptables
1. iptables定义
2. iptables组成
①. 规则表
②. 规则链
3. iptables格式
①. 管理选项
②. 匹配条件
③. 控制类型
四. 案例说明
1. 查看规则表
2. 增加新…目录 一. 防火墙简介
1. 防火墙定义
2. 防火墙分类
①. 网络层防火墙
②. 应用层防火墙
二. iptables
1. iptables定义
2. iptables组成
①. 规则表
②. 规则链
3. iptables格式
①. 管理选项
②. 匹配条件
③. 控制类型
四. 案例说明
1. 查看规则表
2. 增加新规则
3. 替换原有规则
4. 删除原有规则
5. 设置默认策略
6. 通用匹配规则 ①. 协议匹配
②. 地址匹配
③. 接口匹配
五. 扩展模块
1. 隐含扩展
2. 显示扩展
①. multiport扩展
②. iprange扩展
③. mac地址模块
④. string 字符串模块
⑤. time模块
⑥. connlimit扩展
⑦. state扩展
六. 案例扩展
1. A能ping通BB不能ping通A
2. 模拟阻止Dos攻击 一. 防火墙简介
1. 防火墙定义
防火墙就是在Linux下用来进行访问控制功能的。通过自定义防火墙的策略规则以达到让它对出入网络的IP、数据进行检测、过滤。
2. 防火墙分类
如果按网络协议划分可分为网络层防火墙、应用层防火墙。
①. 网络层防火墙
网络层对数据包进行选择选择的依据是系统内设置的过滤逻辑被称为访问控制列表ACL通过检查数据流中每个数据的源地址目的地址所用端口号和协议状态等因素或他们的组合来确定是否允许该数据包通过。
优点对用户来说透明处理速度快且易于维护
缺点无法检查应用层数据如病毒等
②. 应用层防火墙
应用层防火墙也称为代理服务器Proxy Server)
将所有跨越防火墙的网络通信链路分为两段内外网用户的访问都是通过代理服务器上的“链接”来实现
优点在应用层对数据进行检查比较安全
缺点增加防火墙的负载 注意现实生产环境中所使用的防火墙一般都是二者结合体
即先检查网络数据通过之后再送到应用层去检查 二. iptables
1. iptables定义
iptables是一种用来管理Linux防火墙的命令程序它使插入、修改和删除数据包过滤表中的规则变得容易通常位于/sbin/iptables目录下。 三种报文流向
流入本机PREROUTING -- INPUT--用户空间进程
流出本机用户空间进程 --OUTPUT-- POSTROUTING
转发PREROUTING -- FORWARD -- POSTROUTING
2. iptables组成
①. 规则表
raw表确认是否对该数据包进行状态跟踪
mangle表为数据包设置标记
nat表修改数据包中的源、目IP地址或端口地址转换
filter表确认是否放行该数据包过滤
优先级raw -- mangle -- nat -- filter
②. 规则链
INPUT进入到本机的流量
OUTPUT从本机出去的流量
FORWARD转发
PREROUTING路由选择前
POSTROUTING路由选择后
3. iptables格式
iptables [-t 表名] 管理选项 [链名] [匹配条件] [-j 控制类型]
①. 管理选项
命令说明-P --policy 链名定义默认策略-L --list 链名查看iptables规则列表-A --append 链名在规则列表的最后增加1条规则-I --insert 链名在指定的位置插入1条规则-D --delete 链名从规则列表中删除1条规则-R --replace 链名替换规则列表中的某条规则-F --flush 链名删除表中所有规则-Z --zero 链名将表中数据包计数器和流量计数器归零-X --delete-chain 链名删除自定义链-v --verbose 链名与-L他命令一起使用显示更多更详细的信息
②. 匹配条件
命令说明-i --in-interface 网络接口名指定数据包从哪个网络接口进入-o --out-interface 网络接口名指定数据包从哪个网络接口输出-p --proto 协议类型指定数据包匹配的协议如TCP、UDP和ICMP等-s --source 源地址或子网指定数据包匹配的源地址--sport 源端口号指定数据包匹配的源端口号--dport 目的端口号指定数据包匹配的目的端口号-m --match 匹配的模块指定数据包规则所使用的过滤模块
③. 控制类型
类型说明ACCEPT运行通过DROP拒绝通过收到不回复REJECT拒绝通过收到回复 四. 案例说明
1. 查看规则表 2. 增加新规则 3. 替换原有规则 4. 删除原有规则 注意 ①. 若规则列表中有多条相同的规则时按内容匹配只删除的序号最小的一条 ②. 按号码匹配删除时确保规则号码小于等于已有规则数否则报错 ③. 按内容匹配删数时确保规则存在否则报错
5. 设置默认策略 注意
默认规则为允许所有是黑名单加入其中的规则才被拒绝。
将ACCEPT改为DROP后规则为拒绝所有是白名单加入其中的规则才被允许。
6. 通用匹配规则
直接使用不依赖于其他条件或扩展包括网络协议、IP地址、网络接口等条件。 ①. 协议匹配
格式-p协议名 ②. 地址匹配
格式-s 源地址 、-d目的地址 ③. 接口匹配
格式-i入站网卡、-o出站网卡 五. 扩展模块
1. 隐含扩展
iptables 在使用-p选项指明了特定的协议时无需再用 -m 选项指明扩展模块的扩展机制不需要手动加载扩展模块
要求以特定的协议匹配作为前提包括端口、TCP标记、ICMP类型等条件。
端口匹配: --sport 源端口、--dport 目的端口
这里的端口可以是个别端口或者范围端口
--tcp-flags ALL ALL
--tcp_flags ALL NONE
--sport 1000 匹配源端口是1000的数据包
--sport 1000:3000 匹配源端口是1000-3000的数据包
--sport :3000 匹配源端口是3000及以下的数据包
--sport 1000: 匹配源端口是1000及以上的数据包
注意: --sport和--dport 必须配合-p 协议类型使用
端口可以使用的范围 0-65535[rootlocalhost ~]#iptables -A INPUT -p tcp --sport 10000:30000 -j REJECT
#10000到30000 全部被拒TCP标记匹配: --tcp-flags
TCP标记SYN,RST,ACK,SYN[rootlocalhost ~]#iptables -I INPUT -i ens33 -p tcp --tcp-flags FIN,RST,ACK SYN -j ACCEPT
#丢弃SYN请求包放行其他包
2. 显示扩展
显示扩展即必须使用-m选项指明要调用的扩展模块名称需要手动加载扩展模块
①. multiport扩展
以离散方式定义多端口匹配,最多指定15个端口 ②. iprange扩展
指明连续的ip地址范围但一般不是整个网络
--src-range from[-to] 源IP地址范围 --dst-range from[-to] 目标IP地址范围 ③. mac地址模块
mac 模块可以指明源MAC地址,适用于PREROUTING, FORWARDINPUT chains
[rootzabbix-server ~]#ip a
2: ens33: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether ### 00:0c:29:2a:d6:05 #### inet 192.168.91.101/24 brd 192.168.91.255 scope global ens33valid_lft forever preferred_lft foreverinet6 fe80::ce63:27de:ef4d:4f66/64 scope link valid_lft forever preferred_lft forever[rootlocalhost ~]#iptables -A INPUT -m mac --mac-source 00:0c:29:2a:d6:05 -j REJECT
④. string 字符串模块
对报文中的应用层数据做字符串模式匹配检测
--algo {bm|kmp} 字符串匹配检测算法bmBoyer-Moore 算法kmpKnuth-Pratt-Morris 算法--from offset 开始查询的地方
--to offset 结束查询的地方 注意请求的包不带字符回复的包带字符所以要用output
⑤. time模块
根据将报文到达的时间与指定的时间范围进行匹配 ⑥. connlimit扩展
根据每客户端IP做并发连接数数量匹配
可防止Dos(Denial of Service拒绝服务)攻击
--connlimit-upto N #连接的数量小于等于N时匹配
--connlimit-above N #连接的数量大于N时匹配#模拟攻击
[rootlocalhost3 ~]# gcc flood_connect.c -o flood
#编译安装 黑客文件
[rootlocalhost3 ~]# ./flood 192.168.91.100
#运行黑客脚本[rootlocalhost 7-1]#ss [rootlocalhost1 ~]#iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 2 -j REJECT ⑦. state扩展 NEW新发出请求连接追踪信息库中不存在此连接的相关信息条目因此将其识别为第一次发出的请求 ESTABLISHEDNEW状态之后连接追踪信息库中为其建立的条目失效之前期间内所进行的通信状态 RELATED新发起的但与已有连接相关联的连接如ftp协议中的数据连接与命令连接之间的关系 INVALID无效的连接如flag标记不正确 UNTRACKED未进行追踪的连接如raw表中关闭追踪 --state stateipatables -A INPUT -m state --state NEW -j REJECT
ipatables -A INPUT -m state --state ESTABLISHED -j ACCEPT新用户不可以访问 就用胡可以访问
六. 案例扩展
1. A能ping通BB不能ping通A
分析首先ping命令使用的是icmp协议进来的请求为8响应的为0因此只需要将B的请求做限制即可。 2. 模拟阻止Dos攻击
分析可以通过连接数判断是否是Dos攻击因此可以限制连接数。