linux的包过滤功能,即linux防火墙,它由netfilter 和 iptables 两个组件组成。
netfilter 组件也称为内核空间,是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。
iptables 组件是一种工具,也称为用户空间,它使插入、修改和除去信息包过滤表中的规则变得容易。
0x01 iptables的结构
iptables的结构:
简单地讲,tables由chains组成,而chains又由rules组成。iptables 默认有四个表Filter, NAT, Mangle, Raw,其对于的链如下图。
0x02 iptables工作流程
0x03 filter表详解
1. 在iptables中,filter表起过滤数据包的功能,它具有以下三种内建链:
2. 数据流向场景
访问本机:在INPUT链上做过滤
本机访问外部:在OUTPUT链上做过滤
通过本机访问其他主机:在FORWARD链上做过滤
3. Iptables基本操作
启动iptables:
关闭iptables:
重启iptables:
查看iptables状态:
保存iptables配置:
Iptables服务配置文件:
Iptables规则保存文件:
打开iptables转发:
0x04 iptables命令参考
命令:
1. 表名
表名:
起包过滤功能的为表Filter,可以不填,不填默认为Filter
2. 命令选项
3. 链名
可以根据数据流向来确定具体使用哪个链,在Filter中的使用情况如下:
4. 条件匹配
条件匹配分为基本匹配和扩展匹配,拓展匹配又分为隐式扩展和显示扩展。
a)基本匹配包括:
b)隐式扩展包括
5. 目标值
数据包控制方式包括四种为:
0x05 Iptables常见命令
a) 1. 删除iptables现有规则
b) 2. 查看iptables规则
c) 3. 增加一条规则到最后
d) 4.添加一条规则到指定位置
e) 5. 删除一条规则
f) 6.修改一条规则
g) 7. 设置默认策略
h) 8.允许远程主机进行SSH连接
i) 9.允许本地主机进行SSH连接
j) 10.允许HTTP请求
k) 11.限制ping 192.168.146.3主机的数据包数,平均2/s个,最多不能超过3个
l) 12.限制SSH连接速率(默认策略是DROP)
0x06 如何正确配置iptables
a) 1. 删除现有规则
iptables -F
b) 2. 配置默认链策略
c) 3. 允许远程主机进行SSH连接
d) 4. 允许本地主机进行SSH连接
e) 5. 允许HTTP请求
0x07 使用iptables抵抗常见攻击
1.防止syn攻击
思路一:限制syn的请求速度(这个方式需要调节一个合理的速度值,不然会影响正常用户的请求)
思路二:限制单个ip的最大syn连接数
2. 防止DOS攻击
利用recent模块抵御DOS攻击
单个IP最多连接3个会话
只要是新的连接请求,就把它加入到SSH列表中
5分钟内你的尝试次数达到3次,就拒绝提供SSH列表中的这个IP服务。被限制5分钟后即可恢复访问。
3. 防止单个ip访问量过大
4. 木马反弹
5. 防止ping攻击
个人见解,不足之处求指正。
领取专属 10元无门槛券
私享最新 技术干货