Cài đặt Snort và SnortSam

Một phần của tài liệu [Khóa luận tốt nghiệp] - Tìm hiểu và triển khai SnortSnortSam (Trang 85)

3. Nội dung thuyết minh và tính toán

6.2.Cài đặt Snort và SnortSam

Các gói chính:  pcre, pcre-devel.  flex.  bison  zlib, zlib-devel.  gcc, gcc-c++, make  daq-1.1.1  libdnet  snortrules-snapshot-2931  snort-2.9.3.1

73  barnyard2-1.9

Cơ sở dữ liệu: MySQL:  mysql, mysql-server.  mysql-devel Gói hỗ trợ quản trị:  httpd.  php and php-devel.  php-cli  php-pear  php-gd  php-mysql Công cụ quản trị:  base-1.4.5  adodb517  php-image-graph và php-image-canvas

6.2.1. Cài đặt các gói bắt buộc và Snort

Tạo thư mục cho việc cài đặt:

# cd /usr/src # mkdir snorttemp # cd snorttemp Tải tất cả các gói về: # wget http://www.snort.org/dl/snort-current/snort- 2.9.3.1.tar.gz # wget http://www.tcpdump.org/release/libpcap-1.3.0.tar.gz # wget http://www.snort.org/sub-rules/snortrules-snapshot- 2931.tar.gz/<oinkcode> -O snortrules-2931.tar.gz

74 # wget http://www.snort.org/dl/snort-current/daq-1.1.1.tar.gz # wget http://libdnet.googlecode.com/files/libdnet-1.12.tgz # wget http://www.securixlive.com/download/barnyard2/barnyard2- 1.9.tar.gz Giải nén các gói: # ls # tar -xzvf daq-1.1.1.tar.gz # tar -xzvf libdnet-1.12.tgz # tar -xzvf libpcap-1.3.0.tar.gz # tar -xzvf snort-2.9.3.1.tar.gz # tar -xzvf snortrules-2931.tar.gz # tar -xzvf barnyard2-1.9.tar.gz

Kiểm tra các gói đã giải nén và sau bước này có thể xóa các tập tin nén vừa được tải về. Cài đặt libpcap. # cd libpcap-1.3.0 # ./configure # make # make install # cd /usr/lib64/ # rm libpcap.so.1 # rm libpcap.so.1.0.0 # ln -s /usr/local/lib/libpcap.so.1.3.0 /usr/lib64/libpcap.so.1.3.0 # ln -s /usr/lib64/libpcap.so.1.3.1 /usr/lib64/libpcap.so.1 # ln -s /usr/lib64/libpcap.so.1 /usr/lib64/libpcap.so Cài đặt libdnet: # cd libdnet-1.12

75

# ./configure && make && make install

Cài đặt daq:

# cd daq-1.1.1

# ./configure && make && make install

Cài đặt Snort từ mã nguồn.

# cd snort-2.9.3.1

# ./configure --enable-zlib -–enable-sourcefire && make && make install

# groupadd snort

# useradd –g snort snort –s /sbin/nologin

Tạo các thư mục. # mkdir /etc/snort # mkdir /etc/snort/rules # mkdir /etc/snort/preproc_rules # mkdir /etc/snort/so_rules # mkdir /usr/local/lib/snort_dynamicrules # mkdir /var/log/snort

# chown –R snort:snort /var/log/snort

Copy các tập tin cần thiết và các luật.

# cd snort-2.9.3.1/etc # cp * /etc/snort # cd ../../ # cd rules # cp * /etc/snort/rules # cd ../preproc_rules # cp * /etc/snort/preproc_rules

76

# cp ../so_rules/precompiled/RHEL-6-0/x86_64/2.9.3.1/* /usr/local/lib/snort_dynamicrules

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

Chỉnh sửa tập tin cấu hình

# vi /etc/snort/snort.conf

Tập tin cấu hình của Snort về cơ bản sẽ được chia thành từng phần như sau.  Thiết lập các biến mạng.

 Cấu hình bộ giải mã.

 Cấu hình cơ bản bộ phát hiện xâm nhập (detection engine).  Cấu hình nạp các thư viện động.

 Cấu hình các tiền xử lý (preprocessors)  Cấu hình các output plug-ins.. (adsbygoogle = window.adsbygoogle || []).push({});

 Tùy chỉnh các thiết lập về các luật.

 Tùy chỉnh tiền xử lý và và bộ giải mã luật. (preprocessors and decode rule).  Tùy chỉnh các thiết lập chia sẻ đối tượng luật.

Sửa đổi những dòng sau đây.

