Log ứng dụng, log của hệ điều hành… Log Device: Là log ghi lại tình trạng hoạt động của các thiết bị phầncứng và phần mềm đang được sử dụng: Router, Switch, IDS, IPS…Log là một thành ph
Tổng quan về hệ thống giám sát an ninh mạng
Một số khái niệm cơ bản
1.1.1 Các thành phần trong hệ thống mạng Để một hệ thống mạng hoạt động tốt, nó bao gồm rất nhiều thành phần hoạt động trên các nền tảng và môi trường khác nhau:
Các thiết bị hạ tầng mạng: Router, switch, Hub…
Các thiết bị, hệ thống phát hiện và phòng chống xâm nhập: IDS/IPS, Snort, FireWall…
Các ứng dụng chạy trên các máy chủ và máy trạm.
Là một thành phần quan trọng của hệ thống mạng Nó lưu lại một cách chính xác mọi hoạt động của hệ thống, tình trạng hoạt động của hệ thống, các ứng dụng, các thiết bị đã và đang hoạt động trong hệ thống.
Các loại log chính trong hệ thống:
Log Access: Là log ghi lại toàn bộ thông tin truy cập của người dùng tới hệ thống, truy cập của các ứng dụng tới cơ sở dữ liệu…
Log Event: Là log ghi lại chi tiết những sự kiện mà hệ thống đã thực hiện Log ứng dụng, log của hệ điều hành…
Log Device: Là log ghi lại tình trạng hoạt động của các thiết bị phần cứng và phần mềm đang được sử dụng: Router, Switch, IDS, IPS…Log là một thành phần cực kỳ hữu hiệu cho việc giám sát cũng như khắc phục các sự cố trong hệ thống mạng Tuy nhiên, với những hệ thống lớn, chạy nhiều ứng dụng, lượng truy cập cao thì công việc phân tích Log thực sự là một điều vô cùng khó khăn.
Giám sát an ninh mạng (Network Security Mornitoring)
1.2.1 Giám sát an ninh mạng là gì?
An ninh mạng là việc đảm bảo an toàn cho hệ thống mạng và các thông tin truyền tải trên mạng, chống lại các tấn công, xâm nhập trái phép Các kỹ thuật và công cụ thường được sử dụng trong an ninh mạng bao gồm:
Các tường lửa, proxy cho lọc gói tin và điều khiển truy nhập.
Mạng riêng ảo và các kỹ thuật bảo mật thông tin truyền như: SSL/TLS.
Các kỹ thuật và hệ thống phát hiện, ngăn chặn tấn công, xâm nhập.
Vấn đề giám sát mạng.
Giám sát an ninh mạng là việc thu thập các thông tin trên các thành phần của hệ thống, phân tích các thông tin, dấu hiệu nhằm đánh giá và đưa ra các cảnh báo để cho người quản trị hệ thống. Đối tượng của giám sát an ninh mạng là tất cả các thành phần, thiết bị trong hệ thống mạng:
1.2.2 Vai trò của hệ thống giám sát an ninh mạng
Về bản chất hệ thồng giám sát an ninh mạng là hệ thống phân tích sự kiện, luồng dữ liệu mà không tích hợp các giải pháp ngăn chặn vào trong đó Hệ thống này hoạt động độc lập và chỉ thu thập nhật ký hệ thống của các thiết bị, ứng dụng hay các luồng dữ liệu chứ không ảnh hưởng đến chúng.
Về cơ bản hệ thống giám sát an ninh mạng tuân thủ theo mô hình SIEM (Security information and Event management) Đây là mô hình chung cho hệ thống giám sát an ninh mạng được sử dụng rất nhiều trên thế giới và các nhà sản xuất các thiết bị giám sát an ninh mạng cũng dựa trên mô hình chuẩn này Đối với hệ thống giám sát an ninh mạng chức năng chính của nó là thu thập các thành phần chính sau:
Các sự kiện an ninh (Security Event): Được sinh ra từ các ứng dụng hoặc thiết bị như nhật ký hệ thống IIS, Firewall, VPN, IDS, IPS…
Bối cảnh hoạt động mạng (Network activity context): Tầng 7 bối cảnh ứng dụng từ lưu lượng mạng và lưu lượng các ứng dụng.
Thông tin hệ điều hành: Tên nhà sản xuất và chi tiết về số phiên bản.
Các nhật ký hệ thống ứng dụng: Kế hoạch nguồn lực doanh nghiệp(Enterprise Resource Planning – ERP), quy trình làm việc, cơ sở dữ liệu ứng dụng, nền tảng quản lý
Với mỗi dòng nhật ký hệ thống sinh được tính là một sự kiện, các sự kiên được tính trên giây (EPS), và xử lý các luồng dữ liệu này được tính trên phút (FPM) sau đó hệ thống sẽ tiến hành phân tích bằng các bộ luật và đưa ra các cảnh báo cần thiết tới nhà quản trị hệ thống.
1.2.3 Giải pháp giám sát an ninh mạng
Việc giám sát an ninh mạng là một vấn đề cần thiết và ngày càng được chú trọng hơn Nhằm mục đích phát hiện sớm các tấn công mạng cũng như các nguy cơ đối với hệ thống mạng và đưa ra các giải pháp ngăn chặn kịp thời Đáp ứng nhu cầu đó hệ thống NSM được phát triển và xây dựng qua các giai đoạn và các công nghệ sau: quản lý thông tin an ninh (SIM: Security Information Management), quản lý sự kiện an ninh (SEM: Security Event Management) cà giải pháp quản lý phân tích sự kiện an toàn thông tin (SIEM - Security Information and event management). a) Security Information Management
Hệ thống SIM là hệ thống được xây dựng đầu tiên Chức năng chính của nó là thu thập dữ liệu ghi sự kiện từ các thiết bị an ninh như tường lửa, máy chủ proxy, hệ thống phát hiện xâm nhập IDS và phần mềm chống virus.
Nhật ký an ninh thông tin bao gồm dữ liệu Log được tạo ra từ nhiều nguồn, bao gồm cả các hệ thống phần mềm chống virus, phát hiện xâm nhập IDS, hệ thống ngăn chặn xâm nhập (IPS), tập tin hệ thống, tường lửa, router, máy chủ… SIM cung cấp khả năng quản lý đăng nhập và có khả năng lưu trữ các bản ghi trong thời gian rất dài Do chưa có thành phần phân tích và xử lý sự kiện an ninh nên SIM chỉ có thể phát hiện và sử lý được các biến cố đơn giản.
Các sản phẩm thương mại của SIM: Splunk, Log logic, Trigeo, NetIQ Security Manager…
Các sản phẩm mã nguồn mở của SIM: OSSIM… b)Security Event Management
Hệ thống thu thập các dữ liệu sự kiện nhật ký do các thành phần (thiết bị, ứng dụng) trong hệ thống tạo ra Sau đó tập trung hóa việc lưu trữ và xử lý, phân tích các sự kiện rồi lập báo cáo, đưa ra các thông báo, cảnh báo liên quan đến an ninh của hệ thống.
Không giống như SIM, hạn chế của SEM là không có khả năng lưu trữ nhật lý trong thời gian dài Nhưng những sản phẩm này cung cấp, phân tích quản lý các sự kiện một cách mạnh mẽ: Ứng phó các sự cố và các hoạt động an ninh.
Các sản phẩm của SEM: ArcSight ESM, netForensics, Novell Sentinel, Cisco MARS and IBM TSOM. c) Security Information and Event Management
SIEM là một giải pháp hoàn chỉnh cho phép các tổ chức thực hiện việc giám sát các sựu kiện an toàn thông tin cho hệ thống Giải pháp này được kết hợp từ hai giải pháp SIM và SEM, nó được xây dựng dựa trên những ưu điểm của hai giải pháp đó và được bổ sung thêm các tính năng mới nhằm tăng cường hiệu quả trong việc giám sát an ninh mạng.
Nguyên lý cơ bản của SIEM là thu thập các dữ liệu và các sự kiện an ninh từ nhiều thiết bị khác nhau ở các vị trí khác nhau trong hệ thồng Từ đó giúp người quản trị có thể dễ dàng theo dõi tất cả các dữ liệu từ vị trí duy nhất để phát hiện xu hướng và theo dõi các dấu hiệu bất thường cũng như các dấu hiệu tấn công mạng có thể xảy ra.
Một điểm mạnh nữa của SIEM là khả năng giám sát quản lý người dùng và sự thay đổi cấu hình cho các hệ thống khác nhau, cũng như cung cấp kiểm toán đăng nhập và xem xét ứng phó sự cố.
Các sản phẩm thương mại của SIEM: Qradar SIEM, ArcSight, Log Logic, Cisco Security MARS…
1.2.4 Các thành phần chính của hệ thống NSM
Hình 1.1 Thành phần của NSM. a) Console
Console là nơi xử lý, lưu trữ các sự kiện an ninh được cảnh báo, các sự kiện này được gửi lên từ Event processor và Flow processor Ngoài ra tại đây còn chứa các tập luật xử lý các dữ liệu Console có khả năng hoạt động độc lập.
Chu kỳ của NSM (The NSM cycle)
Mô hình hoạt động dựa trên dữ liệu mạng.
Nó yêu cầu không chỉ về công nghệ mà còn có con người và quy trình.
Tập trung vào đối thủ, chứ không phải sự yếu kém.
Một số phương thức giám sát:
Network tap: Là thiết bị vật lý, cái mà replays một bản sao của các gói tin tới một máy chủ giám sát an ninh mạng (NSM server) Tất cả các gói tin sẽ được sao chép sẽ chuyển tiếp đến cổng giám sát nơi các bộ phân tích, giám sát được kết nối vào.
SPAN or Port mirror: Kỹ thuật này cho phép cấu hình để switch tự động sao chép các gói tin qua lại giữa các cổng đến một cổng riêng biệt nơi NSM có thể kết nối được gọi là cổng giám sát SPAN có trên các switchh 3550 trở về sau.
Host NIC: Được cấu hình để xem tất cả lưu lượng truy cập mạng trên phân đoạn của nó.
Serial port tap: Là thiết bị vật lý sẽ replays lưu lượng dữ liệu nối tiếp (serial traffic) đến một cổng khác.
1.3.1 Thu thập dữ liệu (Collection)
Việc thu thập dữ liệu ở đây chính là việc lấy các thông tin liên quan đến tình trạng hoạt động của các thiết bị trong hệ thống mạng Tuy nhiên, trong những hệ thống mạng lớn thì các dịch vụ hay các thiết bị không đặt tại trên máy, một địa điểm mà nằm trên các máy chủ, các hệ thống con riêng biệt nhau Các thành phần hệ thống cũng hoạt động trên những nền tảng hoàn toàn khác nhau Mô hình Log tập trung được đưa ra để giải quyết vấn đề này Cụ thể, là tất cả Log sẽ được chuyển về một trung tâm để phân tích và xử lý.
Với mỗi thiết bị có những đặc điểm riêng và các loại log cũng khác nhau. Như log của các thiết bị mạng như: Router, Swich Log của các thiết bị phát hiện xâm nhập: IDS, IPS, Snort… Log của các Web Server, Application Server, Log Event, Log Registry của các Server Windows, Unix/Linux.
Loại dữ liệu được thu thập:
Full content data (Đầy đủ dữ liệu nội dung): Đó là thu thập tất cả các gói tin chưa lọc.
Extracted content (Nội dung được trích xuất): Luồng dữ liệu, files, trang web.
Session data (Dữ liệu phiên): Là cuộc hội thoại giữa các node.
Transaction data (Dữ liệu giao dịch): Là các yêu cầu và đáp lại giữa các node.
Statistical data (Dữ liệu thống kê): Mô tả lưu lượng truy cập dữ liệu, như protocal và volume.
Metadata: Các khía cạnh của dữ liệu ví dụ như ai là người sở hữu địa chỉ IP này.
Alert/ log data: Các triggers từ các IDS tools, theo dõi đăng nhập người dùng…
Cách thức thu thập dữ liệu trong hệ thống NSM:
Phương pháp kéo. a) The Push Method (Phương pháp đẩy)
Các sự kiện từ các thiết bị, các máy trạm, Server sẽ được tự động chuyển về các Collector theo thời gian thực hoặc sau mỗi khoảng thời gian phụ thuộc vào việc cấu hình trên các thiết bị tương ứng Các Collector của Log Server sẽ thực hiện việc nghe và nhận các sự kiện khi chúng xảy ra Ví dụ như: NetFlow, Syslog - ng Message (Syslog - ng gồm 2 thành phần là Syslog - Agent và Syslog - Server), Access - list (ACL) logs…
Hình 1.3 Phương pháp đẩy. b)The Pull Method (Phương pháp kéo)
Các Collector thu tập các sự kiện được phát sinh và lưu trữ trên chính các thiết bị và sẽ được lấy về bởi các bộ Collector Hai giao thức phổ biến để thu thập được các sự kiện là Security Device Event Exchange (SDEE – Gồm các thiết bị nằm trong hệ thống các thiết bị phát hiện xâm nhập được phát triển bởi ICSA) và
SNMP (Simple Network Management Protocol – Giao thức hỗ trợ việc quản lý các thiết bị từ xa).
Khi đã thu thập được những thông tin về hệ thống thì công việc tiếp theo là phân tích thông tin, cụ thể là việc thực hiện chỉ mục hóa dữ liệu, phát hiện những điều bất thường, những mối đe dọa của hệ thống Dựa trên những thông tin về lưu lượng truy cập, trạng thái truy cập, định dạng request… Ví dụ như lưu lượng truy cập bỗng dưng tăng vọt tại một thời điểm Đây có lẽ là nơi thích hợp để Big data lên tiếng.
Hình 1.3 quá trình hoạt động của dịch vụ
1.3.3 Cảnh báo - leo thang thông tin
Sau khi đã thực hiện việc phân tích dữ liệu từ các thông tin thu thập được việc tiếp theo là thực hiện việc đánh giá, đưa thông tin cảnh báo tới người quản trị và thực hiện những công tác nhằm chống lại những mỗi đe dọa, khắc phục các sự cố có thể xảy ra.
Leo thang thông tin là việc các chuyên gia báo cáo lên trên cho những người có quyền quyết định những vấn đề mà họ cho là quan trọng, cần phải điều tra thêm. Những người có quyền quyết định là những người có đủ thẩm quyền, trách nhiệm và năng lực để quyết định cách đối phó với các sự cố ANTT tiềm tàng Không có leo thang thông tin, công việc của các chuyên gia sẽ trở thành vô ích Tại sao phải phân tích để phát hiện các sự cố ANTT tiềm tàng nếu như chẳng có ai chịu trách nhiệm cho việc xử lý chúng?
Cảnh báo có thể thông qua email, SMS, hoặc thực thi các mã script nhằm hạn chế hậu quả của sự cố Khi xảy ra sự cố, hệ thống sẽ tự động gửi email, sms cho người quản trị và cũng có thể chạy script để thêm một địa chỉ IP có biểu hiện tấn công và danh sách đen của Firewall Việc này đòi hỏi người lập trình phải có hiểu biết sâu và kinh nghiệm về hệ thống.
Cơ chế hoạt động của hệ thống giám sát an ninh mạng
Mô hình giám sát an ninh mạng được triển khai có hai dạng chính: dạng phân tán và dạng tập trung.
Dạng phân tán (Distributed): Là mô hình mà trong đó có hệ thống xử lý được đặt ở trung tâm NSM và mọi hoạt động của hệ thống như: Các sự kiện, luồng dữ liệu… sẽ được xử lý tại trung tâm sau đó được hiển thị lên giao diện Web site Đối với mô hình này thường đòi hỏi một sự đầu tư quy mô đầu và lực lượng con người phải nhiều mới đủ khả năng để vận hành hệ thống này.
Dạng tập trung (All in one): Đây là mô hình mà hệ thống được xây dựng riêng lẻ cho các đơn vị, và không liên quan tới nhau, có nghĩa là hệ thống hoạt động độc lập Các nhật ký hệ thống và luồng dữ liệu được trực tiếp thu thập tại mạng con, sau đó đẩy về thiết bị NSM và tại đây luồng dữ liệu sẽ được xử lý Tuy nhiên, mô hình này phù hợp cho các ngân hàng và đơn vị nhỏ và yêu cầu về đầu tư và lực lượng con người không cao.
1.4.1 Hệ thống giám sát an ninh mạng phân tán
Hình 1.4 Mô hình NSM phân tán.
Hệ thống NSM phân tán được xây dựng theo quy mô lớn về thiết bị và con người Các EC và FC có thể được đặt ở rất nhiều mạng khác nhau, và năng lực hoạt động của hệ thống được tính toán kỹ lưỡng sao cho khả năng xử lý của các thiết bị đáp ứng được nhu cầu hệ thống mà không bị quá tải Để thu thập nhật ký hệ thống từ các thiết bị hay ứng dụng trước hết EC phải kết nối đến các thiết bị hoặc ứng dụng đó Sau đó tùy theo các dạng ứng dụng hay thiết bị mà cách cấu hình lấy nhật ký hệ thống sẽ khác nhau Nhưng điều tối thiểu nhất đó là các thiết bị phải được kích hoạt chế độ lưu nhật ký hệ thống
Với các ứng dụng thì các file nhật ký hệ thống đã có định dạng sẵn, chế độ lưu nhật ký hệ thống dễ dàng được kích hoạt và lưu vào một thư mục nào đó trên máy tính EC sẽ được cung cấp tài khoản, trao quyền truy cập vào thư mục và đọc các nhật ký hệ thống đó, sau đó nhật ký hệ thống này sẽ được chuyển về EC Tuy nhiên, có những thiết bị không cho phép thu thập nhật ký hệ thống như cách trên VD: Firewall Checkpoint, IPS… thì các thiết bị này luôn có các tính năng
“forward log” cho server nên khi cấu hình thu thập nhật ký hệ thống người quản trị buộc phải sử dụng phương pháp này Đối với FC, thiết bị này sẽ được kết nối vật lý với các switch hỗ trợ span port và dữ liệu sẽ được gửi về FC thông qua span port Nhật ký hệ thống sau khi được EC và FC thu thập sẽ được nén, mã hóa và gửi về cho EP và FP tương ứng thông qua giao thức SSH cổng 22, các nhật ký hệ thống này được xử lý tại EP và
FP và gửi lên CONSOLE những cảnh báo cần thiết, CONSOLE sẽ hiển thị chúng lên giao diện web thông qua cổng 443
Như vậy hệ thống NSM phân tán là một quá trình xuyên suốt từ việc thu thập nhật ký hệ thống hay luồng dữ liệu tới EC, FC sau đó nhật ký hệ thống được chuyển tiếp về EP và FP rồi gửi đến CONSOLE và hiển thị lên giao diện web. Toàn bộ quá trình này đều được nén và mã hóa để đảm bảo không bị lộ khi có tấn công xảy ra Một đặc điểm đáng chú ý khác nữa là khi kết nối giữa các thiết bị được thiết lập thì toàn bộ hệ thống được cấu hình qua thiết bị CONSOLE trên giao diện web hoặc giao diện Command line.
1.4.2 Hệ thống giám sát an ninh mạng tập trung
Mô hình hệ thống NSM độc lập chỉ có một thiết bị duy nhất đó làCONSOLE (All in One) Nhật ký hệ thống và luồng dữ liệu được gửi trực tiếp lên thiết bị này mà không cần thông qua EP, FP, EC, FC CONSOLE có khả năng hoạt động độc lập và có chức năng tương ứng với tất cả các thiết bị kia Do vậy, khi nhật ký hệ thống được gửi về thì CONSOLE sẽ xử lý và trực tiếp hiển thị lên giao diện Web Hệ thống này chỉ thích hợp cho các mạng nhỏ và vừa như các ngân hàng hoặc các doanh nghiệp nhỏ và không cần đầu tư quá lớn về nhân lực và trang thiết bị.
Hình 1.6 Mô hình NSM tập trung.
Như vậy, hệ thống giám sát an ninh mạng là hệ thống có tổ chức từ việc thu thập dữ liệu, phân tích dữ liệu và quản lý dữ liệu Điều quan trọng nhất là để hệ thống NSM hoạt động tốt thì cần có các trang thiết bị an ninh trong mạng như IDS,IPS Hệ thống NSM sẽ thu thập kết quả phân tích của các trang thiết bị này và tương quan các sự kiện khác để đưa ra các cảnh báo chính xác nhất Trong trường hợp nếu không có các trang thiết bị đó, hệ thống sẽ thu thập các luồng dữ liệu và nhật ký sự kiện như IIS, proxy Đối với dạng này thì các sự kiện chưa được phân tích do vậy yêu cầu có các chuyên gia phân tích.
Nhận xét
Giám sát an ninh mạng đóng vai trò quan trọng đối với hệ thống mạng Nó phát hiện sớm các tấn công mạng cũng như các nguy cơ đối với hệ thống mạng và đưa ra các giải pháp ngăn chặn kịp thời.
Tuy nhiên giám sát an ninh mạng cũng gặp nhiều khó khăn đối với mạng được mã hóa (Encrypted networks), độ phổ biến rộng rãi NAT (Widespread NAT),thiết bị di chuyển giữa phân đoạn mạng, lưu lượng truy cập cao (Extreme traffic volume), privacy concerns.
Hệ thống giám sát mã nguồn mở Nagios
Tổng quan về nagios
Nagios là một phần mềm mã nguồn mở với nhiều chức năng mạnh mẽ cho phép quản lý các thiết bị, dịch vụ trong hệ thống mạng.
Nagios là một hệ thống giám sát mạnh mẽ cho phép các tổ chức xác định và giải quyết các vấn đề cơ sở hạ tầng CNTT trước khi chúng ảnh hướng đến quá trình kinh doanh quan trọng.
Lần đầu tiên ra mắt vào năm 1999, Nagios đã có hàng ngàn dự án được phát triển bởi cộng đồng Nagios trên toàn thế giới Nagios được bảo trợ chính thức bởi Nagios Enterprises, hỗ trợ cộng đồng trong một số cách khác nhau thông qua việc bán các sản phẩm thương mại và dịch vụ của mình.
Nagios theo dõi toàn bộ cơ sở hạ tầng CNTT để đảm bảo hệ thống, ứng dụng, dich vụ và quy trình kinh doanh đang hoạt động tốt Trong trường hợp bị lỗi, Nagios có thể cảnh báo nhân viên kỹ thuật các vấn đề, cho phép họ bắt đầu quá trình phục hồi trước khi ảnh hưởng đến quá trình kinh doanh, người sử dụng, hoặc khách hàng. Được thiết kế với khả năng mở rộng và tính linh hoạt trong, Nagios mang đến sự an tâm đến từ hiểu biết quy trình kinh doanh của tổ chức sẽ không bị ảnh hưởng bởi sự cố ngừng hoạt động không rõ nguyên nhân.
Lên kế hoạch cho việc nâng cấp cơ sở hạ tầng trước khu hệ thống lỗi thời gây ra lỗi.
Ứng phó với các vấn đề ngay khi có dấu hiệu đầu tiên.
Tự động sửa chữa các vấn đề khi chúng được phát hiện.
Đảm bảo sự ngưng hoạt động của các cơ sở hạ tầng CNTT có ảnh hưởng tối thiểu đến hệ thống.
Theo dõi toàn bộ cơ sở hạ tầng và quy trình kinh doanh.
Giám sát các dịch vụ mạng (HTTP, SMTP, POP3, PING,…)
Giám sát các thiết bị mạng
Giám sát tài nguyên máy chủ (processor load, disk usage,…)
Những phần bổ trợ đơn giản cho phép người dùng phát triển dịch vụ kiểm tra riêng của họ.
Phát hiện và phân biệt được các máy chủ hay dich vụ xuống cấp và không thể truy cập được.
Thông báo cho người giám sát khi máy chủ hay dịch vụ có vấn đề và được giải quyết.
Các hoạt động kiểm tra được thực hiện bởi các plugin cho máy phục vụ Nagios và các mô đun client trên các thiết bị của người dùng cuối, Nagios chỉ định kỳ nhận các thông tin từ các plugin và xử lý những thông tin đó (thông báo cho người quản lý, ghi vào tệp log, hiển thi lên giao diện web…).
Thiết kế plugin đơn giản cho phép người dùng có thể tự định nghĩa và phát triển các plugin kiểm tra các dịch vụ theo nhu cầu riêng bằng các công cụ lập trình như shell scripts, C/C++, Perl, Ruby, Python, PHP, C#.
Có khả năng kiểm tra song song trạng thái hoạt động của các dịch vụ (đồng thời kiểm tra nhiều dịch vụ)
Hỗ trợ khai báo kiến trúc mạng Nagios không có khả năng nhật dạng được topo của mạng toàn bộ các thiết bị, dịch vụ muốn được giám sát đều phải khai báo và định nghĩa trong cấu hình.
Gửi thông báo đến người/nhóm người được chỉ định sẵn khi dịch vụ/host được giám sát gặp vấn đề và khi chúng khôi phục hoạt động bình thường (qua e- mail, pager, SMS, IM…)
Khả năng định nghĩa bộ xử lý sự kiện thực thi ngay khi có sự kiện sảy ra với host/ dịch vụ.
Giao diện web cho phép xem trạng thái của mạng, thông báo, lịch sử, tệp log.
Kiến trúc và tổ chức hoạt động
Hệ thống nagios gồm 2 phần chính: Nagios core và nagios plugin
Nagios core là thành phần chính của Nagios, đây là quản lý các host/dịch vụ được giám sát, thu thập các kết quả kiểm tra (check) host/dịch vụ từ các plugin gửi về, biểu diễn trên giao diện chương trình, lưu trữ và thông báo cho người quản trị. Ngoài ra nó còn tổng hợp và đưa ra các báo cáo về tình hình hoạt động chung hoặc của từng host/dịch vụ trong một khoảng thời gian nào đó.
Plugin là bộ phận trực tiếp kiểm tra host/dịch vụ Mỗi một loại dịch vụ đều có một plugin riêng biệt được viết để phục vụ riêng cho công việc kiểm tra dịch vụ đó Plugins xử lý đối số dòng lệnh, đi về các doanh nghiệp thực hiện kiểm tra, và sau đó trả lại kết quả cho Nagios Core để xử lý tiếp Plugin có thể được biên dịch nhị phân (viết bằng C, C++, …) hoặc các bản thực thi (Perl, PHP, …) Khi cần thực hiện kiểm tra một hots/dịch vụ nào đó Nagios chỉ việc gọi cho plugin tương tứng và nhận kết quả kiểm tra từ chúng Với thiết kế như thế này, hệ thống Nagios rất dễ dàng được mở rộng và phát triển Bất kì một thiết bị hay dịch vụ nào cũng có thể được giám sát nếu như viết được plugin cho nó.
Hình 2.1 Sơ đồ tổ chức của nagios
Nagios kiểm tra theo các khoảng thời gian bằng nhau định trước với số lần check nhất định trong một lần kiểm tra Sau khi thực hiện hết các lượt check, nagios sẽ quyết định kết quả kiểm tra cho host/dịch vụ đó.
Nagios có 5 cách thức thực thi các hành động kiểm tra như sau: a) Kiểm tra dịch vụ trực tiếp Đối với các dịch vụ mạng có giao thức giao tiếp qua mạng như smtp, http, ftp… Nagios có thể tiến hành kiểm tra trực tiếp một dịch vụ xem nó đang hoạt động hay không bằng cách gửi truy vấn kết nối dịch vụ đến server dịch vụ và đợi kết quả trả về Các plugin phục vụ kiểm tra này được đặt ngay trên server Nagios.
Ví dụ như để kiểm tra dịch vụ ping, plugin sẽ gửi gói tin smtp đến các máy được giám sát và đợi kết quả trả về và thông báo cho nagios. b)Chạy các plugin trên máy ở xa bằng secure shell
Nagios server không có cách nào có thể truy cập trực tiếp client để theo dõi những thông tin như tình trạng sử dụng ổ đĩa, swap, tiến trình … Để làm được việc này thì trên máy được giám sát phải cài plugin cục bộ Nagios sẽ điểu khiển các plugin cục bộ trên client qua secure shell ssh bằng plugin check_by_ssh Phương pháp này yêu cầu một tài khoản truy cập host được giám sát nhưng nó có thể thực thi được tất cả các plugin được cài trên host đó Thông thường trên các máy được giám sát sẽ có một tài khoản riêng cho nagios điều khiển. c) NRPE - Nagios Remote Plugin Executor (Bộ thực thi plugin từ xa)
NRPE là một addon đi kèm với Nagios Nó trợ giúp việc thực thi các plugin được cài đặt trên máy/thiết bị được giám sát NRPE được cài trên các host được giám sát Khi nhận được truy vấn từ Nagios server thì nó gọi các plugin cục bộ phù hợp trên host này, thực hiện kiểm tra và trả về kết quả cho Nagios server Phương pháp này không đòi hỏi tài khoản truy cập host được giám sát như sử dụng ssh. Tuy nhiên cũng như ssh các plugin phục vụ giám sát phải được cài đặt trên host được giám sát NRPE có thể thực thi được tất cả các loại plugin giám sát Nagios có thể điều khiển máy cài NRPE kiểm tra các thông số phần cứng, các tài nguyên, tình trạng hoạt động của máy đó hoặc sử dụng NRPE để thực thi các plugin yêu cầu truy vấn dịch vụ mạng đến một máy thứ 3 để kiểm tra hoạt động của các dịch vụ mạng như http, ftp, mail… Đây là cách thức phổ biến được sử dụng trong nagios. d)Giám sát qua SNMP
Cốt lõi của giao thức SNMP (SimpleNetwork Management Protocol) là tập hợp đơn giản các hoạt động giúp nhà quản trị mạng có thể quản lý, thay đổi trạng thái thiết bị Hiện nay rất nhiều thiết bị mạng hỗ trợ giao thức SNMP như Switch, router, máy in, firewall Nagios cũng có khả năng sử dụng giao thức SNMP để theo dõi trạng thái của các client, các thiết bị mạng có hỗ trợ SNMP Qua SNMP, Nagios có được thông tin về tình trạng hiện thời của thiết bị Ví dụ như với SNMP, Nagios có thể biết được các cổng của Switch, router có mở hay không, thời gian Uptime (chạy liên tục) là bao nhiêu… e) NSCA (Nagios Service Check Acceptor)
Nagios được coi là một phần mềm rất mạnh vì nó dễ dàng được mở rộng và kết hợp với các phần mềm khác Nó có thể tổng hợp thông tin từ các phần mềm kiểm tra của hãng thứ ba hoặc các tiến trình Nagios khác về trạng thái của host/dịch vụ Như thế Nagios không cần phải lập lịch và chạy các hành động kiểm tra host/dịch vụ mà các ứng dụng khác sẽ thực hiện điểu này và báo cáo thông tin về cho nó Và các ứng dụ ng kiểm tra có thể tận dụng được khả năng rất mạnh của Nagios là thông báo và tổng hợp báo cáo Nagios sử dụng công cụ NSCA để gửi các kết quả kiểm tra từ ứng dụng về server Nagios Công cụ này giúp cho thông tin gửi trên mạng được an toàn hơn vì nó được mã hóa và xác thực Đây là phương pháp kiểm tra bị động Nagios không chủ động kiểm tra dịch vụ mà là client chủ động gửi kết quả kiểm tra dịch vụ về cho Nagios thông qua plugin NSCA Phương pháp này được áp dụng nhiều trong giám sát phân tán Với các mạng có quy mô lớn, người ta có thể dùng nhiều server Nagios để giám sát từng phần của mạng. Trong đó có một server Nagios trung tâm thực hiện tổng hợp kết quả từ các server Nagios con thông qua plugin NSCA.
Hình 2.2 Tổng quan các cách thức kiểm tra trong Nagios
Các dịch vụ giám sát
2.3.1 Giám sát các thiết bị mạng
Nagios giám sát các thiết bị mạng (Máy in, switch, router, …) qua giao thức SNMP Vì vậy máy giám sát(Nagios) phải cài đặt net-snmp và net-snmp-utils với redhat/fedora hoặc libsnmp-base, snmp, snmpd, libsnmp15 với debian/ubuntu trước khi biên dịch và cài đặt nagios plugin Các thiết bị được giám sát phải có IP, hỗ trợ snmp, và snmp ở trạng thái bật.
Với máy in, nagios sử dụng plugin check_hpjd cho việc giám sát trạng thái của máy in Plugin check_hpjd sử dụng giao thức SNMP để xác định trạng thái của máy in plugin này cung cấp các tính năng phát hiện, cảnh báo, ghi lại các sự cố của máy in như: kết nối mạng, két giấy, hết giấy, …
Với các thiết bị switch và router nagios sử dụng 2 plugin giám sát các thiết bị này đó là check_snmp, check_mrtgtraf Nếu muốn sử dụng check_mrtgtraf để giám sát băng thông thì máy Nagios phải cài MRTG (chương trình giám sát lưu lượng mạng) Gói plugin này cung cấp cách thức kiểm tra kết nối mạng, các trạng thái hiện tại, băng thông sử dụng và tỉ lệ mất gói tin trên switch, router.
2.3.2 Giám sát máy đầu cuối
Trên mỗi máy tính đầu cuối được cài một Agent Agent này sẽ thực hiện việc kiểm tra trạng thái các tài nguyên trên chính máy đó Nagios giao tiếp với Agent này để thu thập kết quả NSClient++ là Agent được sử dụng trên máy được giám sát chạy hệ điều hành window và NRPE trên máy được giám sát chạy hệ điều hành linux Nagios sử dụng 2 plugin để giao tiếp với các Agent này là check_nt cho window và check_nrpe cho linux Plugin có khả năng giám sát:
Tình trạng sử dụng ổ đĩa cứng.
Tình trạng sử dụng bộ nhớ trong, và swap.
Số người dùng đang logon, số tiến trình đang chạy và tệp log hệ thống trên linux Giám sát từng dịch vụ, tiến trình trên window.
2.3.3 Giám sát các dịch vụ mạng Đối với các dịch vụ mạng như HTTP, POP3, IMAP, FTP, SSH… là các dịch vụ dùng chung, công khai Nagiso thường giám sát được trạng thái của các dịch vụ này mà không cần bất cứ yêu cầu truy cập đặc biệt nào Không như các dịch vụ riêng, Nagios không thể giám sát được nếu như không có các agent trung gian Ví dụ các dịch vụ có liên quan đến host như là tải CPU, tình trạng sử dụng bộ nhớ trong, ổ đĩa, … Vì những thông tin này thường không được công khai với bên ngoài và yêu cầu quyền truy cập Khi giám sát các dịch vụ mạng, Nagios sẽ gọi các plugin được đặt ngay trên server Nagios gửi một yêu cầu dịch vụ đến host cung cấp dịch vụ, hoặc gọi một plugin trên một host và yêu cầu dịch vụ trên host thứ 2 rồi thu thập kết quả trả về.
Một số khái niệm sử dụng trong Nagios
Host sẽ được kiểm tra bởi nagios khi:
Trong khoảng thời gian được định nghĩa trong tùy chọn check_interval (khoảng thời gian giữa hai lần kiểm tra kế tiếp) và retry_interval (Khoảng thời gian thực hiện kiểm tra lại để xác nhận khi phát hiện host thay đổi trạng thái) của định nghĩa cấu hình host.
Khi dịch vụ mà host đó cung cấp thay đổi trạng thái Thường thì khi dịch vụ thay đổi trạng thái thì host cũng thay đổi trạng thái Ví dụ nếu Nagios phát hiện ra dịch vụ HTTP thay đổi trạng thái từ CRITICAL sang OK, thì rất có thể là host cung cấp dịch vụ này vừa khởi động lại và đang chạy.
Khi có host con của host đó bị đặt vào trạng thái UNREARCHABLE. Đó là trạng thái mà Nagios không liên lạc được với host đó hay có thể hiểu là mất đường truyền đến host đó.
Nagios phân loại các trạng thái của host gồm:
UP: hoạt động bình thường.
DOWN: tạm dừng hoạt động.
Dịch vụ sẽ được kiểm tra bởi nagios kiểm tra trong khoảng thời gian được định nghĩa trong tùy chọn check_interval (khoảng thời gian giữa hai lần kiểm tra kế tiếp) và retry_interval (Khoảng thời gian thực hiện kiểm tra lại để xác nhận khi phát hiện host thay đổi trạng thái) của định nghĩa cấu hình host.
Nagios phân loại các trạng thái của dịch vụ gồm:
OK: Hoạt động bình thường.
WARNING: Có thể hoạt động nhưng chưa chính xác hoặc có thể không hoạt động.
UNKNOWN: Không xác định được.
2.4.3 Trạng thái sort state và hard state
Các thức kiểm tra của nagios bao gồm nhiều lần check nhỏ, trong quá trình thực hiện check thu được các trạng thái xác định thì các trạng thái đó gọi là sort state Sau khi thực hiện hết các lượt check, nagios sẽ quyết định kết quả kiểm tra, khi đó trạng thái xác định được gọi là hard state.
2.4.4 Quản lý sơ đồ các thiết bị mạng
Nagios là phần mềm chưa có khả năng tự phát hiện ra các node và kiến trúc của mạng Công việc này do người dùng tự định nghĩa và quyết định theo quy tắc nhất định Nagios được coi là trung tâm giám sát Các thiết bị(A) có đường kết nối vật lý trực tiếp đến server Nagios được có mối quan hệ là con của Nagios Các thiết bị kết nối trực tiếp đến A được coi là con của A Cứ như vậy kiến trúc mạng được định nghĩa và mở rộng qua mối quan hệ cha/con này, với Nagios là trung tâm.
Cài đặt cấu hình và kiểm nghiệm
Nagios core
Cài đặt các gói cần thiết cho nagios bằng quyền root:
[phong@localhost ~]$ yum install httpdphpphp-cli gccglibc
Tạo tài khoản và nhóm tài khoản cho nagios sử dụng:
Tiến hành tải về và giải nén các gói cài đặt của nagios và nagios plugin:
Biên dịch và cài đặt nagios:
[phong@localhost tmp]# nagioscore-nagios-4.3.4 cd
Tạo mật khẩu cho tài khaorn mặc định của nagios – nagiosadmin:
[phong@localhost nagioscore-nagios-4.3.4]#htpasswd –c
Cấu hình lại tường lửa cho phép quản trị viên truy cập dasboard:
[phong@localhost nagioscore-nagios-4.3.4]# firewall-cmd zo
Khởi động web server và kích hoạt dịch vụ nagios:
[phong@localhost nagioscore-nagios-4.3.4]# systemctlstart
Hiện tại thì nagios đã được cài đặt và có thể truy cập tại địa chỉ 192.168.10.20/nagios với username và password của nagiosadmin đã cài đặt ở trên nhưng chưa thể giám sát được bất kì ai vì chưa được cài nagios plugin.
Tiến hành tải về và cài đặt nagios plugin:
Sau khi phía host cài đặt nagios daemon, nagios có thể kiểm tra các câu lệnh kiểm tra nrpe với câu lệnh:
/usr/local/nagios/libexec/check nrpe -H192.168.10.10
Kết quả trả về sẽ là phiên bản nrpe được cài trên host và qua trình cài đặt hoàn tất. Định nghĩa host trên nagios:
Sửa file cấu hình nagios.cfg, thêm vào một file định nghĩa host và service trên host
[phong@localhost ~]#cd/usr/local/nagios/etc
Sửa lại file cấu hình nagios.cfg thêm vào dòng định nghĩa với linuxhost.cfg là file cấu hình của host 192.168.10.10: cfg file=/usr/local/nagios/etc/objects/linuxhost.cfg
Tạo file linuxhost.cfg để định nghĩa host:
[phong@localhost etc]# objects/ cd
Chỉnh sửa lại các định nghĩa của host trong file linuxhost.cfg cho khớp với host 192.168.10.10: Định nghĩa host: definehost{ Định nghĩa các dịch vụ defineservice{
[phong@localhost objects]#systemctl restart nagios
Giả định cả 2 bên cấu hình thành công, dashboard của nagios sẽ hiện thị như sau:
Host được giám sát cần cài đặt nrpe daemon để nagios có thể quản lý và cấu hình được. phong@ubuntu:~$cd/tmp
Sửa file /etc/xinetd.d/nrpe và thêm địa chỉ IP của server nagios ở phần only_from: only from= 127.0.0.1 192.168.10.20
Thêm cổng dịch vụ vào service của host: echo>> /etc/services
Cấu hình tưởng lửa đảm bảo liên lạc giữa host và server nagios firewall-cmd zone=public add-portV66/tcp
Khởi động lại xinet service xinetdrestart
Kiểm tra nrpe trên host và trên nagios:
Nagios xi
Nagios xi là một phiên bản nâng cấp của nagios core, nhằm giúp quản trị viên không khó khăn trong các cài đặt bằng lệnh, thay vào đó sẽ có giao diện cung cấp các cài đặt đó.
Cài đặt các gói cần thiết cho nagios yuminstall wget gccopenssl-devel
Tài gói phần mềm giải nén và biên dịch:
Quá trình cài đặt sẽ tự động cài nagios, nagios plugin và các plugin bổ trợ kèm theo cho nagios Quá trình kết thúc sẽ có dạng như sau:
Tiếp tục truy cập http://192.168.10.20/nagiosxi để cài đặt, điền các thành phần cần thiết sau đó chọn install
Hình 3.3 cấu hình nagios xi
Quá trình install xong sẽ nhận được link login vào nagiosxi Tới đây thì quá trình cài đặt nagiosxi và các plugin cần thiết đã được cài đặt, hiện tại nagiosxi đang giám sát chính nó cùng các dịch vụ mà nó cung cấp.
Hình 3.4 nagiosxi sau khi cài đặt xong Để add thêm một host vào hệ thống nagiosxi, chọn tab configure, chọn configuration wizards Chọn hệ điều hành của host, ip và tải về gói plugin được cung cấp trên host Ở đây chọn linux và đặt ip là 192.168.10.10 cùng hệ điều hành linux.
Hình 3.5 cấu hình host nagiosxi
Hình 3.6 Cấu hình kiểm tra host
Sau đó tiếp tục chọn các dịch vụ cần giám sát và hoàn thành cài đặt.
Hình 3.7 Hoàn thành cài đặt host Đến đây thì server sẽ giám sát host được thêm vào với các cấu hình từ trước.
Tải về gói cài đặt được yêu cầu từ nagios và cài đặt: phong@ubuntu:/~$cd/tmp/
Cuối cùng chọn allow from là ip của nagiosix.
Hình 3.8 Kết quả kiểm tra trên host
Kiểm nghiệm kết quả
Với điền kiện ban đầu, các kết quả đo được như sau:
Hình 3.9 Giám sát host qua nagios
3.3.1 Kiếm tra dung lượng của host
Trong điều kiện ban đầu có thể thấy dung lượng còn trống 14G Tiến hành lấp đầy ổ cứng của host bằng một file bất kỳ với lệnh: phong@ubuntu:/tmp/linux-nrpe-agent$fallocate -l 13Gfile
Sau khi kiếm tra từ phía nagiosxi, sẽ có cảnh báo đầy bộ nhớ trên giao diện yêu cầu quản trị giải phóng bộ nhớ:
Hình 3.10 Cảnh báo đầy bộ nhớ
Sau khi xóa file file, bố nhớ sẽ được giải phóng và không còn cảnh báo.
3.3.2 Kiểm tra trạng thái của host
Nếu trên host được giám sát bị tắt hoặc có vấn đề về cấu hình, nagios sẽ biết được và tạo cảnh báo:
Hình 3.11 Cảnh báo trạng thái của host
Tương tự với các dịch vụ khác như mysql, ping, ssh, … nagios cũng hoạt động tương tự với các cảnh báo trên dashboard.