iptables看书笔记
来源:互联网 发布:flash编程弹出窗口 编辑:程序博客网 时间:2024/05/18 06:53
iptables只过滤IP及其之上协议的数据包,也就是>=网络层之上的。
iptables和netfilter间的差别:
由linux提供的所有包过滤和包修改设施的官方项目名为netfilter,这个术语同时也指linux内核中的一个框架,它可以用于在不同阶段将函数挂接(hook)进网络栈。iptables使用netfilter框架旨的将对数据包执行操作(如过滤)的函数挂接进网络桡。也可以这样认为,netfilter提供了一个框架,iptables在它之上建立了防火墙功能。
iptables还指同名的用户层工具,它解析命令并将防火墙策略传递给内核。
netfilter本身并不对数据包进行过滤--它只是允许可以过滤数据包的函数挂接到内核中适当的位置。netfilter项目还在内核中提供了一些基础设施,如连接跟踪和日志记录,任何iptables策略都可以使用这些设施来执行特定的数据包处理。
每个iptables规则应用于一个表中的一个链。一个iptables链是一个规则集,这些规则按序与包含共同特征的数据包进行比较。
表(table):iptables构建块,它描述了其功能的大类,如包过滤或网络地址转换(nat).iptables中共有4个表:filter:过滤规则 nat:NAT规则 mangle:修改分组数据的特定规则 raw:独立于netfilter连接跟踪子系统起作用的规则
链(chain):每个表都有自己的一组内置链,用户还可以对链进行自定义,这样用户就可以建立一组规则,它们都关联到一个共同的标签如:INPUT_ESTABLISHED或DMZ_NETWORK.
最重要的内置链是filter表中的INPUT OUTPUT FORWARD链。
另外两个对于关键iptables部署很重要的链是nat表中的PREROUTING和POSTROUTING链。
INPUT:当一个数据包由内核中的路由计算确定为指向本地linux系统之后,它将经过INPUT链的检查。
OUTPUT:保留给由linux系统自身生成的数据包。
FORWARD:管理经过linux系统路由的数据包(即当iptables防火墙用于连接两个网络,且两个网络间的数据包必须流经此防火墙)
PREROUTING:在内核进行ip路由计算之后修改数据包的头部。
POSTROUTING:在内核进行ip路由计算之后修改数据包的头部。
图显示数据包是如何通过内核中的nat和filter表的。
/---------------------------------------------------------------------------------------------/
| 应用层 |
/---------------------------------------------------------------------------------------------/
// |
| |
| //
/----------------------------------/ /-------------------/
| filter INPUT | |filter OUTPUT |
/------------------------------ --/ /-------------------/
// /
| /
| //
/---------------------------/ /-----------------/ /----------------------/ /---------------------------/
流入数据包--->|nat PREROUTING |-->| 路由决策 |----->|filter FORWARD|----->|nat POSTROUTING|-->流出数据包
/----------------------------/ /-----------------/ /----------------------/ /---------------------------/
每个iptables规则都包含一组匹配以及一个目标,后者告诉iptables对于符合规则的数据包应该采取什么动作。
匹配(match):指的是数据包必须匹配的条件,只有当数据包满足所有的匹配条件时,iptables才能根据由该规则的目标所指定的动作来处理该数据包。
目标(target):iptables支持一组目标,它们用于在数据包匹配一条规则时触发一个动作。如:ACCEPT:允许数据包通过 DROP:丢弃数据包,不对此数据包做进一步的处理 LOG:将数据包信息记录到syslog REJECT:丢弃数据包,同时发送适当的响应报文 RETURN:在调用链中继续处理数据包。
可加载内核模块(LKM)与内置编译的安全:
支持LKM的话容易初安装一个内核级的rootkit.而内置编译则对于升级及修改等不方便。
构建iptables策略的最后一步是在linux内核中启用IP转发:
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables-save命令建立一个文件,其中包含了在一个正在运行的策略中所包含的所有iptables规则,而且是以一种可读的格式提供的。这种格式可以被iptables-restore程序解释,该程序将读取ipt.save文件中的每一个规则并在运行内核中立即启用它。执行一次iptables-restore程序就可以在内核中重建整个iptables策略,而不需要多次执行iptables程序。
保存当前正在运行的策略
iptables-save > /root/ipt.save
重建保存了策略:
cat /root/ipt.save | iptables-restore
nc工具 测试tcp连接的 如:测试192.168.1.1 3500 端口是否能够连接
nc -v 192.168.1.1 3500
hping 测试udp连接的
2
网络层是在因特网上分组数据端到端路由和交付的主要机制。
记录IP选项:
IP选项提供了针对IP通信的各种控制功能,包括时间戳 某些安全功能和一些特定路由特性的规定。
记录IP首部中的选项部分:
iptables -A INPUT -j LOG --log-ip-options
/---------------------------------------------------------------------------------------------/
| 应用层 |
/---------------------------------------------------------------------------------------------/
// |
| |
| //
/----------------------------------/ /-------------------/
| filter INPUT | |filter OUTPUT |
/------------------------------ --/ /-------------------/
// /
| /
| //
/---------------------------/ /-----------------/ /----------------------/ /---------------------------/
流入数据包--->|nat PREROUTING |-->| 路由决策 |----->|filter FORWARD|----->|nat POSTROUTING|-->流出数据包
/----------------------------/ /-----------------/ /----------------------/ /---------------------------/
- iptables看书笔记
- 看书笔记
- 看书笔记
- 看书笔记。
- 看书笔记!
- 看书笔记20080507
- 看书笔记20080509
- 看书笔记20080612
- 看书笔记一
- 看书笔记二
- 指针看书笔记
- 看书笔记(一)
- 看书笔记(二)
- Struts2看书笔记
- 看书笔记--C++
- 操作系统看书笔记
- 《编程珠玑》看书笔记
- javascript看书笔记
- DropdownList绑定的两种方法
- 关于一些代码效率优化的方法(下)
- 第三章 EGL介绍
- 难得那么顺利
- VC++深入详解 笔记 第三章(2) 一个单文档MFC应用程序的创建过程
- iptables看书笔记
- EXT 在textarea的光标处插入
- EXT 在textarea的光标处插入
- EXT 在textarea的光标处插入
- 冒泡排序
- dropdownlist 出错
- VC实现微秒(十万分之一秒)休眠
- flex与java实现数据库数据在页面分页
- php长连接处理整理