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