• 当前位置: 主页 > Linux安装教程 > 系统设置 >

    使用CentOS7配置Squid代理

    时间:2016-02-02 14:24来源:未知 作者:Linux先生 举报 点击:
    湖南成人高考 成人高考 成人高考 成人高考  成人高考 成人高考 
    其实之前配过一个squid,只是由于太懒,网上随便搜了一个教程,用了默认端口并且没有添加用户认证。某天不幸的被爬虫扫到,被用来发了半个月的垃圾邮件。。直到有一天登录邮箱,看到了一大坨警告邮件,才意识到问题的严重。惊了个呆之后,赶紧重配一遍-.-

     其实之前配过一个squid,只是由于太懒,网上随便搜了一个教程,用了默认端口并且没有添加用户认证。某天不幸的被爬虫扫到,被用来发了半个月的垃圾邮件。。直到有一天登录邮箱,看到了一大坨警告邮件,才意识到问题的严重。惊了个呆之后,赶紧重配一遍-.-

    我这里是用squid配置了一个带用户认证的普通代理。

    安装

    安装过程十分简便,只需要安装一下squid,一条命令搞定。我这里装的是squid3.3。

    yum install squid
    rpm -qa | grep squid
    squid-3.3.8-12.el7_0.x86_64

    配置

    修改squid的配置文件 /etc/squid/squid.conf

    主要就是配置一下端口,缓存,日志和访问规则。

    http_port 3712
    cache_mem 64 MB
    maximum_object_size 4 MB
    cache_dir ufs /var/spool/squid 100 16 256
    access_log /var/log/squid/access.log
    http_access allow all
    visible_hostname squid.chao

    初始化

    在第一次启动之前或者修改了cache路径之后,需要重新初始化cache目录。

    squid -z

    启动

    systemctl start squid

    使用

    在浏览器中修改代理配置即可。

    在windows中:

    Internet选项 -> 连接 -> 局域网连接 -> 代理服务器

    在macOSX中:

    Safari -> 偏好设置 -> 代理 -> Web代理

    然后输入你的代理地址和端口,就可以正常工作了。

    测试

    我从网上看到一个非常简单的方法,可以用来快速测试你的代理是否正常工作。首先打开百度,然后搜索ip。如果出来的是你代理的那台机器的ip,那么恭喜你,一大波垃圾邮件即将赶来。

    添加用户认证

    为了防止我们的代理被爬虫扫到并且被用于不法用途,我们非常有必要为我们的squid添加用户认证。事实上我刚配的代理,没过多久就已然被扫到。

    我从我的access.log里面看到。然而此时我还没有添加任何认证机制,幸好我没使用认端口,不然我的邮箱又会收到一大坨告警邮件了。。

    1439106533.703      0 89.102.9.196 TCP_DENIED/403 3739 GET http://www2.praguerentacar.com/proxy/detectproxy.php - HIER_NONE/- text/html
    1439106539.302      0 89.102.9.196 TCP_DENIED/403 3724 GET http://www2.intimnosti.cz/proxy/detectproxy.php - HIER_NONE/- text/html
    1439106544.881      0 89.102.9.196 TCP_DENIED/403 3706 GET http://93.185.96.50/proxy/detectproxy.php - HIER_NONE/- text/html
    1439106550.453      0 89.102.9.196 TCP_DENIED/403 3712 GET http://www2.nuabi.com/proxy/detectproxy.php - HIER_NONE/- text/html

     

    我们这里通过ncsa认证模块来为我们的squid添加认证。为什么我选择ncsa呢,因为我从网上搜到的大多用了这个方式。。

    首先我们得配置我们的访问用户的账户信息。最后一个参数是用户名,可以替换成任何你喜欢的名字~

    htpasswd -c /etc/squid/passwd chao

    如果找不到htpasswd,就先装个Apache。yum install httpd。 然后就能使用htpasswd了。

    有了帐户文件之后,我们重新配置我们的squid。在squid.conf里面,把

    http_access allow all

    改成

    auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
    auth_param basic children 5
    auth_param basic realm chao's squid server
    auth_param basic credentialsttl 2 hours
    acl myacl proxy_auth REQUIRED
    http_access allow myacl
    http_access deny all

    最后重启squid就可以啦。

    systemctl restart squid

    现在当你使用代理访问页面的时候,会先弹出一个提示框,让你输入用户名密码。然后就可以继续访问了。

     


     

    配置说明

    有些人可能一开始对原理以及配置的详细介绍并不感冒,只是想让代理先跑起来再说。至少我本人就是这样子的。。所以,我把这块放在了最后。

    现在,就开始介绍一下上面配置的具体内容。当然参考官网会更加详细准确。

    http_port 3712 这个指定了我们代理的端口。

    cache_mem 64 MB 内存中的缓存大小

    cache_dir ufs /var/spool/squid 100 16 256 缓存文件夹,默认是只在内存中进行缓存的。这里指定缓存大小为100M,第一层子目录为16个,第二层为256。

    maximum_object_size 4 MB 最大被缓存文件大小,这个配合上面的cache_dir使用,只作用于缓存到磁盘的文件。

    access_log /var/log/squid/access.log 访问日志

    auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd 指定认证程序以及账户文件

    auth_param basic children 5 认证程序同时跑的个数

    auth_param basic realm chao's squid server 客户端在使用代理时,输入密码时弹出来的提示框中的描述文字。

    auth_param basic credentialsttl 2 hours 认证的持续时间

    acl myacl proxy_auth REQUIRED 对myacl使用外部程序进行认证

    http_access allow myacl 允许myacl中的成员访问

    http_access deny all 拒绝所有其它访问

    visible_hostname squid.chao 代理机名字

    推荐内容