iptables简介:

iptables 是与 Linux 内核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。

 


  
  1. 防火墙类型:  
  2.         包过滤型防火墙   :tcp/ip  (2.3.4层工作)  
  3.                      简单包过滤  
  4.                      带状态检测包过滤:指连接状态 (可靠)  
  5.                        
  6.         应用层网关防火墙 :对特定的应用层协议做检查   

 


  
  1. iptables基础  
  2. 表(tables)提供特定的功能,iptables内置了4个表,即filter表、nat表、mangle表和raw表,分别用于实现包过滤,网络地址转换、包重构(修改)和数据跟踪处理。  
  3. Iptables表、链、规则  
  4.    
  5. iptables传输数据包的过程  
  6. ① 当一个数据包进入网卡时,它首先进入PREROUTING链,内核根据数据包目的IP判断是否需要转送出去。  
  7. ② 如果数据包就是进入本机的,它就会沿着图向下移动,到达INPUT链。数据包到了INPUT链后,任何进程都会收到它。本机上运行的程序可以发送数据包,这些数据包会经过OUTPUT链,然后到达POSTROUTING链输出。  
  8. ③ 如果数据包是要转发出去的,且内核允许转发,数据包就会如图所示向右移动,经过FORWARD链,然后到达POSTROUTING链输出  
  9. 1.  -->PREROUTING-->[ROUTE]-->FORWARD-->POSTROUTING-->    
  10. 2.       mangle        |       mangle        ^ mangle    
  11. 3.        nat          |       filter        |  nat    
  12. 4.                     |                     |    
  13. 5.                     |                     |    
  14. 6.                     v                     |    
  15. 7.                   INPUT                 OUTPUT    
  16. 8.                     | mangle              ^ mangle    
  17. 9.                     | filter              |  nat    
  18. 10.                    v ------>local------->| filter    
  19.  
  20. 链中的规则  
  21.             -A          附加一条规则  
  22.             -I   #      插入一条规则     
  23.             -R  #     替换第几条规则  
  24.             -D  #     删除第几条规则  
  25.                          #表示数字  
  26.  
  27. 链:  
  28.    -N  新建一条自定义链  
  29.    -X  删除一个自定义空链  
  30.    -E  重命名一条自定义链  
  31.    -F  清空指定链  不指定链  则清空整个表中的所有链  
  32.    -P  设定链的默认策略  
  33.    -Z  置零  
  34.    
  35. iptables命令格式  
  36. iptables的命令格式较为复杂,一般的格式如下:  
  37. iptables [-t table] 命令 [chain] [rules] [-j target]  
  38. table ——指定表明  
  39. 命令 ——对链的操作命令  
  40. chain ——链名  
  41. rules ——规则  
  42. target——动作如何进行  
  43.  
  44. 1.表选项  
  45. 表选项用于指定命令应用于哪个iptables内置表,iptables内置包括filter表、nat表、mangle表和raw表。  
  46. 2.命令选项iptables命令格式  
  47. 命令                       
  48. -P或–policy      <链名>     定义默认策略  
  49. -L或–list           <链名>     查看iptables规则列表  
  50. -A或—append      <链名>     在规则列表的最后增加1条规则  
  51. -I或–insert         <链名>     在指定的位置插入1条规则  
  52. -D或–delete      <链名>     从规则列表中删除1条规则  
  53. -R或–replace     <链名>     替换规则列表中的某条规则  
  54. -F或–flush         <链名>     删除表中所有规则  
  55. -Z或–zero          <链名>     将表中数据包计数器和流量计数器归零  
  56. 3.匹配选项  
  57. 匹配                                       
  58. -i        <网络接口名>         指定数据包从哪个网络接口进入,如ppp0、eth0和eth1等  
  59. -o       <网络接口名>         指定数据包从哪块网络接口输出,如ppp0、eth0和eth1等  
  60. -p       < 协议类型>             指定数据包匹配的协议,如TCP、UDP和ICMP等  
  61. -s       <源地址或子网>     指定数据包匹配的源地址  
  62. -d       <目标地址或子网>    指定数据包匹配的目标地址  
  63.  
  64. 查看:  
  65.     -L     查看  
  66.     -v     详细查看  
  67.     -vv    更详细查看  
  68.     -x     计数器的精确值  
  69.     -n     显示数字地址  
  70.     --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内网地址