Snort là một dạng IDS (Instruction Detection System). IDS là một hệ thống được cài đặt trên mạng làm nhiệm vụ giám sát những packet vào ra hệ thống mạng. Khi Snort phát hiện một cuộc tấn công thì nó có thể phản ứng bằng nhiều cách khác nhau tùy thuộc vào cấu hình mà người quản trị mạng thiết lập, chẳng hạn như nó có thể gởi thông điệp cảnh báo đến nhà quản trị hay loại bỏ gói tin khi phát hiện có sự bất thường trong các gói tin đó.
Snort hoạt động dựa trên các luật – rule xây dựng sẵn và phải được cập nhật thường xuyên. Mỗi luật đại diện cho một cuộc tấn công. Khi có một packet đến hệ thống nó sẽ được áp vào tập luật, nếu có sự so trùng snort sẽ phản ứng.
alert tcp !192.168.1.0/24 any -> 192.168.1.0/24 111 (content: "|00 01 86 a5|"; msg: "external mountd access"

Phần đầu của luật mô tả cách hành động (rule's action) là alert, giao thức (tcp) và địa chỉ IP nguồn, đích cũng như thông tin về port. Phần này gọi là “rule header”.
Phần còn lại của luật, được biết như “rule option”, chứa thông điệp báo động và thông tin sẽ được snort sử dụng để kiểm tra xem liệu luật đó có phù hợp (match) với gói tin không.
Mô hình
Snort server: cài phần mềm snort
Windows 2k3: sử dụng phần mềm nmap tiến hành quét port trên máy snort
1.1 Cài các gói yêu cầu sau
- Lần lượt cài các gói phụ thuộc:
Trường hợp các hàm thư viện và các gói phần mềm cần thiết chưa được cài bạn có thể thực hiệc các bước sau cho nhanh:
b1. tạo thư mục trong root:
b2. mount dvd vào thư mục:
mount dev/cdrom /media/CentOS
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
b4. cài đặt yum với 4 gói sau đây:
yum --disablerepo=\* --enablerepo=c5-media groupinstall "Development Tools"
yum --disablerepo=\* --enablerepo=c5-media groupinstall "Development Libraries"
yum --disablerepo=\* --enablerepo=c5-media groupinstall "MySQL Database"
Sau đó kiểm tra nếu thiếu gói nào thì cài thêm gói đó
tar -zxvf snort-2.8.4.1.tar.gz
- Lần lượt thực hiện các sau để cài đặt snort
#./configure --with-mysql --enable-dynamicplugin
- Tạo các thư mục hoạt động cho snort
- Tạo nhóm & người dùng cho snort
useradd -g snort snort -s /sbin/nologin
- Set quyền sở hữu và cho phép Snort ghi log vào thư mục chứa log
chown snort:snort /var/log/snort/
2. Cài đặt tập rule cho SNORT
tar -xzvf snortrules-snapshot-2.8.tar.gz
File cấu hình /etc/snort/snort.conf
var HOME_NET 192.168.9.0/24
var EXTERNAL_NET !$HOME_NET
110: var RULE_PATH /etc/snort/rules
688: output database: log, mysql, user=snort password=123456 dbname=snort host=localhost
Thiết Lập Snort khởi động cùng hệ thống:
Tạo một liên kết mềm (symbolic link) của file snort binary đến /usr/sbin/snort
ln -s /usr/local/bin/snort /usr/sbin/snort
Snort cung cấp các scrip để khởi động trong thư mục rpm/ ; (thư mục giải nén snort)
cp /snort/snort-2.8.4.1/rpm/snortd /etc/init.d/
cp /snort/snort-2.8.4.1/rpm/snort.sysconfig /etc/sysconfig/snort
Đặt quyền lại cho file snortd :
chmod 755 /etc/init.d/snortd
Để khởi động snort ở chế độ debug nếu bạn muốn kiểm tra lỗi:
/snort/snort-2.8.4.1/src/snort -u snort -g snort -d -c /etc/snort/snort.conf
Quản lý snort bằng webmin:
(bước này có thể bỏ qua làm tiếp phần 4)
Log vào Webmin, chọn chức năng Webmin Modules, import thêm Snort module vào Webmin:
- Tích hợp snort vào webmin:
chép snort-1.1.wbm vào thư mục bung snort
Webmin, chọn Webmin Configuration, Webmin Modules, From uploaded file,
chỉ đến thư mục chứa snort-1.1.wbm
4. Tạo CSDL snort với MySQL
Trước tiên ta cần set password cho root trong MySQL.
#mysqladmin -u root password 123456
Tạo password cho tài khoản snort.
mysql> CREATE USER 'snort'@'localhost' IDENTIFIED BY '123456';
mysql> create database snort;
mysql> GRANT CREATE, INSERT, SELECT, DELETE, UPDATE ON snort.* to snort@localhost;
Tạo các table từ /snort/snort-2.8.4.1/schemas/create_mysql cho database snort (thư mục gải nén snort)
mysql -u root -p < /snort/snort-2.8.4.1/schemas/create_mysql snort
Web server và PHP đã cài đặt sẵn ta cần cài thêm vài gói pear cho PHP.
pear install Image_Graph-alpha Image_Canvas-alpha Image_Color Numbers_Roman ; (máy phải online)
cp adodb480.tgz /var/www/html/
#cp /snort/base-1.4.4.tar.gz /var/www/html/
#tar -zxvf base-1.4.4.tar.gz
#cp base_conf.php.dist base_conf.php
57 $BASE_urlpath = '/base';
79 $DBlib_path = '/var/www/html/adodb';
101 $alert_dbname = 'snort';
105 $alert_password = '123456';
108 $archive_exists = 1; # Set this to 1 if you have an archive DB
109 $archive_dbname = 'snort';
112 $archive_user = 'snort';
113 $archive_password = '123456';
355 $external_whois_link = 'index.php';
382 $external_dns_link = 'index.php';
385 $external_all_link = 'index.php';
6. Kiểm tra
Tại máy win2k3 chạy Nmap, nhập địa chỉ máy Linux 192.168.1.10 để tiến hành do thám
Mở IE truy cập Snort: 192.168.1.10/base
Cửa sổ hiện thị thông tin tóm tắt về các cảnh báo mà Snort bắt được
Chọn Most recent 15 Unique Alerts xem 15 cảnh báo gần đây nhất
Chọn Most frequent 5 Unique Alerts: xem thông tin về 5 cảnh báo xảy ra nhiều nhất
Source addres: Số lượng host tham gia cuộc tấn công
Trong trường hợp này là 1, chọn số 1
- Src IP address: địa chỉ máy thực hiệc cuộc do thám 192.168.1.2
