码迷,mamicode.com
首页 > 其他好文 > 详细

29_1_iptables系列之layer7

时间:2015-10-21 08:07:23      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:

1.有一种场景:
   该公司只有一个互联网地址,想让内网客户端上网,又想让内网的服务器被外网客户端访问。
   想让内网客户端主机上网,就使用SNAT;
   想让内网的服务器被外网客户端访问,就使用DNAT;
   内网主机是员工用来办公的,有很多的机密资料,是不能被外网访问到的,
   但是内网的服务器主机又必须被外网访问,那怎么把它们分开处理呢?
   
方法1:如果有人攻破了内网的服务器主机,利用它做跳板,去窃取内网客户端的资料,这是非常危险的。
   在有公网IP的主机上设置3块网卡,1个面对互联网,1个面对内网客户端,1个面对内网服务器;
   这样就可以分开处理它们啦;即使被攻破了服务器也不能去访问内网客户端,除非破解了防火墙。
   内网服务器区域叫做:DMZ(非军事化区域),那内网客户端就是军事化区域啦。
   但是这种方法有公网IP的主机比较繁忙。
方法2:背靠背方式
   两个主机防火墙各有两个网卡,前端主机防火墙有1个公网IP连接外网,另1个IP连接交换机,
   交换机连接后端主机防火墙的1个IP,交换机还连接内网服务器,
   后端主机防火墙的另1个IP连接内网的客户端。
   这就做到了分开处理,并且不繁忙。
             ----                 ----
             |防|                 |防|
内网客户端-- |火|                 |火|
             |墙|-- 交换机--(内网)|墙|---外网
             ----     |           ----
                      |
                    服务器

2.小项目:
   有一个主机,有3个网卡,1个面对互联网,1个面对内网客户端,1个面对内网服务器;
   内网服务器有SMTP,DNS,WEB,3个独立的服务主机。
   当外网客户端访问内网WEB服务器时,先需要DNS服务器解析,转换成公网IP,最后转到WEB服务器;
   内网的客户端访问内网的WEB就不需要解析成公网IP,
   只需要把两个内网网段通过路由转发即可,DNS定义view:内网请求转换成私有IP,外网请求转成公网IP。


3.内核编译:
   查看硬件详细信息:
       /proc/cpuinfo:cup相关信息
       lspci:pci相关信息
       lsusb:usb相关信息
       hal-device:查看每个硬件的相关详细
       记下硬件的型号,在配置的时候选择对应的驱动
   配置:保存在.config文件中,也可以在此文件直接配置
        make menuconfig
    make gconfig
    make kconfig
    make config:会遍历每一个选项,比较痛苦,时间比较长
    make oldconfig
   编译:
        make:编译全部功能
    只编译部分功能:
         make SUBDIR=arch/:只编译和内核核心相关功能的
         make driver/net/pcnet32.ko:只编译一个驱动,如只编译一个网卡驱动
         make dir/:只编译此目录下的所有内核原码
        转存编译结果:make O=/path/to/somewhere

   安装内核模块:make modules_install
   安装内核:make install

  清除:make clean
        make mrproper


iptables:二(源MAC),三,四层
    string:七层过滤,只能实现字符串,过滤七层协议很薄弱

4.layer7【实现七层过滤】
  作用:基于应用层协议实现过滤。
  应用:xunlei,qq,netfilter<--patch
       -m layer7 --17protp xunlei -j DROP
  实现步骤:
      1.给内核打补丁,并重新编译内核
      2.给iptables源码打补丁,并重新编译iptables
      3.安装17proto
  打补丁:
      1.kernel,patch:为了让netfilter提供一个框架接收iptables的相应规则
      2.iptables,patch:为了让iptables写相关的规则

(1).kernel patch
    #tar zxvf linux-2.6.28.tar.gz -C /usr/src
    #tar zxvf netfilter-layer7-v2.22.tar.gz -C /usr/src
    #cd /usr/src
    #ln -s linux-2.6.28.10 linux
    #cd /usr/src/linux
    #patch -p1 < ../netfilter-layer1-v2.22/kernel-2.6.25-2.5.28-layer7-2.22.patch

    #cp /boot/config-2.6.18-164.el5 /usr/src/linux/.config
    #make menuconfig

    Networking support >  Networking Options-> Network packet filtering framework-> Core Netfilter Configuration
    <M> Netfilter Configure tracking support
    <M> "layer7" match support
    <M> "string" match support
    <M> "time" match support
    <M> "iprange" match support
    <M> "connlimit" match support
    <M> "state" match support
    <M> "coontrack" connection match support
    <M> "mac" address match support
    <M> "multiport" match support

    Networking support >  Networking Options-> Network packet filtering framework-> IP:Netfilter Configuration
    <M> IPv4 connection tracking support(required for NAT)
    <M> Full NAT
       <M> MASQUERADE target support
       <M> NETMAP target support
       <M> REDIRECT target support

    #yum provides */screen
    #yum install screen-4.0.3-16.el6.x86_64
    #screen  为了防止编译被打断

    #make
    #make modules_install
    #make install


(2).Compiles iptables:
    #cp /etc/init.d/iptables ~/iptables
    #cp /etc/sysconfig/iptables-config ~/
    #rpm -e iptables-ipv6 iptables iptstate  --nodeps
    #tar jxvf iptables-1.4.6.tar.bz2 -C /usr/src
    #cd /usr/src/iptables-1.4.6
    #cp ../netfilter-layer1-v2.22/iptables-1.4.3forward-for-kernel-2.6.20forward/libxt_layer7.*  ./extensions/
    
    #./configure --prefix=/usr  --with-ksource=/usr/src/linux
    #make
    #make install

    #tar zxvf 17-protocols-2009-05-28.tar.gz
    #cd 17-protocols-2009-05-28
    #make install
    
    #mv ~/iptables /etc/rc.d/init.d/
    
    #/etc/init.d/iptables start


   17-filter uses the standard iptables extension synatx
   #iptables [specify tables & chain] -m layer7 --17proto [protocol name] -j [action]




29_1_iptables系列之layer7

标签:

原文地址:http://www.cnblogs.com/wangjiaxing/p/4896668.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!