[Snort] Hướng dẫn cài đặt snort

30/12/2020

Snort là một hệ thống phát hiện, phòng ngừa xâm nhập hệ thống (IDS/IPS) mã nguồn mở được viết bởi Martin Roesch vào năm 1998. Hiện tại, Snort được phát triển bởi Sourcefire và được sở hữu bởi Cisco từ năm 2013. Bài viết này sẽ hướng dẫn cài đặt snort 2.9 trên Centos7 làm IDS.

Chuẩn bị

Một máy Centos7 có cấu hình tối thiểu:

  • 2G RAM
  • 2 core
  • 1 interface
  • 50G disk

Cài đặt

Update và cài đặt một số gói cần thiết

yum update -y  yum install epel-release -y  yum install gcc gcc-c++ libnetfilter_queue libnetfilter_queue-devel git flex bison zlib zlib-devel pcre pcre-devel libdnet libdnet-devel tcpdump libnghttp2 wget xz-devel lzma mysql-devel* autoconf libtool -y

Tạo folder để chứa source

mkdir ~/snort_src cd ~/snort_src

Snort yêu cầu một số thư viện. Vì vậy chúng ta cần cài đặt nó trước khi cài snort

Cài đặt libpcap

wget http://www.tcpdump.org/release/libpcap-1.8.1.tar.gz tar xzvf libpcap-1.8.1.tar.gz cd libpcap-1.8.1 ./configure && make && make install yum install libpcap-devel -y cd ..

Cài đặt DAQ

wget https://www.snort.org/downloads/snort/daq-2.0.7.tar.gz tar xvfz daq-2.0.7.tar.gz cd daq-2.0.7 autoreconf -f -i ./configure && make && make install cd ..

Cài đặt LuaJIT

wget http://luajit.org/download/LuaJIT-2.0.5.tar.gz tar xvzf LuaJIT-2.0.5.tar.gz cd LuaJIT-2.0.5/ make && make install cd ..

Cài đặt snort

wget https://www.snort.org/downloads/snort/snort-2.9.16.tar.gz tar xvzf snort-2.9.16.tar.gz cd snort-2.9.16 ./configure --enable-sourcefire && make && make install

Cấu hình

Bây giờ ta cần sửa một số file cấu hình

Update thư viện dùng chung

ldconfig

Snort được cài đặt trong thư mục /usr/local/bin/snort. Để thuận tiện cho việc sử dụng ta tạo một liên kết đến /usr/bin/snort

ln -s /usr/local/bin/snort /usr/sbin/snort

Để chắc chắn snort đã được cài đặt thành công sử dụng lệnh sau để kiểm tra

snort -v

Để chạy snort mà không cần đến quyền root. Ta tạo một user và group cho snort khi chạy daemon

groupadd snort useradd snort -r -s /sbin/nologin -c SNORT_IDS -g snort

Tạo một số thư mục để lưu cấu hình snort

mkdir -p /etc/snort/rules mkdir /var/log/snort mkdir /usr/local/lib/snort_dynamicrules

Phân quyền lại cho các thư mục vừa tạo

chmod -R 5775 /etc/snort chmod -R 5775 /var/log/snort chmod -R 5775 /usr/local/lib/snort_dynamicrules chmod -R 5775 /usr/local/lib/snort_dynamicrules chown -R snort:snort /var/log/snort chown -R snort:snort /usr/local/lib/snort_dynamicrules

Tạo file

touch /etc/snort/rules/white_list.rules touch /etc/snort/rules/black_list.rules touch /etc/snort/rules/local.rules

Copy một số file tới thư mục cấu hình

