iptables防火墙

                                         iptables防火墙

防火墙的分类:

硬件,购买设备

软件,安装软件


iptables的功能:

强制访问指定站点

发布内网服务器nat/snat/dnat

智能型DNS


iptables的格式:

iptables-t filter-A INPUT-p tcp --dport 23-j REJECT

命令 4表 5链 数据描述 处理方式

-t 指定表    


 4表:

filter过滤(数据过滤,默认)INPUT/OUTPUT/FORWARD

nat转换(地址转换)PREROUTING/POSTROUTING/OUTPUT

mangle校正(数据包打标记)INPUT/OUTPUT/FORWARD/PREROUTING/POSTROUTING

raw  


5链:

INPUT:接收,发送方不一定是你,但接收方一定是你

OUTPUT:发送,接收方不一定是你,但发送方一定是你

FORWARD:转发,接收方和发送方全都不是你

PREROUTING:路由前时,指代在决定去向前处理

POSTROUTING:路由后时,指代在决定去向后处理


外出的包:

本地程序

路由判断(决定包使用源地址,外出接口)

mangle表OUTPUT链(标记、生存时间、服务类型)

nat表OUTPUT链(对防火墙自己发出的包做DNAT)

filter表OUTPUT链(过滤)

mangle表POSTROUTING链(标记、生存时间、服务类型)

nat表POSTROUTING链(对数据包做SNAT)

离开接口

网络传输


进入的包:

网络传输

进入接口

mangle表PREROUTING链(标记、生存时间、服务类型)

nat表PREROUTING链(对数据包做DNAT)

路由判断(决定包的去向,给自己的)

mangle表INPUT链(标记、生存时间、服务类型)

filter表INPUT链(过滤)

交给本地程序处理


转发的包:

网络传输

进入接口

mangle表PREROUTING链(标记、生存时间、服务类型)

nat表PREROUTING链(对数据包做DNAT)

路由判断(决定包的去向,发给别人)

mangle表FORWARD链(标记、生存时间、服务类型)

filter表FORWARD链(过滤)

mangle表POSTROUTING链(标记、生存时间、服务类型)

nat表POSTROUTING链(对数据包做SNAT)

离开接口

网络传输


走向:

不考虑链mangle>nat>filter

不考虑表PREROUTING>INPUT>(FORWARD)>OUTPUT>POSTROUTING


数据包的流程:


参数:

A在所选择的链末尾添加规则

iptables -A INPUT -s 192.168.1.123 -p tcp --dport 22 -j ACCEPT

R替换规则

iptables -R INPUT 1 -s 192.168.0.123 -j DROP

D删除规则

iptables -D INPUT -p tcp --dport 80 -j DROP

iptables -D INPUT 3

I插入规则

iptables -I INPUT 3 -s 192.168.1.222 -j DROP

L查看规则

iptables -t filter -L INPUT

X删除非内建链

iptables -X birdteam

F清空规则

iptables -t nat -F OUTPUT

Z将计数器清空(包计数器、字节计数)

iptables -Z

N新创建链

iptables -N birdteam

P修改默认规则

iptables -P INPUT DROP

E自定义链改名

iptables -E birdteam vfast


选项:

v详细信息

x精确

n显示端口

line-numbers显示规则序号


通用匹配:

p匹配协议

s匹配来源地址

iptables -A INPUT -s ! 192.168.1.123 -j ACCEPT

d匹配目的地址

i匹配包进入的接口

o匹配包送出的接口

OUTPUT/FORWARD/POSTROUTING

f匹配被分片的包的第二片及后续部分


TCP的端口:

sport匹配来源端口

dport匹配目的端口

tcp-flags匹配TCP的封包标记

SYN/ACK/FIN/RST/URG/PSH

syn 

tcp-option检查TCP的包头信息

8位选项类型、长度、内容

iptables -A INPUT -p tcp --tcp-flags syn,ack,fin syn 

=

iptables -A INPUT -p tcp --syn

UDP的端口: -

sport匹配来源端口

dport匹配目的端口


ICMP的端口:

icmp-type匹配ICMP的类型


INPUT链:

-s --sport对方的端口和地址

-d --dport自己的端口和地址

iptables -A INPUT -p tcp --dport 23 -j DROP



OUTPUT链:

-s --sport自己的端口和地址

iptables -A OUTPUT -p tcp --sport 23 -j DROP

-d --dport对方的端口和地址


显示匹配

iptables -A INPUT -p tcp -m multiport --port 23,26,76 限制来源目的

iptables A INPUT -m state --state ESTABLISHED,RELATED

limit匹配平均速率--limit

--limit-burst

mac匹配源MAC地址--mac-source

multiport不连续多端口匹配--source-port

--destination-port

--port 

mark标记--mark

owner匹配所有--uid-owner

--gid-owner

--pid-owner

--sid-owner

state匹配包的状态--state

tos匹配服务类型--tos

ttl匹配生存时间--ttl


处理:

ACCEPT允许 

REJECT拒绝并且返回错误信息 

DROP丢弃并不返回错误信息 

LOG记录到/var/log/messages--log-prefix

--log-level

--log-tcp-sequence

--log-tcp-options

--log-ip-options

DNAT目标地址转换--to-destination

MARK标记--set-mark

MASQUERADE伪装--to-ports

SNAT来源地址转换--to-source

MIRROR镜像换掉源和目标

QUEUE队列需要配合设备使用

REDIRECT重新定向--to-ports

RETURN返回返回上级

TOS服务类型--set-tos

TTL生存时间--ttl-set

--ttl-dec

--ttl-inc

ULOG记录用户被匹配的包的信息 


应用实例:

iptables -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -p tcp --syn -m state --state NEW --dport  80  -j ACCEPT

iptables -A INPUT -p tcp --syn -m state --state NEW --dport  25  -j ACCEPT

iptables -A INPUT -p tcp --syn -m state --state NEW --dport  110  -j ACCEPT

iptables -A INPUT -p tcp --syn -m state --state NEW --dport  22  -j ACCEPT

iptables -A INPUT -p tcp --syn -m state --state NEW --dport  23  -j ACCEPT

 iptables -I INPUT -p all -j ACCEPT 实现所有服务可用

你可能感兴趣的:(iptables防火墙)