Sunny Idea

SunnyIdea: 苗涛和邹丽娜 个人Blog

« 我的找工作流程图我的手机收藏 »

NAT脚本

#支持直接接入方式和PPPOE拨号方式,前部分有配置和注解,应该不难看懂


#! /bin/bash
# Project by Platinum, 2005-05-12
# Debug on 2005-05-20

# Set MODE (LAN or ADSL)
MODE="ADSL"

# Set default gateway (如果MODE==ADSL,此项可以忽略)
GATEWAY="外网网关"

# Set Interface WAN (如果MODE==ADSL,此项可以忽略)
WAN_IP="外网IP地址"
WAN_ETH="外网网卡"
WAN_MASK="外网掩码"

# Set Interface LAN
LAN_IP="内网IP地址"
LAN_NET="内网网络地址"
LAN_ETH="内网网卡"
LAN_MASK="内网掩码"

# Set manager
MANAGER_IP="内网管理员IP"
MANAGER_MAC="内网管理员MAC"

# Initialize modules
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
echo 1 > /proc/sys/net/ipv4/ip_forward

# Initialize Interface LAN
ifconfig $LAN_ETH $LAN_IP netmask $LAN_MASK

# Initialize policy
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -F
iptables -t nat -F

# Deny ACK attack
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
iptables -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP

# Initialize Rules
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i $LAN_ETH -s $MANAGER_IP -m mac --mac-source $MANAGER_MAC
-m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

case "$MODE" in
  LAN)
     # Initialize Interface WAN
     ifconfig $WAN_ETH $WAN_IP netmask $WAN_MASK
     iptables -t nat -A POSTROUTING -s $LAN_NET -o $WAN_ETH -j SNAT --to $WAN_
IP
  ;;
  ADSL)
     iptables -t nat -A POSTROUTING -s $LAN_NET -o ppp0 -j MASQUERADE
     GATEWAY=`ifconfig ppp0|grep inet|awk '{print $3}'|awk -F: '{print $2}'`

  ;;
esac

ip route replace default via $GATEWAY

  • 相关文章:
  • quote 1.Patrick
  • 在江X公司的时候本来想用iptables来做的,但是发现要实现一台LINUX上加载多种服务(apache/vsftp/qmail等),需要花点时间去搞配置,有点嫌烦琐就放弃了,最终选择了微软的ISA,似乎还不错,现在还在用的吧?呵呵!
  • 2007-3-26 16:20:39 回复该留言

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By Z-Blog 1.7 Laputa Build 70216

SunnyIdea 苗涛和邹丽娜 个人空间 苏ICP备07011602号