DansGuardian

dansguardian能真正實現內容過濾,不僅能過濾網站,URL,還能過濾網頁裏包含的一些詞、還有mime類型等。DansGuardian中有一些鑑別文檔,類似黑白名單,可以向相應的文檔裏輸入所要控制的相應內容,再重啓DansGuardian即可生效。

工作原理:

dansguardian默認監聽8080端口,默認的squid代理端口爲3128,dansguardian將得到的http請求轉發給squid,然後再從squid將響應轉發給用戶,在這個過程中進行過濾。

安裝過程:

1) tar -zxvf dansguardian-2.6.1-13.source.tar.gz

2) cd dansguardian-2.6.1

3) ./configure

4) make

5) make install

安裝完成後,在啓動之前可以編輯/etc/dansguardian/dansguardian.conf

同時加上iptables規則:

iptables -t nat -A PREROUTING -s 192.168.0.xxx/32 -i eth1 -p tcp --dport 80 -j REDIRECT --to-dports 8080

啓動dansguardian:

1) 手工啓動:service dansguardian start

2) 系統啓動:chkconfig dansguardian on

配置文件:

dansguardian配置文件默認路徑:/etc/dansguardian

相關配置文件如下:

bannedextensionlist -- 禁止的文件擴展名列表

bannediplist -- 禁止的ip訪問列表

bannedmimetypelist -- 禁止的mime類型列表

bannedphraselist -- 禁止的關鍵字列表(整個頁面)

bannedregexpurllist -- 禁止帶有關鍵字的url列表

bannedsitelist -- 禁止域名列表(域名下所有的網頁)

bannedurllist -- 禁止域名下的部分網頁

banneduserlist -- 禁止代理認證中的用戶

contentregexplist -- 關鍵字替換列表

dansguardian.conf -- dansguardian的配置文件

exceptioniplist -- ip白名單,不過濾

exceptionphraselist -- 關鍵字白名單

exceptionsitelist -- 站點白名單

exceptionurllist -- url白名單

exceptionuserlist -- 用戶白名單

logrotation -- 自調用文件

messages -- 用於頁面顯示哪種阻止信息,在dansguardian.conf中調用

phraselists -- 是供weightedphraselist等調用的文件夾

pics/ -- PICS過濾

template.html -- dansguardian的阻止頁面信息

weightedphraselist -- 短語權重列表


