« 在 Linux NAT 監看 MSN 聊天內容 | 首頁 | 2005/12, Vol. 119 PChome Magazine »
2005年12月03日
使用 HAVP + ClamAV 建置防毒 HTTP Proxy
HAVP (HTTP Anti Virus Proxy) 可結合 ClamAV、F-Prot、Kaspersky 等防毒軟體, 針對 HTTP 傳輸資料進行即時掃毒, 將病毒攔截於 Proxy Server 上, 讓使用者上網時多一層安全防護.
操作步驟
1. 安裝 Clam AntiVirus
groupadd clamav && useradd -g clamav -M clamav
./configure
make
make installps. 若以套件管理程序安裝 clamav 者, 請記得加裝 clamav-devel 套件
2. 安裝 HAVP (本篇以 v0.82 為例)
./configure
make
make install3. 環境設定
groupadd havp && useradd -g havp -M havp
chown havp:havp /var/log/havp /var/run/havp
vi /usr/local/etc/havp/havp.config
### 註解以下這行
#REMOVETHISLINE deleteme### ClamAV Library Scanner (libclamav) → 由 HAVP 直接取用 ClamAV 的病毒資料庫
ENABLECLAMLIB true
CLAMDBDIR /usr/local/share/clamav### ClamAV Socket Scanner (clamd) → 交由 clamd 掃毒 (須先啟動 clamd), 以上兩者擇一使用即可
ENABLECLAMD true
CLAMDSOCKET /tmp/clamd其他與效能相關的設定:
### 理論上越多的執行緒效能效能越好, 但仍需視伺服器資源而定
SERVERNUMBER 40
MAXSERVERS 200### 只記錄 error log. 較少的 Log 記錄可減輕伺服器負擔
LOGLEVEL 0### 使用 RAM Disk 處理暫存檔案可獲得最佳效能
TEMPDIR /path/to/ramdisk### 不對圖片檔掃毒, 可減輕 CPU 負擔
SCANIMAGES false4. 掛載獨立磁區於 /var/tmp/havp (一定要加上 -o mand 參數)
mount -o mand /dev/hda3 /var/tmp/havp
chown havp:havp /var/tmp/havp如果沒有多餘的 device 可以掛載, 可參考以下兩種方法:
a. 用記憶體建立虛擬磁碟
mkfs -t ext2 /dev/ram0 8192 (建立 8MB RAM Disk)
mount -o mand /dev/ram0 /var/tmp/havpb. 使用硬碟空間建立虛擬磁碟
dd if=/dev/zero of=/root/havp_tmp.img bs=128K count=1 seek=1024 (建立 128MB Virtual Disk)
mkfs.ext2 /root/havp_tmp.img
mount -o loop,mand /root/havp_tmp.img /var/tmp/havpps. HAVP 可掃描的檔案大小將受限於這裡所掛載的磁區空間
5. 更新 shared libraries 資料庫 (for ClamAV)
vi /etc/ld.so.conf --> 加入: /usr/local/lib
ldconfig6. 啟動 HAVP
/etc/init.d/havp start
7. 將 Client 端瀏覽器的 Proxy 設定指向 HAVP Proxy Server 的 8080 port
8. 連結病毒測試網頁檢驗 HAVP 是否正常運作
HAVP + Squid 的各種搭配方法
| Normal Proxy | Transparent Proxy | |
| 單獨使用 HAVP | Proxy 指向 HAVP:8080 |
修改 havp.config: TRANSPARENT true iptables -t nat -A PREROUTING -p tcp -s 192.168.0.0/24 --dport 80 -j REDIRECT --to-port 8080 |
| HAVP + Squid HAVP is Parent Proxy |
修改 squid.conf, 設定 Parent Proxy 為本機的 8080 port acl all src 0.0.0.0/0.0.0.0 |
|
| Proxy 指向 Squid:3128 |
修改 squid.conf, 讓 Squid 變成透明代理 (請參考 "這篇" ) iptables -t nat -A PREROUTING -p tcp -s 192.168.0.0/24 --dport 80 -j REDIRECT --to-port 3128 |
|
| HAVP + Squid Squid is Parent Proxy |
修改 havp.config PARENTPROXY localhost |
|
| Proxy 指向 HAVP:8080 |
修改 havp.config: TRANSPARENT true iptables -t nat -A PREROUTING -p tcp -s 192.168.0.0/24 --dport 80 -j REDIRECT --to-port 8080 |
|
關於 HAVP 搭配 Squid 在不同組合方式下的各種優缺點請參考:
相關網頁
Posted by Jamyy at 2005年12月03日 12:28
Trackback Pings
TrackBack URL for this entry:
http://cha.homeip.net/cgi-bin/mt/mt-tb.cgi/147
Comments
dd if=/dev/zero of=/root/havp_tmp.img bs=1M count=1 seek=1024
mkfs.ext3 /root/havp_tmp.img
mount -o loop,mand /root/havp_tmp.img /var/tmp/havp
請教一下~
以上這段掛載虛擬磁碟的指令...
是不是要寫入到/etc/rc.d/rc.local當中呢?
Posted by: casper at 2006年08月22日 14:37
您好~~
只要將 mount 指令寫入 rc.local 即可
此外, 也可寫入 /etc/fstab:
/root/havp_tmp.img /var/tmp/havp ext3 loop,mand 0 0
(rc.local 與 fstab 請擇一使用)
Posted by: Jamyy at 2006年08月22日 15:21
抱歉~
再冒味請教一下~
我是不是必須將ClamAV的服務開啟呢?
chkconfig clamav on
然後,我要怎麼更新ClamAV和HAVP的病毒碼和檢查病毒碼版本呢?
對了~~
你寫的技術文件真的很棒~
我在網路上看過很多相關的文章,不過只有你寫的最齊全....
Posted by: casper at 2006年08月22日 17:09
HAVP 會直接使用 ClamAV 的 Library, 所以 ClamAV 的服務是不需要啟動的.
您只要使用 ClamAV 的 freshclam 來更新 ClamAV 的病毒碼就行了,
方法如下:
1. daemon 模式: freshclam -d -c 1 (c 1 表示每日更新一次病毒碼)
2. 以 crontab 排程: 0 0 * * * root /usr/bin/freshclam --quiet -l /var/log/freshclam.log (每天午夜更新病毒碼)
謝謝您的誇獎, 能和大家分享心得真的是一件很開心的事 :)
Posted by: Jamyy at 2006年08月22日 22:34
根据您提供的方法,我已经测试通过了,效果不错!
但打开网页速度太慢!或者对服务器的要求怎么样?有没有加速或者优化的方法呢?另外如何控制内存中开辟的空间的大小?
Posted by: Haterman at 2006年08月23日 13:32
請教一下~
我照著上面的步驟去安裝與設定後,
虛擬磁碟mount ok~
病毒碼更新OK~
但是在www.eicar.org的網頁內測試,並沒有防毒的功能出現..
依照你的經驗我可以從那裡開始檢測設定呢?
Posted by: casper at 2006年08月23日 15:15
^^ 謝謝大家的捧場~~
由於 HAVP 版本的更新, 它的設定檔也和當初寫這篇時的格式不太一樣了, 趁這個機會改寫了部份內容, 也希望能順利解決各位的問題~~
Posted by: Jamyy at 2006年08月23日 16:04
非常感谢这么及时就更新了,解答了我所有的问题!刚好我装的就是0.82,马上就测试,看看扫毒速度会增加多少?
Posted by: Haterman at 2006年08月23日 22:24
### ClamAV Library Scanner (libclamav) → 由 HAVP 直接取用 ClamAV 的病毒資料庫
ENABLECLAMLIB true
CLAMDBDIR /usr/local/share/clamav
### ClamAV Socket Scanner (clamd) → 交由 clamd 掃毒 (以上兩者擇一使用即可)
ENABLECLAMD true
CLAMDSOCKET /tmp/clamd
但我选择下面那个选择项目时候却出现了这个错误:
[root@vpn openvpn]# /etc/init.d/havp start
Starting HAVP ...
Starting HAVP Version: 0.82
One or more scanners failed to initialize!
Check errorlog for errors.
Exiting..
选择上面由HAVP去调用的时候却可以顺利启动!为何?
Posted by: haterman at 2006年08月24日 09:16
選擇以 clamd 掃毒的話, 必須先啟動 clamd (ClamAV daemon), HAVP 才能透過 clamd 掃毒喔~
Posted by: Jamyy at 2006年08月24日 10:08
版主您好,我现在的项目想对通过http上传的资料进行过滤,老板让我在havp上改动,请问有版主有没有现成的对http上传文件截取的http代理?
请指教!
Posted by: jerry at 2006年09月14日 18:02
您好!
建議您從 Squid 著手
利用 squid.conf 裡的 acl 和 http_access 進行控管
例如: 限制使用者不得上傳超過 500KB 的檔案
acl my_net src 10.0.0.1/255.255.255.0
acl USERA src 10.0.0.1/255.255.255.255
acl UPLIMIT req_header Content-Length [5-9][0-9]{5,}
acl UPMETH method post
http_access deny USERA UPMETH UPLIMIT
http_access allow my_net
http_access deny_all
出處: http://www.squid-cache.org/mail-archive/squid-users/200508/0503.html
Posted by: Jamyy at 2006年09月14日 21:48
hi,Jamyy:
我的havp configfile关于scanner的config如下:
ENABLECLAMLIB true
CLAMDBDIR /usr/local/share/clamav
但是启动havp的时候出现和上面一样的错误:
Starting HAVP ...
Starting HAVP Version: 0.82
One or more scanners failed to initialize!
Check errorlog for errors.
Exiting
我查看log file的结果如下:
ERROR: HAVP not compiled with ClamAV support
请问这是什么意思?
麻烦您了:)
Posted by: jerry at 2006年09月20日 17:06
Jerry 您好~
我是以這個方式測得與您相同的錯誤訊息:
1.先安裝 havp
2.再安裝 clamav
3.設定 havp.config
ENABLECLAMLIB true
CLAMDBDIR /usr/local/share/clamav
4.啟動 havp 時發生 ERROR: HAVP not compiled with ClamAV support
解決方式:
1.重新安裝 havp (此時它會自動偵測到 clamav 的環境)
2.修改 /etc/ld.so.conf, 加入 /usr/local/lib, 並執行 ldconfig
3.修改 /usr/local/etc/havp/havp.config
4.啟動 havp, 不再出現錯誤訊息
若 clamav 安裝在 /usr/local/clamav 可參考:
http://havp.hege.li/forum/viewtopic.php?p=500
Posted by: Jamyy at 2006年09月20日 19:44
Jamyy,您好:
我按你的方法做还是不上次的哪个情况!我查看了以下havp的代码,发现好象是条件编译的愿意,没有定义:USECLAMLIB这个宏.源代码如下:
bool ScannerHandler::InitScanners()
{
//SCANNERS
if ( Params::GetConfigBool("ENABLECLAMLIB") )
{
#ifdef USECLAMLIB
VirusScanner.push_back(new ClamLibScanner);
#else
LogFile::ErrorMessage("ERROR: HAVP not compiled with ClamAV support\n");
return false;
#endif
}
.....
}
这些代码片段是从ScannerHandler类里面取的.但是我在代码里自己添加这个宏的定义:
#define USECLAMLIB 1
后编译又出现这样的错误:
scannerhandler.o(.text+0x9f5): In function `ScannerHandler::InitScanners()':
: undefined reference to `ClamLibScanner::ClamLibScanner[in-charge]()'
collect2: ld returned 1 exit status
我也搞不懂了:)
是不是您在./configure的时候加了什么其他的参数,什么的?
麻烦您指教.
Posted by: jerry at 2006年09月21日 11:19
Jerry 您好~~
其實我並沒有在 havp 的 configure 加入任何參數
問題可能出在 clamav 的安裝
1. 我是用 tarball source 安裝 clamav 的 (configure 時亦不加參數)
2. 若是用套件管理程序安裝 clamav, 記得加裝 clamav-devel 套件才行喲
如果 clamav 已正確安裝, 在 configure havp 時, 會出現: *** ClamAV library found, support enabled!
若您的 havp 始終無法支援 ENABLECLAMLIB 的話,
也許可以試試 ENABLECLAMD (需先執行 clamd)
Posted by: Jamyy at 2006年09月21日 14:20
Jamyy,您好:
以前没有仔细看configure 的output,我的output有如下的语句:
./configure: line 1: clamav-config: command not found
./configure: line 1: clamav-config: command not found
NOTICE:
ClamAV library NOT found, support DISABLED! You should really use it. :-)
If you have it installed, make sure clamav-config is found in PATH
哈哈,我再找找看,你如果知道原因,直接告诉我:)
谢谢!(有点着急)
Posted by: jerry at 2006年09月21日 14:28
Jamyy,您好:
谢谢你,这个问题算是搞定了.
原因是我的clamav-config 在/usr/local/bin/下面
而我是用一般用户权限去./configure的,而/usr/local/bin这个路径不在我的这个用户的PATH环境变量中,所以一直找不到.
这个问题是解决了.
哈,以后遇到其他的问题可能还要你帮忙呢:)
Posted by: jerry at 2006年09月21日 14:42
hi, jerry,
原來是這樣子, 謝謝你, 我也上了一課
恭喜你啦! 有問題隨時歡迎一起討論
Posted by: Jamyy at 2006年09月21日 14:55
嘿嘿!
问题又来了!
现在havp是正常启动了.
但是当我客户端发送一个http请求时,总是返回havp自己的一个页面:
The request is unkown~!
我查看errorlog显示如下:
(192.168.1.2) Invalid request from browser
看看了代码好象是havp解析客户端的http header的时候出现的错误.
您以前遇到过这种情况吗?我一个同事也遇到这种情况!
麻烦您看看,辛苦了:)
Posted by: jerry at 2006年09月21日 15:19
呵~ 您也辛苦了~
HAVP 不支援 https 喔~
所以請在瀏器的設定中取消勾選 SSL Proxy (Secure)
這樣應該就沒問題了 :)
Posted by: Jamyy at 2006年09月21日 16:07
hi ,Jammyy,
tanks~!
搞定了.我本来是想做透明代理的,用iptables配置了端口redirect,但是没有在配置文件中开启TRANSPARENT选项.
所以才搞成那样的.
哈哈,太着急了,因为这个项目比较急,所以一有问题就找您问,麻烦了.现在才开始忙我的文件上传的问题了:)
Posted by: jerry at 2006年09月21日 16:17
真是不好意思:)
post了以后才发现写错你的名字了:)
我这人是个急性子,见谅:)
Posted by: jerry at 2006年09月21日 16:20
^^' 沒關係, 我也是急性子, 辛苦您了...
Posted by: Jamyy at 2006年09月21日 16:48
Hi Jerry
按照您的說明我成功將squid+clamav+havp HTTP防毒建立起來^^
但至幾個較惡意的網站卻發現clamav的防毒能力...頗令人==|||
於是想再加上trophie來加強防毒能力....之後問題就來了@@
我下了trophie所需的程式,vsapi,855病毒定義檔後
重新下./configure --with-trophie
...我是用ram的方式,mount -o mand 到var/tmp/havp 也chown havp
...執行/etc/init.d/havp start卻出現....
One or more scanners failed to initialize!
Check errorlog for errors.
或是將trophie先關畢,則是出現
Starting HAVP ...
Starting HAVP Version: 0.82
LibClamAV Error: Wrote 0 instead of 512 (/var/tmp/havp/clamav-fd4e89f1cd623f0c/main.db).
cli_untgz: No space left on device
LibClamAV Error: cli_cvdload(): Can't unpack CVD file.
LibClamAV Error: Can't load /usr/local/share/clamav/main.cvd: CVD extraction failure
One or more scanners failed to initialize!
Check errorlog for errors.
能否請Jerry兄指點一下..Thanks
Posted by: ezok2u at 2006年10月23日 11:46
LibClamAV Error: Wrote 0 instead of 512 (/var/tmp/havp/clamav-fd4e89f1cd623f0c/main.db).
這個問題我已自行處理OK...改用HD空間來當TMP....
至於加入其他防毒機制...
havp 是否是下./configure --with-scanner=trophie
的指令呢?
從config來看好像語法錯誤..請問您知道正確語法嗎?
Posted by: ezok2u at 2006年10月23日 13:55
下載 Trophie: http://www.vanja.com/tools/trophie/
下載 vsapi (掃描引擎): http://www.trendmicro.com/download/zh-tw/product.asp?productid=20
下載最新病毒碼: (URL 同上)
mkdir /etc/iscan
將 vsapi 解包到 /usr/local/lib
將病毒碼 (pattern) 解包到 /etc/iscan
安裝 HAVP 時, 無需加上任何參數, 它自己會自動找到 Trend Micro library
安裝完畢, vi /usr/local/etc/havp/havp.config 進行以下編輯:
DBRELOAD 60 (取消註解)
ENABLETROPHIE true (由 false 改成 true)
可是啟動 HAVP 後, 卻發生 "HAVP not compiled with Trophie support" 的錯誤
目前尚未找出排除這個問題的方法
除了 ClamAV 之外, 我推薦 Avast! 這套防毒軟體
我在 PC 上使用它, 覺得挺不錯的 :)
Posted by: Jamyy at 2006年10月23日 17:23
Jammyy兄~謝謝囉
其實我也是出現"HAVP not compiled with Trophie support"啦..
會想用它無非是因它可以不需要啟動服務...
Avast好像也是要啟動服務....所以我還是先繼續trophie的
攻略ㄅ..
再次感謝您的分享囉!!
Posted by: ezok2u at 2006年10月23日 18:04
嗯~我想是0.82版的bug吧!
因為試過0.77~0.83版就只有0.82會有問題..
Posted by: ezok2u at 2006年10月24日 13:22
真的耶! ^_^
謝謝你的經驗分享~
Posted by: Jamyy at 2006年10月24日 14:00
Jamyy:
請長一下~我是使用squid2.6作透明代理的....
現在加上HAVP和ClamAV來作掃毒~
我已經確定安裝成功了~
不過怎麼試都是沒法子掃到病毒~
我懷疑是squid-2.6 stable5裡用的squid.conf參數有變了
cache_peer_access 127.0.0.1 allow all
我測了一下...好像是上面這行有問題...
還在努力中~
Posted by: casper at 2006年11月11日 12:03
咦? 我試過沒問題說~
我是將 havp 0.83 當 squid 2.6 的 parent proxy
squid 2.6 做 transparent proxy
havp 使用 clamav db (ENABLECLAMLIB true) 掃毒
ps. squid 2.6 的 squid.conf 實現 transparent proxy 只要在 http_port 3128 後面加上 transparent 就行了 :)
Posted by: Jamyy at 2006年11月13日 11:37
To enable TROPHIE in havp, install havp by the following configure command
./configure --with-scanner=TROPHIE
havp will try to find libvaspi.so in directory /etc/iscan, add a link under /etc/iscan to your libvaspi.so.
Sorry for English, I am from Mainland, trouble to type traditional chinese here.
Posted by: Pinar at 2006年12月14日 19:58
謝謝您提供這個訊息~
本站係採用 UTF-8 的 Unicode 編碼
所以您可以放心的輸入簡體中文, 也能正常顯示喔 :)
Posted by: Jamyy at 2006年12月15日 17:28
02/02/2007 16:44:20 === Starting HAVP Version: 0.82
02/02/2007 16:44:20 Change to user havp
02/02/2007 16:44:20 Change to group havp
02/02/2007 16:44:20 --- Initializing ClamAV Library Scanner
02/02/2007 16:44:20 ClamAV: Using database directory: /var/clamav
02/02/2007 16:44:24 ClamAV: Loaded 87500 signatures (engine 0.88.7)
02/02/2007 16:44:24 ClamAV Library Scanner passed EICAR virus test (Eicar-Test-Signature)
02/02/2007 16:44:24 --- Initializing Clamd Socket Scanner
02/02/2007 16:44:24 ERROR: Clamd Socket Scanner failed EICAR virus test! (Access denied.)
怎麼會這樣呀!! 無發啟動HAVP
Posted by: Alan at 2007年02月02日 16:55
取消使用 ClamAV Socket Scanner 就行了
Posted by: Jamyy at 2007年02月02日 17:07
謝謝唷!!可以了呢....
Posted by: Alan at 2007年02月02日 17:13
剛才發現使用ramdisk時,雖然有指定TEMPDIR,但沒有設定SCANTEMPFILE,還是會寫入 /var/tmp/havp裏。所以得自己改成
SCANTEMPFILE /path/to/ramdisk/havp-XXXXXX
Posted by: 鳥毅 at 2007年05月09日 09:42
请教版主:
我按HAVP + Squid
HAVP is Parent Proxy的方式做的,但客户段指向squid的3128端口代理上网是,通过测试页过滤病毒无效果,但将客户断代理指向8080havp时可以上网,也可以通过测试页过滤病毒,但我需要将客户通过3128的squid上网,不知道是哪里出了错,非常期待您的指教
Posted by: ych7709 at 2007年05月10日 09:44
to 鳥毅: 這樣一來處理速度就更快了, 謝謝你 :)
to ych7709: 請先確定 squid.conf 裡的設置是否正確, 修改 squid.conf 之後請記得執行 /etc/init.d/squid reload 或 restart
Posted by: Jamyy at 2007年05月10日 12:56
Jamyy您好
我之前是用client->squid2.5(8080)->havp0.86(3128)->internet的架構使用,但
卻發現使用Firefox會發現havp無法阻擋病毒的情況,於是把架構改為client->havp0.86(8080)->squid2.5(3128)->internet(squid與havp在同一部主機),於是發生了一個情況就是clinet的ie proxy設定為該主機,然後由client ie透過https要連到該主機的服務如https://ip:10000(webmin)ie會出現 The request is unknown:
Port not allowed 由havp提供的html 頁面訊息,我知道
havp好像不支援https @.@"...我想請問這是哪裡有問題呢?
Posted by: ezok2u at 2007年05月18日 08:31
您好
以 client -> squid -> havp -> internet (havp is parent proxy) 的方式就不會有這種問題
如果以上架構沒能偵測到病毒應該是 havp 或 squid 設定上的問題
請仔細檢查這兩個 proxy server 的設定檔
修正錯誤後記得都要 reload 或 reset 喔
Posted by: Jamyy at 2007年05月18日 16:45
好的!我再查查havp及squid的設定,謝謝!!
Posted by: ezok2u at 2007年05月21日 10:24
站長大大您好,小第有點不太了解
當HAVP + Squid
Squid is Parent是指內部上網會先經過squid 的3128port後,再經過havp 的8080port 嗎?
那squid 是做tp 的時候,預設是3128port,所以它的conf不修改。只要改havp.config檔的下面2行,
PARENTPROXY localhost
PARENTPORT 3128
但這下面的修改是指squid.conf 檔嗎?
Proxy 指向
HAVP:8080 修改 havp.config: TRANSPARENT true
另如果是上面說的,內部上網要先經過squid 的3128後,再經過hacp 的8080,那iptables 也是要把80導向3128後,再把3128導向8080嗎?
Posted by: ken at 2007年06月03日 02:33
ken 您好
[Squid is parent]
User → HAVP:8080 → Squid:3128 → Internet
若要做 tp, iptables REDIRECT to-port 8080
如果不做 tp, user 的瀏覽器必須把 proxy 設定指向 havp:8080
[Havp is parent]
User → Squid:3128 → HAVP:8080 → Internet
若要做 tp, iptables REDIRECT to-port 3128
如果不做 tp, user 的瀏覽器必須把 proxy 設定指向 squid:3128
Posted by: Jamyy at 2007年06月03日 23:11
站長大大,不好意思,小弟還是不太了解,假設
[Havp is parent]
User → Squid:3128 → HAVP:8080 → Internet
若要做 tp, iptables REDIRECT to-port 3128
那squid.conf就只要設成tp 的設定,不用變更,而只要
修改 havp.config: TRANSPARENT true 這一行就可以了嗎,那這2行
PARENTPROXY localhost
PARENTPORT 3128
,就不用改了嗎?因為我在想80轉到3128後,要怎麼接到8080去~
Posted by: ken at 2007年06月04日 01:31
ken 您好,
parent proxy 是不需要設定成 tp 的
以 [havp is parent] 的 tp 為例
squid.conf 除了要設定成 tp 之外, 還要
"修改 squid.conf, 設定 Parent Proxy 為本機的 8080 port (havp)" --> 詳見文內表格
而 havp 就只要把該設定的設定好就行了, 不需要變成 tp
也不用指定 parent proxy
Posted by: Jamyy at 2007年06月04日 09:04
感謝站長,終於試成功了,謝謝,現在再試站長說的上傳限制的部份,不過重啟squid 時一直出現錯誤訊息,不知那500k 是怎麼算出來的,還請站長再指導一下,謝謝!
Posted by: ken at 2007年06月09日 20:06
恭喜你成功了 :)
至於那 500KB 的限制
是 acl UPLIMIT req_header Content-Length [5-9][0-9]{5,} 這一行來的
它的意思是, Content-Length (POST 的資料) 不得大於:
第一位數字 5 ~ 9 開頭 [且] 後面五位數(及以上位數)皆為 0 ~ 9
簡單來說就是: Content-Length 不得大於 500000 bytes
亦即 POST (上傳) 的資料不得大於 500KB
請參考:
http://www.squid-cache.org/mail-archive/squid-users/200508/0571.html
Posted by: Jamyy at 2007年06月11日 10:27
謝謝站長大大的說明,小弟照上面的設定,會出現:
/etc/init.d/squid: line 53: 4183 Segmentation fault $SQUID $SQUID_OPTS >>/var/log/squid/squid.out 2>&1
[FAILED]
錯誤的訊息,不知是那邊的問題,那幾行限制的不設,就可正常啟動呢~
Posted by: ken at 2007年06月11日 12:40
您是說限制上傳檔案大小之後就發生這種錯誤嗎?
不過我試了幾次都沒發生如您所說的情況
測試環境: Fedora Core 3, Squid -2.5.STABLE11-3.FC3
建議您 tail /var/log/squid/squid.out
查看更詳細的錯誤訊息
Posted by: Jamyy at 2007年06月11日 14:07
是的,限制檔案後就會出現這個訊息,查看log中,竟然沒有錯的記錄,我的環境是,centos4.4+squid-2.5.STABLE6-3.4E.12, 另外請教站長大大如果要限制檔案上傳的話,還有別的方法嗎?
Posted by: ken at 2007年06月11日 17:59
如果要 "禁止" HTTP 檔案上傳的話, 可以在 squid.conf 用這個語法:
acl aclname req_mime_type -i multipart/form-data
請參考:
/blog/archives/2006/12/squidconf_acl_t.html
如果要 "限制" 上載頻寬, 可以用 cbq.init
請參考:
/blog/archives/2005/07/cbqinit.html
centos4.4 下載中... 待會再來試試這個問題...
Posted by: Jamyy at 2007年06月12日 09:43
謝謝站長,忘了說,我是用centos4.4 但編過核心到2.6.18.8用L7,我發現一個現像,只要L7把SKYPEOUT 一檔,我針對25PORT 用SMTP 寄信就死了,但TELNET 25PORT 是有通的,很特別的情況,限制上傳的部份,ACL小弟還在研究中,有點難了解的感覺~
Posted by: ken at 2007年06月12日 11:15
CentOS 4.4 預設搭載的 squid-2.5.STABLE6-3.4E.12 果然在 req_header 這關掛點
把它更新到 CentOS 4.5 的 squid 版本就沒問題了:
ftp://ftp.isu.edu.tw/Linux/CentOS/4.5/os/i386/CentOS/RPMS/squid-2.5.STABLE14-1.4E.i386.rpm
l7-filter 很多 filter 試了都沒效哩, 沒想到還有這種特殊狀況 :P
Posted by: Jamyy at 2007年06月12日 15:59
感謝站長的測試及指點,想請教一下,限制上傳500k 是指如果用web mail要帶檔,不能超過500k 嗎,小弟測試好像沒有限制的功能,另上次站長大大還記得小弟說nat後連vpn 的問題嗎,這幾天我也測了一下,只要ip-nat_pptp和ip-conntrack_pptp這2個模組載入,就可以內部多台電腦對外面vpn server連線了~和站長大大分享一下~
Posted by: ken at 2007年06月15日 13:29
Jamyy您好
clamav(0.90.3)没有辨法update,想請教一下.謝!
[root@localhost ~]# freshclam
ERROR: Please edit the example config file /usr/local/etc/freshclam.conf.
ERROR: Please edit the example config file /usr/local/etc/clamd.conf.
ERROR: Can't parse the config file /usr/local/etc/clamd.conf
Posted by: davy at 2007年06月19日 17:32
Davy 您好
請編輯 freshclam.conf 與 clamd.conf 這兩個檔案
把 Example 前面加上註解 (變成: #Example)
就行了
Posted by: Jamyy at 2007年06月19日 20:14
謝謝Jamyy
clamav update問题己解决了.想請教一下,我用www.eicar.org的網頁內測試,並沒有防毒的功能出現.但是/var/log/havp/access.log 是空的.
Posted by: davy at 2007年06月19日 21:55
請確定瀏覽器的 proxy 設定是否指向 havp.host.ip:8080
Posted by: Jamyy at 2007年06月20日 11:29
ken, 不好意思忘了回覆您的訊息 ^^'
關於限制上載檔案大小
我在 mail.yahoo.com.tw 和 gmail.com 都測試成功
原來 linux nat 要載入那兩個模組才不會有問題, 謝謝你的分享 :)
Posted by: Jamyy at 2007年06月25日 15:37
想請問一下
因為HAVP是針對防毒的部份
那如果我想加上內容過濾
類似dansguardian或是squidguard之類的軟體
可以這樣做嗎
如果可以
您方便提供一些做法
還是能提供不錯的網站介紹呢
謝謝
Posted by: akong at 2007年07月13日 14:24
可以的
它們都可以和 squid 搭配使用
建議的作法是
以 squid 為核心, havp 當 parent proxy
然後再掛上 dansguardian 或 squidguard 就行了
架構為:
client ←→ dansquardian ←→ squid ←→ havp ←→ internet
Posted by: Jamyy at 2007年07月13日 14:47
Jammy,你好,
我这两天也在做Havp+Squid的试验,我是将Squid作为Parent,Havp非透明的方式。另外,Havp和Squid不在同一个服务器上运行。
我对havp.config的修改(其它的参数也都相应修改):
PARENTPROXY 192.168.0.29(squid的地址)
PARENTPORT 8080(squid的端口号)
然后浏览器中的代理也设置成了Havp所在服务器,但打开病毒测试网页的时候还是没有成功,我用sniffer看了一下,havp和squid所在的两台服务器之间并没有数据包传送。我以为设置了PARENTPROXY 192.168.0.29
PARENTPROXY后havp应该根据这个地址去定向才是
请问你知道这大概是什么原因导致的么?是我的配置文件没有配置正确,还是我的iptables的问题呢?
多谢!
Posted by: clon at 2007年07月20日 12:43
哈,问题解决了,我真头大。squid配置加入的mac地址加的不是havp服务器的而是客户端的了。。。
Posted by: clon at 2007年07月20日 13:22
呵, 恭喜你解決問題了 :)
Posted by: Jamyy at 2007年07月20日 13:39
多谢:)
回复真快,呵呵。
还得请教您一个问题:
对于我上边的防毒做法,针对https请求,提示
“您无权查看该网页
您可能没有权限用您提供的凭据查看此目录或网页。
HTTP 错误 403 - 禁止访问”
这样的错误。这是因为havp不支持https协议产生的么?可以通过什么方法解决么?
另外,如果将havp作为parent,那squid中配置的对于不同mac地址的访问权限控制还会起到作用么?
哈,麻烦您啦。
Posted by: clon at 2007年07月20日 14:48
呵, 剛好收到系統發的 e-mail 通知, 就上來回答留言了 :)
編譯 havp 的時候加上 --enable-ssl-tunnel 可以允許建立 https 通道, 不過還是不能在 https 底下掃毒, 官方說法是 "It is difficult to check https because the proxy can not encrypt the data."
若真要 https 的防毒 proxy, 我用 google 找到了這個商業產品:
http://www.iccsec.com/en/a1_solutions/b4_tommy.php
havp 當 parent proxy 是可以在 squid 限制 LAN user by mac address 的
這樣還有一個好處: squid 的 log 分析報表就能正確表達區網使用者的使用情況... 如果是 squid 當 parent proxy 的話, client user 就都是 havp 了... :P
Posted by: Jamyy at 2007年07月20日 15:33
哈,您的回答让我受益匪浅,好几个问题同时得到了答案,非常感谢!
Posted by: clon at 2007年07月20日 15:45
问题又来啦,您知道是否可以让HAVP的access.log只记录查出病毒的而不是全部的访问记录么?
Thanks a lot!
Posted by: clon at 2007年07月23日 12:00
clon 您好,
請編輯 havp.config
將 LOG_OKS true
改成 LOG_OKS false
就行了
Posted by: Jamyy at 2007年07月23日 12:10
十分感谢。
Posted by: clon at 2007年07月23日 12:38
您客氣了
那個 access.log 的問題我也是仔細看了 havp.config 才發現的
於是, 我也把我的 havp.config 設成 LOG_OKS false 了 :P
Posted by: Jamyy at 2007年07月23日 19:04
哈,我太懒惰了,自己都没仔细看config。
Posted by: clon at 2007年07月24日 11:16
Havp的error.log中记录了一大堆"Server tried to send body when not expected"的信息,您知道这个问题的原因么?
Posted by: clon at 2007年07月24日 13:48
以下是實驗結果:
透過 havp 連入 c.baidu.com 就會發生如您所說的 error log
以 lynx 連入 c.baidu.com 所得到的結果是: Alert!: HTTP/1.1 204 No Content
havp 原始碼: proxyhandler.cpp 可找到這個錯誤訊息
雖然不懂程式語法, 不過看起來的確是在檢查 HTML 內容 (body content) 的時候才會引發的錯誤記錄, 與前述 "no content" 現象相符
結論:
應該是因為對方 web server 發生 204 錯誤 (no content) 所引發的錯誤訊息
Posted by: Jamyy at 2007年07月24日 14:09
我这边也是连接c.baidu.com的时候出的这个错,因为公司限制只允许看baidu快照,所以error.log这个文件越来越大了,看来得定期处理一下了。
呵呵,您都看到源代码里边了,十分感谢!
Posted by: clon at 2007年07月24日 14:38
Jammy,您好!
现在Squid+Havp组合运行的效果不错,每天都可以拦截很多病毒,呵呵。
error.log的文件也越来越大,我看Havp的配置文件中似乎没有自动rotate日志文件的功能,是不是得人工写入cron job中来处理了呢? //thanks
Posted by: clon at 2007年07月26日 16:41
clon 您好,
可以用 logrotate 來處理:
cd /etc/logrotate.d
cp httpd havp
vi havp
將 /var/log/httpd/*log 改成 /var/log/havp/*log
將 /var/run/httpd.pid 改成 /var/run/havp/havp.pid
這樣就能讓 logrotate 自動 rotate havp 的 log file
Posted by: Jamyy at 2007年07月26日 17:38
我们服务器的/etc/logrotate.d目录下没有httpd,可能是系统版本问题?目前我用的已有的笨办法,cron任务:
rm -f /var/log/havp/error3.log 2>/dev/null
mv -f /var/log/havp/error2.log /var/log/havp/error3.log 2>/dev/null
mv -f /var/log/havp/error1.log /var/log/havp/error2.log 2>/dev/null
cp -f /var/log/havp/error.log /var/log/havp/error1.log
echo "" >/var/log/havp/error.log
感谢您提供的这个方法,我研究一下去:)
Posted by: clon at 2007年07月27日 09:50
您的方法很有邏輯概念呢 :)
不好意思, 一時偷懶忽略了不同版本之間的差異 :P
以下補上 /etc/logrotate.d/havp 內容:
/var/log/havp/*log {
missingok
notifempty
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/havp/havp.pid 2>/dev/null` 2> /dev/null || true
endscript
}
以上沒有描述到的部份, 將依照 /etc/logrotate.conf 設定值
Posted by: Jamyy at 2007年07月27日 10:11
哈,是前辈留下的方法,我施展了下照猫画虎的功夫。
我觉得还是改用您的方法,利用一下系统的功能,呵呵//bow。
Posted by: clon at 2007年07月27日 14:43
Hi,Jamyy.
突然发现,以前把你的名字拼错了,实在不好意思。
还要向你请教一个问题,关于clamav的,因为昨天havp不知为何系统进程不见了,导致今天网络不能访问,重新启动了一下havp就可以了。也没有在havp的错误日志中发现原因,但clamav的freshclamav.log中却出现了连续几天的错误,如下:
##### 起初是升级完全成功的
--------------------------------------
ClamAV update process started at Wed Jul 25 12:13:25 2007
WARNING: Your ClamAV installation is OUTDATED!
WARNING: Local version: 0.90.3 Recommended version: 0.91.1
DON'T PANIC! Read http://www.clamav.net/support/faq
main.inc is up to date (version: 44, sigs: 133163, f-level: 20, builder: sven)
Downloading daily-3741.cdiff [100%]
Downloading daily-3742.cdiff [100%]
Downloading daily-3743.cdiff [100%]
Downloading daily-3744.cdiff [100%]
Downloading daily-3745.cdiff [100%]
Downloading daily-3746.cdiff [100%]
Downloading daily-3747.cdiff [100%]
Downloading daily-3748.cdiff [100%]
Downloading daily-3749.cdiff [100%]
Downloading daily-3750.cdiff [100%]
Downloading daily-3751.cdiff [100%]
Downloading daily-3752.cdiff [100%]
Downloading daily-3753.cdiff [100%]
Downloading daily-3754.cdiff [100%]
Downloading daily-3755.cdiff [100%]
Downloading daily-3756.cdiff [100%]
Downloading daily-3757.cdiff [100%]
Downloading daily-3758.cdiff [100%]
Downloading daily-3759.cdiff [100%]
daily.cvd updated (version: 3759, sigs: 7071, f-level: 16, builder: ccordes)
Database updated (140234 signatures) from db.cn.clamav.net (IP: 58.221.253.171)
##### 后来就逐渐出现错误提示,到最后全部增量更新都出现相同错误
--------------------------------------
ClamAV update process started at Tue Aug 7 00:00:00 2007
WARNING: Your ClamAV installation is OUTDATED!
WARNING: Local version: 0.90.3 Recommended version: 0.91.1
DON'T PANIC! Read http://www.clamav.net/support/faq
main.inc is up to date (version: 44, sigs: 133163, f-level: 20, builder: sven)
Downloading daily-3864.cdiff [100%]
Ignoring mirror 58.221.253.171 (too often connections with outdated version)
ERROR: getpatch: Can't download daily-3865.cdiff from db.cn.clamav.net
Ignoring mirror 58.221.253.171 (too often connections with outdated version)
Trying host db.cn.clamav.net (61.129.251.119)...
Downloading daily-3865.cdiff [100%]
Ignoring mirror 61.129.251.119 (too often connections with outdated version)
ERROR: getpatch: Can't download daily-3866.cdiff from db.cn.clamav.net
Ignoring mirror 58.221.253.171 (too often connections with outdated version)
Ignoring mirror 61.129.251.119 (too often connections with outdated version)
Trying host db.cn.clamav.net (221.6.197.162)...
nonblock_connect: connect timing out (30 secs)
Can't connect to port 80 of host db.cn.clamav.net (IP: 221.6.197.162)
Trying host db.cn.clamav.net (58.221.222.66)...
nonblock_connect: connect timing out (30 secs)
Can't connect to port 80 of host db.cn.clamav.net (IP: 58.221.222.66)
ERROR: getpatch: Can't download daily-3866.cdiff from db.cn.clamav.net
nonblock_connect: connect timing out (30 secs)
Can't connect to port 80 of host db.cn.clamav.net (IP: 221.6.197.162)
Trying host db.cn.clamav.net (58.221.222.66)...
nonblock_connect: connect timing out (30 secs)
Can't connect to port 80 of host db.cn.clamav.net (IP: 58.221.222.66)
Ignoring mirror 58.221.253.171 (too often connections with outdated version)
Ignoring mirror 61.129.251.119 (too often connections with outdated version)
ERROR: getpatch: Can't download daily-3866.cdiff from db.cn.clamav.net
WARNING: Incremental update failed, trying to download daily.cvd
nonblock_connect: connect timing out (30 secs)
Can't connect to port 80 of host db.cn.clamav.net (IP: 221.6.197.162)
Trying host db.cn.clamav.net (58.221.222.66)...
nonblock_connect: connect timing out (30 secs)
Can't connect to port 80 of host db.cn.clamav.net (IP: 58.221.222.66)
Ignoring mirror 58.221.253.171 (too often connections with outdated version)
Ignoring mirror 61.129.251.119 (too often connections with outdated version)
ERROR: Can't download daily.cvd from db.cn.clamav.net
Trying again in 5 secs...
不知道您是否遇到过这样的错误,我在clamav的网站查了一下,有人说将clamav的database目录下的mirror.dat删除再重新执行更新就可以了,但我试了,问题依然存在。我是用cronjob来执行升级的,而不是dameon模式,也正在考虑是否要升级一下clamav就可以解决问题。
最后,祝时时开心!
Posted by: clon at 2007年08月07日 16:31
在havp的error.log中找到了如下错误:
07/08/2007 00:09:36 ClamAV: Could not reload database: Unable to lock database d
irectory
07/08/2007 00:09:36 FATAL: Library Scanners failed database reload, stopping HAV
P!
确实是clamav产生错误将havp终止,但不明白clamav升级失败为什么会出现无法reload的问题,我觉得升级失败不应该影响到正常使用才是啊。
Posted by: Anonymous at 2007年08月07日 16:44
在havp的error.log中找到了如下错误:
07/08/2007 00:09:36 ClamAV: Could not reload database: Unable to lock database d
irectory
07/08/2007 00:09:36 FATAL: Library Scanners failed database reload, stopping HAV
P!
确实是clamav产生错误将havp终止,但不明白clamav升级失败为什么会出现无法reload的问题,我觉得升级失败不应该影响到正常使用才是啊。
Posted by: clon at 2007年08月07日 16:44
我最近也遇過類似的問題, 不過已經忘了是怎麼回事 :P
只記得做了幾件事:
1. 移除 clamav 相關的 rpm 套件 (我原是以 yum 安裝)
2. 以 tarball source 安裝最新版 clamav
3. 下載最新版 havp, 重新編譯安裝
然後就什麼都正常了... :>
Posted by: Jamyy at 2007年08月07日 22:42
哦,看来我也该uninstall掉它,换上新版本算了,呵呵。
Many thanks!
Posted by: clon at 2007年08月08日 09:23
hi,Jamyy.
你有试过同时使用多个virus scanners进行查毒么?不知道这样子性能是否有很大改善呢?
Posted by: clon at 2007年08月14日 10:35
我有試過 clamav + trophie (trend micro)
這樣子防毒的效果應該會好一點
不過掛上越多掃毒套件, 系統負載也會加重
若真要做多重掃毒, 我覺得頂多二至三種就可以了
Posted by: Jamyy at 2007年08月14日 10:45
嗯,受教,呵呵。
Posted by: clon at 2007年08月14日 12:55
Jamyy,您好!
我想启动havp,但/etc/init.d/havp start启动不了。
通过下面的方法启动,但又提示这个错误,方便指点一下吗?谢谢!
[root@dns init.d]# /usr/local/sbin/havp
Starting HAVP Version: 0.86
Could not create server (already running?)
Exiting..
对了,我的havp是用tar.tar包安装的,应该是选择后者启动吧。
Posted by: angel at 2007年08月24日 02:57
很可能是已經有其他 daemon 正在監聽 tcp 8080 port
可用 netstat -ntulp | grep 8080 查看
若要改 havp 的 port, 請編輯 havp.config, 以 PORT 參數設定
Posted by: Jamyy at 2007年08月24日 10:05
Jamyy,您好!
我使用了havp+squid 最近发现 /var/tmp/havp 又开始的几十慢慢变成了48M 一直在增加,请问怎么让他自动变小。
什么原因不能自动调节大小
Posted by: Anonymous at 2007年09月14日 10:18
Jamyy,您好!
我使用了havp+squid 最近发现 /var/tmp/havp 又开始的几十慢慢变成了48M 一直在增加,请问怎么让他自动变小。
什么原因不能自动调节大小
Posted by: likeyou at 2007年09月14日 10:19
您好,
我觀察的結果是: /var/tmp/havp 只會暫存正在下載中的檔案, 當檔案下載完畢, 幾秒鐘後即自動刪除
只有少部份的檔案會莫名其妙的留下來, 而且大部份是只有 1 byte 的小檔案
不曉得 temp file 成長的問題會不會和 HAVP 的版本有關, 也許用新的版本比較不會有暫存檔快速成長的問題
如果要讓系統自動刪除舊的暫存檔, 可以排程以下指令:
find /var/tmp/havp -type f -ctime +3 | xargs rm -f
讓系統定時刪除三天前的暫存檔
Posted by: Jamyy at 2007年09月14日 17:07
Jammy 您好.
小弟安裝完ClamAV之後,再安裝HAVP,編譯時碰上問題
./configure之後停在下面訊息
checking for C++ compiler default output file name... configure: erroe: C++ compiler cannot create executables
See `config.log' for more details
於是小弟查看config.log檔案 , 最後ㄧ行為
configure: exit 77
小弟試過0.85-0.86-0.82都是一樣的訊息,不曉得問題在哪呢?
還請Jammy指教~ 感謝!!
系統:Fedora core 6 , 2.6.18-1.2798.fc6
Posted by: JaKson at 2007年09月24日 19:40
JaKson 您好,
這是因為缺少 C++ 編譯器所致
請執行 yum install gcc-c++
安裝 gcc-c++ 套件後就能解決 configure: error: C++ compiler cannot create executables 的問題
Posted by: Jamyy at 2007年09月24日 21:50
Jammy 您好.
感謝您的指導~ 小弟已經解決編譯問題!
努力嘗試安裝中^^
小弟也在學習Linux中,也將心得紀錄在我的網站
雖說非常基本,但..萬事起頭難~ 希望早點度過難關~ ^^
Posted by: JaKson at 2007年09月24日 22:20
Jammy 您好.
不好意思,小弟又有問題想請教.
如上教學"vi /etc/ld.so.conf --> 加入: /usr/local/lib"說的是否是這樣呢?
include /usr/local/lib
因小弟碰上兩個問題.
1./etc/init.d/下並無havp的執行檔,是否沒有安裝好呢?
2.因找不到執行檔,小弟用whereis havp尋找執行檔
找到 /usr/local/sbin/havp /usr/local/etc/havp
於是小弟執行 /usr/local/sbin/havp , 但出現如下錯誤:
/usr/local/sbin/havp &
/usr/local/sbin/havp: error while loading shared libraries: libclamav.so.2: cannot open shared object file: No such file or ...
小弟使用0.86的版本,還請Jammy不吝指教..感謝!!
Posted by: JaKson at 2007年09月24日 23:27
JaKson 您好,
1. /etc/ld.so.conf 裡面應加入一行: /usr/local/lib, 不需要 "include" 這個字. 請將 "include" 刪除後, 再執行一次 ldconfig, 以解決 error while loading shared libraries: libclamav.so.2 的問題
2. 請到原始碼路徑: havp-0.86/etc/init.d/ 找找看, 應該會有一個 havp 檔案, 將它複製到 /etc/init.d/ 即可
Posted by: Jamyy at 2007年09月25日 10:22
Jammy 您好.
兩個問題解決嚕~ 感謝您的指導!
只是又碰到上面大大碰到同樣的問題!
Starting HAVP ...
Starting HAVP Version: 0.82
One or more scanners failed to initialize!
Check errorlog for errors.
Exiting
嘗試解決中! ^^ 另外,感謝Jammy熱心的回答~
Posted by: JaKson at 2007年09月25日 22:22
Jammy 您好.
目前小弟仍無法解決以下問題
Starting HAVP ...
Starting HAVP Version: 0.86
One or more scanners failed to initialize!
Check errorlog for errors.
Exiting
嘗試過修改下列兩種方式之後,啟動havp
ENABLECLAMLIB true
CLAMDBDIR /usr/local/share/clamav
ENABLECLAMD true
CLAMDSOCKET /tmp/clamd
也嘗試過重新再安裝ㄧ遍havp,也有出現
ckecking for ClamAV scanner libary.. found 0.91.2 in /usr/local
結果看Log內容都是寫
No scanners are enable in config!
不曉得哪裡問題出在那裡呢? 還請Jammy指教! 感謝!
Posted by: JaKson at 2007年09月25日 23:57
JaKson 您好,
1. ENABLECLAMLIB 和 ENABLECLAMD 只需擇一使用
2. Log 出現 "No scanners are enable in config" 表示沒有指定使用哪種掃毒引擎, 請檢查 ENABLE 開頭的參數設定:
cat /usr/local/etc/havp/havp.config | grep -v "#" | grep -v "^$" (列出非註解的內容)
Posted by: Jamyy at 2007年09月26日 10:29
Jammy您好.
感謝您耐心的指導菜鳥的安裝..
以上大大碰到的問題小弟通通碰到哩..再加上經驗不足.
實在是讓Jammy大大費心了
上面的問題是小弟打錯字..打成ture..抱歉!
目前已經完全安裝完畢 , 再來就得測試看看^^
另外請教大大.
### 使用 RAM Disk 處理暫存檔案可獲得最佳效能
TEMPDIR /path/to/ramdisk
這項設定是否不能在虛擬機器中(VMware)啟動呢?小弟依照這樣的設定也會出現上面大大出現的問題
Cant`t create temporary directory /path/to/ramdisk
還請大大賜教~ 感謝!!
Posted by: JaKson at 2007年09月26日 19:15
Jammy您好.
感謝您的耐心指導
小弟已經架設成功! 再來要嚐試看看運作起來的效能如何~
大大不曉得有何建議對於提昇效能的部份.
當然,上面的以RAM來當暫存空間~ 應該也是很好的方法
除此之外,是否還有其它方式能提高效能呢?
還有,大大提到可以設定這樣的方式來提高效能
SERVERNUMBER 40
MAXSERVERS 200
這樣的數據代表什麼意思呢? 若我用C2.4 512DDR 40G這樣的配備,是否有比較適合的設定呢?
Posted by: JaKson at 2007年09月27日 00:11
JaKson 您好,
恭喜你架設成功
SERVERNUMBER 表示 havp 啟動時會產生幾個子程序, 程序越多越能處理更多的資料; MAXSERVERS 則是允許子程序最多延展到多少個
SERVERNUMBER 8 是官方建議的家用值, 若是 500 人的公司則建議 SERVERNUMBER 40
一個 havp 子程序約使用 3.3MB 記憶體空間, 每次啟動時的程序數量 = SERVERNUMBER * 2 + 1
以預設值 SERVERNUMBER 8 為例, havp 啟動後即佔用 (8 * 2 + 1) * 3.3 = 56.1 (MB)
所以記憶體是 havp 效能的關鍵, 至於要怎麼設定就要看您的需求了
本篇所提到的效能相關設定值, 皆參考自 havp.config 的註解說明, 有興趣的話可以研究看看
Posted by: Jamyy at 2007年09月27日 09:53
Jammy 您好.
感謝您的回答 , 小弟大概了解如何配置比較好了!
Posted by: JaKson at 2007年09月27日 19:50
Jammy 您好.
能否請教您,HAVP不支援HTTPS,意指https開頭的網址都不掃描嗎?
另外,HAVP支援FTP的掃描,但如何設定呢?
另外,HAVP是否只支援HTTP,FTP的閘道掃描功能,若我想在閘道這邊安裝支援掃描POP3,SMTP等功能的封包掃描,Jammy是否有什麼建議呢?
最後ㄧ個小問題,HAVP是否就是Porxy Server呢?為何時常看到HAVP+SQUID之類的搭配呢?或者~HAVP只是一個轉接器?
Posted by: JaKson at 2007年10月01日 23:21
JaKson 您好,
1. 是的, HTTPS 傳輸的資料都不掃描.
2. 編輯 havp.config, 啟用 PARENTPROXY 設置 (詳見 havp.config 裡面的註解), 若 havp 非 transparent proxy, client 瀏覽器須確認 FTP 傳輸亦使用 havp proxy.
3. HAVP 全名 HTTP Antivirus Proxy, 它的用途已明顯表示. 郵件的防毒可參考 MailScanner (http://cha.homeip.net/blog/archives/2005/01/sendmail_mailsc.html)
4. HAVP 本身就是 HTTP Proxy, 可單獨使用. 如 2. 所提即是一種 havp 必須搭配其他 proxy 的情況. 此外, HAVP 僅專攻掃毒, 並不像 squid "專業" 於 "代理伺服器" 功能(如: 規則設置、cache 頁面) 兩者合用則能互補有無.
Posted by: Jamyy at 2007年10月02日 09:35
Jammy 您好.
想請教您.您說的啟用PARENTPROXY是否ㄧ定要架設Squid呢?
因為小弟實在看不太懂註解說明的意思..英文不太好 ><!
小弟將其設定成
PARENTPROXY 192.168.1.1
PARENTPORT 80
這樣設定是否正確呢?因為小弟並未架設Squid,所以欲設3128我想說應該要設定成現在使用的80 port
但結果當然是無法上網..出現下列訊息
HAVP
The following server is down
Parentproxy down
還請Jamyy大大不吝指教~ 感謝!!
Posted by: JaKson at 2007年10月04日 00:40
JaKson 您好,
沒錯, PARENTPROXY 一定要是 squid 之類的 proxy server 才行. 如果是在本機安裝 squid, 可在 havp.config 設定成:
PARENTPROXY localhost
PARENTPORT 3128
Posted by: Jamyy at 2007年10月05日 00:16
Jammy 您好.
感謝您的指教~ 小弟已經架設成功
但小弟連去eicar - Anti-Virus test file的網站
將測試病毒檔下載至自己的FTP當做測試
使用IE瀏覽器打開並下載該測試病毒檔
但並未發現防毒牆有檔下的動作呢
另外請教大大,掃FTP病毒是不是只會掃FTP://開頭瀏覽器登入方式的才會掃呢?若是利用FTP連線軟體登入的,使否會掃描呢?
能否請Jammy指教~ 感謝!!
Posted by: JaKson at 2007年10月06日 21:06
JaKson 您好,
只要透過 HAVP 連線的 FTP 傳輸都可以讓 HAVP 掃病毒
也就是說, 不管是 IE、Firefox 或 CuteFTP... 當這些軟體設定 FTP Proxy 使用 HAVP 這個 Proxy Server 時, 就能被掃毒
Posted by: Jamyy at 2007年10月08日 11:47
Jammy 您好.
感謝這些日子大大的指導~ 讓小弟又多認識了這樣的防毒系統
若大大不嫌棄~ 也可到小弟的站看看~ 或許有您想找的資料也不一定^^ ~ 感謝
Posted by: JaKson at 2007年10月08日 19:42
Jammy 您好.
架設完畢HAVP+Squid+Clamav之後 , 我持續抱持著懷疑得態度針對我的FTP防毒部份.. 我把eicar - Anti-Virus test file 的測試病毒檔下載 , 放到FTP上來測試下載 , 用FTP://與cuteftp連線測試 , 但居然是連測試用病毒也沒有被HAVP找出來.. 小弟百思不得其解,上網找了找相關資料,看了access.log與error.log檔..但找不出方法看出是否有什麼地方能紀錄檔下病毒的紀錄 , 能否請Jammy大大給予指教呢?
Posted by: JaKson at 2007年10月13日 23:22
耐心的Jamyy, :P
Posted by: clon at 2007年10月16日 13:55
CuteFTP Pro 8.0 (英文版) 設定 Proxy 的方法:
Tools → Global Options → Connection → Proxy Server
1. 使用 IE 的 Proxy 設定 (Use network connection proxy settings from
Internet Explorer)
2. 自行設定 (Use the hightlighted proxy connection): Add → Host name:
havp 主機 ip、Port: 8080、Proxy type: HTTP
(以上二種方式擇一使用)
如果下載的檔案帶有病毒, 會出現 403 Forbidden 的錯誤訊息
IE 的 Proxy 設定方法:
工具 → 網際網路選項 → 連線 → 區域網路設定 → [勾選] 在您的區域網路使用 Proxy 伺服器, 網址: havp 主機 ip, 連接埠: 8080
連入 FTP 後, 若是類似檔案總管的畫面 (檔案以 icon 圖示呈現), 下載的檔案如果帶有病毒, 檔案內容將變成 havp 警告畫面的 HTML 描述 (用 notepad 打開來看就知道了)
如果連入 FTP 的畫面是超連結的文字畫面, 點選帶有病毒的檔案時, 才會出現 havp 警告畫面
Posted by: Jamyy at 2007年10月17日 00:11
Jamyy 您好:
不好意思..把您的名子打錯
先感謝您耐心的指導~ 讓菜鳥小弟學習不少 ^^
小弟目前碰上一個很奇怪的問題
小弟原本有設定
iptables -t nat -A PREROUTING -p tcp -s 192.168.11.0/24 --dport 80 -j REDIRECT --to-port 8080
使用上正常
小弟在設定防火牆規則後 , 有到測試網頁測試 , 有擋下病毒!
但若是將此行從防火牆拿掉 , 手動在瀏覽器加入192.168.11.1與8080 port , 卻出現
The request is unknown:
Invalid request
於是小弟先將防火牆規則先加上 , 並且依照Jamyy大大的說明加入CuteFTP裡 , 但ㄧ連線到FTP就出現403 Forbidden 的錯誤訊息,小弟心想或許是HAVP與Squid之間ㄉ聯繫可能有問題,於是將連接埠改成3128後,就可以登入FTP,但這樣卻沒有經過HAVP的防毒功能..至於IE部分不管是8080或是3128都可以進入FTP,但仍沒有擋下病毒
病毒部份,小弟使用 eicar_com.zip 這個檔 , 因為執行檔馬上會被防毒砍掉 , 所以用官方測試的這ㄍ檔案
另外,小弟心想,既然HTTP可以利用REDIRECT的方式轉Port,將80轉到8080~那FTP是否也行?若是可行~以下語法是否正確呢?
iptables -t nat -A PREROUTING -p tcp -s 192.168.11.0/24 --dport 21 REDIRECT --to-port 8080
Posted by: JaKson at 2007年10月17日 20:00
JaKson 您好,
沒關係, 嚴格來說錯的應該是我自己, 很久以前因為某些原因, 取了 "Jamyy" 這個名字 (其實應該是 "Jamii"), 就一直用到現在...
回歸正題, 出現 "Invalid request" 是因為 havp.config 設定了 "TRANSPARENT true" (啟用透明代理模式), 又在 client browser 設定 proxy 指向 havp 才會造成這種情況
FTP 無法應用在 transparent proxy
所以最好把架構變更為 "HAVP is parent proxy" 的模式, 也就是 client → squid → havp
這樣一來, 就算 squid 啟用 transparent proxy, client 想直接使用 squid 的 3128 port 或 havp 的 8080 port 都沒問題, 而且不管走哪個 proxy 的 port 都能防毒
Posted by: Jamyy at 2007年10月18日 14:08
Jamyy您好:
小弟依照大大指示將HAVP當作parent proxy
並且將client port指向3128
並且修改squid.cconf 加入以下設定
================================================
cache_peer 127.0.0.1 parent 8080 0 no-query no-digest no-netdb-exchange default
cache_peer_access 127.0.0.1 allow all
#Only http traffic can be scanned
acl Scan_HTTP proto HTTP
never_direct allow Scan_HTTP
================================================
實際上測試..好像並沒有轉到8080 , 因為實際上測試病毒網頁時並未檔下病毒
所以小弟直接將瀏覽器的port自己手動加上8080的porxy來測試,卻可以擋下病毒
不曉得小得哪裡有設定錯誤ㄋ?還請大大不吝指教~
另外..奇怪,上次看到大大ㄉ熱心回答,大致內容有回答到要小弟使用HAVP當作pareny proxy,但今天看..此文章卻消失嚕~@@"
Posted by: JaKson at 2007年10月29日 23:54
JaKson 您好,
squid.conf 修改完畢後, 請記得執行 /etc/init.d/squid reload 重新讀取設定檔, 才會生效哦!
havp 當 parent proxy 的回答內容就是上一篇呀? ^^'
Posted by: Jamyy at 2007年10月30日 09:13
Jamyy您好:
小弟參考 鳥哥的squid架設方式 , 使用
/usr/local/squid/sbin/squid -k reconfigure
這行指令的方式來重新讀取squid設定值
但.. 好像仍是無法將squid轉到havp呢
另外 , 小弟將
http_port 3128
設定成
http_port 3128 transparent
不曉得是否正確呢? 因為小弟使用squid-2.6.STABLE16版本
還有..因為小弟對squid的了解甚淺,或許是小弟的squid設定有誤,所以做很了多嘗試..
1.將http_port 3128加上transparent , 這樣小弟使用squid來上網才能上 , 這樣的意思是squid是透明代理伺服器嗎?
2.小弟設定squid.conf
================================================
cache_peer 127.0.0.1 parent 8080 0 no-query no-digest no-netdb-exchange default
cache_peer_access 127.0.0.1 allow all
#Only http traffic can be scanned
acl Scan_HTTP proto HTTP
never_direct allow Scan_HTTP
================================================
將其127.0.0.1改成192.168.11.1內部ip或是 localhost..經過病毒網頁測試,也都沒有檔下病毒,好像也仍是沒有經過HAVP的防毒功能
小弟不才..感謝大大的熱心指導.. 麻煩大大給予小弟指教!
ps:原來我在家沒有看到上一篇您打ㄉ文章..到公司就看到嚕..@@
Posted by: JaKson at 2007年10月31日 13:28
1. 當代理伺服器為透明代理模式時 (transparent proxy), client 端的使用者不需要在其瀏覽器設定 proxy 的 ip 與 port, 在上網的同時, 就會被透明代理伺服器作用, 但前提是使用者的預設閘道 (default gateway) 指向 transparent proxy 所在的那台機器.
例如: Server A 安裝了 squid, 啟用透明代理, 並設置 iptables 轉 port (client 目的為 80 port 時, 自動轉到本機的 3128 port), 而 client pc 的 default gateway 指向 Server A, 這樣一來, 只要 gateway 是 Server A 的 client pc 上網時都會被 "透明代理".
squid 2.6 在透明代理的設置上比 2.5 版簡化很多, 只要在 http_port 3128 後面接上 transparent 就行了 (詳見: http://cha.homeip.net/blog/archives/2005/06/linux_nat_squid.html)
2. 這組設定的位置似乎對執行效果有影響.. 若把它置於 acl all 0.0.0... 之前, 因為 "all" 尚未定義, 會發生錯誤; 若把它置於 squid.conf 的最底下, 會發生無法轉向 parent proxy 的問題. 我把它放在 acl all 0.0.0... 的下一行, 這樣子是可行的, 您也可以試試看.
(如果 havp 和 squid 是在同一台機器上, 用 127.0.0.1 就行了)
我在 fedora 7 + squid 2.6.stable16 + havp 0.86 測試的結果是正常的, 也許您的問題只是 cache_peer... 那串的位置不對而已, 再請您試試看吧
Posted by: Jamyy at 2007年10月31日 17:15
Jamyy您好:
感謝大大的指導~
小弟在公司依照大大的設定方法,已經順利架設成功
Clinet->Squid->HAVP->Internet
測試網頁也可擋下病毒,但有一點仍是有點困擾
FTP仍然無檔下病毒,因為小弟測試FTP病毒,是將測試網頁的病毒下載下來,放到小弟ㄉFTP上面下測試,檔名為eicar.com
ftp://220.135.189.86/Upload/eicar.com
user qwer5678
小弟也將瀏覽器設定proxy 3128 or 8080測試FTP下載病毒檔,仍沒有檔下病毒@@
或是大大有可以測試病毒檔案的FTP可供測試呢?
還請Jamyy大大指教~ 謝謝^^
Posted by: JaKson at 2007年11月01日 18:36
JaKson 您好,
今天測試您的問題的時候, 發現了一個重點... 若要 HAVP 支援 FTP 防毒, HAVP 的角色不能是 PARENT PROXY
也就是說, 之前的架構要整個換過來... 變成:
Client User → HAVP(:8080) → Squid(:3128) → Internet
瀏覽器裡的 Proxy Server 設定要指向 HAVP 的 8080 Port
這樣才能達到網頁、FTP都能防毒的作用
不好意思, 之前不知道為什麼一直沒發現這個問題, 害您在這個問題一直打轉 :P
Posted by: Jamyy at 2007年11月02日 16:50
Jamyy您好:
感謝大大熱心指導,小弟近來比較忙一點
比較沒有空回覆,還請見諒 @@
若是以HAVP當Parent,似乎又回到老問題ㄌ呢!
不過..待小弟詳細測試後再請教大大~ ^^
Posted by: JaKson at 2007年11月12日 09:14
JaKson 您好, 以下是我的實驗結果:
1. HAVP 設置 PARENTPROXY 參數時, 才支援 FTP 掃毒.
2. [IE] 在 "FTP 啟用資料夾檢視" 的模式下拖拉 FTP 檔案, 並不會被 HAVP 掃毒 (上傳或下載都一樣)
3. [IE] 在 "FTP 啟用資料夾檢視" 的模式下開啟 (雙擊) 帶有病毒碼的檔案後, 會被 HAVP 攔截, 出現 HAVP 警告畫面; 此時再以拖曳的方式下載開啟過的檔案, 檔案內容會變成 HAVP 的 HTML 警告畫面
4. [IE] 在關閉 "FTP 啟用資料夾檢視" 功能時, HAVP 能正常發揮防毒效果, 唯無法透過瀏覽器上傳檔案.
5. [CuteFTP] 只能瀏覽根目錄裡的檔案, 下一層目錄裡的檔案完全看不到.
6. [CuteFTP] 只能下載根目錄裡的檔案, 且可被 HAVP 掃毒, 下載後檔案大小為 0
7. [CuteFTP] 不能上載檔案.
HAVP 是 HTTP Proxy, 請不要強求它的 FTP 防毒功能
若要專業的 FTP Proxy 請到 sourceforge.net 或 freshmeat.net 找尋
Posted by: Jamyy at 2007年11月13日 09:18
在下於公司安裝HAVP半年多來,陸續有些小問題,有些是因為domain name 含有底線,在FreeBSD的gethostbyname會查不到IP;有些是下載檔案會卡住必須加到whitelist。
但今天同仁反應此網站連不上,卻完全查不出原因。
http://www.fubonlife.com.tw
與各位分享在下的經驗。
Posted by: 鳥毅 at 2007年11月15日 14:34
這真是個有趣的狀況, 也許是 HAVP 本身的 Bug 所致吧
我已經把整個溝通的封包存檔 ftp://cha.homeip.net/tcpdump.save
有興趣的朋友可以研究看看 :)
tcpdump 讀取方法: tcpdump -X -nn -r /path/to/tcpdump.save
10.2.0.3 -- IE Browser (target URL: http://www.fubonlife.com.tw/)
10.2.0.18 -- HAVP:8080
203.75.56.132 -- www.fubonlife.com.tw
實驗結果:
1. Clone 該網頁 (HTML), IE 透過 HAVP 瀏覽這個複製的網頁沒問題
2. IE 透過 HAVP 瀏覽 http://www.fubonlife.com.tw/images/ 是正常的
3. telnet 直接連線送出 request (get /default.asp http/1.1) 可正常獲取回應, 但透過 HAVP (transparent) 就發生一樣的問題, 此時 tcpdump 所截錄的狀況和 IE 是一樣的
Posted by: Jamyy at 2007年11月16日 16:10
Jamyy大哥,您好:
我已经按照您的文章架设成功,但是对ClamAV的防毒效果不是很放心,能不能介绍一下卡巴斯基,nod的使用方法.
万分感谢!
Posted by: fxz at 2007年11月22日 15:17
fxz 您好,
其實並沒有一套防毒軟體可以達到 100% 防毒, 如果您對 clamav 沒信心, 可再加上 trophie (trend micro) havp 可同時使用這兩套來掃毒, havp + trophie 請搜尋本頁面: "下載 Trophie"
您提到的 kaspersky 與 nod 都不是免費的軟體, 所以很抱歉, 我並不打算對它們進行研究 :P
Posted by: Jamyy at 2007年11月23日 10:53