阅读(426) (7)

16.3.1 标准正向代理

2019-05-15 21:58:12 更新

Squid服务程序软件包在正确安装并启动后,默认就已经可以为用户提供标准正向代理模式服务了,而不再需要单独修改配置文件或者进行其他操作。接下来在运行Windows 7系统的客户端上面打开任意一款浏览器,然后单击“Internet选项”命令,如图16-4所示。

    [root@linuxprobe ~]# systemctl restart squid
    [root@linuxprobe ~]# systemctl enable squid
    ln -s '/usr/lib/systemd/system/squid.service' '/etc/systemd/system/multi-user.target.wants/squid.service'

图16-4 单击浏览器中的“Internet选项”命令

要想使用Squid服务程序提供的标准正向代理模式服务,就必须在浏览器中填写服务器的IP地址以及端口号信息。因此还需要在“连接”选项卡下单击“局域网设置”按钮(见图16-5),并按照图16-6所示填写代理服务器的信息,然后保存并退出配置向导。

图16-5 在“连接”选项卡中单击“局域网设置”按钮

图16-6 填写代理服务器的IP地址与端口号

现在,用户可以使用Squid服务程序提供的代理服务了。托代理服务器转发的福,网卡被设置为仅主机模式(Hostonly)的虚拟机也能奇迹般地上网浏览了,如图16-7所示。

图16-7 虚拟机可以正常网络外网

如此公开而没有密码验证的代理服务终归让人觉得不放心,万一有人也来“蹭网”该怎么办呢?Squid服务程序默认使用3128、3401与4827等端口号,因此可以把默认使用的端口号修改为其他值,以便起到一定的保护作用。现在大家应该都知道,在Linux系统配置服务程序其实就是修改该服务的配置文件,因此直接在/etc目录下的Squid服务程序同名目录中找到配置文件,把http_port参数后面原有的3128修改为10000,即把Squid服务程序的代理服务端口修改成了新值。最后一定不要忘记重启服务程序。

    [root@linuxprobe ~]# vim /etc/squid/squid.conf
    ………………省略部分输出信息………………
    45 #
    46 # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
    47 #
    48 
    49 # Example rule allowing access from your local networks.
    50 # Adapt localnet in the ACL section to list your (internal) IP networks
    51 # from where browsing should be allowed
    52 http_access allow localnet
    53 http_access allow localhost
    54 
    55 # And finally deny all other access to this proxy
    56 http_access deny all
    57 
    58 # Squid normally listens to port 3128
    59 http_port 10000
    60 
    http_port 10000
    ………………省略部分输出信息………………
    [root@linuxprobe ~]# systemctl restart squid 
    [root@linuxprobe ~]# systemctl enable squid 
     ln -s '/usr/lib/systemd/system/squid.service' '/etc/systemd/system/multi-user.target.wants/squid.service'

有没有突然觉得这一幕似曾相识?在10.5.3节讲解基于端口号来部署httpd服务程序的虚拟主机功能时,我们在编辑完httpd服务程序的配置文件并重启服务程序后,被系统提示报错。尽管现在重启Squid服务程序后系统没有报错,但是用户还不能使用代理服务。SElinux安全子系统认为Squid服务程序使用3128端口号是理所当然的,因此在默认策略规则中也是允许的,但是现在Squid服务程序却尝试使用新的10000端口号,而该端口原本并不属于Squid服务程序应该使用的系统资源,因此还需要手动把新的端口号添加到Squid服务程序在SElinux域的允许列表中。

    [root@linuxprobe ~]# semanage port -l | grep squid_port_t
    squid_port_t                   tcp      3128, 3401, 4827
    squid_port_t                   udp      3401, 4827
    [root@linuxprobe ~]# semanage port -a -t squid_port_t -p tcp 10000
    [root@linuxprobe ~]# semanage port -l | grep squid_port_t
    squid_port_t                   tcp      10000, 3128, 3401, 4827
    squid_port_t                   udp      3401, 4827

出现问题?大胆提问!

因读者们硬件不同或操作错误都可能导致实验配置出错,请耐心再仔细看看操作步骤吧,不要气馁~

Linux技术交流请加A群:560843(满),B群:340829(推荐),C群:463590(推荐),点此查看全国群。

*本群特色:通过口令验证确保每一个群员都是《Linux就该这么学》的读者,答疑更有针对性,不定期免费领取定制礼品。