網路活動
入侵偵測系統 SNORT 的基本安裝
一.前言
網路安全至關重要,如何提升網路安全防護,一直是網路管理人員最大的課題。網路安全防護最常見的手段包括透過防火牆制定政策來做防護,以TCP/IP連線的IP及Port制定允許或拒絕連線的政策。此方式可以有效的定義區隔哪些 IP 可以存取哪些服務,但對於需要對所有人開放的服務如官方網站,這種防護就顯得不太足夠。IDS(Intrusion-detection system)入侵偵測系統跟防火牆不同的地方在於,IDS會去看封包的內容,而不只是的表頭。SNORT它是一套相當知名的IDS開放原始碼軟體,透過數千條Rule的比對,能夠找出可疑特徵的封包,能提供網路管理人員得知網路惡意攻擊行為的發生,藉此做出適當的防護調整。本文僅針對SNORT基本核心套件安裝教學,有關其他進階應用(告警資料分析、Web檢視畫面、Rules自動更新...等)不在本文討論範圍,請自行參閱官網相關文件。
二.使用系統及套件
三.軟體安裝
# yum –y groupinstall "Development tools" |
# yum install libpcap* -y |
# yum install pcre* -y |
# yum install zlib-devel -y |
# tar zxvf libdnet-1.11.tar.gz
# cd ~/libdnet-1.11 # ./configure ; make ; make install |
# tar zxvf daq-2.0.6.tar.gz
# cd ~/daq-2.0.6 # ./configure ; make ; make install |
# tar zxvf snort-2.9.7.6.tar.gz # cd ~/snort-2.9.7.6 # ./configure ; make ; make install |
四.SNORT及系統環境設定
# groupadd snort # useradd -g snort snort -s /sbin/nologin |
# mkdir -p /etc/snort/rules # mkdir -p /etc/snort/so_rules # mkdir -p /etc/snort/preproc_rules # mkdir -p /var/log/snort # mkdir -p /usr/local/lib/snort_dynamicrules |
# chown snort:snort /var/log/snort |
# cp ~/snort-2.9.7.6/etc/* /etc/snort/ |
五.下載及安裝SNORT Rules
# tar zxvf snortrules-snapshot-2976.tar.gz # cp rules/* /etc/snort/rules/ # cp -a so_rules/* /etc/snort/so_rules/ # cp so_rules/precompiled/Centos-5-4/x86-64/2.9.7.6/* /etc/snort/so_rules/ # cp preproc_rules/* /etc/snort/preproc_rules/ # touch /etc/snort/rules/black_list.rules # touch /etc/snort/rules/white_list.rules |
六.snort.conf設定
# vi /etc/snort/snort.conf |
var RULE_PATH /etc/snort/rules var SO_RULE_PATH /etc/snort/so_rules var PREPROC_RULE_PATH /etc/snort/preproc_rules var WHITE_LIST_PATH /etc/snort/rules var BLACK_LIST_PATH /etc/snort/rules |
# vi /etc/snort/snort.conf |
output alert_full: alert.full output unified2: filename snort.u2, limit 128 |
備註:
|
七.啟動SNORT
# snort -u snort -g snort -c /etc/snort/snort.conf -i eth0 |
備註:觀察啟動過程有無錯誤訊息,Ctrl-C可離開。 |
snort -D -u snort -g snort -c /etc/snort/snort.conf -i eth0 |
備註:透過 "-D"(Daemon) 參數,讓SNOR在背景執行。 |
八.功能測試
# vi /etc/snort/rules/local.rules |
alert icmp any any -> $HOME_NET any (msg:"ICMP test"; sid:10000001; rev:001;) |
備註:alert所有ICMP封包。 |
# tail -f /var/log/snort/alert.full |
九.完成