搭建基于netfilter/iptables的实验环境

运维 系统运维
iptables 是与最新的 2.6.x 版本Linux 内核集成的 IP 信息包过滤系统。想要学习netfilter/iptables,就得搭建一个属于自己的实现环境,来随我看看如何实现吧!

iptablesnetfilter配合使用,功能加倍,来搭建一个属于自己的实验环境平台。

  实验步骤:

  一>实现路由功能:

  首先来配置eth0。给这个网络接口分配地址218.197.93.115,运行下列命令:

  # ifconfig eth0 218.197.93.115 netmask 255.255.255.0

  为了使这个地址不再计算机重新启动后消失,编辑/etc/sysconfig/network-scripts/ifcfg-eth0文件,

  DEVICE = eth0

  ONBOOT = yes

  BROADCAST = 218.197.93.255

  NETWORK = 218.197.93.0

  NETMASK = 255.255.255.0

  IPADDR = 218.197.93.115

  增加一条静态路由:

  # route add -net 218.197.93.0 netmask 255.255.255.0

  接下来,配置eth1,eth1与192.168.1.0网段相连,分配给它的地址是192.168.1.1,使用ifconfig命令为它配置参数:

  # ifconfig eth1 192.168.1.1 netmask 255.255.255.0

  编辑/etc/sysconfig/network-scripts/ifcfg-eth1文件,

  DEVICE = eth1

  ONBOOT = yes

  BROADCAST = 192.168.1.255

  NETWORK = 192.168.1.0

  NETMASK = 255.255.255.0

  IPADDR = 192.168.1.1

  增加一条静态路由:

  # route add -net192.168.1.0 netmask 255.255.255.0

  ***配置eth2,它连接192.168.2.0网段,分配的IP地址是192.168.2.1,执行下列命令:

  # ifconfig eth2 192.168.2.1 netmask 255.255.255.0

  - 5 -

  编辑/etc/sysconfig/network-scripts/ifcfg-eth2文件

  DEVICE = eth2

  ONBOOT = yes

  BROADCAST = 192.168.2.255

  NETWORK = 192.168.2.0

  NETMASK = 255.255.255.0

  IPADDR = 192.168.2.1

  增加一条静态路由:

  # route add -net 192.168.2.0 netmask 255.255.255.0

  这样网络中就有三条静态路由记录了:

  # route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface

  218,197.93.115 *255.255.255.0U 0 0 0 eth0

  192.168.1.0*255.255.255.0U 0 0 0 eth1

  192.168.2.0*255.255.255.0U 0 0 0 eth2

  还要为系统增加一条缺省路由,因为缺省的路由是把所有的数据包都发往它的上一级网关,因此增加如下的缺省路由记录:

  # route add default gw 218.197.93.254

  这样系统的静态路由表建立完成,它的内容是

  # route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface

  218,197.93.115 *255.255.255.0U 0 0 0 eth0

  192.168.1.0*255.255.255.0U 0 0 0 eth1

  192.168.2.0*255.255.255.0U 0 0 0 eth2

  default218.197.93.254 0.0.0.0 UG 0 0 0 eth0

  二>在C上开启www,ftp服务:

  #service httpd start

  #service vsftpd start

  三>在防火墙上初始化设置

  防火墙上初始化

 

  1.   #service iptables stop  
  2.  
  3.   #iptables -F  
  4.  
  5.   #iptables -t nat -F  
  6.  
  7.   #iptables -X  
  8.  
  9.   #iptables -t nat -X  
  10.  
  11.   #iptables -Z  
  12.  
  13.   #iptables -t nat -Z  
  14.  
  15.   #iptables -P INPUT DROP  
  16.  
  17.   #iptables -P OUTPUT DROP  
  18.  
  19.   #iptables -P FORWARD DROP  
  20.  
  21.   #iptables -t nat -P POSTROUTING DROP  
  22.  
  23.   #service iptables start  
  24.  

 

  ***一步,要增加系统的IP转发功能,执行如下命令打开ip转发功能:

  echo 1 >/proc/sys/net/ipv4/ip_forward

  四>在防火墙上实现端口地址映射

  允许A机器访问WAN

  iptables -A FORWARD -s 192.168.2.0/24 -i eth2 -j ACCEPT

  A往C的包都允许

  iptables -A FORWARD -s 192.168.2.0/24 -d 192.168.1.0/24 -i eth2 -j ACCEPT

  WAN往A的包都不允许

  iptables -t nat -A PREROUTING -s 0.0.0.0/0 -d 192.168.2.0/24 -i eth0 -j DROP

  允许WAN向内部发送已建立连接的包和相关连接的包。

  iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to 218.197.93.115

  允许WAN发往www,ftp服务器的包并把对网关的www,ftp请求转发到内部的www,ftp服务器上。

 

  1.   #iptables -t nat -A PREROUTING -p tcp --dport 80 -d 218.197.93.115 -s 0.0.0.0/0 -i eth0 -j DNAT --to 192.168.1.2  
  2.  
  3.   #iptables -A FORWARD -p tcp -s 0.0.0.0/0 -d 192.168.1.2 -i eth0 --dport 80 -j ACCEPT  
  4.  
  5.   #iptables -A FORWARD -p tcp -d 0.0.0.0/0 -s 192.168.1.2 -i eth1 --sport 80 ! --syn -j ACCEPT  
  6.  
  7.   #iptables -t nat -A PREROUTING -p tcp --dport 20,21 -d 218.197.93.115 -s 0.0.0.0/0 -i eth0 -j DNAT --to 192.168.1.2  
  8.  
  9.   #iptables -A FORWARD -p tcp -s 0.0.0.0/0 -d 192.168.1.2 -i eth0 --dport 20,21 -j ACCEPT  
  10.  
  11.   #iptables -A FORWARD -p tcp -d 0.0.0.0/0 -s 192.168.1.2 -i eth1 --sport 20,21 ! --syn -j ACCEPT  
  12.  
  13.   #iptables -t nat -A PREROUTING -s 0.0.0.0/0 -d 192.168.1.0/24 -i eth0 -j DROP  
  14.  

 

  C不能访问A,B

  iptables -A FORWARD -s 192.168.1.0/24 –d 0.0.0.0/0 -i eth1 -j DROP

通过上面的四大点介绍,想必大家都知道如何搭建属于自己的netfilter/iptables的平台。

【编辑推荐】

 

责任编辑:赵鹏 来源: 网络转载
相关推荐

2011-03-15 15:47:30

netfilteriptables安装

2011-03-15 12:47:11

netfilteriptables

2011-03-15 10:00:01

NetfilterIPTables

2011-03-15 15:47:26

netfilteriptables

2021-04-14 20:10:50

Netfileter Iptables 源码

2010-12-07 09:51:43

Linux安全性netfilteriptables

2011-03-15 09:10:43

iptables防火墙

2011-03-15 15:47:34

netfilteriptables

2011-03-15 10:48:47

2021-07-16 09:51:21

kubernetes环境容器

2020-05-20 13:53:41

HTTP环境安装

2011-03-15 16:26:46

iptablesnat

2016-03-02 09:50:09

docker测试环境

2012-02-16 10:00:59

2013-08-27 14:45:30

CouchbaseCouchbase环境测试

2014-01-21 11:16:59

MPI并行计算

2010-09-07 17:27:54

Carbide.c++Symbian移动开发

2012-03-07 11:30:09

PhoneGapWindows Pho

2009-06-10 16:30:05

基于Eclipse的PWindows

2011-07-05 14:34:23

点赞
收藏

51CTO技术栈公众号