用 CentOS 6 快速配置一臺企業(yè)級 Web 代理服務(wù)器

    Web代理服務(wù)器讓企業(yè)員工可以快速安全地瀏覽網(wǎng)絡(luò)粱胜。Web代理服務(wù)器可以緩存內(nèi)存灿里,讓用戶之后對相同網(wǎng)頁的請求由本地緩存來處理,這比多次返回網(wǎng) 站來得更快速阱州。代理服務(wù)器還能掃描入站網(wǎng)絡(luò)流量,查找有無惡意內(nèi)容捶朵,并且保護最終用戶遠離病毒;它們還可以控制哪些用戶訪問什么樣的網(wǎng)絡(luò)內(nèi)容狂男。為了充分利 用所有這些功能综看,本文逐步介紹安裝和配置一臺簡單Web代理服務(wù)器(帶病毒過濾功能)的整個過程。

一個完美的安全Web代理服務(wù)器包括下列組件:

  • Squid——主要的軟件和代理服務(wù)并淋。
  • ClamAV——檢查入站內(nèi)容的反病毒軟件。
  • C-icap——采用互聯(lián)網(wǎng)內(nèi)容適配協(xié)議(ICAP)的服務(wù)珍昨,Squid需要該服務(wù)與其他服務(wù)進行聯(lián)系县耽。
  • SquidClamav——基于ClamAV的反病毒服務(wù),Squid通過ICAP服務(wù)連接到該服務(wù)镣典。

安裝配置

我們將在基本的CentOS 6平臺上運行代理服務(wù)器兔毙,該平臺上沒有預(yù)先安裝任何軟件包組。如果是最基本的安裝兄春,你可以使用來自官方鏡像頁面的最小鏡像澎剥。一旦我們安裝了操作系統(tǒng),就可以安裝代理服務(wù)器的各組件赶舆。

用 CentOS 6 快速配置一臺企業(yè)級 Web 代理服務(wù)器

鏡像下載:http://www.centos.org/modules/tinycontent/index.php?id=30

Squid

Squid可以從官方的CentOS 6軟件庫獲得哑姚。只要執(zhí)行yum install squid,即可安裝它芜茵。確保Squid隨系統(tǒng)自動開啟和關(guān)閉叙量,為此借助命令chkconfig squid on,把它添加到默認的系統(tǒng)啟動和關(guān)閉級別九串。

默認情況下绞佩,Squid的主配置文件/etc/squid/squid.conf允許通過常見端口的來自本地網(wǎng)站的請求寺鸥。去掉cache_dir ufs /var/spool/squid 100 16 256這一行的注釋,那樣代理服務(wù)器將文件緩存在磁盤上品山。這個命令的參數(shù)指示代理服務(wù)器使用默認的ufs存儲格式胆建。緩存目錄是/var/spool /squid,它應(yīng)該可以存儲最多100MB的內(nèi)容肘交,16個一級子目錄和256個次級子目錄笆载。考慮將緩存大小從100MB增加到1000MB酸些,因為 100MB太低了宰译,滿足不了如今的瀏覽需求。

在同一個文件中魄懂,在默認配置信息后面沿侈,添加下列幾個命令:

icap_enable on
icap_send_client_ip on
icap_send_client_username on
icap_client_username_encode off
icap_client_username_header X-Authenticated-User
icap_preview_enable on
icap_preview_size 2048
icap_service service_req reqmod_precache bypass=1 icap://127.0.0.1:1344/squidclamav
adaptation_access service_req allow all
icap_service service_resp respmod_precache bypass=1 icap://127.0.0.1:1344/squidclamav
adaptation_access service_resp allow all

這個基本配置指示Squid使用在本地主機上運行的SquidClamav ICAP服務(wù),本地主機使用TCP端口1344市栗。對非緩存內(nèi)容而言缀拭,需要使用這項服務(wù)。你可以從官方的Squid說明文檔填帽,找到關(guān)于所有配置命令的更多信息蛛淋。

ClamAV

ClamAV并不存在于默認的CentOS 6軟件庫中,所以你要么從源代碼安裝篡腌,要么使用第三方軟件庫褐荷。我建議使用EPEL軟件庫,因為它讓用戶易于安裝和維護嘹悼。

要將EPEL軟件庫安裝到CentOS 6上叛甫,請運行命令rpm -ivh http://download.fedoraproject.org/pub/epel/6/i386/epel-release- 6-5.noarch.rpm。之后杨伙,要安裝ClamAV其监,請執(zhí)行yum install clamav clamav-db clamd。由于這是從EPEL軟件庫首次安裝限匣,你會看到關(guān)于其密鑰的提醒抖苦;確認密鑰正確后才能繼續(xù)下一步。

執(zhí)行chkconfig clamd on米死,確保ClamAV后臺守護進程clamd自動啟動和終止锌历。

你可以設(shè)置最基本的ClamAV配置,只需編輯文件/etc/clamd.conf峦筒。你得至少移除顯示Example的那一行辩涝,那樣該服務(wù)就能啟 動。你可能還考慮更改一些命令的默認值勘天。比如說怔揩,可以定義使用ScanPE捉邢、ScanELF和ScanPDF來掃描哪些文件擴展名。為了提升性能商膊,可以將 待掃描文件的默認最大值(MaxFileSize)由25MB改成其他值伏伐,或者更改每個文件的多少數(shù)據(jù)有待掃描(MaxScanSize)——100MB 是默認值。值越大晕拆,所需的資源就越多藐翎,代理服務(wù)器的速度也就越慢。

ClamAV病毒特征數(shù)據(jù)庫由一個名為freshclam的獨立程序來更新实幕。其配置文件是/etc/freshclam.conf吝镣。為了使用它,你同樣得至少移除文件開頭部分顯示Example的那一行昆庇。大多數(shù)設(shè)置不用管末贾,保持默認值就可以了。

如果你執(zhí)行沒有參數(shù)的freshclam整吆,病毒特征更新一次拱撵,程序退出。你可以將freshclam配置成一項計劃任務(wù)(cron job)表蝙,定期檢查ClamAV更新版拴测,或者可以在后臺守護模式下啟用它,只需運行freshclam -d -c 2府蛇,其中-d指明了后臺守護模式集索,-c 2指明了每天更新幾次——這個例子中每天兩次。把這個命令添加到/etc/rc.local文件中汇跨,就可以確保下一次服務(wù)器重啟時务荆,它會啟用。

在/etc/freshclam.conf中可能需要更改的一項值得關(guān)注的設(shè)置是SafeBrowsing扰法,它在默認情況下被設(shè)置成關(guān)閉蛹含。這個設(shè)置 指定了你是不是想使用谷歌的Safe Browsing(安全瀏覽)數(shù)據(jù)庫毅厚,該數(shù)據(jù)庫里面含有一份更新后的列表塞颁,收錄了已知的惡意網(wǎng)站。你應(yīng)該啟用它吸耿,對性能只有一點影響祠锣,除非貴企業(yè)的最終用 戶在使用已經(jīng)采用該數(shù)據(jù)庫的瀏覽器,比如Mozilla Firefox和谷歌Chrome咽安。你只要指定SafeBrowsing yes伴网,就可以開啟它。

C-icap

C-icap并不存在于默認的軟件庫或EPEL中妆棒,所以你得從其網(wǎng)站的源代碼安裝澡腾,對其進行解壓縮沸伏,然后完成標準的配置、編譯和安裝這個過程动分。

由于C-icap是從源代碼自定義安裝毅糟,并不得到chkconfig的支持。因而澜公,為了讓C-icap服務(wù)器在系統(tǒng)啟動時自動開啟姆另,就用新的一行,將其二進制可執(zhí)行代碼/usr/local/bin/c-icap添加到底部的/etc/rc.local坟乾。

