Squid代理服务器及配置

您所在的位置:网站首页 squid代理服务器配置 Squid代理服务器及配置

Squid代理服务器及配置

2024-01-21 13:32| 来源: 网络整理| 查看: 265

文章目录 一、缓存代理概述二、实验:使用Squid实现传统代理与透明代理①实验一:传统代理②试验二:透明代理

一、缓存代理概述

(一)代理的基本类型

传统代理:适用于Internet,需明确指定服务端透明代理:客户机不需指定代理服务器的地址和端口,而是通过默认路由、防火墙策略将Web访问重定向给代理服务器处理

(二)使用代理的好处

提高Web访问速度隐藏客户机的真实IP地址 二、实验:使用Squid实现传统代理与透明代理 实验环境:VMware Workstation 15.5、Xshell 6、Centos7.6、squid-3.4.6.tar服务器IP地址规划: 设备名称及用途IP地址Squid代理服务器192.168.50.134Web服务器192.168.50.135客户机192.168.50.128 本实验所需软件包(squid)下载地址:https://wwa.lanzous.com/i4zX0ge8rch实验步骤: ①实验一:传统代理

1、安装编译环境

yum -y install gcc gcc-c++

2、解压缩软件包进行配置

tar zxvf squid-3.4.6.tar.gz ## 解压缩软件包 cd squid-3.4.6/ ## 进入解压缩人的软件目录 ./configure --prefix=/usr/local/squid \ ## 指定安装路径 --sysconfdir=/etc \ ## 配置文件所在目录 --enable-arp-acl \ ## 启用ACL访问控制列表功能 --enable-linux-netfilter \ ## 启用内核过滤功能 --enable-linux-tproxy \ ## 开启透明模式 --enable-async-io=100 \ ## 对于IO优化 --enable-err-language="Simplify_Chinese" \ ## 报错提示语言为简体中文 --enable-underscore \ ## 在URL中支持下划线 --enable-poll \ ## 功能提升 --enable-gnuregex ## 支持正则表达式

3、进行编译和安装

make && make install

4、让软件命令能被系统所识别