cp ~/snort_src/snort-2.9.16/etc/* /etc/snort/

Sửa đổi một số thông tin trong file cấu hình /etc/snort/snort.conf

sed -i "s/include $RULE_PATH/#include $RULE_PATH/ " /etc/snort/snort.conf

Thay đổi thủ công một số dòng sau

ipvar HOME_NET 10.10.34.0/24 ipvar EXTERNAL_NET !$HOME_NET 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 include $RULE_PATH/local.rules 

Kiểm tra file cấu hình snort bằng lệnh

snort -T -c /etc/snort/snort.conf

Thêm một rule test vào file /etc/snort/rules/local.rules

alert icmp any any -> $HOME_NET any (msg:"ICMP test"; sid:10000001; rev:001;)

Thực hiện lệnh sau để kiểm tra

snort -A console -q -u snort -g snort -c /etc/snort/snort.conf

Trên một máy khác thực hiện lệnh ping đến máy cài snort

Cài đặt Barnyard2

Barnyard2 hỗ trợ việc xuất dữ liệu đầu ra của snort ra CSDL MySQL như vậy sẽ thuận tiện hơn cho việc lưu trữ hoặc xử lý nó

Cài một số gói cần thiết

yum install git unzip libtool mariadb-server -y

Sửa dòng 521 trong file /etc/snort/snort.conf thành như sau để định dạng lại dữ liệu đầu ra của snort để dùng được Barnyard2

output unified2: filename snort.log, limit 1024

Bắt đầu cài đặt

cd ~/snort_src wget https://github.com/firnsy/barnyard2/archive/master.tar.gz -O barnyard2-Master.tar.gz tar -xzvf barnyard2-Master.tar.gz cd barnyard2-master/ ./autogen.sh && ./configure --with-mysql --with-mysql-libraries=/usr/lib64/mysql && make && make install cp -v etc/barnyard2.conf /etc/snort/

Thay đổi một số giá trị trong file /etc/snort/barnyard2.conf

config logdir: /var/log/barnyard2 config hostname: localhost config interface: ens33 config waldo_file: /var/log/barnyard2/barnyard2.waldo

Tạo folder log cho Barnyard2

mkdir /var/log/barnyard2 chmod 744 /var/log/barnyard2 && chown snort.snort /var/log/barnyard2 touch /var/log/barnyard2/barnyard2.waldo && chown snort.snort /var/log/barnyard2/barnyard2.waldo

Để kiểm tra barnyard ta sử dụng câu lệnh sau

cd /var/log/snort barnyard2 -c /etc/snort/barnyard2.conf -o snort.log

Cấu hình MySQL

systemctl start mariadb && systemctl enable mariadb mysql_secure_installation

Thực hiện set password cho root và trả lời tất cả câu hỏi là Y

Kết nối MySQL và tạo DB

mysql -u root -p create database snort; grant all privileges on snort.* to snort@'localhost' identified by '123456'; grant all privileges on snort.* to snort@'127.0.0.1' identified by '123456'; flush privileges; exit

Tạo các bảng cho DB vừa tạo

cd ~/snort_src/barnyard2-master/schemas/ mysql -u root -p snort < create_mysql

Cấu hình cho Barnyard2 kết nối đến mysql

vi /etc/snort/barnyard2.conf  #Comment lại dòng 227 #output alert_fast: stdout  #Bỏ comment dòng 351 và khai báo thông tin mysql output database: log, mysql, user=snort password=123456 dbname=snort host=localhost

Cài đặt Pulledpork

Pulledpork là một script viết bằng perl dùng để tự động tải các rules từ snort

Cài các gói cần thiết

yum install perl-libwww-perl perl-core "perl(Crypt::SSLeay)" perl-LWP-Protocol-https

Download và cài đặt

cd ~/snort_src git clone https://github.com/shirkdog/pulledpork.git cd pulledpork/ cp pulledpork.pl /usr/local/bin chmod +x /usr/local/bin/pulledpork.pl cp etc/*.conf /etc/snort mkdir /etc/snort/rules/iplists touch /etc/snort/rules/iplists/default.blacklist

Kiểm tra pulledpork đã cài đặt thành công

pulledpork.pl -V

Vào lại file cấu hình của snort /etc/snort/snort.conf thêm dòng sau vào dòng 547

include $RULE_PATH/snort.rules

Bạn cần tạo một tài khoản trên https://snort.org/ để có oinkcode để tải về những rules mới nhất. Sau khi tạo tài khoản và đăng nhập chọn như sau để lấy oinkcode

Sửa một số thông tin trong file config của Pulledpork

vi /etc/snort/pulledpork.conf rule_url=https://www.snort.org/reg-rules/|snortrules-snapshot.tar.gz| <oinkcode> line 21 comment it line 74 change to:rule_path=/etc/snort/rules/snort.rules line 89 change to:local_rules=/etc/snort/rules/local.rules line 92 change to:sid_msg=/etc/snort/sid-msg.map line 119 change to:config_path=/etc/snort/snort.conf line 136 change to:distro=Centos-7 line 144 change to:back_list=/etc/snort/rules/iplists/default.blacklist line 153 change to:IPRVersion=/etc/snort/rules/iplists line 202 uncomment and change to:enablesid=/etc/snort/enablesid.conf line 203 uncomment and change to:dropsid=/etc/snort/dropsid.conf line 204 uncomment and change to:disablesid=/etc/snort/disablesid.conf line 205 uncomment and change to:modifysid=/etc/snort/modifysid.conf

Lưu file và chạy lệnh sau

mkdir -p /etc/snort/rules/iplists/ touch /etc/snort/rules/iplists/default

Chạy lệnh Pulledpork

pulledpork.pl -c /etc/snort/pulledpork.conf

Mở file /etc/crontab và thêm vào cuối dòng sau

* */5 * * * root /usr/local/bin/pulledpork.pl -c /etc/snort/pulledpork.conf

Cấu hình tự động khởi động cùng hệ thống

Để cho phép Snort và Barnyard2 khởi động khi bật máy bạn cần cấu hình như sau:

Mở file /lib/systemd/system/snort.service và thêm vào nội dung

[Unit] Description=Snort NIDS Daemon After=syslog.target network.target  [Service] Type=simple ExecStart=/usr/local/bin/snort -q -u snort -g snort -c /etc/snort/snort.conf  [Install] WantedBy=multi-user.target

Bật và cho phép snort khởi động cùng hệ thống

systemctl start snort systemctl enable snort

Mở file /lib/systemd/system/barnyard2.service và thêm vào nội dung sau

[Unit] Description=Barnyard2 Daemon After=syslog.target network.target  [Service] Type=simple ExecStart=/usr/local/bin/barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort -f snort.log -w /var/log/barnyard2/barnyard2.waldo  [Install] WantedBy=multi-user.target

Bật và cho phép barnyard khởi động cùng hệ thống

systemctl start barnyard2 systemctl enable barnyard2
ONET IDC thành lập vào năm 2012, là công ty chuyên nghiệp tại Việt Nam trong lĩnh vực cung cấp dịch vụ Hosting, VPS, máy chủ vật lý, dịch vụ Firewall Anti DDoS, SSL… Với 10 năm xây dựng và phát triển, ứng dụng nhiều công nghệ hiện đại, ONET IDC đã giúp hàng ngàn khách hàng tin tưởng lựa chọn, mang lại sự ổn định tuyệt đối cho website của khách hàng để thúc đẩy việc kinh doanh đạt được hiệu quả và thành công.
Bài viết liên quan

Hướng dẫn cấu hình và thiết lập TIG stack để giám sát Network

Trong bài viết trước, Onet đã giới thiệu và hướng dẫn cài đặt TIG stack để giám sát hệ thống. Hôm...
30/12/2020

CentOS Change Password

Passwords are the oldest and yet, effective form of security measure that almost every single system in the world offers...
29/12/2020

CentOS Versus Ubuntu

Your server needs a stable operating system that you can depend on, and both CentOS and Ubuntu are popular choices that...
29/12/2020