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訪問

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM