iptables

ip数据包报文的结构

4bit的ip版本,4bit的首部长度,8bit的服务类型,16bit的总长度,16bit的分片id,1bit的R,1bit的DF(不分片,1bit的MF(更多分片),13bit的片偏移量,8bit的TTL,8bit的内层协议类型,16bit的首部校验和。32bit的源ip地址,32bit的目的ip地址,最长40字节的选项,数据。

总长度-首部长度=数据长度

tcp

有连接的协议

先建立tcp连接,建立了一个专用通信线路,

udp

无连接的协议

不需要事先建立连接,而是直接发送数据。

开销少,但是可靠差

tcp报文结构

16bit的源端口号,16位的目的端口号,32bit的序列号,32bit的确认号,4bit的首部长度,6bit的保留位,6bit的标志位(1bit的URG(紧急的),1bit的ACK(确认号是否有效),1bit的PSH(推送),1bit的RST(重置位),1bit的SYN(同步位,就是序列号是否有效),1bit的FIN(结束位)),16bit的tcp校验和,16bit的紧急指针,32bit的选项(可以为0),数据

tcp的三次握手

发送方发起连接请求,创建一个序列号a,接收方发送确认号a+1,序列号b。发送方发送确认号b+1,序列号b。

tcp的四次分手

主动方发送FIN位为1的请求包,被动方发送确认包。被动方发送FIN位为1的数据包,主动方发送确认包。断开完成。

窗口大小

不是固定的,是随时调整的。

tcp的状态

防火墙类型

包过滤防火墙:tcp/ip

应用层网管防火墙:对特定应用程序协议的检查,效率低

/proc/sys/net/ipv4/ip_forward

iptables 用户空间工具

编写规则

netfilter 

内核中,框架(framework)

hook function

规则链(CHAIN):

INPUT 路由后到本机内部

mangle

filter

OUTPUT 路由后到本机外部

raw

mangle

nat

filter

FORWARD 转发

mangle

filter 

PREROUTING 路由前

raw

mangle

nat

POSTROUTING 路由后

mangle

nat

功能(表):

raw

PRERPUTING,OUTPUT

mangle

PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING

nat

PREROUTING,OUTPUT,POSTROUTING

filter

INPUT,FORWARD,OUTPUT

流向:

到本机

PREROUTING -> INPUT

转发

PREROUTING ->FORWARD -> POSTROUTING

由本机发出

OUTPUT -> POSTROUTING

filter

匹配条件

netfilter 检查模块

扩展模块

处理动作

ACCEPT

DROP(直接丢弃),REJECT(响应拒绝的理由)

#iptables [-t TAB_NAME] COMMAND CHAIN [CRETIRA] -j ACTION

TAB_NAME:

raw

mangle

nat

filter

COMMAND: 对链,或者对链中的规则经行管理操作

链中规则

-A 追加

-I NUM 插入为第NUM条

-R NUM|CRETIRA 替换为第NUM条或者是规则

-D NUM|CRETIRA 删除链中的第NUM条或者是规则

链:

-N 新建一个自定义链

-X 删除一个自定义空链

-E 重命名一条自定义链

-F 清空一条链中的内容,如果不指定链,则清空表中所有链

-P 设定链的默认策略

-Z 置零。每条规则都有2个计数器,1个是被本规则匹配到的所有数据包的个数,另一个是被本规则匹配到的所有的数据包的大小之和。

查看:

-L 查看

-v 详细

-vv 更详细

-vvv 进一步详细

--line-numbers

-x 计数器中显示为精确值,不做单位转换

-n 不要对地址和端口做名称反解析,显示数字地址,不是名称地址

/etc/rc.d/init.d/iptables 服务脚本脚本位置,但是iptables本身不是服务,只是做成了服务的样子

#service iptables status|start|stop|restart|save

使用save选项来保存规则。

/etc/sysconfig/iptables-config 配置文件

/etc/sysconfig/iptables 规则保存位置,默认没有此文件,需要手工新建。


你可能感兴趣的:(linux,iptables)