赞
踩
网络中的防火墙,是一种将内部网络和外部网络分开的方法,是一种隔离技术。防火墙在内网与外网通信时进行访问控制,依据所设置的规则对数据包作出判断,最大限度地阻止网络中的黑客破坏企业网络,从而加强企业网络安全。
主要是网络层,针对IP数据包,体现对包内的IP地址、端口等信息的处理上。
表中存放的是链,链中存放的是规则
四表:优先级:filter<nat<mangle<raw
raw表 | 确定是否对该数据包进行状态跟踪;有限级最高,设置raw是一般是为了不在iptables做数据包的链接跟踪处理,提高性能 |
mangle表 | 为数据包设置标记;负责对数据包进行修改和追踪 |
NAT表 | 修改数据包中的源、目标IP地址或端口;负责地址转发 |
filter表 | 确定是否被放行该数据包(过滤);负责包过滤(默认) |
链表结构关系图:
五链:
小写 | ||
---|---|---|
INPUT | 处理入站数据包 | input |
OUTPUT | 处理出站数据包 | output |
FORWARD | 处理转发数据包 | forward |
PREROUTING | 在进行路由选择前处理数据包 | prerouting |
POSTROUTING | 在进行路由选择后处理数据包 | postrouting |
规则链之间的顺序:
入站: PREROUTING→INPUT 路由选择前→入站
出站:OUTPUT→POSTROUTING 出站→路由选择后
转发:PREROUTING→FORWARD→POSTROUTING 路由选择前→转发→路由选择后
不管是路由入站还是转发,都要选择路由选择前
不管是路由出站还是转发,都要选择路由选择后
iptables [-t 表名] 选项&参数 [链名][匹配条件][-j 动作控制类型]
保存更新配置iptables
iptables-save > /etc/sysconfig/iptables
注意事项:
不指定表名时,默认指filter表
不指定链名时,默认指表内的所有链
除非设置链的默认策略,否则必须指定匹配条件
选项、链名、控制类型使用大写字母,其余均为小写
数据包的常见控制类型/动作类型:-j
类型 | 解析 |
---|---|
ACCEPT | 允许通过 |
DROP | 直接丢弃,不给出任何回应 |
REJECT | 拒绝通过,必要时会给出提示 |
LOG | 记录日志信息,然后传给下一条规则继续匹配 |
选项及参数:
选项&参数 | 解析 |
---|---|
-t | 指定表,默认filter |
-A | 追加一条规则 -A 链名 [序号] 匹配条件 -j 动作 |
-I | 插入一条规则 -I 链名 [序号] 匹配条件 -j 动作;默认第一行(也可以自己指定序号) |
-R | 修改规则 -R 链名 序号 匹配条件 -j 动作 |
-D | 删除指定规则 -D 链名 序号 (-s <IP地址> -j <目标>) |
-P | 设置默认规则 -P 链名 动作(ACCEPT,DROP,REJECT,LOG) |
-p | 指定协议 TCP,UDP,ICMP;–sport 指定源端口 ;–dport 指定目标端口 |
-L | 查看防火墙规则,后可以指定链 |
-F | 清空防火墙规则;也可以指定清空某一个表的所有规则 |
-v | 以更详细的方式显示规则信息 |
-n | 以数字形式显示;要和-L配合看 |
–line-numbers或–line | 显示规则编号;要和-L配合看 |
-s | 指定源地址 |
-d | 指定目标地址 |
-i | 指定网卡 |
-m | 指定模块,没有指定模块,默认使用与-p选项同名的模块 |
实例:
1、-t:指定查看raw表
iptables -t raw -L
2、-A \-s\-j:追加一条规则,使192.168.2.2禁止访问
iptables -A INPUT -s 192.168.2.2 -j REJECT
3、-I\-s\-j:插入一条规则,允许访问192.168.2.2
iptables -I INPUT -s 192.168.2.2 -j ACCEPT
4、-R\-s\-j:第一条规则,修改为丢弃192.168.2.2;将第二条prot的udp改为icmp并且开放
iptables -R INPUT 1 -s 192.168.2.2 -j DROP
iptables -R INPUT 2 -p icmp -j ACCEPT
5、-D:删除一条指定行数的规则
iptables -D INPUT 3
6、-D:删除一条指定ip的规则
简单来说就是删除的时候把 -I 或者 -A
改为 -D
,其他的都还和添加的一样。
iptables -D INPUT -s 192.168.2.2 -j DROP
7、-L:查看防火墙规则,后可以指定链
#查看所有防火墙规则
iptables -L
#指定链:查看入站防火墙规则
iptables -L INPUT
8、-F:清空防火墙规则 ;也可以指定清空某一个表的所有规则
iptables -F
iptables -t nat -F
9、-n:以数字形式显示;要和-L配合看
iptables -L -n
10、-v:已更详细的方式查看规则信息
iptables -L -n -v
11、–line-numbers或–line:显示规则编号;要和-L配合看
iptables -L --line-numbers
iptables -L --line
1、通用匹配
可直接使用,不依赖与其他条件或扩展
包括网络协议、IP地址、网络接口等条件
2、隐含匹配
要求以特定的协议匹配作为前提
包含端口、TCP标记、ICMP类型等条件
3、显式匹配
要求以“-m扩展模块”的形式明确指出类型
包括多端口、MAC地址、IP范围、数据包状态等条件
常用管理选项汇总表:
常见的通用匹配条件:
协议匹配:-p 协议名
地址匹配:-s 源地址、-d 目的地址
接口匹配:-i 入站网卡、-o 出站网卡
协议匹配:-p 协议名
允许所有的TCP协议进入
iptables -A INPUT -p tcp -j ACCEPT
删除指定协议匹配规则:
iptables -D INPUT -p tcp -j ACCEPT
除了icmp协议其他协议都丢弃
iptables -I FORWARD ! -p icmp -j DROP
地址匹配:-s 源地址、-d 目的地址
允许访问ip地址192.168.2.2
# 插入一条
iptables -I INPUT -s 192.168.2.2 -j ACCEPT
# 追加一条
iptables -A INPUT -s 192.168.2.2 -j ACCEPT
删除指定ip规则
iptables -D INPUT -s 192.168.2.2 -j DROP
丢弃192.168.1.0/24网段的ip
iptables -I INPUT -s 192.168.1.0/24 -j DROP
访问地址将地址转发到目标地址“192.168.2.22”并且开放
iptables -A FORWARD -d 192.168.2.22 -j ACCEPT
接口匹配:-i 入站网卡、-o 出站网卡
将eth1的网卡在入站时丢弃
iptables -I INPUT -i eth1 -j DROP
删除指定接口规则
iptables -D INPUT -i eth1 -j DRO
将eth1的网卡在出站时丢弃
iptables -I OUTPUT -o eth1 -j DROP
常见的隐含匹配条件:
端口匹配:-p来指定,–sport 源端口、–dport目的端口
TCP匹配:–tcp-flags 检查范围 被设置的标记
ICMP匹配:–icmp-type ICMP类型
端口匹配:-p来指定,–sport 源端口、–dport目的端口
将源网段设置为udp协议且目标端口为53,并开启地址转发
将目标网段设置为udp协议且源端口为53,并开启地址转发
iptables -A FORWARD -s 192.16.2.2/24 -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -d 192.16.2.2/24 -p udp --sport 53 -j ACCEPT
将源网段“192.16.2.0/24”设置为tcp协议且目标端口为53,并开启地址转发
将目标网段“192.16.2.0/24”设置为tcp协议且源端口为53,并开启地址转发
iptables -A FORWARD -s 192.16.2.0/24 -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -d 192.16.2.0/24 -p tcp --sport 53 -j ACCEPT
开放TCP协议且目标端口为22,允许进入
开放TCP协议且目标端口为20-21,允许进入
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 20:21 -j ACCEPT
TCP匹配:–tcp-flags 检查范围 被设置的标记
指定eth1网卡,port设置为tcp协议,检查范围为SYN、RST、ACK,监测到的都丢弃
指定eth1网卡,port设置为tcp协议,除了检查范围中的SYN、RST、ACK,其他都可以进入
iptables -I INPUT -i eth1 -p tcp --tcp-flags SYN,RST,ACK SYN -j DROP
iptables -I INPUT -i eth1 -p tcp ! --tcp-flags SYN,RST,ACK SYN -j ACCEPT
ICMP匹配:–icmp-type ICMP类型
常见的 icmp 类型
8 Echo request——回显请求(Ping 请求)
0 Echo Reply——回显应答(Ping 应答)
3 错误回显
获取帮助:iptables -p icmp -h
常见的显式匹配条件:
多端口匹配:-m multiport --sports | --dports 端口列表
IP范围匹配:-m iprange --src-range IP范围
MAC地址匹配:-m mac --mac-source MAC地址
状态匹配:-m state --state 连接状态
多端口匹配:-m multiport --sports | --dports 端口列表
允许22、25、80、110、143端口进入并开启tcp协议
iptables -I INPUT -p tcp -m multiport --dport 22,25,80,110,143 -j ACCEPT
IP范围匹配:-m iprange --src-range IP范围
允许192.168.1.100-192.168.1.110这个范围的ip进入并设置tcp协议
iptables -A FORWARD -p tcp -m iprange --src-range 192.168.1.100-192.168.1.110 -j ACCEPT
MAC地址匹配:-m mac --mac-source MAC地址
只要mac地址是00:0c:29:c2:83:32的都丢弃
iptables -A FORWARD -m mac --mac-source 00:0c:29:c2:83:32 -j DROP
状态匹配:-m state --state 连接状态
常见的连接状态:
NEW:新连接,与任何连接无关
ESTABLISHED:响应请求或已建立连接的
RELATED:与已连接有相关性的,如 FTP 数据连接
简单来说就是删除的时候把-I 或者 -A
改为-D
,其他的都还和添加的一样。
iptables -D INPUT 3
# 追加一条禁止ip访问规则
iptables -A INPUT -s 192.168.2.2 -j DROP
# 删除一条禁止ip访问规则
iptables -D INPUT -s 192.168.2.2 -j DROP
# 先添加一条指定协议同意访问
iptables -A INPUT -p tcp -j ACCEPT
# 删除一条指定协议匹配规则
iptables -D INPUT -p tcp -j ACCEPT
# 先添加一条指定接口禁止访问
iptables -I INPUT -i eth1 -j DROP
# 在删除指定接口禁止访问
iptables -D INPUT -i eth1 -j DROP
发现规律了吗?
简单来说就是删除的时候把-I 或者 -A
改为-D
,其他的都还和添加的一样。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/529787
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。