Tiểu luận tìm hiểu về Nagios và demo ứng dụng vào việc đảm bảo an ninh mạng, đây là bài tiểu luận mà mình và team đã cung làm để vượt qua những môn cực kì củ chuối. Tiểu luận tìm hiểu về Nagios và demo ứng dụng vào việc đảm bảo an ninh mạng, đây là bài tiểu luận mà mình và team đã cung làm để vượt qua những môn cực kì củ chuối
Trang 1HỌC VIỆN KỸ THUẬT MẬT MÃ
KHOA AN TOÀN THÔNG TIN
- -BÁO CÁO BÀI TẬP LỚN
ĐỂ TÀI 1 :Tìm hiểu chương trình Nagios
và khả năng ứng dụng vào bảo đảm an ninh cho mạng máy tính.
Giáo viên hướng dẫn:
Nguyễn Thị Hồng Hà Sinh viên thực hiện:
Bùi Đức Thiện
Lê Xuân Đoàn Ngô Đức Nam
Trang 2Hà Nội, tháng 03 năm 2015
MỤC LỤC
Trang 4DANH MỤC HÌNH VẼ
Hình 1.1: Các đối tượng cần giám sát trên Nagios 4
Hình 1.2: Ví dụ mô tả sự cố 7
Hình 1.3: Kiểm tra trạng thái 8
Hình 2.1 Giao tiếp giữa Nagios và Window … 13
Hình 2.2: Thông tin các dịch vụ trên Sample Client ……18
Hình 2.3:Thông tin về Sample client …18
ình 3.3 : Các cảnh báo mà Nagios thông báo …20
Hình 3.2 : Các host mà Nagios đang giám sát …20
Hình 3.1 : Mô hình triển khai thực tế …21
Trang 5LỜI NÓI ĐẦU
Trong thời đại công nghệ thông tin hiện nay việc sử dụng các ứng dụng để quản lý mạng ngày càng trở nên cần thiết Mọi cơ quan, doanh nghiệp ngày càng phát triển phạm vi lớn mạnh với quy mô lớn và ngày phức tạp, do đó việc sử dụng các phần mềm quản lý mạng sẽ hỗ trợ rất tốt cho việc quản lý mạng Ngay trong đề tài này chúng em đi vào tìm hiểu phần mềm quản lý mạng Nagios Đây 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 nghiêm trọng đến quá trình hoạt động của các
tổ chức, cơ quan hay doanh nghiệp
Trong quá tìm hiểu đề tài chắc rằng sẽ còn nhiều những hạn chế và thiếu sót chúng em rất mong nhận được sự chỉ bảo của Cô giáo và sự đóng góp ý kiến của các bạn trong lớp để đề tài của nhóm em được hoàn thiện hơn
Trang 6CHƯƠNG 1:TỔNG QUAN VỀ NAGIOS
1.1 Tổng Quan về Nagios
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 nghiêm trọng đến quá trình kinh doanh
Đầu tiên ra mắt vào năm 1999, Nagios đã phát triển với 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 chính thức bảo trợ bởi doanh nghiệp Nagios, hỗ trợ các cộng đồng trong một số cách khác nhau thông qua doanh số bán hàng thương mại của sản phẩm và dịch vụ
Nagios là một công cụ để giám sát hệ thống Điều này có nghĩa là nó liên tụckiểm tra trạng thái của máy và dịch vụ khác nhau trên các máy Mục đích chính của hệ thống giám sát là để phát hiện và báo cáo về bất kỳ hệ thống không hoạt động,càng sớm càng tốt, do đó, ta nhận thức được vấn đề trước khi người dùng sử dụng
Nagios không thực hiện bất kỳ kiểm tra máy chủ hoặc các dịch vụ nào trên của máy chủ Nagios Nó sử dụng plugin để thực hiện việc kiểm tra thực tế Điều này làm cho nó có tính linh hoạt cao, và là giải pháp hiệu quả cho việc thực hiện và kiểm tra dịch vụ
Nagios có hai ưu điểm lớn khi nói đến quá trình giám sát, thay vì theo dõi các giá trị, nó chỉ sử dụng bốn mức độ để mô tả tình trạng: OK, WARNING, CRITICAL , và UNKNOW Các mô tả tình trạng của các đối tượng được giám sátcho phép người quản trị quyết giải quyết hay bỏ qua các vấn đề trên hệ thống
mà không tốn nhiều thời gian Đây chính là điều Nagios làm Nếu ta đang theo dõi một giá trị số như số lượng không gian đĩa và tải CPU, ta có thể định nghĩa ngưỡng những giá trị để được cảnh báo khi cần thiết
Một thuận tiện khác của Nagios là các báo cáo về trạng thái của các dịch vụđang hoạt động Báo cáo này cung cấp một cái nhìn tổng quan tốt về tình trạng
cơ sở hạ tầng Nagios cũng cung cấp các báo cáo tương tự cho các nhóm máy chủ vàcác nhóm dịch vụ, cảnh báo khi bất kỳ dịch vụ quan trọng hoặc cơ sở dữ liệu server ngưng hoạt động Báo cáo này cũng có thể giúp xác định độ ưu tiên của các vấn đềnhư vấn đề nào cần được giải quyết trước
Trang 7Đối tượng giám sát của Nagios được chia thành hai loại: host và dịch vụ.Host là các máy vật lý (máy chủ, bộ định tuyến, máy trạm, máy in và vv), trong khi dịch vụ là những chức năng cụ thể, ví dụ, một máy chủ web (một quá trình xử lý http) có thể được định nghĩa như là một dịch vụ được giám sát Mỗi dịch vụ có liên quan đến một máy chủ là dịch vụ đang chạy trên đó Ngoài ra, cả hai máy và dịchvụ có thể được nhóm lại thành các nhóm dịch cho phù hợp.
Hình 1.1: Các đối tượng cần giám sát trên Nagios
Nagios thực hiện tất cả các kiểm tra của mình bằng cách sử dụng plugins.Đây là những thành phần bên ngoài mà Nagios qua đó lấy được thông tin
về nhữnggì cần được kiểm tra và cung cấp các cảnh báo cho người quản trị Plugins có trách nhiệm thực hiện các kiểm tra và phân tích kết quả Các đầu ra từ một kiểm tra đó là một trạng thái (OK, WARNING, CRITICAL, hoặc UNKNOW) và các văn bản bổ sung cung cấp thông tin về các dịch vụ cụ thể Văn bản này chủ yếu dành cho cácquản trị viên hệ thống để có thể đọc một trạng thái chi tiết của một dịch vụ
Nagios không chỉ cung cấp một hệ thống cốt lõi để theo dõi, mà còn cung cấp một tập các plugins tiêu chuẩn trong một gói riêng biệt (xem http://nagiosplugins.org/ để biết thêm chi tiết) Những plugin này cho phép kiểm
Trang 8tra các dịch vụ đang chạy trên hệ thống Ngoài ra nếu ta muốn thực thi một kiểm tra đặc biệt, ta có thể tạo một plugin riêng cho mình.
1.2 Lợi ích của việc giám sát tài nguyên
Có nhiều lý do tại sao ta nên chắc chắn rằng tất cả các nguồn tài nguyên đang làm việc như mong đợi Các lợi thế chính là sự cải thiện về chất lượng Nếu nhân viên IT có thể thông báo sự cố nhanh chóng hơn, họ cũng sẽ có thể xử lý các vấn đề nhanh hơn Đôi khi, sẽ mất vài giờ hoặc vài ngày để có được báo cáo đầu tiên của một sự cố Nagios sẽ đảm bảo rằng nếu có thiết bị hoặc dịch vụ gì không làm việc, ta biết về nó một cách nhanh nhất
Nó cũng có thể làm cho Nagios thực hiện các khôi phục tự động, điều này được thực hiện nhờ vào các sự kiện được định nghĩa trong Nagios Đây là các lệnh được chạy sau khi tình trạng của một máy chủ lưu trữ hoặc dịch vụ đã thay đổi, ví dụ khi một router chính không hoạt động, Nagios sẽ chuyển đến một giải pháp dự phòng cho đến khi router chính được sửa Một trường hợp điển hình là một kết nối quay số như dự phòng sẽ được bật, trong trường hợp mất kết nối VPN
Một lợi thế là xác định vấn đề tốt hơn Nagios có thể xác định được chính xác một sự cố xảy ra trên hệ thống nhưng không mất nhiều thời gian Nagios cũng rất linh hoạt khi thông báo cho mọi người về những sự cố Ta có thể thiết lập nó để gửi email cho những người khác nhau tùy thuộc vào những sự cố
đó Trong hầu hết các trường hợp, công ty có một lượng lớn đội ngũ CNTT hoặc nhiều đội Thông thường, ta muốn một số người để xử lý các máy chủ, và những người khác để xử lý các thiết bị switch / router / modem Ta thậm chí có thể sử dụng giao diện web 'Nagios để quản lý người nào đang làm việc về vấn đề gì Ta cũng có thể cấu hình cách Nagios gửi cảnh báo qua email, SMS , MSN…
Giám sát nguồn tài nguyên không chỉ hữu ích để xác định vấn đề, nó cũng có thể giúp ta tiết kiệm thời gian để tìm hiểu chúng Nagios cảnh báo và xử
lý các tình huống quan trọng khác nhau Điều này có nghĩa rằng nó có thể nhận ra vấn đề tình huống quan trọng một cách nhanh chóng Ví dụ, nếu đĩa cứng lưu trữ trên một máychủ email là đã sử dụng hết thì tốt hơn ta nên được thông báo về tình trạng này trước khi nó trở thành một vấn đề nghiêm trọng
Giám sát cũng có thể được thiết lập trên nhiều máy tính trên khắp các địađiểm khác nhau mà có thể giao tiếp tất cả các kết quả đến một máy chủ Nagios trung tâm Bằng cách này, thông tin về tất cả các host và dịch vụ trong hệ thống
có thể được truy cập từ một máy tính đơn lẻ Điều này sẽ cho ta một bức tranh hoàn chỉnh cơ sở hạ tầng CNTT
1.3 Các chức năng chính của Nagios
Trang 9Các chức năng của Nagios rất linh hoạt, nó có thể được cấu hình để theo dõi cơ sở hạ tầng CNTT theo cách ta muốn Nó cũng có một cơ chế để tự động phản ứng với các vấn đề, và một hệ thống cảnh báo mạnh Tất cả điều này được dựa trênmột hệ thống định nghĩa các đối tượng rõ ràng:
Commands: Được định nghĩa về cách Nagios cần thực hiện các loại kiểmtra,
chúng là một lớp trừu tượng cho phép ta nhóm các hoạt động tương tự lại vớinhau
Time-periods: Là ngày và thời gian kéo dài mà trong đó một hoạt động nên hay
không nên được thực hiện, ví dụ: Thứ hai đến thứ sáu 9:00-17:00
Contacts và Contact groups: là những người cần được cảnh báo, cùng với thông
tin về cách thức và thời gian họ cần được cảnh báo Contacts có thể được nhóm lại thành Contact groups
Host: là những máy vật lý, cùng với thông tin về việc ai sẽ được liên lạc, làm thế
nào kiểm tra phải được thực hiện, và khi nào Host có thể được nhóm lại thành các Host group, mỗi host có thể là một thành viên của nhiều Host group
Services: là các chức năng khác nhau hoặc các tài nguyên cần được giám
sát,cùng với thông tin về những người cần được liên lạc, làm thế nào kiểm tra phải được thực hiện, và khi nào Service có thể được nhóm lại thành các service group,mỗi service có thể là một thành viên của nhiều service group
Host và service escalation: định nghĩa khoảng thời gian được chỉ ra mà sau đó
người phụ trách nên được cảnh báo của các sự kiện nào đó - ví dụ một máy chủ quan trọng là ngưng hoạt hơn 4 giờ nên cảnh báo cho quản trị viên để họ bắt đầu theo dõi các vấn đề
Một tiện ích quan trọng ta sẽ đạt được bằng cách sử dụng Nagios là một hệ thống phụ thuộc Đối với các quản trị viên, rõ ràng là nếu router bị hỏng, tất cả các máy truy cập thông qua nó sẽ thất bại Nagios cho phép ta định nghĩa phụ thuộc giữa các máy để hình thành cấu trúc liên kết mạng lưới thực tế Ví dụ, nếu một switch, cho kết nối ta với một bộ định tuyến ngưng hoạt động, Nagios sẽ không thực hiện bất kỳ kiểm tra trên router hoặc trên các máy tính phụ thuộc vào router.Điều này được minh họa trong ví dụ sau đây:
Trang 10Hình 1.2: Ví dụ mô tả sự cố
Ta cũng có thể định nghĩa rằng một dịch vụ phụ thuộc vào một dịch vụ khác,hoặc trên cùng một máy chủ hoặc trên các máy chủ khác nhau Nếu một trong các dịch vụ ngưng hoạt động, một kiểm tra cho một dịch vụ mà phụ thuộc vào nó sẽ không được thực hiện Ví dụ, đối với mạng nội bộ của ứng dụng công
ty hoạt động tốt, cả hai máy chủ web cơ bản và cơ sở dữ liệu một máy chủ đều hoạt động Vì vậy, nếu một dịch vụ cơ sở dữ liệu không hoạt động, Nagios sẽ không thực hiện kiểm tra các ứng dụng Máy chủ cơ sở dữ liệu có thể là trên cùng một máy hoạt khác máy.Trong một trường hợp như vậy, nếu máy bị hỏng hoặc không thể truy cập, cảnh báo cho tất cả các dịch vụ phụ thuộc vào các dịch vụ cơ
sở dữ liệu sẽkhông được gửi
Nagios cũng cung cấp cơ chế để lên lịch cho kế hoạch ngưng hoạt động vì một vài lý do nào đó như bảo trì hoặc nâng cấp hệ thống Ta có thể lên lịch cho một máy chủ cụ thể hoặc dịch vụ dự kiến không có sẵn Điều này sẽ ngăn chặn Nagios thông báo cho người được cấu hình cần gửi cảnh báo về các vấn đề liên quan đến đối tượng này Nagios cũng có thể thông báo cho mọi người kế hoạch ngưng hoạt
Trang 11động một cách tự động Điều này chủ yếu được sử dụng khi bảo trì cơ sở hạ tầng
IT và hệ thống cũng như dịch vụ ngưng hoạt động trong một thời gian dài
1.4 Trạng thái tạm thời và cố định
Nagios hoạt động bằng cách kiểm tra xem một máy chủ hoặc dịch vụ có hoạt
động tốt không và lưu trữ trạng thái của nó Bởi vì trạng thái của một dịch vụ chỉ
là một trong bốn giá trị OK, WARNING, CRITICAL, UNKNOW Điều quan trọng là nó thực sự xác định được tình trạng hiện tại Để tránh phát hiện tạm thời
và ngẫu nhiên vấn đề, Nagios sử dụng trạng thái tạm thời và cố định mô tả tình trạng hiện tại của một máy chủ lưu trữ hoặc dịch vụ
Hãy tưởng tượng rằng một quản trị viên khởi động lại một máy chủ web và hoạt động này làm cho mất các kết nối đến máy chủ web trong 5s Như thường,khởi động lại như vậy được thực hiện vào ban đêm để giảm số lượng người dùng bị ảnh hưởng, đây là khoảng thời gian chấp nhận được Tuy nhiên, một vấn đề có thể nảy sinh khi Nagios cố gắng kết nối tới máy chủ và thông báo rằng nó thực sự ngưng hoạt động nếu chỉ dựa vào một kết quả duy nhất
Để xử lý tình huống khi một dịch vụ ngưng hoạt động trong một thời gian rất ngắn, hoặc các kiểm tra tạm thời không thành công, người ta đưa ra trạng thái tạm thời Khi trạng thái của một kiểm tra là UNKNOW, hoặc nó là khác nhau các trạngthái trước đó, Nagios sẽ tiến hành kiểm tra lại các máy chủ, dịch vụ nhiều lần đểđảm bảo rằng thay đổi là cố định trong một khoảng thời gian dài Số lần kiểm trađược cấu hình trong phần định nghĩa các dịch vụ Nagios giả định rằng các kết quảmới là một trạng tạm thời Sau khi tiến hành kiểm tra nhiều lần mà trạng thái khôngđổi, thì nó được coi là một trạng thái cố định
Mỗi Host và Service được định nghĩa số thử kiểm tra sẽ được thực hiện trước khi nó có thể được giả định rằng thay đổi là vĩnh viễn Điều này cho phép linh hoạt trong việc kiểm tra các sự cố Thiết lập số lượng kiểm tra một sẽ gây ra các thay đổi được coi là khó khăn ngay lập tức Sau đây là một minh họa cho trạng thái tạm thờivà cố định, giả sử số lần kiểm tra là 3 ta sẽ có:
Hình 1.3: Kiểm tra trạng thái
Tính năng này cho phép bỏ qua sự cố ngưng hoạt động trong thời gian ngắn của
Trang 12một dịch vụ Nó cũng rất hữu ích để thực hiện các kiểm tra định kỳ ngay cả khi mọi thứ hoạt động tốt.
Trang 13CHƯƠNG 2: CÀI ĐẶT NAGIOS VÀ ỨNG DỤNG VÀO GIÁM SÁT
MẠNG
2.1 Cài đặt
Cài CentOs : Tải về file cài đặt của hệ điều hành CentOs, tiến hành cài
đặt (Do khuôn khổ bài báo cáo có hạn nên nhóm xin mặc định là Hệ điều hành cent os đã được cài sẵn);
Cài đặt Nagios:
Yêu cầu
Để cài đặt phần mềm trước tiên ta phải có quyền truy cập tài khoản root.Đảm bảo rằng các gói cài đặt sau được cài trên hệ điều hành CentOS trước khi tiếp tục:
ApachePHPPhần biên dịch GCCThư Viện GD
Chúng ta có thể sử dụng lệnh yum để cài đặt gói ứng dụng bằng các
lệnh:
yum install httpd php yum install gcc glibc glibc-common yum install gd gd-devel
Tạo thông tin tài khoản người dùng:
Trước tiên ta phải có quyền truy cập như là root
su -l
Tạo tài khoản nagios và mật khẩu
/usr/sbin/useradd -m nagios passwd nagios
Tạo một nhóm người dùng mới là nagcmd , để cho phép tài khoản nagios có thể truy cập vào giao diện web ta thêm tài khoản nagios và apache vào nhóm nagcmd
Trang 14/usr/sbin/groupadd nagcmd
/usr/sbin/usermod -a -G nagcmd nagios
usr/sbin/usermod -a -G nagcmd apacheTải phần mềm nagios và các
plug-in:
Tạo một thư mục lưu trữ phần mềm tải về
mkdir ~/downloadscd ~/downloads
Tải phần mềm nagios và plug-in tại 2 địa chỉ sau:
http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.3.tar.gz
http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.11.tar.gz
Biên dịch và cài đặt Nagios
Giải nén mã nguồn của nagios được tải về
Cấu hình giao diện Web
Cài đặt tập tin cấu hình web Nagios trong thư mục conf.d của Apache
make install-webconf
Tạo tài khoản nagiosadmin để đăng nhập vào giao diện web của Nagios
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
Trang 15Khởi động lại Apache để các cài đặt mới có hiệu lực.
service httpd restart
Biên dịch và cài đặt các Plugins của Nagios
Giải nén mã nguồn của Nagios Plugins
cd ~/downloadstar xzf plugins-1.4.11.tar.gz cd plugins-1.4.11
nagios-Biên dịch và cài đặt plugins
./configure with-nagios-user=nagios group=nagiosmakemake install
service nagios start
Sửa đổi SELinux
Hệ điều hành CentOS có ứng dụng SELinux (Security Enhanced Linux)được cài đặt mặc định và ở chế độ Enforcing Điều này có thể làm chúng ta khôngtruy cập được giao diện của Nagios
Xem thử chế độ của SELinux có phải là Enforcing không
chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/
chcon -R -t httpd_sys_content_t /usr/local/nagios/share/
Đăng nhập vào giao diện Web của Nagios
Bây giờ ta có thể đăng nhập vào giao diện web của Nagios với tài khoản nagiosadmin và mật khẩu đã được thiết lập lúc đầu tại địa chỉ:
http://localhost/nagios/
Tới đây là đã thành công trong việc cài đặt phần mềm Nagios
2.2 Cấu hình Nagios giám sát đảm bảo an ninh mạng
2.2.1 Cấu hình để giám sát hệ thống chạy hệ điều hành Windows