用实例配置 linux squid 代理服务器
27.1 squid概述
squid是linux下常見的代理服務器。Linux下代理服務器對硬件的要求不高,但是對內存的要求很高。代理服務器主要實現對一定的網絡管理要求以及帶寬要求的地方。
27.2 squid基本配置
27.2.1 squid安裝與啟動服務
rpm -q squid
squid-2.5.STABLE12-5.1
fc5 linux默認已經安裝了squid代理服務器軟件,如果沒有安裝的話,可以在光盤中找到該軟件進行安裝即可。
chkconfig squid on ???? /*設為開機自啟動*/
service squid start???? /*開啟服務*/
27.2.2 squid配置
Squid只要做一些基本的配置就能夠提供代理服務,這里只是提供最基本的配置方案,如果需要有更加精細的配置要求的話,需要對其訪問控制列表進行修改。
用vi刪除原有配置文件的內容,輸入以下內容。
vi /etc/squid/squid.conf
#代理服務器的監聽端口
http_port 192.168.1.1:8080
#內存緩沖區的大小
cache_mem 64 MB
#設置硬盤緩沖區最大4096MB,16個一級目錄,256個二級目錄。
cache_dir ufs /var/spool/squid 4096 16 256
#設定使用緩存的有效用戶
cache_effective_user squid
#設定使用緩存的有效組
cache_effective_group squid
#定義dns服務器的地址
dns_nameservers 202.103.1.117
#設置訪問日志文件
cache_access_log /var/log/squid/access.log
#設置緩存日志文件
cache_log /var/log/squid/cache.log
#設置網頁緩存日志文件
cache_store_log /var/log/squid/store.log
#設置squid主機名稱,一般為IP地址。
visible_hostname 192.168.1.1
#設置管理員email地址
cache_mgr abc@126.com
#訪問控制列表
#允許所有
acl all src 0.0.0.0/0.0.0.0
#定義允許名稱為all的http請求。
http_access allow all
27.2.3 初始化squid配置
1.創建緩沖區目錄結構
在初次啟動squid之前應建立硬盤緩沖區目錄結構。
/usr/sbin/squid -z
2009/02/13 19:54:33| Creating Swap Directories
目錄緩沖區地址/var/spool/squid
2.設置squid錯誤提示信息為中文
mv /etc/squid/errors /etc/squid/errors.bak
#創建快捷方式
in -s /usr/share/squid/errors/simplify_chinese /etc/squid/errors
/etc/init.d/squid reload或service squid reload
27.3 squid透明代理配置
27.3.1 squid透明代理介紹
透明代理就是nat與代理的結合,透明就是工作在這種方式下的客戶機感覺不到代理服務器的存在,不需要在瀏覽器中進行設置。只需要把網關設為代理服務器以及配置正確的dns地址。
27.3.2 squid透明代理配置
Squid只要做一些基本的配置就能夠提供代理服務,以下基本配置文件的內容是一樣的,只需要在此基礎上進行必要的修改。
vi /etc/squid/squid.conf
http_port 192.168.1.1:8080
cache_mem 64 MB
cache_dir ufs /var/spool/squid 4096 16 256
cache_effective_user squid
cache_effective_group squid
dns_nameservers 202.103.1.117
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
visible_hostname 192.168.1.1
cache_mgr abc@126.com
#以下是透明代理的設置,不可少。
#定義代理服務器為virtual加速模式。
httpd_accel_host virtual
#要加速的端口
httpd_accel_port 80
#squid既是web請求加速器又是代理服務器
httpd_accel_with_proxy on
#代理服務器的緩存功能才能工作。
httpd_accel_uses_host_header on
acl all src 0.0.0.0/0.0.0.0
http_access allow all
27.3.3 配置iptables
將所有由eth0接口進入的web服務80端口的請求直接轉發到8080口,由squid去處理。
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
27. 4 squid用戶認證配置
27.4.1 squid認證介紹
squid本身不自帶認證功能,需要由其它程序在進行認證。Squid就是可以實現沒有經過認證的用戶不能實現上網。
27.4.2 squid用戶認證配置
基本配置文件都是相同的,只需要在此基礎上進行修改。
vi /etc/squid/squid.conf
http_port 192.168.1.1:8080
cache_mem 64 MB
cache_dir ufs /var/spool/squid 4096 16 256
cache_effective_user squid
cache_effective_group squid
dns_nameservers 202.103.1.117
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
visible_hostname 192.168.1.1
cache_mgr abc@126.com
#以下實現用戶身份認證的語名
#設定認證程序路徑,與認證程序密碼。
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
#認證程序進程數
auth_param basic children 5
#用戶認證后的有效時間,超過時間需要再次認證。
auth_param basic credentialsttl 2 hours
#顯示驗證框時的提示內容。
auth_param basic realm Example.com's Squid proxy-caching
#允許經過認證的用戶訪問
#acl 列表名稱 列表類型?? 列表值
acl auth_user proxy_auth REQUIRED
http_access allow auth_user
27.4.3 建立帳戶文件
可以利用apache的htpasswd程序來生成帳戶文件
htpassed -c /etc/squid/passwd redhat
在第一次生成帳戶文件的時候需要加入-c,以后就不需要了。
注:還需要對passwd文件設置其它用戶可讀權限。在配置過程中可以出現認證框,但是輸入密碼不行。經發現權限為600。root用戶root組,配置文件中squid的用戶為squid,造成不能讀取密碼。
chmod o+r /etc/squid/passed
27.4.4 客戶端配置
基本配置與認證代理,只需要在IE中internet選項/連接/局域網設置/代理服務器中填入代理服務器的IP地址與端口即可。
透明代理,與正常的nat配置主網的方式一樣,只要設置網關與dns即可,不需要設置IE。
27.4.5 驗證
其它兩上配置都成功驗證,可以直接應用于實際環境中。
27.5 squid訪問控制應用
27.5.1 禁止訪問網絡
1.禁止一臺電腦上網
acl ip src 192.168.1.200
http_access deny ip
2.禁止192.168.1.0網段的電腦上網
acl ip src 192.168.1.0/255.255.255.0
http_access deny ip
27.5.2 禁止訪問特定網站
1.禁止訪問某IP地址
acl ip dst 192.168.1.200
http_access deny ip
說明:不能訪問該目標IP地址的所有內容,包含網站。與上面的內容區別。
2.禁止訪問某網站
acl ip dstdomain -i www.abc.com
http_access deny ip
說明:只是不能訪問www.abc.com,下面的子頁面還是可以訪問的。
3.禁止訪問含有某域名的網站
acl ip url_regex -i abc.com
http_access deny ip
說明:比上面的控制嚴格。
27.5.3 基于時間的訪問控制
1.禁止某子網在周一至周五9:00到18:00(上班時間不能上網)
acl ip src 192.168.2.0/255.255.255.0
acl worktime time MTWHF 9:00-18:00
http_access deny ip worktime
說明:可以參考此規則進行變通。
2.禁止下載含有.rar、.mp3
acl ip urlpath_regex -i \.mp3$\.rar$
http_access deny ip
總結
以上是生活随笔為你收集整理的用实例配置 linux squid 代理服务器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MFC添加鼠标右键菜单
- 下一篇: 帧率与码率的概念