使用SQUID 3的匿名代理在CentOS 5.x上
本文将逐步描述一种将SQUID 3服务器安装为匿名代理的方法。 匿名代理是一种尝试在互联网上进行活动的工具。 它以用户身份访问互联网,通过隐藏源计算机的识别信息来保护个人信息。 简单地说来隐藏您的IP。
以下如何将CentOS 5设置为操作系统,但可以在CentOS 4,Fedora Core 5-9上以相同的步骤和SQUID版本3实现。默认情况下,SQUID仅使用默认IP在Internet上进行通信,但将使用在服务器上可用作匿名代理的所有IP,即如果用户连接到服务器的IP1,则IP1将用作代理并转发相同的IP,如果用户连接到IP2,则IP2将作为代理并提供相同的IP等等,我们还将实施基于ncsa用户的身份验证,以保护服务器免受未经授权的使用。
Server = CentOS 5.2,SQUID =版本3,IPs = 192.168.0.1
- 192.168.0.5
1)安装Squid3:
CentOS 5带有Squid 2.6,但是我们需要Squid 3,所以我们将下载squid 3的源rpm并为我们的操作系统编译它。
1.1)安装先决条件
安装先决软件,即开发工具,以获取编译SQUID 3的所有编译器,库和其他rpms。
yum -y groupinstall "Development Tools"
yum -y install rpm-build openjade linuxdoc-tools openldap-devel pam-devel openssl-devel httpd rpm-devel
1.2)下载squid 3源RPM
从FEDORA网站下载Squid 3的源rpm并安装它。
cd /usr/src
wget http://download.fedora.redhat.com/pub/fedora/linux/releases/10/Fedora/source/SRPMS/squid-3.0.STABLE10-1.fc10.src.rpm
rpm -ivh squid-3.0.STABLE10-1.fc10.src.rpm
1.3)编译Squid3
使用以下命令启动编译,最后将生成要安装的rpm文件:
cd /usr/src/redhat/SPECS
rpmbuild -bb squid.spec
1.4)安装Squid 3
安装新建的rpm,它将在/ usr / src / redhat / RPMS / i386中
找到,用于i686和/ usr / src / redhat / RPMS / x86_64
for x86_64。
rpm -Uvh /usr/src/redhat/RPMS/i386/squid-3.0.STABLE10-1.i386.rpm
2)配置
我将使用默认的squid.conf
进行编辑。
vi /etc/squid/squid.conf
2.1)配置auth_param
我们将启用ncsa身份验证来访问我们的squid服务器。 查找以下行:
#auth_param basic program <uncomment and complete this line> #auth_param basic childred 5 #auth_param basic realm Squid proxy-caching web server #auth_param basic credentialsttl 2 hours
将其更改为:
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_passwd auth_param basic childred 5 auth_param basic realm Squid proxy-caching web server auth_param basic credentialsttl 2 hours
2.2)创建proxy_auth acl
在这里,我们将创建proxy_auth acl来提示用户/传递给所有想要使用我们的匿名代理的用户。 找到以下行:
#INSERT YOUR OWN RULES(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
我们将在上面的行中插入我们的proxy_auth规则。
#INSERT YOUR OWN RULES(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS acl ncsaauth proxy_auth REQUIRED http_access allow ncsaauth
2.3)禁用转发的客户端IP
默认情况下,squid将客户端IP转发到相应的网站,但是要设置匿名代理,我们将禁用它来隐藏客户端IP,并仅发送在Squid服务器上配置的IP。 找到以下行squid.conf
:
forwarded_for on
将其更改为:
forwarded_for off
2.4)配置IP
现在我们将生成出站IP的规则,即如果有人连接到我的服务器的任何IP,那么它将与目标服务器使用相同的IP。 以这种方式,我们可以连接不同IP上的几个客户端,所有的IP作为匿名代理。 找到以下行:
# TAG: tcp_outgoing_address
在其下方添加以下行:
acl ip1 myip 192.168.0.1 tcp_outgoing_address 192.168.0.1 ip1 acl ip2 myip 192.168.0.2 tcp_outgoing_address 192.168.0.2 ip2 acl ip3 myip 192.168.0.3 tcp_outgoing_address 192.168.0.3 ip3 acl ip4 myip 192.168.0.4 tcp_outgoing_address 192.168.0.4 ip4 acl ip5 myip 192.168.0.5 tcp_outgoing_address 192.168.0.5 ip5
您可以添加任意数量的IP,只需使用与上述相同的模式。
2.5)启用匿名器(匿名代理)
将以下行放在squid.conf的底部:
request_header_access Allow allow all request_header_access Authorization allow all request_header_access WWW-Authenticate allow all request_header_access Proxy-Authorization allow all request_header_access Proxy-Authenticate allow all request_header_access Cache-Control allow all request_header_access Content-Encoding allow all request_header_access Content-Length allow all request_header_access Content-Type allow all request_header_access Date allow all request_header_access Expires allow all request_header_access Host allow all request_header_access If-Modified-Since allow all request_header_access Last-Modified allow all request_header_access Location allow all request_header_access Pragma allow all request_header_access Accept allow all request_header_access Accept-Charset allow all request_header_access Accept-Encoding allow all request_header_access Accept-Language allow all request_header_access Content-Language allow all request_header_access Mime-Version allow all request_header_access Retry-After allow all request_header_access Title allow all request_header_access Connection allow all request_header_access Proxy-Connection allow all request_header_access User-Agent allow all request_header_access Cookie allow all request_header_access All deny all
配置完成后,保存文件。
3)用户管理
现在是时候创建squid_passwd文件,我们将使用ncsa将我们的用户进行身份验证。 为此,我们需要htpasswd
命令来生成用户/通行证。
创建保存用户名和密码的文件:
touch /etc/squid/squid_passwd
3.1)创建新用户
htpasswd /etc/squid/squid_passwd proxyadmin
其中/ etc / squid / squid_passwd
是一个文件,其中所有用户都去,而proxyadmin
是一个用户名,将被添加的密码给出。
3.2)更新密码
对现有用户使用相同的命令。
htpasswd /etc/squid/squid_passwd proxyadmin
4)服务管理
运行squid服务,并在启动时添加。
service squid start
chkconfig squid on
5)故障排除
5.1)visible_hostname错误
如果在启动服务后看到visible_hostname
错误,请再次编辑/etc/squid/squid.conf
文件,并将visible_hostname
标记与服务器主机名相加
。
visible_hostname server1
您的服务器已经准备就绪,您可以在客户端上使用Firefox或IExplorer来检查它是否正常工作。 我已经使用默认端口3128
为squid,所以使用上述任何一个IP和端口连接。 当它连接它会提示你一个用户/通行证; 输入正确的用户/通行证,您将开始浏览网站。 检查匿名打开http://www.whatsmyipaddress.com 。 如果您在request_header_access
中发生错误,可以检测您的代理; 但是如果一切都很好,它只会显示IP,并假设它是一个没有代理的直接连接。