您的位置:首页 > 运维架构 > 反向代理

WindowsXP下搭建bindDNS服务器以及Squid代理服务器 实现透明代理上网

2012-11-24 10:54 1501 查看
WindowsXP下搭建bindDNS服务器以及Squid代理服务器
实现透明代理上网

一、需求说明及拓扑图
由于项目需要,需要搭建测试环境:双网卡主机,一网卡连接外网,另一网卡与无线路由器组成局域网,在装有Windows XP的主机上安装bind dns服务器、squid,然后将squid配置为透明代理模式,实现局域网内(192.168.0.0/24)所有终端能够访问互联网。
拓扑图如下所示:





二、实现过程
所需软件:BIND9.9.2 squid-2.7.STABLE7-bin
1、 安装bind dns服务器
由于以前没有在windows平台上安装过bind,因此虽然要求很简单,但是还是折腾了很久,原因是因为忽略了文件权限的重要性(学艺不精),网上有很多在XP平台安装bind的教程,结合我个人的经历,总结如下:
(1)、下载BIND9.9.2,http://www.isc.org/software/bind
(2)、安装
解压并点击BINDinstall.exe进行安装





出现如下所示界面





安装目录随意(默认是c:\windows\system32\dns,我个人安装在c:\dns,这个并没有什么影响),Service Account Name就用默认的named就行,会在后面赋予其完全控制的权限。password随意,Options选项中选取中间两项(如图)就行,然后点击install,安装完毕后关闭该窗口。

打开CMD,切换到c:\dns\bin目录下,并运行rndc-confgen.exe –a





该命令会在c:\dns\etc文件中生成rndc-key文件





然后再运行命令rndc-confgen.exe > ..\etc\rndc.conf





该命令是在c:\dns\etc文件中生成rndc.conf文件。

rndc.conf的内容如下:
# Start of rndc.conf

key “rndc-key” {

algorithm hmac-md5;

secret “GnEDdo4iFTiPxEfvQJYE/Q==”;

};
options {

default-key “rndc-key”;

default-server 127.0.0.1;

default-port 953;

};

# End of rndc.conf
# Use with the following in named.conf, adjusting the allow list as needed:

# key “rndc-key” {

# algorithm hmac-md5;

# secret “GnEDdo4iFTiPxEfvQJYE/Q==”;

# };

#

# controls {

# inet 127.0.0.1 port 953

# allow { 127.0.0.1; } keys { “rndc-key”; };

# };

# End of named.conf
rndc.conf文件内容的前半部分保留(文件中已有描述),然后在c:\dns\etc目录中新建named.conf文件,并将rndc.conf的后半部分复制其中,复制后注意去掉两个文件中得“#”,以使配置生效。关于在c:\dns\etc目录中新建named.conf,这里大家一定要注意,最好不要“鼠标右键-》新建”,这样在后面启动dns服务的时候会报1067错误,查看windows下得日志文件,说是找不到named.conf,说明该文件权限不对,建议大家在CMD命令下切换到c:\dns\etc下用copy或者copy con命令新建named.conf。
named.conf文件根据自己的需要进行修改,我的配置如下:
options {
directory "C:\dns\etc";
allow-query {
any;
};
allow-transfer {
any;
};
};
key "rndc-key" {
algorithm hmac-md5;
secret "qODXy87nHkM5R8z6750UrA==";
};
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
# End of named.conf
zone "." IN {
type master;
file "test.com.zone";
};
test.com.zone内容如下:
$TTL 86400
@ IN SOA @ root (
42 ;serial
3H ;refresh
15M ;retry
1W ;expiry
1D ) ;minimum
IN NS @
IN A 127.0.0.1
IN AAAA ::1
* IN A 192.168.0.1(将全部网址都解析到笔记有线网卡192.168.0.1)
本次试验并没有用到named.root,因此本人并没有配置,也许我的配置也有不完善的地方,但是保证能运行就行,有关dns的一些说明读者可以自行上网查阅,这里篇幅有限,就不过多解释了。
之后在文件夹选项中取消“使用简单文件共享(推荐)”





然后右键点击文件夹c:\dns\etc属性(在文件夹c:\dns点击也应该可以),弹出如下框图,按照步骤一步步设置就行了。













此时,named已经对c:\dns\etc文件夹及其内容拥有完全控制的权限了。

在运行中输入service.msc,,然后在服务器中启动ISC BIND,不出意外,dns服务器就能够正常运行了。





安装过程中,经常出现的错误有两个,分别是1067和1069,一般情况下,1069指的是named用户的权限问题,1067指的时named.conf的权限问题或者是named.conf配置语法问题,读者可以同构控制面板中的“管理工具”-》“事件查看器”来查看错误的来源。

大家可以在“环境变量”=》“系统变量”=》“path”中加入dns的bin路径,这样就可以在CMD命令下直接使用bin中得某些工具,即在path中增加“c:\dns\bin;”(根据自己bind的安装路径自行调整)





然后打开CMD,出现下图所示就说明dns服务器搭建成功:





因为我将所有地址都解析到了192.168.0.1,所以结果中会出现上图所示,如果在配置named.conf时添加了标准的named.root,在笔记本正常能正常访问互联网的情况下会解析到正常的youku网站。至此,dns服务器配置完毕。

2、安装squid
下载squid-2.7.STABLE7-bin, http://www.serassio.it/SquidNT.htm(windows版的squid叫做squidNT,目前好像还不支持win 7,因为我在win7下折腾了很久也没有成功,结果查看官方文档,最高支持到vista,白白浪费了很多时间)
直接解压到c:\squid。
打开CMD,切换到c:\squid\etc,将squid.conf.default复制为squid.conf,将mime.conf.defautl复制为mime.conf,将cachemgr.conf.default复制为cachemge.conf




打开squid.conf用ctrl+F搜索以下项,并进行如下修改:
首先,我们找到TAG: acl段,这里是定义访问Squid的IP地址及其对应的名称我们在此段acl Safe_ports port 777 #multiling http后增加一个新行:
acl name1 src 192.168.0.0/24
解释:acl name1 src 192.168.0.0 #定义所有来自192.168.100.*的机器对应的名称为name1
然后我们找到TAG: http_access段,这里是定义允许访问squid的列表,我们在此段http_access deny CONNECT !SSL_ports后增加一个新行,写“http_access allow/deny 名称”,allow表示允许访问,deny表示拒绝访问。
我所增加的行:
http access allow name1
http access deny all
解释:http_access allow name1 #定义所有标识为name1(192.168.100.*)的机器允许访问squid代理服务器
任何一个网络应用都会对应一个或N个端口,squid的默认端口是3128,如果要更改,找到 #http_port 3128 这里,删掉前面的#号,并且修改后面的端口号。
http_port 80 transport
找到#cache_mem 8 MB这句 删掉前面的#号 将默认的8修改到需要的大小,这里的数值应视具体的机器可用内存而定,应在内存允许的情况下尽量地设置的大一些以提高代理服务器性能,但不能让代理服务器的缓存大小影响本机器的性能。
cache_mem 256 MB
最后我们还要有一个步骤,否那就是配置TAG: visible_hostname段,找到此段,在后面添加
visible_hostname squidtest
至此,可以保存squid.conf了,简单的Squid for Windows的配置已经完成。
打开CMD,输入以下命令:
c:/>cd c:/squid/sbin
C:/squid/sbin>squid -i (注册Squid为Windows的服务,默认的服务名为SquidNT,可以使用“管理工具”中的“服务”来启动/停用服务)
C:/squid/sbin>squid -z (生成高速缓存的目录)
C:/squid/sbin>squid或者net start squid
在运行中输入services.msc,找到squid,可以设置启动方式。配置结束。
总结:首先启动bind,再启动squid,拿一部手机接入无线WIFI,手机被分配的地址应该是192.168.0.0/24网段,正常情况下可以用手机浏览网页了,但是不能登录QQ,原因是我在squid.conf中配置的http_port 80 transparent,只允许访问80端口。Squid功能很强大,可以做很多有意思的控制,大家有情趣可以好好研究一下squid.conf的配置。
注:此种方式并不需要将其中一个网卡设置为共享方式。
本文出自 “细水长流” 博客,请务必保留此出处http://enzovsmzsg.blog.51cto.com/3633106/1069491
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: