linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘建议留言网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > article > linux网络与应用 > 网络应用 >
栏目导栏
资料搜索
热门文章
·RedHat Linux9 iptables配置方
·Linux网络服务配置文件详解
·SSH使用指南
·如何用IPtables限制BT、电驴等
·用Xmanager远程管理LINUX,AIX
·linux上的 heartbeat 双机热备
·iptables设置一例
·RedHat做ADSL共享上网代理服务
·虚拟网络计算工具VNC使用指南
·使用Linux L2TP/IPsec VPN 服务
·在linux路由上设置IP和MAC绑定
·车干子的openldap的详细配置
·十步建立Linux VPN服务器
·构筑防火墙之IPtables搭建防火
·linux主要系统服务介绍
最新文章
·Ubuntu 8.04下搭建tftp开发dav
·初次远程做Linux Iptables规则
·Debian Linux系统Socks5服务器
·在Linux系统下享受IPv6的畅快
·查看Linux操作系统下的网络连接
·图形界面远程登录 基于NX技术F
·Linux操作系统下Xmanager工具登
·RHCE实验:Linux下基于xinetd的
·解决Linux Telnet登录慢问题
·实用技巧:Linux下用Samba作PD
·Ubuntu Linux下Azureus NAT设置
·宿主机WindowsXP与虚拟机Linux
·Linux系统下SSH keygen免输入密
·Redhat AS5 Squid透明代理配置
·Debian Linux系统下VPN Server
Google
 
iptables设置一例
[ 作者:Linux联盟收集  加入时间:2006-04-07 11:58:49  来自:Linux联盟 ]
只需要一个公网地址设在外接口上,内部用私网地址组网即可,在内部服务器提供Internet服务。


#!/bin/sh

#--------------------------------------------
#
# 外接口eth0,开放 vpn ssh
# 内接口eth1,绑定 dhcp dns squid
# 向内部服务器转发 ftp smtp www pop3
# 支持透明代理
#
# 胖头鱼:pangty@ta139.com
#
#--------------------------------------------

EXT_IF="eth0"
INT_IF="eth1"
EXT_IP="" #公网IP
INT_IP="" #内接口IP
SERVER_IP="" #内部服务器IP

# pptpd_vpn_service ssh
TRUSTED_LOCAL_TCP_PORT="1723 22"
TRUSTED_LOCAL_UDP_PORT="22"

# ftp-data ftp smtp http pop3
FWD_TCP_PORT="20 21 25 80 110"
FWD_UDP_PORT="20 21 25 80 110"

# load any special modules
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
modprobe ip_nat_irc
modprobe ip_conntrack_irc

# turn on ip forwarding
echo "1" > /proc/sys/net/ipv4/ip_forward

# setting up ip spoofing protection
for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 1 > $f
done

# delete any existing chains
iptables -F -t filter
iptables -X -t filter
iptables -Z -t filter
iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat

# setting up default policies
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT

#---------------------- filter ---------------------

# allow ping from internet
iptables -A INPUT -i $EXT_IF -p icmp -j ACCEPT

# enable local traffic
#------------------------------------------------------------------------
# iptables -A INPUT ! -i $EXT_IF -m state --state NEW -j ACCEPT
# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#
# iptables -A FORWARD ! -i $EXT_IF -m state --state NEW -j ACCEPT
# iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
#------------------------------------------------------------------------

iptables -N allowed
iptables -A allowed ! -i $EXT_IF -m state --state NEW -j ACCEPT
iptables -A allowed -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -j allowed
iptables -A FORWARD -j allowed

for PORT in $TRUSTED_LOCAL_TCP_PORT; do
iptables -A INPUT -i $EXT_IF -p tcp --dport $PORT -m state --state NEW -j 
ACCEPT

done

for PORT in $TRUSTED_LOCAL_UDP_PORT; do
iptables -A INPUT -i $EXT_IF -p udp --dport $PORT -m state --state NEW -j 
ACCEPT

done

#---------------------- nat ---------------------

# port forwarding
for PORT in $FWD_TCP_PORT; do
iptables -A FORWARD -i $EXT_IF -o $INT_IF -d $SERVER_IP 
-p tcp --dport $PORT -m state --state NEW -j ACCEPT
iptables -t nat -A PREROUTING -d $EXT_IP 
-p tcp --dport $PORT -j DNAT --to-destination $SERVER_IP
iptables -t nat -A POSTROUTING -d $SERVER_IP 
-p tcp --dport $PORT -j SNAT --to-source $INT_IP
done

for PORT in $FWD_UDP_PORT; do
iptables -A FORWARD -i $EXT_IF -o $INT_IF -d $SERVER_IP 
-p udp --dport $PORT -m state --state NEW -j ACCEPT
iptables -t nat -A PREROUTING -d $EXT_IP 
-p udp --dport $PORT -j DNAT --to-destination $SERVER_IP
iptables -t nat -A POSTROUTING -d $SERVER_IP 
-p udp --dport $PORT -j SNAT --to-source $INT_IP
done

# Transparent Proxy
iptables -t nat -A PREROUTING -i $INT_IF -p tcp --dport 80 -j REDIRECT --to-
port 3128


# SNAT or MASQUERADE
#------------------------------------------------------------------------
# iptables -t nat -A POSTROUTING -o $EXT_IF -j SNAT --to-source $EXT_IP
#------------------------------------------------------------------------
iptables -t nat -A POSTROUTING -o $EXT_IF -j MASQUERADE

# THE END Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·用tc+iptables+HTB解决ADSL宽带速度瓶颈技术  (2005-12-02 09:20:32)
 ·如何用IPtables限制BT、电驴等网络流量  (2005-12-01 09:34:54)
 ·给Iptables定时  (2005-11-30 14:07:49)
 ·构筑防火墙之IPtables搭建防火墙的规则  (2005-11-30 12:33:48)
 ·iptables应用之动态DNS  (2005-11-30 09:36:47)
 ·iptables中文man文档  (2005-11-29 13:24:53)