# DansGuardian.conf
# 拒絕 Web 訪問報告
# -1 = 做日記但不阻止-祕密模式
# 0 = 只是說"拒絕訪問"
# 1 = 報告爲什麼但是不報告什麼關鍵詞阻止
# 2 = 完全報告
# 3 = 用 HTML 模式文件(突略拒絕訪問地址)-推進
reportinglevel = 3
# 全局語言貯存的語言目錄,只是用於reportinglevel=3時的HTML模式,
# 當被用,DansGuardian 將用html文件代替用perl cgi腳本來顯示,這個
# 選項更快更清晰更容易讓訪問者訪問被阻止的頁面
# 語言文件用於沒有問題的任何設置
languagedir = '/etc/dansguardian/languages'
# 從語言目錄中運用的語言
language = 'ukenglish'
# 日記設定
# 0 = none 1 = just denied 2 = all text based 3 = all request
loglevel = 2
# 記錄擴展命中
# 記錄如擴展(用戶、ip、URL、關鍵詞)匹配因此讓這個頁面通過,非常有用於診斷
# 怎樣的站點可以通過過濾器
# on | off
logexceptionhits = on
# 日記文件格式
# 1 = DansGuardian format 2 = CSV-style format
# 3 = Squid Log File Format 4 = Tab delimited
logfileformat = 1
# 本地日記文件
# 定義日記目錄和文件名
loglocation = '/var/log/dansguardian/access.log'
# 網絡設置
# DansGuardian 偵聽的IP。保留空着DansGuardian將偵聽所有的IPs。
# 通常你都會讓你的防火牆保護這些,但是當你只是限制1個IP,單單時一。
filterip =
# DansGuardian 偵聽的端口
filterport = 8080
# 代理服務器的IP(缺省是環回網卡ip-i.e. 這是服務器)
proxyip = 127.0.0.1
# DansGuardian 連接到代理服務器的端口
proxyport = 3128
# accessdeniedaddress是cgi dansguardian 報告腳本的web服務器的地址被拷貝
# 如果你不用到cgi就不要更改缺省
accessdeniedaddress = 'http://YOURSERVER.YOURDOMAIN/cgi-bin/dansguardian.pl'
# 非標準分隔符(僅用於accessdeniedaddress)
# 缺省是激活但可以返回用原始標準模式去disable
nonstandarddelimiter = on
# 禁止image交換
# Images 被禁止是由於domain/url/etc的原因包含了廣告黑名單將被交換
# 例如,掩藏廣告images和刪除非法的image
# icons禁止域名
# 0 = off
# 1 = on (default)
usecustombannedimage = 1
custombannedimagefile = '/etc/dansguardian/transparent1x1.gif'
# 組過濾選項
# filtergroups設置組過濾器的數量。組過濾器是設置包含過濾器選項應用於這個組的用戶。
# 這個參數變量必須是1或者更多
# DansGuardian 將自動查找dansguardianfN.conf 當N是這個過濾器的組。用filtergroupslist
# 選項來分配用戶到組。所有的用戶缺省是屬於過濾器組1。你必須有一些鑑別分類能夠讓用
# 戶到組的匹配。儘可能少的用更多的組過濾器更多的拷貝清單
filtergroups = 1
filtergroupslist = '/etc/dansguardian/filtergroupslist'
# 本地鑑別文件
bannediplist = '/etc/dansguardian/bannediplist'
exceptioniplist = '/etc/dansguardian/exceptioniplist'
banneduserlist = '/etc/dansguardian/banneduserlist'
exceptionuserlist = '/etc/dansguardian/exceptionuserlist'
# 展示有利的關鍵詞建立
# 如果激活則只要報告的標準夠高所有超越不規則限制關鍵詞建立將被記錄,
# on | off
showweightedfound = on
# 有利的關鍵詞的模式
# 下邊是3種可能模式的選項:
# 0 = off = 不用關鍵詞的特徵
# 1 = on, normal = 通用的關鍵詞選項
# 2 = on, singular = 每個有用的關鍵詞建立在一個頁面中只是一次
weightedphrasemode = 2
# 真實報告caching的文本URLs
# 好的caches頁面就不需要再次檢測
# 0 = off (推薦用戶不同的瀏覽ISPs)
# 1000 = 推薦多數用戶
# 5000 = 暗示最多上限
urlcachenumber = 1000
# 在多少秒過期在他們不活動和將被突略
# 0 = never
# 900 = recommended = 15 mins
urlcacheage = 900
# 敏捷和未處理的關鍵詞內容過濾選項
# Smart 是多樣的空間和HTML將刪除在關鍵詞過濾之前
# Raw 是rew的HTML包含meta標記將過濾關鍵詞
# 0 = raw only
# 1 = smart only
# 2 = both (default)
phrasefiltermode = 2
# 小寫選項
# 爲了比較關鍵詞當文件中檢查到大寫字母時將更改爲小寫
# 然而這將違背Big5和16-bit文本,如果需要保護大小寫
# 2.7.0版本的支持這個功能
# 0 = 強制更改爲小寫 (default)
# 1 = 不做任何改變
preservecase = 0
# 16進制解碼選項
# 當文件檢查到它會隨意的更改%XX成chars
# 如果你發現文件在過濾關鍵詞時讓其通過是由於編碼則enable
# 然而這將違背Big5和16-bit文本
# 0 = disabled (default)
# 1 = enabled
hexdecodecontent = 0
# Force Quick搜索好於DFA搜索算法
# 通常的DFA執行不是和16-bit字符完全一致,但是它作爲缺省是因爲它管理很大
# 關鍵詞的列表時很快,如果你希望用很大數量的6-bit字符關鍵詞則激活這選項
# 0 = off (default)
# 1 = on (Big5 compatible)
forcequicksearch = 0
# 反向查找禁止的設置和URLs
# 如果設置爲on,DansGuardian 將爲IP URL地址查找forward DNS和搜索禁止設置和URL列表
# 這將防止用戶簡單輸入IP來訪問禁止的地址,如果不是用本地的DNS服務器它將稍微降低查
# 找的速度,設置它爲off,用Blanket IP Block選項的bannedsitelist文件來代替
reverseaddresslookups = off
# 反向查找禁止和擴張的IP列表
# 如果設置爲on,DansGuardian 將爲IP連接的計算機查找forward DNS,這就意味着
# 你可以輸入hostname在exceptioniplist 和 bannediplist
# 如果不是用本地的DNS服務器它將稍微降低搜索的速度,設置爲off
reverseclientiplookups = off
# 創建bannedsitelist和bannedurllist cache文件
# 這將比較列表文件日戳和cache的日戳,使其得到重新創建這是必須的
# 如果bsl或bul程序的文件存在,則將被用於代替,它將增加處理300%的速度
# 在很慢的計算機上這是很有用,在很快的計算機上就不需要這個選項
# on | off
createlistcachefiles = on
# POST保護(web 上傳和窗體)
# 不阻止窗體沒有任何文件上傳,i.e. 這是只是爲了阻止和限制上傳
# kibibytes在MIME encoding和header bumph標準之後
# 用 0 表示完全阻止
# 用高些(e.g. 512 = 512Kbytes)來限制
# 用-1表示不阻止
#maxuploadsize = 512
#maxuploadsize = 0
maxuploadsize = -1
# 最大內容過濾頁面大小
# 有時候web服務器的二進制文本文件非常大就會消耗巨大的內存和CPU資源
# 處理這些,你可以限制文件的大小來過濾,直接讓它通過
# 這設置也同樣應用正規的內容擴張修改
# 大小單位爲Kibibytes - e.g. 2048 = 2Mb
# 用 0 表示不限制
maxcontentfiltersize = 256
# 用戶名辨別算法(用於日記記錄)
# 你可以有很多的算法不僅僅是這一個,第一當這被用雖然用戶名沒有建立,接着將很有用
# * proxyauth 是基本的代理辨別被用(對透明代理不是有用)
# * ntlm 是當代理支持MS NTLM辨認協議(只是工作於IE5.5 sp1或者更高版本)**NOT IMPLEMENTED**
# * ident 是當其他的算法不能用作時工作,它將連接來自連接的計算機和嘗試接連到identd服務器和
# query,它是用戶擁有的連接
usernameidmethodproxyauth = on
usernameidmethodntlm = off # **NOT IMPLEMENTED**
usernameidmethodident = off
# 優先禁止 - 這意味你激活代理辨別和用戶訪問設置禁止的URL,例如他們阻止直接外出沒有
# 享有的請求和通過,這影響用戶的需要訪問一個乾淨的設置,第一需它知道他們是誰甚至可以
# 是管理員
# 這就是爲什麼DansGuardian總是起作用但有些情況下缺少完美的,所以你可以隨便disable它
# 缺省是 on,衆所周知這個設置像mime類型一樣結果不能這作用AD image交換工作好
preemptivebanning = on

