iptables简介:
iptables 是与 Linux 内核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。
- 防火墙类型:
- 包过滤型防火墙 :tcp/ip (2.3.4层工作)
- 简单包过滤
- 带状态检测包过滤:指连接状态 (可靠)
- 应用层网关防火墙 :对特定的应用层协议做检查
- iptables基础
- 表(tables)提供特定的功能,iptables内置了4个表,即filter表、nat表、mangle表和raw表,分别用于实现包过滤,网络地址转换、包重构(修改)和数据跟踪处理。
- Iptables表、链、规则
- iptables传输数据包的过程
- ① 当一个数据包进入网卡时,它首先进入PREROUTING链,内核根据数据包目的IP判断是否需要转送出去。
- ② 如果数据包就是进入本机的,它就会沿着图向下移动,到达INPUT链。数据包到了INPUT链后,任何进程都会收到它。本机上运行的程序可以发送数据包,这些数据包会经过OUTPUT链,然后到达POSTROUTING链输出。
- ③ 如果数据包是要转发出去的,且内核允许转发,数据包就会如图所示向右移动,经过FORWARD链,然后到达POSTROUTING链输出
- 1. -->PREROUTING-->[ROUTE]-->FORWARD-->POSTROUTING-->
- 2. mangle | mangle ^ mangle
- 3. nat | filter | nat
- 4. | |
- 5. | |
- 6. v |
- 7. INPUT OUTPUT
- 8. | mangle ^ mangle
- 9. | filter | nat
- 10. v ------>local------->| filter
- 链中的规则
- -A 附加一条规则
- -I # 插入一条规则
- -R # 替换第几条规则
- -D # 删除第几条规则
- #表示数字
- 链:
- -N 新建一条自定义链
- -X 删除一个自定义空链
- -E 重命名一条自定义链
- -F 清空指定链 不指定链 则清空整个表中的所有链
- -P 设定链的默认策略
- -Z 置零
- iptables命令格式
- iptables的命令格式较为复杂,一般的格式如下:
- iptables [-t table] 命令 [chain] [rules] [-j target]
- table ——指定表明
- 命令 ——对链的操作命令
- chain ——链名
- rules ——规则
- target——动作如何进行
- 1.表选项
- 表选项用于指定命令应用于哪个iptables内置表,iptables内置包括filter表、nat表、mangle表和raw表。
- 2.命令选项iptables命令格式
- 命令
- -P或–policy <链名> 定义默认策略
- -L或–list <链名> 查看iptables规则列表
- -A或—append <链名> 在规则列表的最后增加1条规则
- -I或–insert <链名> 在指定的位置插入1条规则
- -D或–delete <链名> 从规则列表中删除1条规则
- -R或–replace <链名> 替换规则列表中的某条规则
- -F或–flush <链名> 删除表中所有规则
- -Z或–zero <链名> 将表中数据包计数器和流量计数器归零
- 3.匹配选项
- 匹配
- -i <网络接口名> 指定数据包从哪个网络接口进入,如ppp0、eth0和eth1等
- -o <网络接口名> 指定数据包从哪块网络接口输出,如ppp0、eth0和eth1等
- -p < 协议类型> 指定数据包匹配的协议,如TCP、UDP和ICMP等
- -s <源地址或子网> 指定数据包匹配的源地址
- -d <目标地址或子网> 指定数据包匹配的目标地址
- 查看:
- -L 查看
- -v 详细查看
- -vv 更详细查看
- -x 计数器的精确值
- -n 显示数字地址
- --line-numbers 显示行号
======================================================================
vmaware小实验 3台机器
实验目的: 在172.16.111.2主机上安装http服务 从日志查看访问地址的转换
web外网服务器 ip 172.16.111.2/16
lan为内网用户 ip 192.168.0.2/24
防火墙服务器 ip 192.168.0.1/24 <eth1> 172.16.111.1/16 <eth0> 两块网卡
内网 外网
将两段IP分别放到两个网络:
内网 vmnet3
外网vmnet9
设置两台内外网主机的ip地址及网管地址
内网主机地址
外网主机地址
iptables主机地址
在iptables主机上配置规则
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to-source 172.16.111.1
将内网192.168.0.0/24网络从eth0网卡 访问外网时 源地址换成172.16.111.1地址访问
下面两个截图分别是设置规则前和规则后的截图
此图显示访问地址为192.168.0.2内网地址
转载于:https://blog.51cto.com/vincekey/1049895