« | August 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | | | | | |
| 公告 |
我不去想是否能够成功,既然选择了远方,便只能风雨兼程; 我不去想,身后会不会袭来寒风冷雨,既然目标是地平线,留给世界的只能是背影!人生短短几十年,不要给自己留下了什么遗憾,想笑就笑,想哭就哭,爱就爱得轰轰烈烈,狠就狠的刻骨铭心! |
Blog信息 |
blog名称:Rabbit's Blog--我的blog我做主 日志总数:52 评论数量:41 留言数量:-10 访问次数:237208 建立时间:2005年12月7日 |

| |
[Linux]iptables+NAT+端口映射 网上资源, 软件技术, 电脑与网络
开心兔子 发表于 2007/5/11 8:52:08 |
实现目标: 利用iptabels给局域网做NAT透明代理,比如网吧或公司企业的上网代理服务器!同时实现了内网WEB服务器的端口映射!并且解决了WEB服务器访问者IP都为代理服务器IP的问题!同时内外网皆可正常通过公网IP访问内网的WEB服务器!
实现目标: 利用iptabels给局域网做NAT透明代理,比如网吧或公司企业的上网代理服务器!同时实现了内网WEB服务器的端口映射!并且解决了WEB服务器访问者IP都为代理服务器IP的问题!同时内外网皆可正常通过公网IP访问内网的WEB服务器!(加了SQUID后还没有成功,努力中!) 软硬件环境如下: 操作系统为 RHEL 4 ,3COM网卡两张,eth0为外网网卡,IP为:221.222.111.10; eth1为内网网卡,IP为:192.168.0.1; 内网WEB服务器IP为:192.168.0.200 。网络环境为:中国电信10M光纤,固定IP! 方法为如下: 首先我注释掉了iptables文件原始的全部内容,然后在iptables文件中写入如下内容! ##################################### Nat段开始 ######################################### *nat :PREROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] # #------------------------------ Web Server 端口映射 ------------------------------ # 192.168.0.200 端口80 ###################### # 用DNAT作端口映射!注意以下指令一定要在NAT透明代理的前面,否则无效! -A PREROUTING -i eth1 -p tcp -d 221.222.111.10 --dport 80 -j DNAT --to-destination 192.168.0.200:80 -A PREROUTING -i eth0 -p tcp -d 221.222.111.10 --dport 80 -j DNAT --to-destination 192.168.0.200:80 # #------------------------------ Iptables NAT 透明代理 ------------------------------ # -A POSTROUTING -s 192.168.0.0/255.255.255.0 -j SNAT --to 221.222.111.10 # COMMIT ##################################### Nat段结束 ######################################### ###################################### Filter段开始 ##################################### # *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] # #防止网络上其它计算机使用Ping命令探测本机: -A INPUT -p icmp --icmp-type echo-request -i eth0 -j DROP # # 防止广播包从IP代理服务器进入局域网: -A INPUT -s 255.255.255.255 -i eth0 -j DROP -A INPUT -s 224.0.0.0/224.0.0.0 -i eth0 -j DROP -A INPUT -d 0.0.0.0 -i eth0 -j DROP # 屏蔽掉以下的TCP和UDP端口: -A INPUT -i eth1 -p udp -m udp --dport 3 -j DROP -A INPUT -i eth1 -p tcp -m tcp --dport 3 -j DROP -A INPUT -i eth1 -p tcp -m tcp --dport 111 -j DROP -A INPUT -i eth1 -p udp -m udp --dport 111 -j DROP -A INPUT -i eth1 -p udp -m udp --dport 587 -j DROP -A INPUT -i eth1 -p tcp -m tcp --dport 587 -j DROP # COMMIT ###################################### Filter段结束 ##################################### 修改完以上的文件后,再将/etc/sysctl.conf 文件里面修改成 net.ipv4.ip_forward = 1 ,这个很重要,不然NAT代理不能生效的! 然后用#: service iptables restart 这个指令重起iptables 服务!!OK,你再试试看代理服务和WEB能否则正常访问,我想一定可以的! 附: Web Server 端口映射一定要在 Iptables NAT透明代理指令前面,否则内网用户将无法通过公网IP或域名访问内网的Web服务器! 如果有需要做一些过协议过滤,比如公司的要过滤掉QQ等,请搜索CU论坛的其它帖子,这就不在本帖的讨论范围了 |
|
|