免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3513 | 回复: 8
打印 上一主题 下一主题

(心得)iptables+NAT+端口映射,献给和我一样在苦苦探索的新手! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-09-05 02:40 |只看该作者 |倒序浏览
说来惭愧,经过近3天的学习才找到了这套比较简单的解决方案!现在最大的遗憾是还没有玩转squid,后面继续努力!希望能实现iptables+squid+NAT+端口映射!
    现将我几天来学习的心得写出来,希望给和我一样的新手有所帮助!同时希望CU的Linux高手大哥大姐们指出可能存在的问题!我也是刚学的,不要BS我啊!


实现目标:
    利用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
REROUTING ACCEPT [0]
:OUTPUT ACCEPT [0]
OSTROUTING ACCEPT [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]
:FORWARD ACCEPT [0]
:OUTPUT ACCEPT [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论坛的其它帖子,这就不在本帖的讨论范围了!


重要: 因本人刚刚学习Linux不到3天,文章内如果有地方出错,请各位前辈高手不吝指正!感谢!!


在这里还要感谢CU的前辈和高手们,我就是在这里获得你们曾经的帖子的指导,才学到了这些有用的东西!

同时希望Linux方面的高手多多指导我!我的QQ:33225000

    新手: 网虫涛涛  2005年9月5日凌晨2点30分!

论坛徽章:
0
2 [报告]
发表于 2005-09-05 09:01 |只看该作者

(心得)iptables+NAT+端口映射,献给和我一样在苦苦探索的新手!

论坛徽章:
0
3 [报告]
发表于 2005-09-05 10:08 |只看该作者

(心得)iptables+NAT+端口映射,献给和我一样在苦苦探索的新手!

本人刚刚学习Linux不到3天

pf

论坛徽章:
0
4 [报告]
发表于 2005-09-05 10:13 |只看该作者

(心得)iptables+NAT+端口映射,献给和我一样在苦苦探索的新手!

是原创的吗好象以前见过

论坛徽章:
0
5 [报告]
发表于 2005-09-05 12:50 |只看该作者

(心得)iptables+NAT+端口映射,献给和我一样在苦苦探索的新手!

iptables文件放在什么地方?我在SUSE 8下怎么没找到

论坛徽章:
0
6 [报告]
发表于 2005-09-07 23:55 |只看该作者

(心得)iptables+NAT+端口映射,献给和我一样在苦苦探索的新手!

[quote]原帖由 "临风轩主"]是原创的吗好象以前见过[/quote 发表:


不知道是应不应该算原创,帖子反正整个是我写的,呵呵! 再说原不原创不重要,我也没有声明要版权什么,呵呵!!

至少文件内容嘛,肯定是吸取过前辈的营养,在GOOGLE上东看一点西看一点,在CU论坛也看了不少高手的帖子,然后就然根椐自己的环境和需要写了这个配置文件!

学习Linux真的是花了三天,可能跟自己以前学过一点点FreeBSD有关吧!
不过三天时间对做一个代理服务器已经足够了吧!! 呵呵!!

一天学常用指令,一天查看网上的文章资料,再用一天边试边做就OK了!如此而已,各位高手不要见笑啊!


另:  不知道楼上的有位哥们说的 pf 是什么意思!俺笨,不懂,呵呵!!请教了!

论坛徽章:
0
7 [报告]
发表于 2005-09-07 23:59 |只看该作者

(心得)iptables+NAT+端口映射,献给和我一样在苦苦探索的新手!

[quote]原帖由 "slurker"]iptables文件放在什么地方?我在SUSE 8下怎么没找到[/quote 发表:


我用的RHEL 4 ,iptables默认安装后这个配件文件在/etc/sysconfig/iptables 这个位置! 你说的SUSE 8这个版本的Linux没有学过,不太清楚也!!!

论坛徽章:
0
8 [报告]
发表于 2005-09-08 02:06 |只看该作者

(心得)iptables+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

冗余了


# 防止广播包从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

做过试验吗?说说每句的意思?(包括 INPUT 链的用途,-s、-d 的含义,以及结合起来用的目的)

论坛徽章:
0
9 [报告]
发表于 2005-09-08 09:13 |只看该作者

(心得)iptables+NAT+端口映射,献给和我一样在苦苦探索的新手!

pf=佩服

欢迎这样的共享!楼主继续加油!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP