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

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.2http://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服务器就能够正常运行了。

 

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

大家可以在“环境变量”=》“系统变量”=》“path”中加入dnsbin路径,这样就可以在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.htmwindows版的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.confctrl+F搜索以下项,并进行如下修改:

首先,我们找到TAG: acl段,这里是定义访问SquidIP地址及其对应的名称我们在此段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    (注册SquidWindows的服务,默认的服务名为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的配置。

:此种方式并不需要将其中一个网卡设置为共享方式。 

你可能感兴趣的:(代理服务器,服务器,bind,dns,squid,windowsxp)