Linux 搭建 squid 代理服务器 三种模式

CentOS 6.7

squid 代理服务器

一般有两张或以上网卡,一张链接公网,访问外网资源,一张位于局域网。
代理服务器可以提供文件缓存、复制和地址过滤等服务,充分利用有限的出口带宽,加快内部主机的访问速度。
同时可以作为一个防火墙,隔离内外网,并且能够提供监控网络和记录传输信息的功能,加强局域网的安全性。

正向代理,反向代理,透明模式

搭建好squid服务器后,在局域网中的网络设备设置代理,例如在浏览器中设置代理,squid的ID 端口号(默认3128)

完成后就能通过浏览器浏览squid服务器允许访问的网路资源了。



首先应该配置网卡,推荐静态ip地址,内网网卡就配置ip,掩码;外网网卡保证能正常访问网络

开始搭建squid:

安装:
    # yum 安装
    # rpm -qa squid                # 查看是否安装
    # yum -y install squid        # yum 安装
    
    
    
    源码安装需要下载squid的源码包:http://www.squid-cache.org/Versions/v3/3.4/squid-3.4.10.tar.gz
        # 将下载好的源码包解压
        tar zxvf squid-3.4.10.tar.gz
        # 进入解压后的目录 cd squid-3.4.10 配置
        [root@ming squid-3.4.10]# ./configure --prefix=/usr/local/squid
        # --prefix=/usr/local/squid 要安装的路径
        make && make install
        # 编译安装    时间比较久
        

修改配置文件:
rpm -ql package_name 显示一个已经安装的rpm包提供的文件列表 
rpm -qc package_name 显示一个已经安装的rpm包提供的配置文件列表
首先备份,清空配置,重写配置
cp /etc/squid/squid.conf /etc/squid/squid.conf.bak
echo > /etc/squid/squid.conf

vim /etc/squid/squid.conf

http_port 3128
cache_mem 64 MB    # 物理内存
cache_dir ufs /opt/squid_cache 1000 16 256    #存储类型:ufs 存放目录:/opt/squid_cache 磁盘缓存区大小:1000M  一级子目录默认为 16 个 二级目录默认为 256 个
cache_effective_user squid        # 这是squid用户,没有该用户需创建
cache_effective_group squid        # squid用户组
cache_access_log /var/log/squid/access.log    
cache_log /var/log/squid/cache.log
http_access allow all

mkdir /opt/squid_cache
chown -R squid.squid /opt/squid_cache/
# chmod -R 777 /usr/local/squid

squid -k check # 检查配置文件

squid -z    # 初始化
service squid start # 启动

SELinux
[root@mingyaun opt]# getenforce
Enforcing
[root@mingyaun opt]# setenforce
usage:  setenforce [ Enforcing | Permissive | 1 | 0 ]
[root@mingyaun opt]# setenforce 0
# 修改 /proc/sys/net/ipv4/ip_forward 配置文件
# echo "1">/proc/sys/net/ipv4/ip_forward    # 开启路由转发    # 重启失效


acl 格式:acl 列表名 列表类型 [-i] 列表值

## 列表类型  src                     源 IP 地址( 客户机 IP 地址 )
             dst                     目标 IP 地址 ( 服务器 IP 地址 )
             srcdomain               源名称( 客户机所属的域 )
             dstdomain               目标名称( 服务器所属的域 )
             time                    一天中的时间和一周内的一天   
             url_regex               URL 规则表达式匹配
             urlpath_regex:URL-path  略去协议和主机名的 URL 规则表达式匹配
             proxy_auth              通过外部程序进行用户认证
             maxcocnn                单一 IP 最大连接数
             time                    时间段:[星期][时间段]
                                     [星期]:M( Monday    ,星期一 )
                                             T( Tuesday   , 星期二 )
                                             W( Wednesday , 星期三 )
                                             H( Thursday  , 星期四 )
                                             F( Friday    ,星期五 )
                                             A( Saturday  , 星期六 )
                                             S( Sunday    , 星期日 )
                                     [时间段]:可以表示为 10:00-21:00

## -i        选项,加 -i 表示列表值的不区分大小写
http_access allow all
## 允许或拒绝某个访问控制列表的 HTTP 请求,格式为:http_access [allow|deny] 列表名
        
        


反向代理
useradd squid
passwd squid
mkdir /opt/squid_cache
chown -R squid.squid /opt/squid_cache
yum install squid
cd /etc/squid/
cp squid.conf squid.conf.bak
> /etc/squid/squid.conf
vim /etc/squid/squid.conf

cache_effective_user squid
cache_effective_group squid
http_port 172.16.1.2:80 accel vhost
# 监听内网ip 的80 端口 ,accel 指加速模式,vhost 用于转发请求
cache_mem 300 MB
cache_dir ufs /opt/squid_cache 4096 16 256
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
cache_peer 192.168.2.104 parent 9966 0 originserver name=y
## cache_peer 指定后端服务器地址,80 为后端服务端口,0 为 ICP 端口号(多个 Squid 时用),originserver 指定资源服务器,name 指定一个别名
cache_peer_domain y www.ming.com
## 指定对应关系,当用户请求 www.ming.com 时,转发到别名为 y 的真实服务器上
http_access allow all

squid -k check # 检查配置文件
squid -z    # 初始化缓存目录
service squid start # 启动

getenforce
setenforce 0
service iptables stop
内网浏览器代理设置:"http_port 172.16.1.2:80 accel vhost" 填squid配置里监听的内网ip及端口



透明模式
http_port 3128 transparent
visible_hostname suqid.com
cache_mem 32 MB
cache_dir ufs /opt/squid_cache 1000 16 256    #存储类型:ufs 存放目录:/opt/squid_cache 磁盘缓存区大小:1000M  一级子目录默认为 16 个 二级目录默认为 256 个
cache_effective_user squid        # 这是squid用户,没有该用户需创建
cache_effective_group squid        # squid用户组
cache_access_log /var/log/squid/access.log    
cache_log /var/log/squid/cache.log
http_access allow all

iptables -t nat -A PREROUTING -i eth1 -s 172.16.1.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i eth1 -s 172.16.1.0/24 -p tcp --dport 443 -j REDIRECT --to-port 3128
service iptables save
# iptables -I INPUT -p tcp --dport 3128 -j ACCEPT

不需要设置代理,只需将网管指向squid

开机自启
chkconfig --add squid
chkconfig --level 35 squid on

注:以上透明模式只能通过ip访问

猜你喜欢

转载自www.cnblogs.com/ming-yuan/p/9688137.html