分類

近期留言

使用 Clamav + HAVP 實現 HTTP 防毒

安裝 HAVP

一、 說明
HAVP 是 HTTP Anti Virus Proxy 的縮寫,此套軟體follow GPL精神可以免費安裝使用。
此軟體可以與數種防毒軟體結合,針對HTTP資料傳輸進行即使掃瞄,將病毒攔截在Server上。
HAVP官網URL:http://www.server-side.de/


二、 環境
OS的部份採用 FreeBSD 6,防毒軟體則採用免費的Clamav,再搭配Squid Proxy,將 Squid傳回的網頁掃瞄後再決定是否放行。
特別留意Clamav是套免費的防毒軟體,只能針對有無病毒進行掃瞄,一旦發現病毒時,並無解毒功能。

三、 安裝方式
在freeBSD上可以直接採用port方式安裝,安裝步驟如下:
1. # sudo su 為 root
2. # cd /usr/ports/www/havp
3. # make config 進行config,config 的過程中必須在Enable SSL Proxying及Enable libclamav Support兩個選項中打V,才可以將SSL也forward,及支援使用Clamav掃瞄。

4. # make ; make install
5. 編輯 /usr/local/etc/havp/havp.conf 檔案, 修改以下內容:

### 註解以下這行,才會讓設定生效
#REMOVETHISLINE deleteme

### ClamAV Library Scanner (libclamav) → 由 HAVP 直接取用ClamAV 的病毒資料庫
ENABLECLAMLIB true

### ClamAV Socket Scanner (clamd) → 交由 clamd 掃毒 (須先啟動 clamd), 以上兩者擇一使用即可
ENABLECLAMD true
CLAMDSOCKET /tmp/clamd

### 因為使用 Squid Proxy, 所以在此不做通透
TRANSPARENT false

### 顯示自定義的樣版,一旦發生錯誤時會顯示該網頁
TEMPLATEPATH /usr/local/etc/havp/templates/en

### 理論上越多的執行緒效能效能越好,但仍需視伺服器資源而定
SERVERNUMBER 40
MAXSERVERS 400

### LOG_OKS 設成 false,只記錄發現病毒的log,否則log檔會太大
LOG_OKS false

### 只記錄 error log。較少的 Log 記錄可減輕伺服器負擔
LOGLEVEL 0

### 使用 RAM Disk 處理暫存檔案可獲得最佳效能(參考效能調整)
TEMPDIR /ramdisk

### 不對圖片檔掃毒, 可減輕 CPU 負擔
SCANIMAGES false

6. 編輯 /etc/rc.conf 檔案, 新增一行:
havp_enable=”YES”
這樣 havp 就會在系統開機時自動啟動。
7. 都設定好後可以先手動啟動havp:
# /usr/local/etc/rc.d/havp
啟動時會看到如下訊息,代表啟動成功:
Starting havp.
Starting HAVP Version: 0.89
Mandatory locking disabled! KEEPBACK settings not used!

8. Squid 的部份則必須在設定檔 /usr/local/etc/squid/squid.conf 增加如下設定:
acl all src 0.0.0.0/0.0.0.0
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
9. 設定好後重新載入squid 設定檔:
# /usr/sbin/squid –k reconfigure

四、 效能調整
修改 /etc/fstab 檔案,使用256MB 的ramdisk增加掃瞄效率。
md /ramdisk mfs rw,noatime,-s256M 0 0

原2009/01/04發表於UnixCafe

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>