在 Ubuntu 16.04 上安裝 Bro 網絡分析器
Bro 是一個開源的網絡分析框架,側重於網絡安全監控。這是一項長達 15 年的研究成果,被各大學、研究實驗室、超級計算機中心和許多開放科學界廣泛使用。它主要由伯克利國際計算機科學研究所和伊利諾伊大學厄巴納-香檳分校的國家超級計算機應用中心開發。
Bro 的功能包括:
Bro 的腳本語言支持針對站點定制監控策略
針對高性能網絡
分析器支持許多協議,可以在應用層面實現高級語義分析
它保留了其所監控的網絡的豐富的應用層統計信息
Bro 能夠與其他應用程序接口實時地交換信息
它的日誌全面地記錄了一切信息,並提供網絡活動的高級存檔
本教程將介紹如何從源代碼構建,並在 Ubuntu 16.04 服務器上安裝 Bro。
準備工作
Bro 有許多依賴文件:
Libpcap
OpenSSL 庫
BIND8 庫
Libz
Bash (BroControl 所需要)
Python 2.6+ (BroControl 所需要)
從源代碼構建還需要:
CMake 2.8+
Make
GCC 4.8+ or Clang 3.3+
SWIG
GNU Bison
Flex
Libpcap headers
OpenSSL headers
zlib headers
起步
首先,通過執行以下命令來安裝所有必需的依賴項:
# apt-get install cmake make gcc g++ flex bison libpcap-dev libssl-dev python-dev swig zlib1g-dev
安裝定位 IP 地理位置的 GeoIP 數據庫
Bro 使用 GeoIP 的定位地理位置。安裝 IPv4 和 IPv6 版本:
$ wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz $wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCityv6-beta/GeoLiteCityv6.dat.gz
解壓這兩個壓縮包:
$ gzip -d GeoLiteCity.dat.gz $ gzip -d GeoLiteCityv6.dat.gz
將解壓後的文件移動到 /usr/share/GeoIP 目錄下:
# mvGeoLiteCity.dat /usr/share/GeoIP/GeoIPCity.dat # mv GeoLiteCityv6.dat /usr/share/GeoIP/GeoIPCityv6.dat
現在,可以從源代碼構建 Bro 了。
構建 Bro
最新的 Bro 開發版本可以通過 git 倉庫獲得。
執行以下命令:
$ git clone --recursive git://git.bro.org/bro
轉到克隆下來的目錄,然後使用以下命令就可以簡單地構建 Bro:
$ cd bro $ ./configure $ make
make 命令需要一些時間來構建一切。確切的時間取決於服務器的性能。
可以使用一些參數來執行 configure 腳本,以指定要構建的依賴關系,特別是 --with-* 選項。
安裝 Bro
在克隆的 bro 目錄中執行:
# make install 默認安裝路徑為 /usr/local/bro。
配置 Bro
Bro 的配置文件位於 /usr/local/bro/etc 目錄下。 這裏有三個文件:
node.cfg,用於配置要監視的單個節點(或多個節點)。
broctl.cfg,BroControl 的配置文件。
networks.cgf,包含一個使用 CIDR 標記法表示的網絡列表。
配置郵件設置
打開 broctl.cfg 配置文件:
# $EDITOR /usr/local/bro/etc/broctl.cfg
查看 Mail Options 選項,並編輯 MailTo 行如下:
# Recipient address for emails sent out by Bro and BroControl MailTo = [email protected]
保存並關閉。還有許多其他選項,但在大多數情況下,默認值就足夠好了。
選擇要監視的節點
開箱即用,Bro 被配置為以獨立模式運行。在本教程中,我們就是做一個獨立的安裝,所以沒有必要改變。但是,也請查看 node.cfg 配置文件:
# $EDITOR /usr/local/bro/etc/node.cfg
在 [bro] 部分,你應該看到這樣的東西:
[bro] type=standalone host=localhost interface=eth0
請確保 inferface 與 Ubuntu 16.04 服務器的公網接口相匹配。
保存並退出。
配置監視節點的網絡
最後一個要編輯的文件是 network.cfg。使用文本編輯器打開它:
# $EDITOR /usr/local/bro/etc/networks.cfg
默認情況下,你應該看到以下內容:
# List of local networks in CIDR notation, optionally followed by a # descriptive tag. # For example, "10.0.0.0/8" or "fe80::/64" are valid prefixes. 10.0.0.0/8 Private IP space 172.16.0.0/12 Private IP space 192.168.0.0/16 Private IP space
刪除這三個條目(這只是如何使用此文件的示例),並輸入服務器的公用和專用 IP 空間,格式如下:
X.X.X.X/X Public IP space X.X.X.X/X Private IP space
保存並退出。
使用 BroControl 管理 Bro 的安裝
管理 Bro 需要使用 BroControl,它支持交互式 shell 和命令行工具兩種形式。啟動該 shell:
# /usr/local/bro/bin/broctl
要想使用命令行工具,只需將參數傳遞給上一個命令,例如:
# /usr/local/bro/bin/broctl status
這將通過顯示以下的輸出來檢查 Bro 的狀態:
Name Type Host Status Pid Started bro standalone localhost running 6807 20 Jul 12:30:50
結論
這是一篇 Bro 的安裝教程。我們使用基於源代碼的安裝,因為它是獲得可用的最新版本的最有效的方法,但是該網絡分析框架也可以下載預構建的二進制格式文件。
在 Ubuntu 16.04 上安裝 Bro 網絡分析器