Báo cáo chuyên đề An Ninh Mạng GVHD TS Nguyễn Hồng Sơn BỘ THÔNG TIN VÀ TRUYỀN THÔNG HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG ~~~~~~~~~~~~ BÁO CÁO CHUYÊN ĐỀ AN NINH MẠNG Đề tài NGHIÊN CỨU VÀ TRIỂN KHAI.
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
GVHD : TS Nguyễn Hồng Sơn Thực hiện : Nguyễn Hoàn Nam Dương
Mã số sinh viên: N14DCAT032
Trang 2CHƯƠNG I: TỔNG QUAN VỀ NAGIOS 1
1.1 Những chức năng cơ bản của Nagios 1
1.2 Những điểm nổi bật của Nagios 1
1.3 Thành phần và tổ chức hoạt động 2
1.4 Đánh giá chương trình nagios 4
CHƯƠNG 2: CÀI ĐẶT NAGIOS 4
2.1 Mô hình Nagios Monitoring Server 4
2.2 Cài đặt Nagios trên server giám sát 5
2.3 Cài đặt và thêm plugin giám sát NRPE trên máy Ubuntu Agent 12
2.4 Thêm command mới vào Nagios Monitoring Server 15
2.5 Kết quả 16
Tài liệu tham khảo 18
Trang 3CHƯƠNG I: TỔNG QUAN VỀ NAGIOS
Nagios là một hệ thống giám sát hạ tầng mạng và dịch vụ mạng vô cùng mạnh mẽ chophép các doanh nghiệp, công ty xác định và giải quyết các vấn đề về cơ sở hạ tầng CôngNghệ Thông Tin trước khi chúng làm ảnh hưởng đến các hoạt động kinh doanh, vận hànhnội bộ của công ty Nagios thực hiện việc theo dõi và đưa ra các cảnh báo về trạng tháicác host và các dịch vụ Một điểm khác so với các công cụ khác là Nagios giám sát dựatình trạng hoạt động của các máy trạm và dịch vụ Nó sử dụng các Plug-in được cài đặttrên các máy trạm, thực hiện việc kiểm tra các máy trạm và dịch vụ theo định kỳ và gửithông tin trạng thái về Nagios Server sau đó thông tin sẽ được đưa lên với một giao diệnWeb và có thể gửi thông tin về trạng thái tới nhà quản trị qua email, SMS… khi có sự cốxảy ra Việc theo dõi có thể được cấu hình một cách chủ động hoặc bị động dựa trên mụcđích sử dụng của người quản trị
1.1 Những chức năng cơ bản của Nagios
Nagios có khả năng cung cấp một số chức năng như sau :
Quản lý các dịch vụ mạng như là: SMTP, POP2, HTTP, NNTP, ICMP SNMP,FTP, SSH
Giám sát tài nguyên máy chủ như processor load, dung lượng đĩa đã sử dụng,nhật ký Hệ thống trên phần lớn các hệ điều hành mạng, bao gồm MicrosoftWindows, sử dụng các agent monitor
Giám sát mọi phần cứng như nhiệt độ, báo động, v.v có khả năng gửi dữ liệuthu thập được qua mạng tới các plugin cụ thể
Giám sát từ xa bằng cách sử dụng Nagios Remote Plugin Executor hoặc thôngqua SSH hoặc đường hầm SSL được mã hóa Kiểm tra dịch vụ song song vànhật ký xoay vòng log tự động
Hỗ trợ triển khai các máy chủ giám sát dự phòng, biểu đồ dữ liệu hiệu suất vàphần phụ trợ cơ sở dữ liệu Giao diện web để xem trạng thái mạng hiện tại,thông báo, lịch sử sự cố, các file log, v.v
Trang 41.2 Những điểm nổi bật của Nagios
Lên kế hoạch nâng cấp cơ sở hạ tầng trước khi nó trở nên lỗi thời vàthường xuyên gặp lỗi
Tự động sửa lỗi khi phát hiện lỗi
Phối hợp các với các hoạt động của nhóm kỹ thuật
Đảm bảo SLA (Service-Level Agreement) của tổ chức đang áp dụng
Đảm bảo sự cố cơ sở hạ tầng CNTT có tác động tối thiểu đến quá trình vậnhành của tổ chức
Giám sát toàn bộ cơ sở hạ tầng kinh doanh của bạn
Dễ dàng phát triển các plug-in riêng Cho phép người sử dụng dễ dàng pháttriển các dịch vụ giám sát nhu cầu sử dụng bằng việc sử dụng các ngôn ngữshell script, C ++, Perl, Ruby, Python, PHP, C# ….)
Việc giám sát các dịch vụ là song song
Có khả năng phát hiện và phân biệt được host nào là down và host nào làunreachable
Thông tin cảnh báo (khi host và các dịch vụ xảy ra xự cố) bằngemail, SMS sửdụng 3G, …
Sử dụng giao diện Web để theo dõi trạng thái của mạng, xem lịch sử các cảnhbáo và các sự cố xảy ra
Trang 5Plugin là bộ phận trực tiếp thực hiện 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ụ
đó Plugin là các script (Perl, C ) hay các tệp đã được biên dịch Khi cần thực hiệnkiểm tra một host/dịch vụ nào đó Nagios chỉ việc gọi plugin tương ứng và nhận kếtquả 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ị hày dịch vụ nào cũng có thể được giám sát nếunhư viết được plugin cho nó
Tổ chức hoạt động
Nagios có 5 cách thực thi hành động kiểm tra
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 đị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
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 đó
Bộ thực thi plugin từ xa (NRPE – Nagios Remote Plugin Executor)
- 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 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ụ như http, ftp, mail
Giám sát qua SNMP
- Cốt lõi của giao thức SNMP (SimpleNetword Mangement Protocol) là tập hợp đơngiả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ư Swich, router, máy in, firewal Nagios cũng có khả năng sử dụng giao thức SNMP để theo dõi trạng thái củ
Trang 6cá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 tuc) là bao nhiêu
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ủahã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 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
• Có khả năng theo dõi định kỳ theo thời gian đã được cấu hình trước
• Ít tốn tài nguyên hệ thống
• Có cơ chế hoạt động cảnh báo cho người quản trị khi có sự cố xảy ra
• Tự động tạo các báo cáo theo lịch biểu ấn định
• Độ ổn định cao khi giám sát hệ thống mạng
• Đặc biệt nagios có khả năng giám sát phân tán nên có thể hỗ trợ tối đa 100000 node
• Một số thiết bị mới chưa thể giám sát được, ví dụ như Access Point
• Triển khai khó đối với người dùng cơ bản
CHƯƠNG 2: CÀI ĐẶT NAGIOS
2.1 Mô hình Nagios Monitoring Server.
Mornitoring
Server Ubuntu Nagios Monitoring Server
( Ubuntu 16.04)
Trang 72.2 Cài đặt Nagios trên server giám sát
Tạo Nagios User và Group
sudo useradd nagios
sudo groupadd nagcmd
sudo usermod -a -G nagcmd nagios
Cài đặt các Package cần thiết.
sudo apt-get install build-essential libgd2-xpm-dev openssl libssl-dev
xinetd apache2-utils unzip
Cài đặt Nagios Core
Cài đặt Nagios bằng các lệnh sau:
Server được giám sát (Agent) IP:192.168.255.236 Server cài đặt Nagios
IP: 192.168.255.146
Trang 8./configure with-nagios-group=nagios with-command-group=nagcmd make all
sudo make install
sudo make install-commandmode
sudo make install-init
sudo make install-config
sudo /usr/bin/install -c -m 644 sample-config/httpd.conf available/nagios.conf
/etc/apache2/sites-sudo usermod -G nagcmd www-data
Cài đặt Nagios Plugins
Tải Nagios Plugins và giải nén
Linux/Unix ở xa
- Mô hình và cơ chế làm việc của NRPE được mô tả trong hình dưới đây:
NRPE addon bao gồm 2 thành phần:
Trang 9 Plugin check_nrpe: nằm trên máy Nagios (là monitoring server)
Daemon NRPE: chạy trên máy Linux/Unix (remote host) cần monitor
Khi máy Nagios cần check các resources/services trên máy Linux/Unix ở xa:
Nagios sẽ thực thi plugin check_nrpe và cho biết resource/service nào cần check
Plugin check_nrpe sẽ liên lạc với daemon NRPE trên remote host Kênh liên lạc
có thể được bảo vệ bằng SSL
Daemon NRPE sẽ chạy các plugin thích hợp (như check_disk, check_load, check_http, v.v ) để check các resource/service được yêu cầu
NRPE daemon truyền kết quả cho check_nrpe, sau đó plugin này trả kết quả lại
cho Nagios process
Có 2 cách checking khi sử dụng addon NRPE là:
Direct Checks
Giúp monitor các “local” / “private” resource trên remote Linux/Unix host như CPU load, memory usage, swap usage, disk usage, logged in users, running processes, v.v
Indirect Checks
Trang 10Nếu vì một lý do nào đó mà Nagios host không thể liên lạc được với các public
services và resources của các remote server như HTTP, FTP nhưng remote
Linux/Unix host (được cài NRPE daemon và các plugin) lại có thể thì có thể sử dụng cách này để NRPE daemon đóng vai trò làm proxy
Tải và giải nén NRPE
cd ~
curl -L -O 2.15/nrpe-2.15.tar.gz
http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-cd nrpe-*
Cài đặt NRPE, Chạy NRPE daemon như là một service dưới xinetd
./configure enable-command-args user=nagios
with-nagios-group=nagios with-ssl=/usr/bin/openssl with-ssl-lib=/usr/lib/x86_64-linux-gnumake all
sudo make install
sudo make install-xinetd
sudo make install-daemon-config
Mở file nrpe và thay đổi only_from thành IP của Nagios Server
sudo gedit /etc/xinetd.d/nrpe
Trang 11Khởi động lại dịch vụ xinetd để khởi động NRPE:
sudo service xinetd restart
Kiểm tra NRPE daemon
Đảm bảo rằng NRPE daemon đang chạy dưới xinetd
netstat -at | grep nrpe
Đảm bảo rằng local firewall trên remote Linux/Unix host cho phép NRPE daemon được truy cập từ các remote server
iptables –I INPUT -p tcp -m tcp –dport 5666 -j ACCEPT
service iptables save
Như vậy Nagios đã được cài đặt, để Nagios hoạt động trên giao diện web một cách đúng đắn ta cần thực hiện cấu hình ở phần kế tiếp
2.4 Cấu hình Nagios
Mở tập tin cấu hình Nagios và xóa dấu # tại #cfg_dir=/usr/local/nagios/etc/servers :
sudo gedit /usr/local/nagios/etc/nagios.cfg
Trang 12 Định dạng Nagios Contacts
Mở file /usr/local/nagios/etc/objects/contacts.cfg và thay đổi địa chỉ email nhận thông báo
Cấu hình check_nrpe
Tất cả các hành động của nagios như kiểm tra host/dịch vụ, thông báo, xử lý sự kiệnđều được thực hiện bằng gọi lệnh Tất cả các lệnh trong nagios đều được định nghĩa trong
tệp cấu hình command.cfg.
Thêm một lệnh mới vào cấu hình Nagios: /usr/local/nagios/etc/objects/commands.cfg
Điều này cho phép sử dụng lệnh check_nrpe trong định nghĩa dịch vụ Nagios
Trang 13Định dạng Apache
Bật mô-đun rewrite và cgi của Apache:
sudo a2enmod rewrite
sudo a2enmod cgi
Sử dụng htpasswd để tạo admin user, được gọi là "nagiosadmin" và mật khẩu, có thể truy cập vào giao diện web của Nagios:
sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
Tạo một liên kết tượng trưng của nagios.conf đến thư mục sites-enabled:
sudo ln -s available/nagios.conf
/etc/apache2/sites-enabled/
sudo service nagios start
sudo service apache2 restart
Để kích hoạt Nagios để khởi động máy chủ, hãy chạy lệnh sau:
sudo ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios
Mở trình duyệt web và truy cập Nagios server: http:// 192.168.255.146 /nagios
Nhập tài khoản và mật khẩu đã thiết lập trước đó
Trang 14Như vậy Nagios đã được cài đặt thành công!
Trang 152.3 Cài đặt và thêm plugin giám sát NRPE trên máy Ubuntu Agent
Cài đặt NRPE-SERVER
apt-get install -y perl nagios-nrpe-server
useradd nrpe && update-rc.d nagios-nrpe-server defaults
Tạo Script giám sát thư mục bằng Perl:
Trang 16Nguyễn Hoàn Nam Dương – N14DCAT032 14
Trang 17Lưu file và cấp quyền thực thi cho file vào thư mục /usr/lib/nagios/plugins/
Trang 18Khởi động lại dịch vụ:service nagios-nrpe-server restart
2.4 Thêm command mới vào Nagios Monitoring Server
Trong đó check_file là command đã được thêm vào ở phía agent
Trên máy chủ Nagios, tạo một tệp cấu hình mới cho mỗi máy chủ từ xa muốn theo dõi trong /usr/local/nagios/etc/servers/ Tạo ra file ubuntu.cfg
sudo gedit /usr/local/nagios/etc/servers/ubuntu.cfg
Trang 19Tải lại cấu hình Nagios để cài đặt có hiệu lực
service nagios reload
Như vậy plugin đã được cài đặt thành công
2.5. Kết quả
Thêm hoặc xóa một file vào thư mục được giám sát:
Trang 20Thay đổi nội dung file bất kì:
Trang 21TÀI LIỆU THAM KHẢO
Website tham khảo:
https://www.digitalocean.com/community/tutorials/how-to-create-nagios-CvNWXoPu7fLQrOhrU2jynyIMMH-zOo-SB68D-3f0X4vtcBItJE
plugins-with-perl-on-ubuntu-12-10?fbclid=IwAR0CrCDG-2. 4-and-monitor-your-servers-on-ubuntu-16-04