Home / Operating System / Tìm hiều IDS Snort trên Linux

Tìm hiều IDS Snort trên Linux

Quản trị mạng Linux – Tìm hiều IDS Snort trên Linux

Nội dung chính:

  1. Giới thiệu Snort
  2. Cài đặt, cấu hình Snort
  3. Cấu trúc luật của Snort

1. Giới thiệu Snort

  • Snort là một phần mềm mã nguồn mở có khả năng phát hiện, chống sự xâm nhập trái phép nhằm đẩm bảo bảo mật hệ thống mạng.
  • Snort hoạt động như một phần mềm đứng giữa sự giao tiếp của hai máy tính. Các packet trước khi được gửi đến máy tính đích sẽ được snort kiểm tra, thẩm định.
  • Snort có thể phát hiện nhiều loại xâm nhập như: buffer overflows, stealth port scans, CGI attacks, SMB probes, OS fingerprinting attempts…

Tìm hiều IDS Snort trên Linux

Tìm hiều IDS Snort trên Linux

Sniffer mode

  • Hiển thị thông tin header của packet:

snort -v

  • Hiển thị thông tin ứng dụng đang phát sinh packet:

snort –v -d

  • Header của tầng datalink:

snort –vde

snort –v –d -e

Packet Logger mode

  • Lưu thông tin xuống file:

snort –dev –l [filename]

  • Lưu thông tin ở dạng binary:

snort –l [filename] -b

  • Đọc ngược thông tin từ file binary:

snort –dv –r [filename]

snort –dv –r [filename] icmp

Network Instrution Detection System (NIDS)

  • Mode hoạt động phức tạp nhất, nhiều option nhất.
  • Bắt buộc phải chỉ ra file luật dùng để hoạt động (option -c)

snort –u snort –g snort –D –c /etc/snort

  • Mặc định của mode này là cảnh báo full alert và log lại packet theo dạng ASCII.

Inline mode

  • Biên dịch hỗ trợ inline mode:

./configure –enable-inline

  • Có 3 loại luật được sử dụng ở mode inline:

drop: iptables sẽ bỏ qua packet và log lại sự kiện này.

reject: iptables sẽ bỏ qua packet, log lại sự kiện, và thông báo đến máy tính rằng packet này sẽ không đến nơi.

sdrop: iptables sẽ bỏ qua packet, không thông báo đến máy đích và cũng không log lại sự kiện.

  • snort_inline –QDc ../etc/drop.conf –l /var/log/snort

2. Cài đặt, cấu hình Snort

Cài đặt Snort

  • ./configure
  • make
  • make install
  • Để hoạt động ở mode NIDS cần có tập luật: snortrules.tar.gz.
  • tar –xzvf snortrules.tar.gz  -C /etc/snort
  • Sửa file /etc/snort/snort.conf

Cấu hình Snort

  • var HOME_NET: định nghĩa mạng cần bảo vệ.
  • var EXTERNAL_NET: định nghĩa mạng bên ngoài.
  • var DNS_SERVERS: định nghĩa các server DNS cần bảo vệ.
  • var SMTP_SERVERS: định nghĩa các server SMTP cần bảo vệ.
  • portvar HTTP_PORTS : định nghĩa port của ứng dụng

Preprocessor : kiểm tra packet ngay sau khi packet được giải mã. Preprocessor được thực hiện trước tất cả các luật tìm kiếm, phát hiện khác. preprocessor <name>:<option>

stream4 -> replace bằng stream5

sfPortscan

Performance Monitor

ftp_telnet

Output modules: Linh hoạt trong việc định dạng thông báo đến người sử dụng output <name>:<options>

alert_syslog

alert_fast

alert_full

log_tcpdump

alert_csv

3. Cấu trúc luật của Snort

  • Rule header: rule action, protocol, địa chỉ IP nguồn và địa chỉ IP đích, port nguồn và port đích .
  • Rule option: thông điệp cảnh báo, phần thông tin để xác định packet nào sẽ bị giữ lại.

Ví dụ:  alert tcp any any -> any any (content:”|00 01 86 a5|”; msg: “mountd access”;)

  • meta-data: cung cấp thông tin về rule nhưng không gây ra bất cứ ảnh hưởng nào đến quá trình phát hiện packet.
  • payload: tìm kiếm thông tin trong phần payload của packet.
  • non-payload: tìm kiếm thông tin trong phần non-payload của packet.
  • post-detection: xảy ra sau khi một rule được kích hoạt

Meta-data

  • msg: “<message text>”;
  • reference: <id system>, <id>;
  • sid: <snort rules id>;
  • classtype: <classname>;

Tìm hiều IDS Snort trên Linux

  • priority: <priority integer>

Payload

  • content: [!] “<context string>”;
  • nocase;
  • rawbytes;
  • depth: <number>;
  • offset: <number>;
  • distance: <byte count>;
  • uricontent: [!]<context string>;
  • isdataat: <int>;
  • byte_test: <bytes to convert>, [!] <operator>, <value>, <offset> [,relative] [,endian] [,<number type>, string];
  • byte jump

Non-payload

  • ttl: time to live.
  • tos: type of service.
  • dsize: kiểm tra non-payload có lớn hơn một kích thước xác định không.
  • flag: kiểm tra TCP flag bits (F: FIN, S: SYN, R: RST, A: ACK).
  • flow: xác định chiều của kết nối.
  • window: kiểm tra tcp window size.

Post-detection

  • Logto: kiểm tra log lại sự kiện vào file.

logto: “filename”;

  • session: sử dụng để lấy sự kiện từ một TCP session.

session: [printable|all];

  • resp, react.
Print Friendly

About dongpolice

Check Also

cài đặt ffmeg

Cài đặt FFmpeg + FFmpeg-PHP +Lame + Ruby + Mplayer + Mencoder + flv2tool

Cài đặt FFmpeg + FFmpeg-PHP +Lame + Ruby + Mplayer + Mencoder + flv2tool Để …