防火墙iptables >>[1]

版权声明:博文为原创,引用请注明出处 https://blog.csdn.net/ANYELEISHOU/article/details/82889816

防火墙iptables >>[1]

防火墙的作用:
抵御网络安全隐患

木马:导致数据泄密、被人恶意控制—防火墙
病毒:破坏系统中的文件、硬件-------杀毒软件

防火墙的常见类型
软件:iptables、ISA
硬件:pix 思科 思捷

IPTABLES

IP主要部分
protocol tcp udp
icmp
SIP
DIP
ttl:100
TCP主要构成
sport
dport
seq num
ack num
flags
syn
ack
fin
rst

tcp和udp区别
tcp提供可靠传输
1.在传输数据之前,首先建立两条传输通道
2.每次传输数据,都是基于确认机制、重传机制实现
udp提供的是不可靠传输

tcp的三次握手、四次断开

  1. 客户端向服务器端发送建立连接的请求
    syn=1 ack=0 fin=0

  2. 服务器端应答这个请求
    syn=1 ack=1 fin=0

  3. 客户端确链接建立完成
    syn=0 ack=1 fin=0

    正常传递数据:syn=0 ack=1 fin=0

基于tcp协议通信的主机的状态
CLOSED
ESTABLISHED
LISTEN
SYN_SENT
SYN_RECV
FIN_WAIT1
CLOSE_WAIT
FIN_WAIT2
LAST_ACK
TIME_WAIT
CLOSE
LISTEN

linux
netfilter
iptables

防火墙工作原理
针对数据包中的信息(端口、ip、mac、标志位…)来做过滤

防火墙的工作位置
主机防火墙
网络防火墙:放置在网络边缘
iptables通常用于作为主机防火墙

TCP/IP协议栈
判断数据包的目标是当前主机的上层应用还是后端主机

防火墙处理数据包的关键点
PREROUTING:刚刚接收到数据包,在判断路由之前,对数据包进行处理
INPUT:TCP/IP协议栈判断需要将这个数据包发送到上层应用,此时就需要对数据包进行INPUT处理
OUTPUT:上层应用产生的数据包,在发送出去之前需要对数据包进行OUTPUT处理
FORWARD:TCP/IP协议栈判断需要将这个数据包发送到后端主机,那么就需要对这个数据进行FORWARD处理
POSTROUTING:经过了TCP/IP协议栈的判断,需要将这个数据发送出去,在离开当前这个这个主机之前要进行POSTROUTING处理


进来的时候处理
出去的时候处理
向后端转发的时候处理

一.iptables的组成

filter
nat
mangle
row

INPUT
OUTPUT
FORWARD
PREROUTING
POSTROUTING
规则


1. filter表
作用:对数据包进行过滤
构成:
INPUT链:对发送到上层应用的数据包进行过滤
OUPUT链:对上层应用所产生的数据包进行过滤
FORWARD链:对经过本机转发的数据包进行过滤
2. nat表
作用:修改数据包的地址
构成:
PREROUTING链:在进行路由选择之前,修改数据包的ip地址
POSTROUTING链:在进行路由选择之后,且从主机发送出去之前,修改数据的ip地址
OUTPUT链:
3. mangle表
作用:不能过滤数据包,也不能修改数据包中的地址,仅仅能报文进行特定的修改(ttl、tos…)
组成
INPUT
OUTPUT
FORWARD
PREROUTING
POSTROUTING
4. raw表
作用:决定数据包是否被状态追踪机制所处理
组成:
PREROUTING
OUTPUT

iptables检查数据包的过程
每次进入一个数据包,逐条检查是否符合规则
如果符合,那就使用该规则对应的操作
如果不符合,那么就继续检查是否符号下一条规则
如果所有的规则都不匹配,那么就按照默认规则来处理

二.iptables的基本使用
-t:指定表名(默认是对filter表进行操作)
-A:追加新规则
-D:删除指定的规则
-I:首部或者指定的位置插入新规则
-F:清空规则
-Z:清空计数器
-P:修改默认规则
-N:自定义一条链
-X:删除自定义的链
-E:修改自定义链的名字
-L;列举出iptables中所配置的规则
-n:如果不用n选项,那么系统会将协议反解为协议名称,这个过程很慢,该选择的作用是就用来实现禁止反解为名称
–line:在行首显示规则编号
-v:显示详细信息(通常用来看计数器)

 注意:规则中的表名、链名要区分大小写

基本操作
1. 清空所有规则
# iptables -t filter -F
# iptables -t nat -F
# iptables -t mangle -F
# iptables -t raw -F
2. 清空所有表的计数器
# iptables -t filter -Z
# iptables -t nat -Z
# iptables -t mangle -Z
# iptables -t raw -Z
3. 查看当前的filter表中规则
# iptables -t filter -L -n --line
4. 查看当前的nat表中规则
# iptables -t nat -L -n --line

iptables格式
定义规则:iptables [-t table] -[A|I] CHAIN 配置模式 -j 动作
删除规则:iptables -D CHAIN num
修改默认规则:iptables -P CHAIN 动作

动作
ACCEPT:请求被运行,数据包可以通过
DROP:认定是一个非法请求,将数包悄悄的丢弃
REJECT:认定是一个非法请求,禁止数据包同行的(带有通知机制)
LOG:将这次客户端的请求记录到日志中
MARK:标记一个连接
SNAT
DNAT

猜你喜欢

转载自blog.csdn.net/ANYELEISHOU/article/details/82889816
今日推荐