创建iptables NAT 规则

运维 系统运维
用过iptables工具的人都知道,这是个非常好用而且非常实用的,本文教大家下创建iptables NAT 规则的具体过程!

创建iptables NAT 规则挺繁琐,看下文。

  #!/bin/sh

  ## File: rc.firewall.nat

  ## Set up iptables NAT rules.

  IPTABLES="/usr/local/sbin/iptables"

  EXTERNAL1="eth0"

  EXTERNAL2="eth0"

  INTERNAL="eth1"

  DMZ_IF="eth2"

  EXT_IP1="216.162.197.10/32"

  EXT_IP2="216.162.197.11/32"

  $IPTABLES -F -t nat

  $IPTABLES -t nat -X

  #####################################################################################

  ## Sentry.net EXTERNAL DNAT

  $IPTABLES -t nat -N SENTRY_DNAT

  $IPTABLES -t nat -F SENTRY_DNAT

  ##-----------------------------------------------------------------------------##

  $IPTABLES -t nat -A SENTRY_DNAT -i $EXTERNAL1 -p tcp -s ! 192.168.0.0/16

  -d $EXT_IP1 --dport 20 -j DNAT --to-destination 192.168.2.69:20

  $IPTABLES -t nat -A SENTRY_DNAT -i $EXTERNAL1 -p tcp -s ! 192.168.0.0/16

  -d $EXT_IP1 --dport 21 -j DNAT --to-destination 192.168.2.69:21

  $IPTABLES -t nat -A SENTRY_DNAT -i $EXTERNAL1 -p tcp -s ! 192.168.0.0/16

  -d $EXT_IP1 --dport 22 -j DNAT --to-destination 192.168.2.69:22

  $IPTABLES -t nat -A SENTRY_DNAT -i $EXTERNAL1 -p tcp -s ! 192.168.0.0/16

  -d $EXT_IP1 --dport 23 -j DNAT --to-destination 192.168.2.69:23

  $IPTABLES -t nat -A SENTRY_DNAT -i $EXTERNAL1 -p tcp -s ! 192.168.0.0/16

  -d $EXT_IP1 --dport 25 -j DNAT --to-destination 192.168.2.69:25

  $IPTABLES -t nat -A SENTRY_DNAT -i $EXTERNAL1 -p tcp -s ! 192.168.0.0/16

  -d $EXT_IP1 --dport 80 -j DNAT --to-destination 192.168.2.69:80

  $IPTABLES -t nat -A SENTRY_DNAT -i $EXTERNAL1 -p tcp -s ! 192.168.0.0/16

  -d $EXT_IP1 --dport 110 -j DNAT --to-destination 192.168.2.69:110

  ##-----------------------------------------------------------------------------##

  #####################################################################################

  ## Obsidian.net/org EXTERNAL DNAT

  $IPTABLES -t nat -N OBS_DNAT

  $IPTABLES -t nat -F OBS_DNAT

  ##-----------------------------------------------------------------------------##

  $IPTABLES -t nat -A OBS_DNAT -i $EXTERNAL2 -p tcp -s ! 192.168.0.0/16

  -d $EXT_IP2 --dport 20 -j DNAT --to-destination 192.168.2.42:20

  $IPTABLES -t nat -A OBS_DNAT -i $EXTERNAL2 -p tcp -s ! 192.168.0.0/16

  -d $EXT_IP2 --dport 21 -j DNAT --to-destination 192.168.2.42:21

  $IPTABLES -t nat -A OBS_DNAT -i $EXTERNAL2 -p tcp -s ! 192.168.0.0/16

  -d $EXT_IP2 --dport 22 -j DNAT --to-destination 192.168.2.42:22

  $IPTABLES -t nat -A OBS_DNAT -i $EXTERNAL2 -p tcp -s ! 192.168.0.0/16

  -d $EXT_IP2 --dport 23 -j DNAT --to-destination 192.168.2.42:23

  $IPTABLES -t nat -A OBS_DNAT -i $EXTERNAL2 -p tcp -s ! 192.168.0.0/16

  -d $EXT_IP2 --dport 25 -j DNAT --to-destination 192.168.2.42:25

  $IPTABLES -t nat -A OBS_DNAT -i $EXTERNAL2 -p tcp -s ! 192.168.0.0/16

  -d $EXT_IP2 --dport 80 -j DNAT --to-destination 192.168.2.42:80

  $IPTABLES -t nat -A OBS_DNAT -i $EXTERNAL2 -p tcp -s ! 192.168.0.0/16

  -d $EXT_IP2 --dport 110 -j DNAT --to-destination 192.168.2.42:110

  ##-----------------------------------------------------------------------------##

  ####################################################################################

