Snort là một trong những IDS được sử dụng phổ biến nhất. Nó là nguồn mở, nhẹ, có sẵn trên nhiều nền tảng và có thể được cài đặt thoải mái ngay cả trên các phiên bản máy chủ đám mây nhỏ nhất. Mặc dù Snort có khả năng nhiều hơn là chỉ giám sát mạng, hướng dẫn này cho thấy cách cấu hình và chạy Snort trong chế độ NIDS với một thiết lập cơ bản mà sau này bạn có thể mở rộng khi cần thiết.
chuẩn bị máy chủ của bạn
Thiết lập cấu hình cơ bản của Snort trên CentOS khá đơn giản nhưng phải mất vài bước để hoàn thành. Trước tiên, bạn sẽ cần phải cài đặt tất cả các phần mềm tiên quyết để sẵn sàng cho máy chủ đám mây của bạn để cài đặt Snort. Cài đặt các thư viện cần thiết với lệnh sau đây.
sudo yum install gcc flex bison zlib libpcap pcre libdnet tcpdump
Phiên bản Snort mới nhất tại thời điểm này cũng yêu cầu libnghttp2 có thể tải xuống và cài đặt bằng lệnh bên dưới.
sudo yum install https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/l/libnghttp2-1.21.1-1.el7.x86_64.rpm
Ngoài ra, hãy kiểm tra xem có thể truy cập libdnet bằng cách tạo liên kết symbolic link sau đây không.
sudo ln -s /usr/lib64/libdnet.so.1.0.1 /usr/lib64/libdnet.1
Snort có thể được cài đặt với các gói có sẵn, giúp đơn giản hóa quá trình thiết lập một cách đáng kể, và cho phép bạn cài đặt Snort dễ dàng với yum. Ngoài ra, bạn có thể tải xuống và cài đặt Snort trên CentOS theo cách thủ công từ code. sau đây tôi sẽ chỉ cho cả hai phương pháp này.
Option 1. Installing with yum
Snort cung cấp các gói rpm thuận tiện cho CentOS 7, có thể được cài đặt đơn giản với các lệnh bên dưới.
sudo yum install https://www.snort.org/downloads/snort/daq-2.0.6-1.centos7.x86_64.rpm
sudo yum install https://www.snort.org/downloads/snort/snort-2.9.11.1-1.centos7.x86_64.rpm
Option 2. Installing from the source
Thiết lập Snort trên CentOS từ mã nguồn bao gồm một vài bước: tải xuống mã, cấu hình nó, biên dịch mã, cài đặt nó vào một thư mục thích hợp và cuối cùng cấu hình các quy tắc phát hiện.
Trước khi bắt đầu, bạn cũng sẽ cần các gói phát triển sau ngoài các điều kiện tiên quyết đã được cài đặt.
sudo yum install -y zlib-devel libpcap-devel pcre-devel libdnet-devel
sudo yum install -y https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/l/libnghttp2-devel-1.21.1-1.el7.x86_64.rpm
Khi đã cài đặt song, bạn tạo thư mục tải xuống tạm thời về thư mục chính của bạn và sau đó thay đổi thành thư mục đó bằng lệnh bên dưới.
mkdir ~/snort_src && cd ~/snort_src
Tải xuống gói nguồn DAQ mới nhất từ trang web Snort bằng lệnh wget bên dưới. Thay thế số phiên bản trong lệnh nếu có nguồn mới hơn.
wget https://www.snort.org/downloads/snort/daq-2.0.6.tar.gz
Quá trình tải xuống sẽ chỉ mất vài giây khi hoàn thành trích xuất mã nguồn và chuyển vào thư mục mới bằng các lệnh sau.
tar -xvzf daq-2.0.6.tar.gz
cd daq-2.0.6
Chạy kịch bản cấu hình bằng các giá trị mặc định của nó, sau đó biên dịch chương trình bằng lệnh make và cuối cùng là cài đặt DAQ.
./configure && make && sudo make install
Với DAQ được cài đặt, bạn có thể bắt đầu với Snort, thay đổi trở lại thư mục tải xuống.
cd ~/snort_src
Tiếp theo, tải về mã nguồn Snort với wget. Kiểm tra số phiên bản mới nhất từ trang web Snort và thay thế nó bằng lệnh sau nếu cần.
wget https://www.snort.org/downloads/snort/snort-2.9.11.1.tar.gz
Sau khi tải xuống hoàn tất, trích xuất nguồn và thay đổi vào thư mục mới bằng các lệnh này.
tar -xvzf snort-2.9.11.1.tar.gz
cd snort-2.9.11.1
Sau đó cấu hình cài đặt với kích hoạt nguồn, chạy và thực hiện cài đặt.
./configure --enable-sourcefire && make && sudo make install
Cuối cùng, nếu bạn muốn chạy Snort trên CentOS như một dịch vụ trong nền, bạn nên tải xuống một tập lệnh khởi động từ tài liệu Snort. Sử dụng các lệnh sau để nhận và cài đặt tập lệnh khởi động cho hệ thống của bạn.
wget https://www.snort.org/documents/snort-startup-script-for-centos -O ~/snortd
sudo chmod 755 ~/snortd && sudo mv ~/snortd /etc/init.d/
Khi thực hiện xong, tiếp tục bên dưới về cách thiết lập các tệp cấu hình.
Cấu hình Snort để chạy trong chế độ NIDS
Tiếp theo, bạn sẽ cần phải thiết lập Snort cho hệ thống của bạn. Điều này bao gồm chỉnh sửa một số tệp cấu hình, tải xuống các quy tắc mà Snort sẽ theo dõi và sử dụng Snort để chạy thử nghiệm.
Bắt đầu với việc cập nhật các thư viện được chia sẻ bằng cách sử dụng lệnh bên dưới.
sudo ldconfig
Snort trên CentOS được cài đặt vào thư mục / usr/local/bin/snort, tạo symbolic link đến / usr/sbin/snort.
sudo ln -s /usr/local/bin/snort /usr/sbin/snort
Thiết lập cấu trúc thư mục và tên người dùng
Để chạy Snort trên CentOS một cách an toàn mà không có quyền truy cập root, bạn nên tạo một người dùng không có đặc quyền mới và một nhóm người dùng mới cho daemon để chạy dưới.
sudo groupadd snort
sudo useradd snort -r -s /sbin/nologin -c SNORT_IDS -g snort
Sau đó tạo cấu trúc thư mục để định cấu hình Snort, chỉ cần sao chép qua các lệnh bên dưới. Nếu bạn đã cài đặt Snort bằng yum, những thư mục này đã được thêm vào lúc cài đặt, nhưng hãy kiểm tra để chắc chắn.
sudo mkdir -p /etc/snort/rules
sudo mkdir /var/log/snort
sudo mkdir /usr/local/lib/snort_dynamicrules
phân quyền cho các thư mục mới cho phù hợp.
sudo chmod -R 5775 /etc/snort
sudo chmod -R 5775 /var/log/snort
sudo chmod -R 5775 /usr/local/lib/snort_dynamicrules
sudo chown -R snort:snort /etc/snort
sudo chown -R snort:snort /var/log/snort
sudo chown -R snort:snort /usr/local/lib/snort_dynamicrules
Tạo các tệp mới
sudo touch /etc/snort/rules/white_list.rules
sudo touch /etc/snort/rules/black_list.rules
sudo touch /etc/snort/rules/local.rules
Sau đó, nếu bạn đã cài đặt Snort từ mã nguồn, hãy sao chép các tệp cấu hình từ thư mục tải xuống qua /etc/snort. Bỏ qua điều này nếu bạn cài đặt Snort với yum.
sudo cp ~/snort_src/snort-2.9.11.1/etc/*.conf* /etc/snort
sudo cp ~/snort_src/snort-2.9.11.1/etc/*.map /etc/snort
Tiếp theo, bạn sẽ cần phải tải xuống các quy tắc phát hiện Snort sẽ tuân theo để xác định các mối đe dọa tiềm ẩn. Snort cung cấp ba tầng quy tắc, quy tắc cộng đồng, đăng ký và người đăng ký.
- Quy tắc cộng đồng được cung cấp miễn phí mặc dù hơi bị giới hạn
- Bằng cách đăng ký miễn phí trên trang web của họ, bạn sẽ có quyền truy cập vào mã Oink, cho phép bạn tải xuống các bộ quy tắc người dùng đã đăng ký.
- Cuối cùng, các quy tắc người đăng ký chỉ có sẵn, cho người dùng có đăng ký hoạt động với dịch vụ Snort.
Tùy chọn 1. Sử dụng quy tắc cộng đồng
Nếu bạn chỉ muốn nhanh chóng kiểm tra Snort, hãy lấy các quy tắc cộng đồng bằng cách sử dụng wget với lệnh bên dưới.
wget https://www.snort.org/rules/community -O ~/community.tar.gz
Trích xuất các quy tắc và sao chép chúng vào thư mục cấu hình của bạn.
sudo tar -xvf ~/community.tar.gz -C ~/
sudo cp ~/community-rules/* /etc/snort/rules
Theo mặc định, Snort trên CentOS có một số tệp quy tắc khác nhau không được bao gồm trong các quy tắc cộng đồng.
sudo sed -i 's/include $RULE_PATH/#include $RULE_PATH/' /etc/snort/snort.conf
Tùy chọn 2. Lấy các quy tắc người dùng đã đăng ký
Đầu tiên bạn cần đăng ksy tài khoản tại đây
Đăng ký cho phép bạn truy cập để sử dụng mã Oink của họ để tải xuống các quy tắc người dùng đã đăng ký. Bạn có thể tìm thấy mã trong chi tiết tài khoản người dùng Snort.
Thay thế <oinkcode> trong lệnh sau bằng mã cá nhân của bạn.
wget https://www.snort.org/rules/snortrules-snapshot-2990.tar.gz?oinkcode=<oinkcode> -O ~/registered.tar.gz
Sau khi tải về, trích xuất các quy tắc và sao chép chúng vào thư mục cấu hình của bạn.
sudo tar -xvf ~/registered.tar.gz -C /etc/snort
Quy tắc đặt cho người dùng đã đăng ký bao gồm một số lượng lớn các quy tắc phát hiện được định cấu hình sẵn hữu ích. Nếu bạn đã thử Snort với các quy tắc cộng đồng trước, bạn có thể kích hoạt các quy tắc bổ sung bằng cách bỏ ghi chú của chúng vào cuối tệp snort.conf.
Định cấu hình mạng và bộ quy tắc
Với các tệp cấu hình và quy tắc tại chỗ, hãy chỉnh sửa snort.conf để sửa đổi một vài tham số. Mở tệp cấu hình để chỉnh sửa bằng lệnh sau.
sudo vi /etc/snort/snort.conf
Tìm các phần này được hiển thị bên dưới trong tệp cấu hình và thay đổi các tham số
# Setup the network addresses you are protecting
ipvar HOME_NET <server public IP>/32
# Set up the external network addresses. Leave as "any" in most situations
ipvar EXTERNAL_NET !$HOME_NET
# Path to your rules files (this can be a relative path)
var RULE_PATH /etc/snort/rules
var SO_RULE_PATH /etc/snort/so_rules
var PREPROC_RULE_PATH /etc/snort/preproc_rules
# Set the absolute path appropriately
var WHITE_LIST_PATH /etc/snort/rules
var BLACK_LIST_PATH /etc/snort/rules
Trong cùng một tệp snort.conf, tìm unified2 và tiến hành cấu hình như sau
# unified2
# Recommended for most installs
output unified2: filename snort.log, limit 128
Cuối cùng, cuộn xuống dưới cùng của tệp để tìm danh sách các bộ quy tắc được bao gồm. Bạn sẽ cần phải bỏ ghi chú local.rules để cho phép Snort tải bất kỳ quy tắc tùy chỉnh nào.
include $RULE_PATH/local.rules
Nếu bạn đang sử dụng các quy tắc cộng đồng, hãy thêm dòng bên dưới vào ruleset của bạn, ví dụ ngay bên dưới dòng local.rules của bạn.
include $RULE_PATH/community.rules
Validating settings
Snort của bạn bây giờ đã sẵn sàng để chạy. Kiểm tra cấu hình bằng tham số -T để bật chế độ kiểm tra.
sudo snort -T -c /etc/snort/snort.conf
Sau khi chạy thử nghiệm cấu hình Snort, bạn sẽ nhận được một thông báo như ví dụ dưới đây.
--== Initialization Complete ==--
,,_ -*> Snort! <*-
o" )~ Version 2.9.11.1 GRE (Build 268)
'''' By Martin Roesch & The Snort Team: http://www.snort.org/contact#team
Copyright (C) 2014-2017 Cisco and/or its affiliates. All rights reserved.
Copyright (C) 1998-2013 Sourcefire, Inc., et al.
Using libpcap version 1.5.3
Using PCRE version: 8.32 2012-11-30
Using ZLIB version: 1.2.7
Rules Engine: SF_SNORT_DETECTION_ENGINE Version 3.0
Preprocessor Object: SF_SSLPP Version 1.1
Preprocessor Object: SF_SSH Version 1.1
Preprocessor Object: SF_SMTP Version 1.1
Preprocessor Object: SF_SIP Version 1.1
Preprocessor Object: SF_SDF Version 1.1
Preprocessor Object: SF_REPUTATION Version 1.1
Preprocessor Object: SF_POP Version 1.0
Preprocessor Object: SF_MODBUS Version 1.1
Preprocessor Object: SF_IMAP Version 1.0
Preprocessor Object: SF_GTP Version 1.1
Preprocessor Object: SF_FTPTELNET Version 1.2
Preprocessor Object: SF_DNS Version 1.1
Preprocessor Object: SF_DNP3 Version 1.1
Preprocessor Object: SF_DCERPC2 Version 1.0
Snort successfully validated the configuration!
Snort exiting
Trong trường hợp bạn gặp phải lỗi, bản in ra phải cho bạn biết vấn đề là gì và khắc phục ở đâu. Hầu hết các vấn đề có thể thiếu tập tin hoặc thư mục mà bạn thường có thể giải quyết bằng cách thêm bất kỳ thứ gì bạn có thể đã bỏ lỡ trong cài đặt ở trên hoặc bằng cách đưa ra các dòng không cần thiết trong tệp snort.conf. Kiểm tra phần cấu hình và thử lại.
Running Snort in the background
Snort trên CentOS cung cấp một kịch bản khởi động để chạy dịch vụ trong nền. Snort có thể chạy với cấu hình bạn thiết lập bằng cách sử dụng lệnh dưới đây.
sudo systemctl start snortd
Kịch bản khởi động cũng bao gồm các lệnh systemctl thông thường khác: dừng, khởi động lại và trạng thái. Ví dụ, bạn có thể kiểm tra trạng thái của dịch vụ bằng lệnh sau đây.
sudo systemctl status snortd
Tài liệu tham khảo snort 03 centos7
Không có nhận xét nào:
Đăng nhận xét