ipvar HOME_NET 172.16.0.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 output unified2: filename snort.log, limit 128 dynamicpreprocessor directory

77

dynamicengine

/usr/local/lib/snort_dynamicengine/libsf_engine.so

dynamicdetection directory /usr/local/lib/snort_dynamicrules

Start và kiểm thử hệ thống.

# cd /usr/local/bin # snort –V

Trường hợp bị lỗi liên quan đến các thư viện chạy lệnh sau và thử lại Snort.

# ldconfig # snort -V

# snort -c /etc/snort/snort.conf --dump-dynamic- rules=/etc/snort/so_rules

6.2.3. Cấu hình MySQL Server

# cd /usr/bin

# /etc/init.d/mysqld start

# mysqladmin –u root password ‘password’

# mysql -u root -p # Hệ thống sẽ nhắc nhở đặt password trong quá trình cài đặt

mysql> create database snort; # Tạo cơ sở dữ liệu để lưu trữ các tập tin log của snort.

mysql> CREATE USER snort@localhost;# Tạo user mới cho snort.

mysql> SET PASSWORD for

snort@localhost=PASSWORD('snortpass');# Tạo password cho Snort

user.

mysql> GRANT INSERT, SELECT on root.* to snort@localhost;#

Gán quyền cho user.

mysql> GRANT CREATE, INSERT, SELECT, DELETE, UPDATE on

78

mysql> exit # đăng xuất (adsbygoogle = window.adsbygoogle || []).push({});

# cd /usr/bin # Di chuyển vô thư mục cài đặt MySQL.

# mysql -D snort -u root -p < /usr/src/snorttemp/barnyard2- 1.9/schemas/create_mysql

Chạy câu lệnh sau để tạo bảng dữ liệu, nhập mật khẩu khi được yêu cầu. Kiểm tra bảng dữ liệu vừa được tạo.

# mysql -u root -p (nhập mật khẩu khi được yêu cầu)

mysql> use snort; mysql> show tables;

exit;

6.2.4. Cài đặt và cấu hình Barnyard2

Cài đặt Barnyard2 từ mã nguồn.

# ./configure --with-mysql -–with-mysql-

libraries=/usr/lib64/mysql && make && make install

Bước tiếp theo là tạo các thư mục và di chuyển tập tin cấu hình. Giả sử đang đứng ở thư mục chứa mã nguồn Barnyard2.

# cp etc/barnyard2.conf /etc/snort # Copy tập tin cấu hình của

Barnyard2 đặt vào thư mục cấu hình của Snort.

# mkdir /var/log/barnyard2 # chmod 666 /var/log/barnyard2

# touch /var/log/snort/barnyard2.waldo

# cp sid-msg.map /etc/snort # Với tập tin sid-msg.map nằm trong thư mục etc của gói luật tải về.

Bước tiếp theo là chỉnh sửa tập tin cấu hình của Barnyard2 để chương trình có thể ghi dữ liệu xuống MySQL. Lưu ý là t ập tin c ấu hình của Barnyard2 gồm có phần chính đó là: phần khai báo biến, phần cấu hình input và cấu hình output.

79

# vi /etc/snort/barnyard2.conf

Xác định vị trí đến các tập tin quan trọng của Snort.

config reference_file: /etc/snort/reference.config

config classification_file: /etc/snort/classification.config config gen_file: /etc/snort/gen-msg.map

config sid_file: /etc/snort/sid-msg.map

Cấu hình thư mục sẽ chứa các output log.

config logdir: /var/log/barnyard2

Cấu hình phần hostname và card mạng.

config hostname: localhost config interface: eth0

Chỉnh sửa đường dẫn đến tập tin waldo.

config waldo_file: /var/log/snort/barnyard2.waldo

Cấu hình phần output ghi ra cơ sở dữ liệu MySQL. (adsbygoogle = window.adsbygoogle || []).push({});

Comment tùy chọn alert_fast vì mặc định Barnyard2 sẽ bật tùy chọn này. Thêm một dòng mới để ghi vô cơ sở dữ liệu.

output database: log, mysql, user=snort password=snortpass dbname=snort host=localhost

Chạy Snort và Barnyard2.

# cd /usr/local/bin

# snort –u snort –g snort-c /etc/snort/snort.conf –i eth0 # barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort/ - f snort.log -w /var/log/snort/barnyard2waldo

Để Snort và Barnyard2 tự động khởi động khi khởi động máy. Thêm vào trong file rc.local đoạn sau.

80

/usr/local/bin/snort -u snort -g snort -c /etc/snort/snort.conf -i eth0