#p#

  ## Sentry.net INTERNAL DNAT

  $IPTABLES -t nat -N SENTRY_DNAT_INT

  $IPTABLES -t nat -F SENTRY_DNAT_INT

  ##-----------------------------------------------------------------------------##

  $IPTABLES -t nat -A SENTRY_DNAT_INT -i $INTERNAL -p tcp -s 192.168.1.0/24

  -d $EXT_IP1 --dport 20 -j DNAT --to-destination 192.168.2.69:20

  $IPTABLES -t nat -A SENTRY_DNAT_INT -i $INTERNAL -p tcp -s 192.168.1.0/24

  -d $EXT_IP1 --dport 21 -j DNAT --to-destination 192.168.2.69:21

  $IPTABLES -t nat -A SENTRY_DNAT_INT -i $INTERNAL -p tcp -s 192.168.1.0/24

  -d $EXT_IP1 --dport 22 -j DNAT --to-destination 192.168.2.69:22

  $IPTABLES -t nat -A SENTRY_DNAT_INT -i $INTERNAL -p tcp -s 192.168.1.0/24

  -d $EXT_IP1 --dport 23 -j DNAT --to-destination 192.168.2.69:23

  $IPTABLES -t nat -A SENTRY_DNAT_INT -i $INTERNAL -p tcp -s 192.168.1.0/24

  -d $EXT_IP1 --dport 25 -j DNAT --to-destination 192.168.2.69:25

  $IPTABLES -t nat -A SENTRY_DNAT_INT -i $INTERNAL -p tcp -s 192.168.1.0/24

  -d $EXT_IP1 --dport 80 -j DNAT --to-destination 192.168.2.69:80

  $IPTABLES -t nat -A SENTRY_DNAT_INT -i $INTERNAL -p tcp -s 192.168.1.0/24

  -d $EXT_IP1 --dport 110 -j DNAT --to-destination 192.168.2.69:110

  ##-----------------------------------------------------------------------------##

  #####################################################################################

  ## Obsidian.net/org INTERNAL DNAT

  $IPTABLES -t nat -N OBS_DNAT_INT

  $IPTABLES -t nat -F OBS_DNAT_INT

  ##-----------------------------------------------------------------------------##

  $IPTABLES -t nat -A OBS_DNAT_INT -i $INTERNAL -p tcp -s 192.168.1.0/24

  -d $EXT_IP2 --dport 20 -j DNAT --to-destination 192.168.2.42:20

  $IPTABLES -t nat -A OBS_DNAT_INT -i $INTERNAL -p tcp -s 192.168.1.0/24

  -d $EXT_IP2 --dport 21 -j DNAT --to-destination 192.168.2.42:21

  $IPTABLES -t nat -A OBS_DNAT_INT -i $INTERNAL -p tcp -s 192.168.1.0/24

  -d $EXT_IP2 --dport 22 -j DNAT --to-destination 192.168.2.42:22

  $IPTABLES -t nat -A OBS_DNAT_INT -i $INTERNAL -p tcp -s 192.168.1.0/24

  -d $EXT_IP2 --dport 23 -j DNAT --to-destination 192.168.2.42:23

  $IPTABLES -t nat -A OBS_DNAT_INT -i $INTERNAL -p tcp -s 192.168.1.0/24

  -d $EXT_IP2 --dport 25 -j DNAT --to-destination 192.168.2.42:25

  $IPTABLES -t nat -A OBS_DNAT_INT -i $INTERNAL -p tcp -s 192.168.1.0/24

  -d $EXT_IP2 --dport 80 -j DNAT --to-destination 192.168.2.42:80

  $IPTABLES -t nat -A OBS_DNAT_INT -i $INTERNAL -p tcp -s 192.168.1.0/24

  -d $EXT_IP2 --dport 110 -j DNAT --to-destination 192.168.2.42:110

  ##-----------------------------------------------------------------------------##

  #####################################################################################

  ## DMZ_DNAT for Sentry.net

  $IPTABLES -t nat -N SENTRY_DMZ_DNAT

  $IPTABLES -t nat -F SENTRY_DMZ_DNAT

  ##-----------------------------------------------------------------------------##

  $IPTABLES -t nat -A SENTRY_DMZ_DNAT -i $DMZ_IF -s 192.168.2.0/24 -d $EXT_IP1

  -p tcp --dport 20 -j DNAT --to-destination 192.168.2.69:20

  $IPTABLES -t nat -A SENTRY_DMZ_DNAT -i $DMZ_IF -s 192.168.2.0/24 -d $EXT_IP1

  -p tcp --dport 21 -j DNAT --to-destination 192.168.2.69:21

  $IPTABLES -t nat -A SENTRY_DMZ_DNAT -i $DMZ_IF -s 192.168.2.0/24 -d $EXT_IP1

  -p tcp --dport 22 -j DNAT --to-destination 192.168.2.69:22

  $IPTABLES -t nat -A SENTRY_DMZ_DNAT -i $DMZ_IF -s 192.168.2.0/24 -d $EXT_IP1

  -p tcp --dport 23 -j DNAT --to-destination 192.168.2.69:23

  $IPTABLES -t nat -A SENTRY_DMZ_DNAT -i $DMZ_IF -s 192.168.2.0/24 -d $EXT_IP1

  -p tcp --dport 25 -j DNAT --to-destination 192.168.2.69:25

  $IPTABLES -t nat -A SENTRY_DMZ_DNAT -i $DMZ_IF -s 192.168.2.0/24 -d $EXT_IP1

  -p tcp --dport 80 -j DNAT --to-destination 192.168.2.69:80

  $IPTABLES -t nat -A SENTRY_DMZ_DNAT -i $DMZ_IF -s 192.168.2.0/24 -d $EXT_IP1

  -p tcp --dport 110 -j DNAT --to-destination 192.168.2.69:110

  ##-----------------------------------------------------------------------------##

  #####################################################################################

  ## DMZ_DNAT for Obsidian.net

  $IPTABLES -t nat -N OBS_DMZ_DNAT

  $IPTABLES -t nat -F OBS_DMZ_DNAT

  ##-----------------------------------------------------------------------------##

  $IPTABLES -t nat -A OBS_DMZ_DNAT -i $DMZ_IF -s 192.168.2.0/24 -d $EXT_IP2

  -p tcp --dport 20 -j DNAT --to-destination 192.168.2.42:20

  $IPTABLES -t nat -A OBS_DMZ_DNAT -i $DMZ_IF -s 192.168.2.0/24 -d $EXT_IP2

  -p tcp --dport 21 -j DNAT --to-destination 192.168.2.42:21

  $IPTABLES -t nat -A OBS_DMZ_DNAT -i $DMZ_IF -s 192.168.2.69/32 -d $EXT_IP2

  -p tcp --dport 22 -j DNAT --to-destination 192.168.2.42:22

  $IPTABLES -t nat -A OBS_DMZ_DNAT -i $DMZ_IF -s 192.168.2.0/24 -d $EXT_IP2

  -p tcp --dport 23 -j DNAT --to-destination 192.168.2.42:23

  $IPTABLES -t nat -A OBS_DMZ_DNAT -i $DMZ_IF -s 192.168.2.0/24 -d $EXT_IP2

  -p tcp --dport 25 -j DNAT --to-destination 192.168.2.42:25

  $IPTABLES -t nat -A OBS_DMZ_DNAT -i $DMZ_IF -s 192.168.2.0/24 -d $EXT_IP2

  -p tcp --dport 80 -j DNAT --to-destination 192.168.2.42:80

  $IPTABLES -t nat -A OBS_DMZ_DNAT -i $DMZ_IF -s 192.168.2.0/24 -d $EXT_IP2

  -p tcp --dport 110 -j DNAT --to-destination 192.168.2.42:110

  ##-----------------------------------------------------------------------------##

  #####################################################################################

  ## DNAT -- MAIN

  $IPTABLES -t nat -A PREROUTING -i $INTERNAL -p tcp -s 192.168.1.0/24

  -d $EXT_IP1 -j SENTRY_DNAT_INT

  $IPTABLES -t nat -A PREROUTING -i $INTERNAL -p tcp -s 192.168.1.0/24

  -d $EXT_IP2 -j OBS_DNAT_INT

  $IPTABLES -t nat -A PREROUTING -i $EXTERNAL1 -p tcp -s ! 192.168.1.0/24

  -d $EXT_IP1 -j SENTRY_DNAT

  $IPTABLES -t nat -A PREROUTING -i $EXTERNAL2 -p tcp -s ! 192.168.1.0/24

  -d $EXT_IP2 -j OBS_DNAT

  $IPTABLES

通过文章的描写,我们知道了如何创建iptables NAT 规则,希望大家能掌握它!

【编辑推荐】

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

2011-03-15 16:26:46

iptablesnat

2011-03-16 09:05:34

iptablesnat

2011-03-17 14:09:03

iptables na

2011-03-17 17:45:45

iptables规则

2011-03-15 14:26:23

iptablesNAT

2011-03-15 09:10:47

iptablesNAT

2011-03-18 09:26:13

Iptables规则

2011-03-16 09:30:47

iptables过滤

2011-03-16 16:41:57

清空iptables

2011-03-16 09:05:29

iptablesNAT

2011-03-17 13:55:23

iptablesNAT端口映射

2011-03-17 15:44:21

2011-03-16 09:05:32

RedhatiptablesNAT

2011-03-15 09:59:52

2011-03-16 09:05:53

NATiptables

2011-03-16 09:05:33

2011-03-17 13:28:49

iptables na

2011-03-14 15:46:35

Iptables语法

2011-03-16 16:54:10

iptables 清空linux

2017-09-11 20:16:58

点赞
收藏

51CTO技术栈公众号