你可以找到默認情況下在/usr/local/etc/c-icap.conf的C-icap配置文件迹辐。大多數(shù)默認選項不用管它。指定 ServerLog /var/log/icapserver.log甚侣,將服務(wù)器的活動記錄到文件/var/log/icapserver.log中明吩;我們以后要用到服務(wù)器的 日志,確保一切都在正常運行渺绒。

你在檢查配置時贺喝,要注意ModulesDir和ServicesDir這兩個命令。默認情況下宗兼,兩者都指向/usr/local/lib/c_icap躏鱼。這個目錄是你安裝ICAP服務(wù)和模塊(如SquidClamav)的地方。

SquidClamav

你得從源代碼安裝SquidClamav殷绍,原因與C-icap一樣染苛。一旦你從其SourceForge網(wǎng)頁下載它,對其進行解壓縮主到,然后完成標準的配置茶行、編譯和安裝這個過程。

為了確保SquidClamav正確安裝登钥,要檢查目錄/usr/local/lib/c_icap畔师。你應(yīng)該會看到兩個文件:squidclamav.la(libtool 庫文件)和squidclamav.so(模塊本身)。

SquidClamav并不作為一項獨立的服務(wù)來運行牧牢,所以沒必要把它添加到默認的運行級別來實現(xiàn)自動啟動看锉。相反,它是通過C-icap服務(wù)器來訪問的塔鳍。

SquidClamav的配置文件位于/etc/squidclamav.conf伯铣。這里,默認配置的大部分選項直接可以拿來用轮纫。要更改的其中一個 選項是redirect腔寡。最終用戶試圖下載病毒時,他們會被重定向至你在這里指定的URL掌唾。創(chuàng)建詳細描述的一個頁面放前,否則你這個管理員會接到大量投訴忿磅,反 應(yīng)下載的內(nèi)容莫名其妙地無法運行。

為了創(chuàng)建重定向頁面凭语,可以使用腳本cgi-bin/clwarn.cgi贝乎,你可以在SqidClamav的源代碼歸檔文件中找到它。只要將它上傳至網(wǎng)站叽粹,指定redirect example.org/cgi-bin/clwarn.cgi即可览效。

測試代理服務(wù)器

至此,你的代理服務(wù)器應(yīng)該已安裝完畢虫几、合理配置锤灿。為了確保所有服務(wù)自動開啟,重啟服務(wù)器辆脸,然后開始測試但校。

你開始測試時,確狈惹猓可以通過TCP端口3128這個默認代理端口状囱,連接到服務(wù)器的IP地址。你必須在默認的CentOS 6防火墻中允許連接到這個端口倘是,除非按基本CentOS 6安裝中建議的那樣禁用了防火墻亭枷。

一旦你確保了可以連接到這個端口,對瀏覽器進行同樣詳細的配置:至于HTTP代理地址搀崭,就使用服務(wù)器的IP地址叨粘;至于端口,使用端口3128瘤睹。然后 開始瀏覽網(wǎng)絡(luò)升敲,看看代理服務(wù)器與未使用代理的瀏覽相比結(jié)果怎樣。不妨模擬一下許多用戶通常瀏覽的場景轰传。你可能會發(fā)現(xiàn)驴党,隨著更多的用戶開始使用代理服務(wù)器, 服務(wù)器的資源必須隨之增加获茬。

在服務(wù)器端港庄,監(jiān)控下列日志:

  • Squid的日志——默認情況下,它在文件/var/log/squid/access.log中锦茁。你會在那里看到哪些用戶的IP地址在提出什么樣的請求攘轩。
  • C-icap服務(wù)器的日志——與/usr/local/etc/c-icap.conf中通過ServerLog之前配置的那樣叉存,它應(yīng)該在/var/log/icapserver.log中码俩。