# Misc 設置
# 如果爲on它增加一個X-Forwarded-For: <clientip> HTTP請求頭,這有幫助於一些設置問題
# 這需要知道源ip。on | off
forwardedfor = off
# 如果爲on它用X-Forwarded-For: <clientip> 確定客戶端的IP,這作用於squid介於客戶端和
# DansGuardian之間
# 警告-報頭容易欺騙。on | off
usexforwardedfor = off
# 如果爲on它記錄一些調試信息關於fork()和accept(),通常試突略的,他們試用syslog來記錄的
# 它安全的設置爲on或者off
logconnectionhandlingerrors = on

# Fork pool 選項
# 設置最多的進程數fork來處理進來的連接,最大變量通常是250,依賴OS
# 最大設置你可以嘗試180
maxchildren = 120
# 設置最小的進程數fork來處理進來的連接
# 最大設置你可以嘗試32
minchildren = 8
# 設置最小的進程數fork來處理保持真正的連接
# 最大設置你可以嘗試8
minsparechildren = 4
# 設置最小的進程數fork來運行
# 最大設置你可以嘗試10
preforkchildren = 6
# 設置最大的進程數來不做任何東西
# 當有空間的時候可以精選他們一些
# 最大設置你可以嘗試64
maxsparechildren = 32
# 設置最大的子進程croaks的age
# 這是在他們退出之前他們處理的連接數
# 最大設置你可以嘗試10000
maxagechildren = 500

# 進程選項
# (更改他們只有你真正知道你自己在幹什麼)
# 這些選項允許你運行DansGuardian在多種場合在單個機器上
# 記住以你的意圖編輯上面日記文件路徑
# IPC 文件名
# 定義IPC 服務用於log進程通信的目錄和文件名
ipcfilename = '/tmp/.dguardianipc'
# URL 列表 IPC 文件名
# 定義URL列表IPC服務用於URL cache進程通信的目錄和文件名
urlipcfilename = '/tmp/.dguardianurlipc'
# PID 文件名
# 定義進程id的目錄和文件名
pidfilename = '/var/run/dansguardian.pid'
# 不能守護
# 如果激活,進程將不會fork運行在後臺
# 它不是通常有利去做這些
# on|off ( defaults to off )
nodaemon = off
# 不啓動日記進程
# on|off ( defaults to off )
nologger = off
# 守護進程運行的用戶和組
# 這是DansGuardian運行時的用戶,通常 user/group nobody
# 不註釋的用 缺省用戶在編譯時定義
# daemonuser = 'nobody'
# daemongroup = 'nobody'
# 軟件重啓
# 當on時不會強制的殺死所有同一進程組的進程
# 這不是很困惑運行時加上 -g 的選項 他們不是很有關係
# on|off ( defaults to off )
softrestart = off

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章