/usr/local/bin/barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort -f snort.log -w /var/log/snort/barnyard2.waldo

6.2.5. Cài đặt BASE

Về cơ bản việc cấu hình đã xong, tuy nhiên để cho việc phân tích log và theo dõi các cảnh báo được thuận tiện ta sẽ cài thêm BASE. BASE là một plug-in chạy trên nền web vì vậy ta sẽ cần cài đặt và cấu hình web server hỗ trợ php.

Cài đặt BASE: #wget http://downloads.sourceforge.net/project/secureideas/BASE/bas e-1.4.5/base-1.4.5.tar.gz # wget http://sourceforge.net/projects/adodb/files/adodb - php5-only/adodb-517-for-php5/adodb517.tgz # tar -xzvf base-1.4.5.tar.gz # tar -xzvf adodb517.tgz # cp -r adodb5 /var/www # cp -r base-1.4.5 /var/www/html/base # cd /var/www/html/base # cp base_conf.php.dist base_conf.php # vi base_conf.php ... $BASE_urlpath = "/base"; $DBlib_path = "/var/www/adodb5/"; $DBtype = "mysql"; $alert_dbname = "snort"; $alert_host = "localhost"; $alert_port = "3306";

81

$alert_user = "snort"; $alert_password = "snortpass"; ...

Truy cập vào http://ip-address/base/base_main.php để thiết lập BASE. Để hỗ trợ BASE hiển thị ở chế độ đồ họa ta cần cài đặt thêm các gói sau:

# cd /usr/bin

# pear install image_graph-alpha # pear install Numbers_Roman

# pear install Numbers_Words-beta # pear install image_canvas-alpha # apachectl restart

6.2.6. Cài đặt SnortSam

Tải source libtool về và cài đặt. http://ftpmirror.gnu.org/libtool/libtool-2.4.2.tar.gz

# tar –xzvf libtool-2.4.2.tar.gz # cd libtool-2.4.2

# ./configure –prefix=/usr # make && make install

Tải mã nguồn của SnortSam về tại địa chỉ

http://www.snortsam.net/files/snortsam/snortsam-src-2.70.tar.gz

# tar –xzvf snortsam-src-2.70.tar.gz # chmod +x makesnortsam.sh

# ./makesnortsam.sh

Thêm SnortSam như một plug-in của Snort. Tải tập tin patch của snortsam tại

82

# patch -p1 < ../snortsam-2.9.3.1.diff # sh ./autojunk.sh

# ./configure –enable-zlib –enable-sourcefire # make && make install (adsbygoogle = window.adsbygoogle || []).push({});

Copy tập tin nhị phân của snortsam vào /usr/local/bin

Việc cài đặt và biên dịch đã hoàn tất. Tiếp theo sẽ cần cấu hình SnortSam.

# cp <path_to>/snortsam-src/etc/snortsam.conf.example /etc/snortsam.conf # vi /etc/snortsam.conf ... port <666> accept <host>/<mask>,<key> fwsam <host>

iptables <adapter> <logoption>

email <smtpserver>:<port> <recipient> <sender> ...

Cấu hình lại Snort, sẽ phải cấu hình ở hai nơi đó là file cấu hình snort.conf và các luật mà muốn ứng động SnortSam.

Snort.conf

Thêm dòng này vào trong tập tin cấu hình của snort.

output alert_fwsam: {SnortSam Station}:{port}/{password}

Dòng này sẽ xác định địa chỉ IP mà SnortSam đang chạy, port lắng nghe và mật khẩu. Mật khẩu ở đây là defaultkey được cấu hình trong snortsam.conf nếu không cấu hình có thể bỏ qua.

Rule file

83

who: src, source, dst, dest, destination IP address.

time: 'days', 'months', 'weeks', 'years', 'minutes',

'seconds', 'hours'.

Ngoài ra các giá trị ‘0’ hoặc 'PERManent', 'INFinite', hoặc 'ALWAYS’ sẽ chặn vĩnh viễn.

Ví dụ:

alert tcp any any -> $HTTP_SERVERS 80 (msg:"WEB-MISC http directory traversal"; flags: A+; content:

"..\\";reference:arachnids,298;)

Luật này sẽ thông báo với SnortSam chặn địa chỉ truy cập tới Webserver trong vòng 15 phút.

alert tcp any any -> $HTTP_SERVERS 80 (msg:"WEB-MISC http directory traversal"; flags: A+; content:

"..\\";reference:arachnids,298; fwsam: 15 minutes;)

Một phần của tài liệu [Khóa luận tốt nghiệp] - Tìm hiểu và triển khai SnortSnortSam (Trang 85)