ln -s /usr/local/squid/sbin/* /usr/local/sbin

5、创建程序用户

useradd -M -s /sbin/nologin squid

6、为工作目录赋予权限

chown -R squid.squid /usr/local/squid/var/

7、编辑并修改squid配置文件

vim /etc/squid.conf 将这一行 http_access deny all 中的deny改为allow即可 在这一行“# Squid normally listens to port 3128”下面添加两行内容: cache_effective_user squid ## 添加指定程序用户 cache_effective_group squid ## 添加指定账号基本组

8、修改完成后使用命令检查配置文件语法

squid -k parse

9、初始化缓存目录

squid -z

10、启动服务

squid

11、创建squid服务启动脚本并设置为开机自启动

cd /etc/init.d/ vim squid 在文件中写入一些内容: #!/bin/bash #chkconfig: 2345 90 25 PID="/usr/local/squid/var/run/squid.pid" CONF="/etc/squid.conf" CMD="/usr/local/squid/sbin/squid" case "$1" in start) netstat -natp | grep squid & > /dev/null if [ $? -eq 0 ];then echo "squid is running" else echo "正在启动 squid..." $CMD fi ;; stop) $CMD -k kill & > /dev/null rm -rf $PID & > /dev/null ;; status) [ -f $PID ] & > /dev/null if [ $? -eq 0 ];then netstat -natp | grep squid else echo "squid is not running" fi ;; restart) $0 stop & > /dev/null echo "正在关闭 squid..." $0 start & > /dev/null echo "正在启动 squid..." ;; reload) $CMD -k reconfigure ;; check) $CMD -k parse ;; *) echo "用法:$0{start|stop|status|reload|check|restart}" ;; esac chmod +x squid ## 为启动脚本添加执行权限 chkconfig --add squid ## 将服务添加到系统服务管理中 chkconfig --level 35 squid on ## 设置为开机自启动

12、编辑squid配置文件并进行配置

cache_mem 64 MB ## 指定缓存功能所使用的内存空间大小,便于保持访问较频繁的WEB对象,容量最好为4的倍数,单位MB reply_body_max_size 10 MB ## 允许用户下载的最大文件大小,以字节为单位,默认设置0表示不进行限制 maximum_object_size 4096 KB ## 允许保存到缓存空间的最大对象大小,以KB为单位,超过大小限制的文件将不被缓存,而是直接转发给客户端

13、关闭squid代理服务器的清空防火墙规则

iptables -F setenforce 0

14、设置防火墙规则

iptables -I INPUT -p tcp --dport 3128 -j ACCEPT

15、启动squid服务

service squid reload

16、在Web服务器上安装并开启http服务

yum -y install httpd ## 安装http服务 同样也要清空防火墙规则: iptables -F setenforce 0

17、打开客户端浏览器,这里使用的是Chrome浏览器,在地址栏中输入192.168.50.134进行访问,接着回到web服务器端查看访问日志,可以看出是IP为128的设备进行了访问 we40pQ.md.jpg

现在来配置代理服务,打开浏览器的设置,选择“系统”,再选择“打开您计算机代理设置”,在弹出的对话框中输入squid服务器的IP和端口3128,单击“保存”即可设置完成 we4dfg.jpg we4atS.jpg we4Uk8.md.jpg we4tTf.md.jpg

设置完成后,清除缓存记录并重启浏览器再次访问,回到服务器端查看日志,可以看到显示的IP已经是squid服务器的地址了 we4rXn.md.jpg

②试验二:透明代理

实验准备:

1.将三台设备(squid代理服务器、Web服务器、客户机)的网卡均设置为仅主机模式

2.为squid服务器添加一块网卡ens36,同样设置为仅主机模式

3.IP地址规划:squid服务器:内网(ens33:192.168.50.134)、外网(ens36:192.168.100.1)

实验步骤:

1、配置双网卡:内网(ens33:192.168.50.134)、外网(ens36:192.168.100.1)

cd /etc/sysconfig/network-scripts/ cp -p ifcfg-ens33 ifcfg-ens36 ## 拷贝一ens33的网卡并重命名为ens36 分配编辑ens33与ens36网卡,配置文件如下: 【ens33】 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 UUID=bf59517c-d7a2-4f8c-a855-c297305b3c73 DEVICE=ens33 ONBOOT=yes IPADDR=192.168.50.134 NETMASK=255.255.255.0 GATEWAY=192.168.50.2 【ens36】 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens36 DEVICE=ens36 ONBOOT=yes IPADDR=192.168.100.1 NETMASK=255.255.255.0 service network restart ## 重启网卡

we4Blj.md.jpg

2、开启流量转发

vim /etc/sysctl.conf ## 编辑配置文件 net.ipv4.ip_forward=1 ## 添加转发规则 sysctl -p ## 使配置立即生效

3、配置透明代理

vim /etc/squid.conf ## 编辑配置文件 修改 http_port 3128 为 http_port 192.168.100.1:3128 transparent

4、配置防火墙转发规则

iptables -t nat -I PREROUTING -i ens36 -s 192.168.100.0/24 -p tcp --dport 80 -j REDIRECT --to 3128 iptables -t nat -I PREROUTING -i ens36 -s 192.168.100.0/24 -p tcp --dport 443 -j REDIRECT --to 3128 iptables -I INPUT -p tcp --dport 3128 -j ACCEPT ## 如果第一个实验没有做则需要这一条命令

5、重载squid服务配置文件

service squid reload

6、打开客户机上的浏览器,清除缓存后重启,再次访问192.168.50.135(Web服务器),然后查看http服务日志,可以看到访问地址为ens33网卡IP we4D6s.md.jpg



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3