CẤU TRÚC THƯ MỤC CỦA PHẦN MỀM GIÁM SÁT MẠNG MÃ NGUỒN MỞ SNORT
14:15 - 13/10/2020
Bài viết này giới thiệu cơ bản cấu trúc thư mục của snort, làm cơ sở để hiểu sâu hơn về phần mềm này, đặc biệt là với các developer.
Thị giác máy tính với OpenCV-Python Bài 7 Phần 2: Phát hiện người đi bộ trong video
Thị giác máy tính với OpenCV-Python Bài 7 Phần 1: Phát hiện người đi bộ trong hình ảnh
Thị giác máy tính với OpenCV-Python Bài 6 Phần 2: Phép trừ nền
Thị giác máy tính với OpenCV-Python Bài 6 Phần 1: Bắt bám đối tượng với Meanshift và Camshift
Từ các thiết bị máy móc nói chung: tại sao các kỹ sư không thiết kế máy móc liền một khối cho chắc chắn mà lại chia nhỏ ra nhiều bộ phận, nhiều chi tiết nhỏ hơn, để rồi lại mất công lắp ráp lại? Câu trả lời là thuận tiện cho việc quản lý, tháo lắp, sửa chữa, nâng cấp, phát triển sản phẩm về sau. Một ví dụ đơn giản thế này, nếu cái phanh xe đạp bị hỏng hoặc hoạt động kém hiệu quả, chỉ cần tháo nó ra để sửa chữa, thay thế, hoặc phát triển loại phanh mới – rất đơn giản và tiện lợi mà lại không làm ảnh hưởng gì đến các chi tiết khác.
Đến các project trong C/C++, mà Snort là một ví dụ: tương tự như vậy, việc phân chia các project trong C thành các thư mục và các file nhỏ hơn sẽ giúp dễ quản lý, sửa chữa, nâng cấp hoặc phát triển mới từng bộ phận nhỏ trong project. Người viết hoàn toàn có thể gom tất cả vào 1 file, hoặc chia file theo số kiểu như file_1, file_2, ... file_n, rồi bỏ vào 1 thư mục duy nhất, kiểu như để 1 “cục” cho gọn, chương trình có thể vẫn sẽ chạy ngon lành. Tuy nhiên, khi xem lại project, ngay cả chính người viết ra nó có khi cũng rơi vào trạng thái “rối tung” khi chả nhớ phần nào để chỗ nào, thực hiện cái gì. Chưa nói đến những người khác, có lẽ sẽ hoàn toàn rối bời khi nhìn vào project này.
Căn cứ nào để phân chia project thành các file và thư mục nhỏ hơn? Câu trả lời nằm ở chức năng của mỗi thư mục và mỗi file. Một project đơn giản thường chứa các thư mục sau:
- bin: chứa các file thực thi,
- build: chứa các object files được tạo ra trong quá trình biên dịch chương trình,
- doc: chứa tất cả các file ghi chú thông tin, hoặc đôi khi là cả config files,
- include: chứa tất cả các header files mà project cần đến,
- lib: chứa tất cả các file nguồn cho các thư viện mà project gọi đến,
- src: chứa tất cả các source file của chương trình (nếu coi project là 1 chương trình hay phần mềm nào đó),
- tests: tất cả các file để test chương trình để ở đây.
Snort 3 (Snort++) chứa các thư mục sau:
- cmake: chứa các makefiles (dạng script), thực hiện việc tìm kiếm, liên kết các file mà chương trình gọi đến.
- daqs: thư viện daq (thư viện bắt các gói tin, thay thế cho việc gọi trực tiếp các hàm trong libcap),
- doc: chứa các file thông tin dạng text về Snort cho developers (thư mục devel), người dùng (thư mục user), snort reference manual (trong thư mục reference) và thông tin về các tính năng được nâng cấp so với phiên bản Nort 2.9 trước đó (thư mục upgrade).
- lua: chứa config files (.lua),
- piglet/tests: chứa các file để test các tính năng và codecs của Snort,
- src: đây là thư mục quan trọng nhất, chứa source code của Snort,
- tools: một số tool bổ sung, ví dụ như snort2lua để convert config file từ Snort 2.9 (.config file) sang .lua file (Snort 3 hiểu được).
VIỆN IMC
Tòa nhà IMC Tower, Số 176 Trường Chinh, Phường Khương
Thượng, Quận Đống Đa, Thành phố Hà Nội, Việt Nam
Tel/Fax : (+84) 24 3566 6232 / 24 3566 6234
Email: contact@imc.org.vn Website: https://imc.org.vn