孫莉娜
(遼寧機(jī)電職業(yè)技術(shù)學(xué)院 遼寧 118009)
Squid是一個(gè)高性能的代理緩存服務(wù)器,可以加快內(nèi)網(wǎng)瀏覽Internet的速度,提高客戶機(jī)訪問命中率。Squid與Linux下其它的代理軟件如Apache、Socks、TIS FWTK和delegate相比,下載安裝簡單,配置簡單靈活。它不僅支持HTTP協(xié)議,還支持FTP、gopher、SSL和WAIS等協(xié)議。Squid不僅可以用在Linux系統(tǒng)上使用,還可以用在AIX、Digital Unix、FreeBSD、HP-UX、Irix、NetBSD、Nextstep、SCO和Solaris等系統(tǒng)上。Squid由一個(gè)主要的服務(wù)程序 Squid,一個(gè) DNS查詢程序dnsserver,多個(gè)重寫請求、執(zhí)行認(rèn)證程序和管理工具組成。Squid使用訪問控制清單(ACL)和訪問權(quán)限清單(ARL)阻止特定的網(wǎng)絡(luò)連接來減少潛在的Internet非法連接。
下面探討RHEL5配置Squid服務(wù)器的方法。首先引入任務(wù):某公司要搭建一臺Squid代理服務(wù)器(IP為192.168.53.188),需要提高內(nèi)網(wǎng)訪問互聯(lián)網(wǎng)速度,并且能夠?qū)?nèi)部員工的上網(wǎng)行為進(jìn)行限制,采用 squid代理服務(wù)器軟件,對內(nèi)部網(wǎng)絡(luò)進(jìn)行優(yōu)化。具體完成步驟如下:
步驟一:設(shè)置網(wǎng)卡IP地址eth0為192.168.53.188,netmask為255.255.255.0,eth1為dhcp方式獲取。在/etc/sysconfig/network-scr ipts/ifcfg-eth0文件和/etc/sysconfig/network-scripts/ifcfg-eth1文件中,設(shè)置修改相應(yīng)信息。
步驟二:開啟內(nèi)核路由功能,輸入命令:echo 1 > /proc/sys/net/ipv4/ip_forward,并查看結(jié)果。
步驟三:配置iptables設(shè)定NAT為透明代理,輸入命令:
iptables-t nat-A PREROUTING-i eth0-p tcp——dport 80-j REDIRECT——to-ports 3128
如果只設(shè)置下面一句而上面一句不設(shè)置,客戶端也可以上網(wǎng),只是不通過squid。
iptables-t nat-A POSTROUTING-o eth1-j MASQUERADE
而后保存iptables設(shè)置,輸入service iptables save。
步驟四:輸入 getsebool –a | grep squid進(jìn)行查詢,如果squid_disable_trans沒有開啟,則squid不能啟動,也就不能配置 squid 透明代理。需要輸入命令:setsebool-P squid_disable_trans on。
步驟五:添加squid系統(tǒng)用戶和組,輸入命令:
groupadd squidadmin
useradd squidadm in-g squidadm in-s /sbin/nologin
建立以下目錄:/usr/local/squid,/usr/local/squid/cache,/usr/local/squid/var,/usr/local/squid/var/logs,為了保證服務(wù)正常啟動并可以寫入緩存、日志等信息,需要改變以上目錄的所有者為squidadm in。
步驟六:修改squid配置文件/etc/squid/squid.conf,
(1)設(shè)置監(jiān)聽地址和端口http_port 3128 transparent,紅色部分是支持透明代理,這是squid新版本的改進(jìn)。
(2)squid將所有的 UDP綁定到指定的網(wǎng)絡(luò)接口,ip-address必須對應(yīng)于系統(tǒng)的網(wǎng)絡(luò)接口,默認(rèn)設(shè)置為0.0.0.0。即udp_incom ing_address 0.0.0.0。
(3)設(shè)置squid內(nèi)存大小及cahce目錄,修改參數(shù)為:
cache_mem 512 MB
cache_dir ufs /usr/local/squid/cache 10240 16 256 #代表緩存位置、最大緩存空間(這里磁盤緩存大小是10G)和一級、二級目錄數(shù)。
(4)設(shè)置日志文件和pid文件位置,修改參數(shù)為:
access_log /usr/local/squid/var/logs/access.log
cache_log /usr/local/squid/var/logs/cache.log
cache_store_log none #不記錄store.log
emulate_httpd_log on #為使Squid按照Web服務(wù)器的格式創(chuàng)建訪問記錄進(jìn)行程序分析
pid_filename /usr/local/squid/var/logs/squid.pid
(5)開始配置訪問控制選項(xiàng),首先設(shè)置運(yùn)行時(shí)的用戶和組權(quán)限,
acl all src 0.0.0.0/0.0.0.0
acl mynet src 192.168.53.0/255.255.255.0
http_access allow mynet
http_access deny all
然后設(shè)置squid進(jìn)程所有者和squid進(jìn)程所屬組
cache_effective_user squidadmin
cache_effective_group squidadm in
(6)設(shè)置管理信息,設(shè)置 squid可見主機(jī)名,visible_hostname 192.168.53.188,
(7)進(jìn)行swap性能微調(diào),修改以下參數(shù):
half_closed_clients off
cache_swap_low 80
cache_swap_high 100
maximum_object_size 1024 KB
squid配置邏輯是自上而下,滿足條件即不再和下面匹配。
最后檢查squid.conf配置文件,squid-k parse。以上完成squid配置文件的修改過程。
步驟七:squid服務(wù)初始化,在第一次啟動squid服務(wù)之前,要使用squid-z命令在硬盤緩存中建立cache目錄,或者重新設(shè)置了 cache_dir字段的值之后也要使用此命令來重新建立硬盤緩存目錄,注意在cache目錄激活后不要改變L1和L2的值。
步驟八:最后啟動squid服務(wù),service squid start;也可以通過命令squid-D檢查squid服務(wù)有沒啟動進(jìn)行測試,而客戶端只要設(shè)置IP地址、子網(wǎng)掩碼、網(wǎng)關(guān)及DNS就可以直接上網(wǎng)。
此外還可以使用acl和http_access deny組合來禁止指定IP、指定網(wǎng)段、屏蔽訪問指定網(wǎng)站及指定固定時(shí)間上網(wǎng),舉例如下:
(1)拒絕192.168.52.0網(wǎng)段的客戶機(jī)訪問互聯(lián)網(wǎng)請求:
acl client1 src 192.168.52.0/255.255.255.0
http_access deny client1
(2)拒絕用戶訪問域名為www.baidu.com的網(wǎng)站請求:
acl baddomain dstdomain www.baidu.com
http_access deny baddomain
(3)禁止192.168.52.0網(wǎng)段的客戶機(jī)周一至周五工作時(shí)間訪問互聯(lián)網(wǎng):
acl client1 src 192.168.52.0/255.255.255.0
acl badtime time MTWHF 9:00-18:00
http_access deny client1 badtime
(4)禁止用戶下載*.mp3、*.exe、*.zip和*.rar類型的文件:
acl badfile urlpath_regex –i .mp3$.exe$.zip$.rar$
http_access deny badfile