對你的代理服務(wù)器來說最重要的測試就是,試著下載病毒歼捏,看看結(jié)果如何稿存。網(wǎng)上有眾多資源介紹如何創(chuàng)建含有已知病毒特征的測試文件笨篷。一旦創(chuàng)建了這樣一個文件,把它上傳至某個地方瓣履,試著使用新建的代理服務(wù)器率翅,用瀏覽器來下載它。如果一切運行正常袖迎,在C-icap服務(wù)器的日志中應(yīng)該會看到這樣的條目:

Wed Feb 22 01:03:57 2012, general, DEBUG squidclamav_end_of_data_handler: received from Clamd: stream: Eicar-Test-Signature FOUND
Wed Feb 22 01:03:57 2012, general, DEBUG squidclamav_end_of_data_handler: Virus redirection: http://example.org/cgi-bin/clwarn.cgi?url=http://the_url_of_your_test_virus_file: Eicar-Test-Signature FOUND.

進一步的改進

如果到目前為止你已經(jīng)做好了本文介紹的各個步驟冕臭,應(yīng)該有一個帶病毒防護功能的基本代理服務(wù)器了。你可以在此基礎(chǔ)上繼續(xù)改進燕锥、添加更多的功能辜贵。下面是針對你添加額外組件來加強用戶安全的幾個建議:

  • 使用安全DNS。這種DNS不僅可以阻止擴散惡意軟件的域耗用資源归形,還能阻止成人網(wǎng)站托慨,如果進行了相應(yīng)配置的話。一項廣受歡迎的安全DNS服務(wù)是諾頓DNS暇榴。
  • 使用URL過濾(重定向器)厚棵。URL過濾器可與分門類別地域列表協(xié)同運行,可以根據(jù)用戶擁有的許可權(quán)限蔼紧,允許或禁止訪問網(wǎng)站婆硬。這類過濾器經(jīng)常用于阻止員工訪問與工作無關(guān)的網(wǎng)站〖槔可與Squid協(xié)同運行的一種廣受歡迎的過濾器是SquidGuard柿祈。它是免費開源的,可以與隨處可見的黑名單結(jié)合使用哩至。

要是由于某個原因躏嚎,這款開源代理解決方案無法完全滿足你的需要,可以研究一下主要的幾款商用產(chǎn)品菩貌,比如SmoothWall卢佣,以便最好地滿足貴企業(yè)的需要。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末箭阶,一起剝皮案震驚了整個濱河市虚茶,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌仇参,老刑警劉巖嘹叫,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異诈乒,居然都是意外死亡罩扇,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來喂饥,“玉大人消约,你說我怎么就攤上這事≡卑铮” “怎么了或粮?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長捞高。 經(jīng)常有香客問我氯材,道長,這世上最難降的妖魔是什么硝岗? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任浓体,我火速辦了婚禮,結(jié)果婚禮上辈讶,老公的妹妹穿的比我還像新娘命浴。我一直安慰自己,他們只是感情好贱除,可當我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布生闲。 她就那樣靜靜地躺著,像睡著了一般月幌。 火紅的嫁衣襯著肌膚如雪碍讯。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天扯躺,我揣著相機與錄音捉兴,去河邊找鬼。 笑死录语,一個胖子當著我的面吹牛倍啥,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播澎埠,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼虽缕,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蒲稳?” 一聲冷哼從身側(cè)響起氮趋,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎江耀,沒想到半個月后剩胁,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡祥国,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年昵观,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡索昂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出扩借,到底是詐尸還是另有隱情椒惨,我是刑警寧澤,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布潮罪,位于F島的核電站康谆,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏嫉到。R本人自食惡果不足惜沃暗,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望何恶。 院中可真熱鬧孽锥,春花似錦、人聲如沸细层。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽疫赎。三九已至盛撑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間捧搞,已是汗流浹背抵卫。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留胎撇,地道東北人介粘。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像晚树,于是被迫代替她去往敵國和親碗短。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內(nèi)容