技术员联盟提供win764位系统下载,win10,win7,xp,装机纯净版,64位旗舰版,绿色软件,免费软件下载基地!

当前位置:主页 > 教程 > 服务器类 >

Linux下针对路由功能配置iptables的方法详解

来源:技术员联盟┆发布时间:2018-02-21 06:00┆点击:

  作为公司上网的路由器需要实现的功能有nat地址转换、dhcp、dns缓存、流量控制、应用程序控制,nat地址转换通过iptables可以直 接实现,dhcp服务需要安装dhcpd,dns缓存功能需要使用bind,流量控制可以使用tc,应用程序控制:例如对qq的封锁可以使用 netfilter-layer7-v2.22+17-protocols-2009-05-28.tar.gz来实现

  1、网络规划

20151222113716570.png (814×275)

  操作系统是centos5.8

  2、安装dhcpd

  代码如下:

  yum install dhcp-3.0.5-31.el5

  vim /etc/dhcp/dhcpd.conf

  ddns-update-style interim;

  ignore client-updates;

  subnet 10.0.0.0 netmask 255.255.255.0 {

  option routers 10.0.0.1;

  option subnet-mask 255.255.255.0;

  option domain-name-servers 10.0.0.1;

  range dynamic-bootp 10.0.0.100 10.0.0.200;

  default-lease-time 21600;

  max-lease-time 43200;

  }

20151222113735955.png (837×146)

  3、安装bind,实现dns缓存

  代码如下:

  yum install bind97.i386 bind97-libs.i386 bind97-utils.i386

  vim /etc/named.conf

  options {

  directory "/var/named";

  allow-recursion { 10.0.0.0/24; };

  recursion yes;

  forward first; #将所有请求都进行转发

  forwarders { 114.114.114.114; }; #定义转发服务器地址

  };

  zone "." IN {

  type hint;

  file "named.ca";

  };

  zone "localhost" IN {

  type master;

  file "named.localhost";

  allow-transfer { none; };

  };

  zone "0.0.127.in-addr.arpa" IN {

  type master;

  file "named.loopback";

  allow-transfer { none; };

  };

  创建根域文件,默认有

  代码如下:

  dig -t NS . > /var/named/named.ca

  chown :named /var/named/named.ca

  创建本地正向解析文件,默认有

  代码如下:

  vim /var/named/named.localhost

  $TTL 1D

  @ IN SOA @ rname.invalid. (

  0 ; serial

  1D ; refresh

  1H ; retry

  1W ; expire

  3H ) ; minimum

  NS @

  A 127.0.0.1

  chown :named /var/named/named.localhost

  创建本地反向解析文件,默认有

  代码如下:

  vim /var/named/named.loopback

  $TTL 1D

  @ IN SOA @ rname.invalid. (

  0 ; serial

  1D ; refresh

  1H ; retry

  1W ; expire

  3H ) ; minimum

  NS @

  A 127.0.0.1

  PTR localhost.

  chown :named /var/named/named.loopback

  检查主配置文件

  代码如下:

  named-checkconf

  检查根区域配置文件

  代码如下:

  named-checkzone “.” /var/named/named.ca

  检查区域文件

  代码如下:

  named-checkzone “localhost” /var/named/named.localhost

  启动服务

  代码如下:

  service named start

  4、重新编译编译内核和iptables以支持应用层过滤

  由于实行防火墙功能的是netfilter内核模块,所以需要重新编译内核,需要下载新的内核源码,并使用netfilter-layer7-v2.22作为内核的补丁一起编译到内核中。而控制netfiler的是iptables工具,因此iptables也必须重新编译安装,最后再安装应用程序过滤特征码库17-protocols-2009-05028.tar.gz

  1、给内核打补丁,并重新编译内核

  2、给iptables源码打补丁,并重新编译iptables

  3、安装17proto

  备份iptables脚本和配置文件

  代码如下:

  cp /etc/rc.d/init.d/iptables /root/iptables.sysv

  cp /etc/sysconfig/iptables-config /root/iptables-config

  2.6内核下载地址

  https://www.kernel.org/pub/linux/kernel/v2.6/

  netfilter下载地址

  

  iptables源码下载地址

  

  应用程序特征码库下载地址

  

  代码如下:

  xz -d linux-2.6.28.10.tar.xz

  tar -xvf linux-2.6.28.10.tar.gz -C /usr/src #新的内核源码,用于重新编译

  tar -zxvf netfilter-layer7-v2.22.tar.gz -C /usr/src #内核补丁和iptables补丁 ,只支持到2.6.28

  #进入解压目录并创建软连接

< p>cd /usr/src

  ln -sv linux-2.6.28.10 linux

  #进入内核目录

< p>cd /usr/src/linux

  #为当前内核打补丁

< p>patch -p1 < ../netfilter-layer7-v2.22/kernel-2.6.25-2.6.28-layer7-2.22.path

  #为了方便编译内核将系统上的内核配置文件复制过来

< p>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

   Netfilter connection tracking support

   "lawyer7" match support

   "string" match support

   "time" match support

   "iprange" match support

   "connlimit" match support

   "state" match support

   "conntrack" connection match support

   "mac" address match support

   "multiport" Multiple port match support

  Networking support -> Networign options -> Network packet filtering framework -> IP:Netfiltr Configuration

   IPv4 connection tracking support (required for NAT)

   Full NAT

   MASQUERADE target support

   NETMAP target support

   REDIRECT target support

  在Networking support中选择 Networking options