Cài đặt Các Thư Viện Cần Thiết Cho Việc Cài đặt Snort:
Có thể bạn quan tâm
5.1.1. Cài đặt các thư viện cần thiết cho việc cài đặt Snort:
Cài đặt Snort:
Đề tài: Xây dựng hệ thống Snort IDS-IPS trên CentOS GVHD: PGS.TS Trần Công Hùng
session: [printable|all];
- resp
Dùng để đóng phiên làm việc khi cảnh báo được bật. Trong Snort resp được mệnh danh là sự đáp ứng linh hoạt.
resp_mechanism:
rst_snd: Gửi gói TCP-RST tới socket bên gửi. rst_rcv: Gửi gói TCP-RST tới socket bên nhận. rst_all: Gửi gói TCP-RST tới socket của 2 bên.
icmp_net: Gửi một ICMP NET UNREACH tới bên nhận. icmp_host: Gửi một ICMP HOST UNREACH tới bên nhận. icmp_port: Gửi một ICMP PORT UNREACH tới bên nhận. icmp_all: Gửi tất cả gói ICMP ở trên tới bên nhận.
Cấu trúc:
resp:<resp_mechanism>[,<resp_mechanism>[,<resp_mechanism>]];
- react
Mặc định thì Snort sẽ đóng các kết nối, khóa vài vị trí hoặc dịch vụ và gửi cảnh báo đến trình duyện web của user (nếu như truy cập web).
block – Đóng kết nối và gửi thông báo. warn – Gửi thông báo.
msg – Bao gồm từ khóa msg để block.
proxy <port nr> – Dùng port porxy để gửi thông báo. Cấu trúc:
Chương IV. Tìm hiểu về Snort - 62 - Ngô Văn Chơn - Lê Thị Mộng Vân
Đề tài: Xây dựng hệ thống Snort IDS-IPS trên CentOS GVHD: PGS.TS Trần Công Hùng
react: block[, <react_additional_modifier>];
Ví dụ:
alert tcp any any <> 192.168.1.0/24 80 (content: "bad.htm"; \ msg: "Not for children!"; react: block, msg, proxy 8000;)
- Ngoài ra còn một số tùy chọn khác như: tag, activates, activated_by, count,
Chương V. Cài đặt và cấu hình Snort - 63 - Ngô Văn Chơn - Lê Thị Mộng Vân
Đề tài: Xây dựng hệ thống Snort IDS-IPS trên CentOS GVHD: PGS.TS Trần Công Hùng
CHƯƠNG V. CÀI ĐẶT VÀ CẤU HÌNH SNORT Cài đặt Snort.
Như đã nhắc đến ở trên, Snort có thể được cài đặt trên nhiều hệ điều hành khác nhau: Linux, Windows, OpenBSD, FreeBSD, NetBSD, Slolaris... Ở đây, ta sẽ tiến hành cài đặt Snort trên hệ điều hành CentOS 6.3 (phiên bản 64 bit).
5.1.1. Cài đặt các thư viện cần thiết cho việc cài đặt Snort:
Các gói cần thiết cho quá trình cài đặt Snort là:
- gcc (phiên bản 4.4.6)
- flex (phiên bản 2.5.35)
- bison (phiên bản 2.4.1)
- zlib (phiên bản 1.2.3, bao gồm cả zlib-devel)
- pcre (phiên bản 7.84, bao gồm cả pcre-devel)
- tcpdump (phiên bản 4.1.0)
- libpcap-devel
- make
- rpm-build
- autoconf
- automake
- mysql, mysql-devel, mysql-bench, mysql-server
- php, php-common, php-mysql, php-gd, php-pear
Để cài đặt các gói trên ta đăng nhập với quyền của user root và sử dụng lệnh:
yum install <tên gói>
Ta tải các gói: libdnet-1.11.tar.gz, daq-2.0.0.tar.gz, nbtscan-source-1.0.35.gz, snort-2.9.4.tar.gz,snortrules-snapshot-2940.tar.gz, base-1.4.5.tar.gz, adodb518a.gz,
Chương V. Cài đặt và cấu hình Snort - 64 - Ngô Văn Chơn - Lê Thị Mộng Vân
Đề tài: Xây dựng hệ thống Snort IDS-IPS trên CentOS GVHD: PGS.TS Trần Công Hùng
barnyard2-1.9.tar.gz về lưu chung ở một thư mục ( /root/Desktop/Source ) để tiến hành cài đặt.
Cài đặt libdnet:
Libdnet là một mạng API chung, cung cấp quyền truy cập vào một số giao thức. Để cài đặt libdnet ta thực hiện như sau:
cd /usr/local/src/ tar -zxvf /root/Desktop/Source/libdnet-1.11.tar.gz cd libdnet-1.11/ ./configure --with-pic make make install cd /usr/local/lib ldconfig -v /usr/local/lib Cài đặt DAQ:
DAQ là tập hợp dữ liệu API cần thiết để sử dụng cho phiên bản Snort 2.9.0 trở lên. Cài đặt DAQ như sau:
cd /usr/local/src/ tar -zxvf /root/Desktop/Source/daq-2.0.0.tar.gz cd daq-2.0.0/ ./configure make make install cd /usr/local/lib ldconfig -v /usr/local/lib
Chương V. Cài đặt và cấu hình Snort - 65 - Ngô Văn Chơn - Lê Thị Mộng Vân
Đề tài: Xây dựng hệ thống Snort IDS-IPS trên CentOS GVHD: PGS.TS Trần Công Hùng
Cài đặt nbtscan: nbtscan là chương trình dùng để quét những IP mạng cho thông tin về tên NetBIOS.
Nó trả lời cho chúng ta những địa chỉ IP, tên NetBIOS, những người dùng đang dăng nhập và địa chỉ MAC. Cài đặt nbtscan:
cd /root/Desktop/Source/ mv nbtscan-source-1.0.35.gz nbtscan-1.0.35.tar.gz cd /usr/local/src/ mkdir nbtscan cd nbtscan/ tar -zxvf /root/Desktop/Source/nbtscan-1.0.35.tar.gz make Cài đặt Snort:
Để cài đặt Snort ta tiến hành như sau:
cd /usr/local/src/ tar -zxvf /root/Desktop/Source/snort-2.9.4.tar.gz cd snort-2.9.4/ ./configure --enable-sourcefire make make install
Các lỗi phát sinh trong quá trình “configure” sẽ bị bỏ qua, do đó ta có thể kiểm tra file “config.log” được sinh ra bởi các câu lệnh sau:
cd /usr/local/lib
ldconfig -v /usr/local/lib
Để cài đặt môi trường cho Snort hoạt động ta thực thi các câu lệnh sau:
Chương V. Cài đặt và cấu hình Snort - 66 - Ngô Văn Chơn - Lê Thị Mộng Vân
Đề tài: Xây dựng hệ thống Snort IDS-IPS trên CentOS GVHD: PGS.TS Trần Công Hùng
mkdir -p snort mkdir /var/log/snort cd snort/
tar -zxvf /root/Desktop/Source/snortrules-snapshot-2940.tar.gz cp ./etc/* .
touch /etc/snort/rules/white_list.rules /etc/snort/rules/black_list.rules mkdir /usr/local/lib/snort_dynamicrules
cp /etc/snort/so_rules/precompiled/Centos-5-4/i386/2.9.4.0/*.so
/usr/local/lib/snort_dynamicrules/
cat /etc/snort/so_rules/*.rules >> /etc/snort/rules/so-rules.rules touch /var/log/snort/alert
Tạo group và user cho snort:
groupadd -g 40000 snort
useradd snort -d /var/log/snort -s /sbin/nologin -c SNORT_IDS -g snort
Để bảo đảm cho Snort hoạt động ổn định, ta cấp cần cấp quyền sở hữu và quyền truy cập cho group và user snort đối với tất cả những thư mục liên quan đến quá trình cài đặt của Snort:
cd /etc/snort/
chown -R snort:snort *
chown -R snort:snort /var/log/snort/
chown -R snort:snort /usr/local/lib/snort_dynamicrules chmod -R 700 /usr/local/lib/snort_dynamicrules
chown snort:snort /var/log/snort/alert chmod 700 /var/log/snort/alert
cd /var/log chmod 700 snort
Chương V. Cài đặt và cấu hình Snort - 67 - Ngô Văn Chơn - Lê Thị Mộng Vân
Đề tài: Xây dựng hệ thống Snort IDS-IPS trên CentOS GVHD: PGS.TS Trần Công Hùng
cd /usr/local/lib
chown -R snort:snort snort*
chown -R snort:snort snort_dynamic* chown -R snort:snort pkgconfig chmod -R 700 snort*
chmod -R 700 pkgconfig cd /usr/local/bin/
chown -R snort:snort daq-modules-config chown -R snort:snort u2*
chmod -R 700 daq-modules-config chmod 700 u2*
cd /etc/
chown -R snort:snort snort chmod -R 700 snort
Thiết lập các mức khởi chạy của Snort:
cd /usr/local/src/snort-2.9.4/rpm/ cp snortd /etc/init.d/snort
cp /usr/local/src/snort-2.9.4/rpm/snort.sysconfig /etc/sysconfig/snort chkconfig --add snort
Tạo liên kết mềm cho Snort:
cd /usr/sbin/
ln -s /usr/local/bin/snort snort
Mở file /etc/sysconfig/snort bằng vim và chỉnh sửa lại các thông tin:
INTERFACE=eth1 #ALERTMODE=fast
Chương V. Cài đặt và cấu hình Snort - 68 - Ngô Văn Chơn - Lê Thị Mộng Vân
Đề tài: Xây dựng hệ thống Snort IDS-IPS trên CentOS GVHD: PGS.TS Trần Công Hùng
#DUMP_APP=1 #BINARY_LOG=1
Cài đặt barnyard2:
Ta tiến hành cài đặt barnyard2 như sau:
cd /usr/local/src/ tar -zxvf /root/Desktop/Source/barnyard2-1.9.tar.gz cd barnyard2-1.9/ ./configure --with-mysql make make install cp etc/barnyard2.conf /etc/snort/ Cấu hình barnyard2: mkdir /var/log/barnyard2 vim /etc/snort/barnyard2.conf config hostname: localhost config interface: eth0
output database: alert, mysql, user=snort password=password dbname=snort host=localhost
output database: log, mysql, dbname=snort user=snort password=password host=localhost
Trong thư mục baryard---/src ta thực thi câu lệnh:
cp barnyard2 /etc/init.d/
Cấu hình mysql:
Chương V. Cài đặt và cấu hình Snort - 69 - Ngô Văn Chơn - Lê Thị Mộng Vân
Đề tài: Xây dựng hệ thống Snort IDS-IPS trên CentOS GVHD: PGS.TS Trần Công Hùng
service mysqld start mysql
SET PASSWORD FOR root@localhost=PASSWORD('password'); create database snort;
grant ALL PRIVILEGES on snort.* to snort@localhost with GRANT option; SET PASSWORD FOR snort@localhost=PASSWORD('password');
exit
cd /usr/local/src/barnyard2-1.9/schemas/ mysql -p < create_mysql snort
mysql -p show databases; use snort show tables; exit Cài đặt adodb5:
Ta tiến hành cài đặt adodb5 như sau:
cd /root/Desktop/Source/ tar -zxvf adodb518a.gz
mv adodb5 /var/www/html/adodb5
Cài đặt BASE:
Ta thực thi các câu lệnh sau:
cd /root/Desktop/Source/ tar -zxvf base-1.4.5.tar.gz
Chương V. Cài đặt và cấu hình Snort - 70 - Ngô Văn Chơn - Lê Thị Mộng Vân
Đề tài: Xây dựng hệ thống Snort IDS-IPS trên CentOS GVHD: PGS.TS Trần Công Hùng
mv /var/www/html/base/base_conf.php.dist /var/www/html/base/base_conf.php pear install --force Image_Color
pear install --force Image_Canvas pear install --force Image_Graph
Sau khi cài đặt ta tiến hành cấu hình BASE:
vim /var/www/html/base/base_conf.php $DBlib_path = '/var/www/html/adodb5'; $DBtype = 'mysql'; $alert_dbname = 'snort'; $alert_host = 'localhost'; $alert_port = ''; $alert_user = 'snort'; $alert_password = 'password'; $archive_exists = 0; $archive_dbname = 'snort'; $archive_host = 'localhost'; $archive_port = ''; $archive_user = 'snort'; $archive_password = 'password';
Tùy chỉnh cấu hình Snort:
Ta thực hiện chỉnh sửa file snort.conf như sau:
vim /etc/snort/snort.conf
ipvar HOME_NET 10.1.1.0/24 ipvar EXTERNAL_NET !$HOME_NET var RULE_PATH /etc/snort/rules
Chương V. Cài đặt và cấu hình Snort - 71 - Ngô Văn Chơn - Lê Thị Mộng Vân
Đề tài: Xây dựng hệ thống Snort IDS-IPS trên CentOS GVHD: PGS.TS Trần Công Hùng
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 output unified2: filename snort.log, limit 128
Sau khi thực hiện các thao tác trên, ta có thể kiểm tra sự hoạt động của Snort bằng câu lệnh sau:
snort -u snort -g snort -c /etc/snort/snort.conf -i eth0
barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort/ -f snort.u2 -w /var/log/snort/barnyard2.waldo
Cấu hình Snort và các phần bổ sung: Các biến trong Snort:
Có 3 loại biến được định nghĩa trong Snort, các biến này đứng sau 3 từ khóa sau:
- var
- ipvar
- portvar
Ta sẽ tìm hiểu cụ thể cách sử dụng từng biến ở phần sau đây.
Từ khóa var
Dùng từ khóa var để khai báo các biến liên quan đến đường dẫn. Cấu trúc:
var <tên biến> <đường dẫn>
Chương V. Cài đặt và cấu hình Snort - 72 - Ngô Văn Chơn - Lê Thị Mộng Vân
Đề tài: Xây dựng hệ thống Snort IDS-IPS trên CentOS GVHD: PGS.TS Trần Công Hùng
Trong phần tùy chỉnh cấu hình Snort ta đã cấu hình như sau:
var RULE_PATH /etc/snort/rules
var WHITE_LIST_PATH /etc/snort/rules var BLACK_LIST_PATH /etc/snort/rules
Điều này có nghĩa ta đã sử dụng RULE_PATH là một biến được khai báo bằng từ khóa var, RULE_PATH có giá trị được gán là: /etc/snort/rules. Tương tự với các biến còn lại.
Từ khóa ipvar
Từ khóa ipvar dùng để khai báo các biến chỉ địa chỉ IP, dãy IP trong hệ thống mạng.
Cấu trúc:
ipvar <tên biến> <IP, dãy IP, any, hoặc !IP, ! dãyIP >
Ví dụ:
ipvar HOME_NET 10.1.1.0/24
ipvar EXTERNAL_NET !$HOME_NET
Từ khóa portvar
portvar dùng để khai báo các giá trị port từ 0 – 65535. Cũng giống như biến
ipvar, portvar cũng có thể khai báo cho một port hoặc dãy port, port bất kỳ hay loại trừ port nào đó.
Danh sách các port phải được đặt trong dấu ngoặc vuông, và khi muốn định nghĩa phạm vi của các port nằm trong giới hạn nào, ta phải dùng dấu “:”, Ví dụ như:
Chương V. Cài đặt và cấu hình Snort - 73 - Ngô Văn Chơn - Lê Thị Mộng Vân
Đề tài: Xây dựng hệ thống Snort IDS-IPS trên CentOS GVHD: PGS.TS Trần Công Hùng
var EXAMPLE2_PORT [80:90] var PORT_EXAMPLE2 [1] portvar EXAMPLE3 any portvar EXAMPLE4 [!70:90]
portvar EXAMPLE5 [80,91:95,100:200]
Cấu hình Preprocessor:
Các plugin trong Module Tiền xử lý được cấu hình bằng từ khóa “preprocessor” trong file cấu hình snort.conf
Cấu trúc:
preprocessor <name>: <options>
- name: Tên của plugin : frag3, stream5, arpspoof
- option: Các tùy chọn
Ví dụ:
preprocessor minfrag: 128
Sau đây ta sẽ đi vào tìm hiểu các plugin của Module Tiền xử lý. Frag3
Khi một packet đi qua các mạng khác nhau, nó thường cần phân mảnh thành các packet nhỏ hơn do MTU qui định trên mỗi mạng. Sau đó tất cả các sắp xếp lại khi đến nơi để khôi phục dữ liệu gốc. Một trong những phương pháp tấn công của attacker là việc can thiệp và sửa đổi những packet phân mảnh này để phục vụ cho mục đích của chúng. Frag3 trong module tiền xử lý có chức năng quản lý những gói tin phân mảnh này, bằng cách sắp xếp và so sánh các gói này với nhau, nó sẽ dễ dàng phát hiện ra những thay đổi đó. Frag3 có các options để chống lại các dạng tấn công này.
Chương V. Cài đặt và cấu hình Snort - 74 - Ngô Văn Chơn - Lê Thị Mộng Vân
Đề tài: Xây dựng hệ thống Snort IDS-IPS trên CentOS GVHD: PGS.TS Trần Công Hùng
Để kích hoạt Frag3, ta cần phải tiến hành cấu hình 2 thành phần: frag3_global và frag3_engine.
Frag3_global
Cấu trúc:
Preprocessor frag3_global:<options>
Có thể cấu hình nhiều options cho frag3_global, các options cách nhau bằng dấu phẩy.
Các options:
- max_frags <number>: số lượng tối đa các phân mảnh đồng thời được theo dõi. Mặc định là 8192.
- memcap <bytes> : Bộ nhớ tự quản. Mặc định là 4MB.
- Prealloc_frags <number>: Thay thế chế độ quản lý bộ nhớ. Sử dụng các nút phân đoạn trước khi thay thế. (Nhanh hơn trong một số trường hợp).
Frag3_engine
Cấu trúc:
Preprocessor frag3_engine:<options>
Các options cách nhau bằng khoảng trắng. Các options:
- timeout <seconds> : thời gian timeout của phân mảnh. Những phân mảnh trong hệ thống tồn tại trong hệ thống sau thời gian này sẽ bị hủy. Mặc định là 60 giây.
- ttl_limit <hops> : Giá trị TTL tối đa chấp nhận cho gói tin đầu tiên trong phân mảnh.Mặc định là 5.
Chương V. Cài đặt và cấu hình Snort - 75 - Ngô Văn Chơn - Lê Thị Mộng Vân
Đề tài: Xây dựng hệ thống Snort IDS-IPS trên CentOS GVHD: PGS.TS Trần Công Hùng
- min_ttl <value> : Giá trị TTL tối thiểu chấp nhận cho một gói phân mảnh. Mặc định là 1.
- detect_anomalies : Phát hiện những đoạn phân mảnh bất thường
- bind_to <ip_list> : Danh sách IP liên kết với hệ thống. Hệ thống chỉ chạy những gói tin với địa chỉ đích nằm trong danh sách IP. Giá trị mặc định là tất cả.
- policy <type> : Lựa chọn chính sách dựa trên tiêu chí chống phân mảnh. Những chính sách có sẵn là first, last, bsd, bsd-right, linux. Mặc định là bsd.
Stream5
Tiền xử lý stream5 là một module của snort, có khả năng theo dõi các traffic TCP và UDP đang lưu thông trên mạng bằng cách sử dụng các khoá rule “flow” và “flowbits”.
Các thành phần của Stream5: global, TCP, UDP, ICMP, IP.
Global
Các tùy chọn trong cấu hình global, mỗi tùy chọn cách nhau bằng dấu phẩy:
- [track_tcp <yes|no>]: theo dõi phiên TCP, mặc định là “yes”.
- [max_tcp <number>]: giá trị phiên TCP lớn nhất được theo dõi cùng lúc, mặc định là “26214”, lớn nhất là “1048576” và nhỏ nhất là “1”.
- [memcap <number bytes>]: đỉnh bộ nhớ cho việc lưu trữ gói tin TCP, mặc
định là 8MB, tối đa 1GB và nhỏ nhất là 32KB.
- [track_udp <yes|no>]: theo dõi phiên UDP, mặc định là “yes”.
- [max_udp <number>]: >]: giá trị phiên UDP lớn nhất được theo dõi cùng lúc, mặc định là “131072”, lớn nhất là “1048576” và nhỏ nhất là “1”.
Chương V. Cài đặt và cấu hình Snort - 76 - Ngô Văn Chơn - Lê Thị Mộng Vân
Đề tài: Xây dựng hệ thống Snort IDS-IPS trên CentOS GVHD: PGS.TS Trần Công Hùng
- [max_icmp <number>]: giá trị phiên ICMP lớn nhất được theo dõi cùng lúc,
mặc định là “65536”, lớn nhất là “1048576” và nhỏ nhất là “1”.
- track_ip <yes|no>]: theo dõi phiên IP, mặc định là “no”.
Từ khóa » Cài đặt Snort
-
1. Cài đặt Phần Mềm Phát Hiện Xâm Nhập Snort - Viblo
-
[Snort] Hướng Dẫn Cài đặt Snort - Trang Tin Tức Từ Cloud365
-
Hướng Dẫn Cài đặt Snort Trên Ubuntu Server - Huudoanh's Blog
-
Snort - Network Intrusion Detection & Prevention System
-
How To Install Snort On Ubuntu - UpCloud
-
Hướng Dẫn Cài đặt Snort Trên Ubuntu 20.04 - 123HOST
-
Hướng Dẫn Chi Tiết Cài đặt Và Cấu Hình Snort (ai Cũng Làm Theo được)
-
Cài đặt Snort IDS Trên Ubuntu 14.04
-
Cài đặt Và Cấu Hình Snort Trên Windows - CUSTOMER SERVICE
-
Hướng Dẫn Cài Đặt Snort Trên Ubuntu Server ...
-
Cài Đặt Snort Chuẩn - DOKUMEN.TIPS
-
Cách Sử Dụng Hệ Thống Phát Hiện Xâm Nhập Snort Trên Linux
-
Ghichep-IDS-IPS-SIEM/Cai Dat At Master - GitHub