- ทดสอบกับ ubuntu 10.04
- ตั้งค่าให้มีการ log เข้าไปเก็บไว้ใน mysql server ด้วย
- ติดตั้ง snort report เพื่อให้ดูข้อมูล snort ผ่านหน้าเวบ ได้
- ต้องติดตั้ง mysql server ก่อน ทำดังนี้
sudo apt-get install mysql-server
หากได้หน้าต่าง Configuring mysql-server-5.0 มีข้อความแจ้งให้ใส่รหัสผ่าน
ในตอนนี้ยังไม่ต้องใส่อะไร ให้เลื่อนไปเลือก <Ok>
ระบบจะทำการติดตั้งต่อไปจนเสร็จ
เพื่อความปลอดภัยให้รีบแก้ไขรหัสผ่านของ root ของ mysql
สมมติว่าต้องการให้รหัสของผู้ใช้ root มีรหัสผ่านว่า mysqldroot
ตัวอย่างนี้ใช้คำสั่งว่า mysqladmin -uroot password mysqldroot
สร้าง database สำหรับ snort ชื่อว่า snort ทำดังนี้
mysql -uroot -pmysqldroot -e "CREATE DATABASE snortdatabase CHARACTER SET 'UTF8';"
กำหนดสิทธิ์การใช้ database ชื่อ snort ให้แก่ user ชื่อ snortmysql โดยมีรหัสผ่านว่า snortpass ใช้คำสั่งคือ
mysql -uroot -pmysqldroot -e "grant all privileges on snortdatabase.* to 'snortmysql'@'localhost' identified by 'snortpass';" - ติดตั้ง package เพิ่มเติมด้วยคำสั่งดังนี้
sudo apt-get install nmap nbtscan apache2 php5 php5-mysql php5-gd libpcap0.8-dev libpcre3-dev g++ bison flex
sudo apt-get install libpcap-ruby libmysqlclient16-dev libtool autoconf - ติดตั้ง JpGraph ทำดังนี้
sudo mkdir -p /var/www/jpgraph
wget http://ftp.psu.ac.th/pub/snort/jpgraph-1.27.1.tar.gz -P /tmp
tar -zxpvf /tmp/jpgraph-1.27.1.tar.gz -C /tmp
sudo cp -Rv /tmp/jpgraph-1.27.1/src /var/www/jpgraph - ติดตั้ง Snort Report ทำดังนี้
wget http://ftp.psu.ac.th/pub/snort/snortreport-1.3.3.tar.gz -P /tmp
sudo tar -zxvf /tmp/snortreport-1.3.3.tar.gz -C /var/www
แล้วแก้ไขแฟ้ม /var/www/snortreport-1.3.3/srconf.php
ไปที่ประมาณบรรทัดที่ 22 แก้ไขเลขเวอร์ชั่น ดังนี้
$srVersion = "Snort Report Version 1.3.3";
ไปที่ประมาณบรรทัดที่ 30 แก้ไขตัวแปร ดังนี้
$user = "snortmysql";
$pass = "snortpass";
$dbname = "snortdatabase";
แก้ไขแฟ้ม /var/www/snortreport-1.3.3/alerts.php
ไปที่ประมาณบรรทัดที่ 398 แก้ไขตัวแปร FQDN จากเดิม
$detailURL = $detailURL . "&FQDN=yes&".$timespan->getURL('beginTime', 'endTime');
ให้เปลี่ยนเป็นว่า
$detailURL = $detailURL . "&FQDN=no&".$timespan->getURL('beginTime', 'endTime'); - ติดตั้ง Data Acquistion API ทำดังนี้
wget http://ftp.psu.ac.th/pub/snort/daq-0.6.2.tar.gz -P /tmp
tar -zxvf /tmp/daq-0.6.2.tar.gz -C /tmp
cd /tmp/daq-0.6.2
./configure
make
sudo make install
sudo ldconfig
cd - ติดตั้ง libdnet ทำดังนี้
wget http://ftp.psu.ac.th/pub/snort/libdnet-1.12.tgz -P /tmp
tar -zxvf /tmp/libdnet-1.12.tgz -C /tmp
cd /tmp/libdnet-1.12
./configure
make
sudo make install
sudo ln -s /usr/local/lib/libdnet.1.0.1 /usr/lib/libdnet.1
cd - ติดตั้ง Snort ทำดังนี้
wget http://ftp.psu.ac.th/pub/snort/snort-2.9.2.tar.gz -P /tmp
tar -zxvf /tmp/snort-2.9.2.tar.gz -C /tmp
cd /tmp/snort-2.9.2
./configure prefix=/usr/local/snort --enable-sourcefire
make
sudo make install
sudo mkdir -p /var/log/snort
sudo mkdir -p /var/snort
sudo groupadd snort
sudo useradd -g snort snort
sudo chown snort:snort /var/log/snort
mysql -u snortmysql -psnortpass -D snortdatabase < ./schemas/create_mysql
mysql -u snortmysql -psnortpass -D snortdatabase < /var/www/snortreport-1.3.3/create_indexes.sql
cd - ติดตั้ง Snort Rules ทำดังนี้
wget http://ftp.psu.ac.th/pub/snort/snortrules-snapshot-2920.tar.gz -P /tmp
sudo tar -zxvf /tmp/snortrules-snapshot-2920.tar.gz -C /usr/local/snort
sudo mkdir -p /usr/local/snort/lib/snort_dynamicrules
sudo cp /usr/local/snort/so_rules/precompiled/Ubuntu-10-4/i386/2.9.2.0/* /usr/local/snort/lib/snort_dynamicrules
sudo touch /usr/local/snort/rules/white_list.rules
sudo touch /usr/local/snort/rules/black_list.rules - แก้ไขแฟ้ม /usr/local/snort/etc/snort.conf
ประมาณบรรทัดที่ 113 ให้ปรับปรุงตัวแปรเป็นดังนี้
var WHITE_LIST_PATH /usr/local/snort/rules
var BLACK_LIST_PATH /usr/local/snort/rules
ประมาณบรรทัดที่ 247 ให้ปรับปรุงตัวแปรเป็นดังนี้
dynamicpreprocessor directory /usr/local/snort/lib/snort_dynamicpreprocessor/
dynamicengine /usr/local/snort/lib/snort_dynamicengine/libsf_engine.so
dynamicdetection directory /usr/local/snort/lib/snort_dynamicrules
ประมาณบรรทัดที่ 420 ให้ลบเครื่องหมาย # นำหน้าออก เหลือเป็นเพียงว่า
preprocessor arpspoof
ประมาณบรรทัดที่ 520 ปรับปรุงเพิ่มบรรทัดตัวแปรเป็นว่า
output unified2: filename snort.u2, limit 128 - ติดตั้ง Banyard2 ทำดังนี้
wget http://ftp.psu.ac.th/pub/snort/barnyard2-1.9.tar.gz -P /tmp
tar -zxvf /tmp/barnyard2-1.9.tar.gz -C /tmp
cd /tmp/barnyard2-1.9
./configure --with-mysql
sudo make
sudo make install
sudo cp -v etc/barnyard2.conf /usr/local/snort/etc
sudo mkdir -p /var/log/barnyard2
sudo chmod 666 /var/log/barnyard2
sudo touch /var/log/snort/barnyard2.waldo
sudo chown snort.snort /var/log/snort/barnyard2.waldo
cd
แล้วแก้ไขแฟ้ม /usr/local/snort/etc/barnyard2.conf
ประมาณบรรทัดที่ 29 ปรับปรุงตัวแปรเป็นว่า
config reference_file: /usr/local/snort/etc/reference.config
config classification_file: /usr/local/snort/etc/classification.config
config gen_file: /usr/local/snort/etc/gen-msg.map
config sid_file: /usr/local/snort/etc/sid-msg.map
ประมาณบรรทัดที่ 60 ปรับปรุงตัวแปรเป็นว่า
config hostname: localhost
config interface: eth0
ประมาณบรรทัดที่ 319 ปรับปรุงตัวแปรเป็นว่า
output database: log, mysql, dbname=snortdatabase user=snortmysql password=snortpass host=localhost - ทดสอบ snort ด้วยคำสั่งดังนี้
sudo /usr/local/snort/bin/snort -u snort -g snort -c /usr/local/snort/etc/snort.conf -i eth0
ระบบจะเริ่มทำงานจนหน้าจอได้ข้อความประมาณว่า
Commencing packet processing (pid=...)
แสดงว่า snort ใช้การได้แล้ว ให้กลับออกมาด้วยการกดแป้น Control_C - ให้ snort ทำงานด้วยคำสั่งดังต่อไปนี้
sudo /usr/local/snort/bin/snort -u snort -g snort -c /usr/local/snort/etc/snort.conf -i eth0 -D
sudo /usr/local/bin/barnyard2 -c /usr/local/snort/etc/barnyard2.conf -G /usr/local/snort/etc/gen-msg.map -S /usr/local/snort/etc/sid-msg.map -d /var/log/snort -f snort.u2 -w /var/log/snort/barnyard2.waldo -D
สั่งให้ apache ทำงานใหม่ด้วยคำสั่ง sudo /etc/init.d/apache2 restart
แล้วทดสอบดูผลงานผ่านเวบที่ http://localhost/snortreport-1.3.3 - การปรับปรุง rules ให้ไปลงทะเบียนที่เวบ http://www.snort.org เพื่อจะได้มีสิทธิ์ในการดาวน์โหลด rules ของ Registered User Release
เมื่อลงทะเบียนแล้ว ให้ login เข้าไปที่หน้าเวบ http://www.snort.org/snort-rules
จัดการดาวน์โหลด rules ให้ถูกรุ่น ตัวอย่างการติดตั้งเป็น snort 2.9.x ก็ให้เลือกดาวน์โหลดชุด Snort v2.9.x
มีการ mirror แฟ้ม rules ของ snort มาเก็บไว้ที่ http://ftp.psu.ac.th/pub/snort
ตัวอย่างการ update snort rules รุ่น 2.9.2.0 ให้ทำดังนี้
wget http://ftp.psu.ac.th/pub/snort/snortrules-snapshot-2920.tar.gz -P /tmp
mkdir -p /tmp/snort
tar -zxvf /tmp/snortrules-snapshot-2920.tar.gz -C /tmp/snort
sudo cp -Rfv /tmp/snort/rules/*.rules /usr/local/snort/rules
sudo cp -Rfv /tmp/snort/preproc_rules/*.rules /usr/local/snort/preproc_rules
sudo cp -Rfv /tmp/snort/so_rules/*.rules /usr/local/snort/so_rules - การตั้งค่าให้ snort ตรวจสอบ arp spoof ด้วย ให้ทำดังนี้
แก้ไขแฟ้ม /usr/local/snort/etc/snort.conf
ประมาณบรรทัดที่ 420 ให้ลบเครื่องหมาย # นำหน้าออก เหลือเป็นเพียงว่า
preprocessor arpspoof