2012-10-11 36 views
1

我要登錄HTTP Trafic在連接到我的網絡有些PC機,以瞭解網站被用戶訪問。這個程序將在一家公司運行,可能會檢查該工作人員不要去網站額外的工作,也許是統計。我只需要知道哪些電腦在什麼時間衝浪什麼網站,沒有其他信息。嗅探訪問的網站,並保存到一個文件

我衝浪網的google搜索了幾個小時沒有找到對我有用的東西。我嘗試wireshark,但是太複雜,不能作爲守護進程運行(因爲我知道,也許我錯了),而且窗口很大。

我試圖綁定一個ServerSocket到80端口,沒有成功,沒有數據似乎到達我的套接字。同樣的結果與套接字(綁定到80本地主機)是否有任何類允許我插入safari(或任何其他瀏覽器)和端口之間?

[在我被要求這樣做之前,該公司使用了鍵盤嗅探器幾天。但是,在這樣的隱私是零,顯然,這不是正確的解決方案。]

任何想法? P.s.該計劃不會是「祕密」的,工人們知道它,但需要的是,它不能被非管理員阻止。

Java中的一個解決方案是最好的,因爲這是我知道的唯一語言。

+3

通過代理運行用戶上網,有很多。提醒我不要在那裏工作。 –

+0

我認爲公司的所有者希望允許「適度」訪問與非工作相關的網站,因爲我試着告訴他有關代理的問題,他告訴我他們要限制 – Gianmarco

+0

代理太嚴格了,這家公司是按鍵記錄他們的員工? –

回答

1

根據您最後的評論(你應該BTW更新你的問題)我知道你需要一些東西來記錄所有的http流量。

你必須明白,要做到這一點很容易,你需要處於專用網絡和互聯網之間的中間位置,可能使用專用網絡計算機的NAT防火牆。

如果您確定運行非java軟件,那麼您可以使用dsniff的軟件urlsnarf來獲取所需內容。您可以運行它並將其保留在後臺日志記錄中,也可以通過端口或ip進行過濾。

大多數分佈已經有一個稱爲dsniff包中的urlsnarf命令。

對於基本的啓動:

urlsnarf -n -i eth0 

,將開始記錄到標準輸出TCP端口80,8080和3128上的所有網址。如果你想存儲供以後可視化(例如,使用Wireshark)捕獲,你可以使用-p選項。

如果你問我,我認爲你做錯了,你應該放一個透明的代理,只是拒絕訪問「未經授權」的網站,而不是記錄每個請求的http url。否則,你違反了人們的隱私,並根據國家甚至可能是非法的。

設置爲NAT服務器這並不難,你只需要兩塊網卡,一個防火牆軟件像aifwipmasq Linux的PC,這樣,你已經可以通過阻止他們的IP的阻止訪問的網站。如果您還想混淆http流量數據包的數據,您需要一個透明代理服務器(not a reverse proxy),最流行的是Squid

如果你去Squid,我會推薦檢查SquidGuard

如果你堅持自己編寫一個代碼,除了在評論上發出警告,毫無疑問,你應該使用jpcap library,檢查examples section哪裏有代碼已經可以用來快速啓動。

祝你好運!

+0

對不起,我不明白你想用Java完成解決方案,你需要用Java來完成嗅探軟件嗎? – Valor

+0

謝謝你的答案。幸運的是,我可以重構該公司的所有網絡,因爲他們從軟件公司購買了一個新的內部程序,並且需要重新安裝所有的網絡,所以我認爲在私人和互聯網之間添加計算機沒有任何問題,好的提示。將會有每個員工簽署的書面同意,所以沒有法律問題。我開始關注你的答案的最後一段,它只是安裝並去除或者還有其他需要編碼的內容? – Gianmarco

+0

這取決於你的背景,建立一個防火牆來做NAT(不是透明的代理服務器,只是提供互聯網),這很容易,你只需要配置你的兩個IP,並告訴任何這些軟件哪個接口是互聯網和哪個專用網絡。魷魚有點棘手,但它不是火箭科學。請記住,無論如何,不​​管是NAT還是代理,你都會處於中間位置,所以**如果安裝失敗,所有公司員工都將脫機,因此我強烈建議您閱讀此類項目中使用的任何軟件的手冊**。 – Valor