Bài toán tối ưu để sử dụng tối đa công suất của các máy chủ, tránh tình trạng lãng phí tài nguyên; đồng thời, đòi hỏi hệ thống có khả năng co giãn linh hoạt, chịu lỗi tốt để đảm bảo dịch vụ vẫn vận hành khi lượng tài nguyên trên một máy tăng cao hay có sự cố xảy ra. Tiếp đó là bài toán quản lý số lượng lớn máy chủ sao cho nhanh, hiệu quả, tốn ít nhân lực và thời gian nhất. Saltstack công cụ quản lý cấu hình giúp quản lý và giám sát tự động các hệ thống máy chủ, cung cấp cho quản trị viên hệ các giải pháp cho tất cả các vấn đề như vậy. Khả năng thực thi từ xa của SaltStack cho phép quản trị viên chạy các lệnh trên nhiều máy khác nhau song song với một hệ thống nhắm mục tiêu linh hoạt. Quản lý cấu hình của saltstack thiết lập một mô hình tổng thể để đưa các thành phần cơ sở hạ tầng phù hợp với chính sách nhất định một cách nhanh chóng, rất dễ dàng, linh hoạt và an toàn.Vì vậy, cần phải đưa ra những giải pháp quản lý và vận hành hệ thống tối ưu hơn, để giải quyết vấn đề này, em đã chọn thực hiện Đề tài tốt nghiệp “Nghiên cứu và ứng dụng công cụ Saltstack”.
1 BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT MÃ ĐỒ ÁN TỐT NGHIỆP NGHIÊN CỨU VÀ ỨNG DỤNG CÔNG CỤ SALTSTACK Hà N ộ i - 2021 2 DANH MỤC HÌNH ẢNH i DANH MỤC VIẾT TẮT iii DANH MỤC BẢNG iv LỜI CẢM ƠN v LỜI NÓI ĐẦU vi CHƯƠNG I TỔNG QUAN AN TOÀN THÔNG TIN 1.1 Tổng quan an tồn thơng tin 1.2 Vấn đề bảo mật hệ thống mạng, máy chủ 1.3 Tổng quan quản lý cấu hình máy chủ Kết luận chương CHƯƠNG II CÔNG CỤ SALTSTACK 10 2.1 Lịch sử phát triển 10 2.2 Khái niệm 11 2.3 Lợi ích saltstack 11 2.4 Kiến trúc saltstack 12 2.5 Cách thức hoạt động 14 3 2.6 An toàn saltstack 15 2.7 Thành phần saltstack 19 2.7.1 Salt master 19 2.7.2 Salt minions 20 2.7.3 Modul thực thi 21 2.7.4 States 22 2.7.5 Grain 24 2.7.6 Pillar 27 2.7.7 Top files 29 2.7.8 Runner 31 2.7.9 Returners 32 2.7.10 Salt-ssh 32 2.8 Vai trò, nhiệm vụ saltstack 33 2.9 Ứng dụng saltstack 34 Kết luận chương 35 CHƯƠNG III THỰC NGHIỆM MƠ HÌNH GIÁM SÁT, QUẢN LÝ MÁY CHỦ 36 4 3.1 Ứng dụng công cụ Saltstack cho quản lý máy chủ 36 3.1.1 Kịch thực nghiệm 36 3.1.2 Kết thực nghiệm 37 Kết luận chương 47 KẾT LUẬN 48 PHỤ LỤC 50 I CÀI ĐẶT MÔI TRƯỜNG TRÊN SERVER TRÊN UBUNTU 18.04 50 II CÀI ĐẶT MÔI TRƯỜNG TRÊN CLIENT UBUNTU 18.04 53 III KẾT NỐI MÁY CHỦ SALTMASTER VỚI MÁY SALTMINON 57 i DANH MỤC HÌNH ẢNH Hình 1.1 Nguy an ninh mạng Hình 1.2 Các vấn đề an ninh hệ thống Hình 2.1 Kiến trúc Salt stack……………………………………………… 12 Hình 2.2 Mơ hình Master - Minion 13 5 Hình 2.3 Mơ hình saltstack 16 Hình 2.4 Mơ hình giao tiếp 16 Hình 2.5 Xác thực Salt-minion 17 Hình 2.6 Salt master 19 Hình 2.7 Salt minion 21 Hình Modul thực thi 21 Hình 2.9 Salt state 22 Hình 2.10 Grain 25 Hình 2.11 Pillar 28 Hình 2.12 Top files 31 Hình 2.13 Salt Runner 31 Hình 2.14 Salt returner 32 Hình 2.15 Salt SSH 33 Hình 3.1 Mơ hình mạng thực nghiệm………………………………………36 Hình 3.2 Ping 37 Hình 3.3 Show command 38 Hình 3.4 Network interface 39 6 Hình 3.6.Os, os realease 40 Hình 3.7 Tree Folder 40 77 Hình 3.8 State file apache 41 Hình 3.9 Install service apache từ saltmaster tới saltminion 42 Hình 3.10 State file php 43 Hình 3.11.Install PHPtừ saltmaster tới saltminion 44 Hình3.12 File state mysql 45 Hình 3.13 Install mysql từ saltmaster tới saltminion 45 Hình 3.14 Remove Apache 46 Hình 3.15 Status service apache 47 Phụ lục I.1 Thêm gói cài đặt vào thư viện Salt master…………………50 Phụ lục I.2 Cập nhật gói đặt Salt master 50 Phụ lục I.3 Cài gói cài đặt Salt master 51 Phụ lục I.4 Cài đặt thành phần Salt- master 52 Phụ lục I.5 Cấu hình file master 53 Phụ lục II.1 Cài đặt thư viện Salt minion………………………………54 Phụ lục II.2 Cập nhật thư viện Salt minion 54 Phụ lục II Cài đặt gói nhật thư viện Salt minion 54 88 Phụ lục II Cài đặt thành phần Salt Minion 55 Phụ lục II Đổi tên Id Minion 55 Phụ lục II Cấu hình Salt- minion minion 56 Phụ lục II.7 Cấu hình Salt minion 56 Phụ lục III Key public Salt master………………………………… 57 Phụ lục III Gán key Public salt master vào file cài đặt salt minion 57 Phụ lục III Danh sách hàng chờ kết nối Salt master 58 Phụ lục III Kết nối minion ới master 58 Phụ lục III Kết nối thành công master - minion 58 DANH MỤC VIẾT TẮT Từ viết tắt API Tiếng Anh Application Programming Tiếng Việt Giao diện lập trình ứng dụng Interface CBC Cipher Block Chaining Chuỗi khối mật mã Distributed Denial of Service Các công từ chối dịch vụ DNS Domain Name Servers Hệ thống tên miền IDS Intrusion Detection System Hệ thống phát xâm nhập IPS Intrusion Prevention Hệ thống ngăn chặn xâm nhập DDOS Systems LDAP Lightweight Directory Access Protocol Giao thức truy cập thư mục nhẹ LAMP 99 Linux Apache MySQL PHP Linux, Apache, MySQL PHP PAM Pluggable Authentication Mơ-đun xác thực có Modules SIEM Event Management Hệ thống giám sát an toàn mạng SLS Salt State File Tệp trạng thái salt SOC Security Operation Center Trung tâm điều hành an ninh SSH Secure Shell Connection Giao thức mạng dùng để thiết lập kết nối mạng cách bảo mật YAML Ain't Markup Cấu trúc ngôn ngữ hướng liệu sử dụng làm định dạng đầu vào cho ứng dụng phần mềm đa dạng YAML Security Information and Language DANH MỤC BẢNG Bảng Thông tin máy chủ Salt-master 37 Bảng Thông tin máy Salt-minion 37 10 10 LỜI CẢM ƠN Trong thời gian làm Đồ án tốt nghiệp, em nhận nhiều giúp đỡ, đóng góp ý kiến bảo nhiệt tình Thầy, Cơ, gia đình bạn bè Em xin gửi lời cảm ơn chân thành đến TS Đỗ Xuân Chợ, Giảng viên Khoa Cơng nghệ thơng tin - Học viện Bưu viễn thơng, người tận tình hướng dẫn, bảo em suốt trình làm đồ án Em xin chân thành cảm ơn Thầy, Cô giáo Học viện Kỹ thuật mật mã dạy dỗ cho em kiến thức môn đại cương mơn chun ngành, giúp em có sở lý thuyết vững vàng tạo điều kiện giúp đỡ em suốt trình học tập Cuối cùng, em xin chân thành cảm ơn gia đình bạn bè, tạo điều kiện, quan tâm, giúp đỡ, động viên em suốt q trình học tập hồn thành Đồ án tốt nghiệp Em xin chân thành cảm ơn! Hà Nội, ngày… tháng năm 2021 SINH VIÊN THỰC HIỆN 53 53 Hình 3.9 State file php File thực thi cài đặt php đặt thư mục /srv/salt/php Trong đó: - php: id trạng thái, - pkg: Mơ-đun trạng thái - Install: Mô-đun phương thức - Name : Có thể hiểu tham số, theo sau giá trị đối số, ID tên - File: Mô-đun quản lý tài liệu, đường dẫn nguồn phải định tệp nguồn - Source: Đường dẫn nguồn đến tệp, salt:// đại diện cho mơi trường gốc, đường dẫn gốc là: /srv/salt /php/ - User, group: Chỉ định tệp thuộc người, sở hữu nhóm quyền tương ứng Cài đặt dịch vụ php: Áp dụng Công thức cho Salt master lệnh: salt ’saltminion’ state.sls php.init Trong đó: ‘saltminion’: đối tượng thực thi cơng thức; state.sls modul thực thi; php.init đường dẫn tới file thực thi Kết thực thi: 54 54 Hình 3.10.Install PHPtừ saltmaster tới saltminion Sau thực hiện, gói cài đặt cài đặt minion, kết trả bao gồm gói cài đặt cài đặt minion, thay đổi file cài đặt File state Mysql server: chứa lệnh cài đặt, cấu hình mysql Tạo tệp trạng thái có tên init.sls lưu trữ thư mục mysql có đường dẫn /srv/salt/mysql.Ở Saltstack đảm bảo gói mysql-server cài đặt với modul pkg.installed Cuối cùng, câu lệnh watch sử dụng để khởi động lại dịch vụ apache2 tệp cấu hình trang web thay đổi Cài đặt mysql-server: Áp dụng công thức cho Salt master lệnh: salt ’saltminion’ state.sls mysql.init Trong ‘saltminion’: Đối tượng thực thi cơng thức; state.sls modul thực thi; mysql.init đường dẫn tới file thực thi 55 55 Hình3.11 File state mysql Cài đặt mysql server: Hình 3.12 Install mysql từ saltmaster tới saltminion Sau thực hiện, gói cài đặt cài đặt minion, kết trả bao gồm gói cài đặt cài đặt minion, thay đổi file cài đặt Remove service: 56 56 Ngoài salt cung cấp modul gỡ gói phần mềm dịng lệnh đơn giản Salt ‘*’ pkg.remove apache2 Trong đó: - ‘*’: đối tượng áp dụng câu lệnh thực thi, cụ thể minion kết nối với master - Pkg.remove: modul gỡ cài đặt gói phần mềm tích hợp sẵn saltstack - Apache2: gói phần mềm cần gỡ Hình 3.13 Remove Apache Status service: Quản lý cấu hình cung cấp modul kiểm tra tình trạng dịch vụ, gói phần mềm - Service.status: kiểm tra trạng thái dịch vụ - Service.stop: tắt dịch vụ - Service.restart: khởi động lại dịch vụ Kết trả về: - True : lệnh thực thi chạy thành cơng - Fail: lệnh thực thi bị lỗi Hình 3.14 Status service apache Kết luận: Chức quản lý cấu hình dựa tảng thực thi từ xa Chức giúp thực công việc triển khai hệ thống đơn giản thuận tiện Với hệ thống có vơ vàn máy móc, thay phải tới máy cài 57 57 đặt dịch vụ, gói phần mềm, chức mang lại tối ưu cho công việc quản lý Hạn chế công đoạn lặp lại, tiết kiệm thời gian; sử dụng lại cho hệ thống tương tự Saltstack mang lại linh hoạt, mềm dẻo quản lý Trong kịch thực nghiệm tiến hành cài đặt LAMP stack từ master tới minion Kết luận chương Chương đề cập tới số kịch mô tả chức Saltstack mơ hình quản lý hệ thống máy chủ KẾT LUẬN Saltstack hệ thống quản lý cấu hình có khả trì nút từ xa trạng thái xác định Bên cạnh salt hệ thống thực thi từ xa phân tán sử dụng để thực lệnh truy vấn liệu nút từ xa Salt truy vấn thực lệnh nút riêng lẻ cách sử dụng tiêu chí lựa chọn tùy ý Nó phát triển nhằm mang lại giải pháp tốt tìm thấy giới thực thi từ xa lại với làm cho chúng tốt hơn, nhanh dễ uốn Saltstack hoàn thành điều nhờ khả xử lý lượng lớn thông tin, không hàng chục mà hàng trăm, chí hàng nghìn máy chủ riêng lẻ cách nhanh chóng thơng qua giao diện đơn giản dễ quản lý Ngoài saltstack cung cấp tính linh hoạt triển khai quy mơ lớn hệ thống nhỏ khó khăn, Saltstack đơn giản để thiết lập trì, quy mơ dự án Kiến trúc Saltstack thiết kế để hoạt động với số lượng máy chủ nào, từ số hệ thống mạng cục đến triển khai quốc tế trung tâm liệu khác Cấu trúc liên kết mơ hình máy chủ/máy khách đơn giản với chức cần thiết tích hợp daemon Mặc dù cấu hình mặc định 58 58 hoạt động với khơng có sửa đổi, Saltstack tinh chỉnh để đáp ứng nhu cầu cụ thể Kết hệ thống thực thi lệnh tốc độ cao nhóm máy chủ mục tiêu, từ đến nhiều máy chủ Saltstack nhanh, dễ thiết lập, dễ uốn đáng kinh ngạc cung cấp kiến trúc thực thi từ xa quản lý yêu cầu đa dạng số lượng máy chủ TÀI LIỆU THAM KHẢO [1] Joseph Hall, Extending SaltStack [2] Ben Hosmer, Getting Started with SaltStack [3] Myers Colton, Learning SaltStack [4] Seth House, Learning Salt [5] Joseph Hall, Mastering SaltStack [6] Mircea Ulinic, Network Automation at Scale [7] Anirban Saha, Salt Cookbook [8] Aymen El Amri, Saltstack For DevOps [9] Craig Sebenik, Thomas S Hatch, Salt Essentials PHỤ LỤC I CÀI ĐẶT MÔI TRƯỜNG TRÊN SERVER TRÊN UBUNTU 18.04 - Chạy lệnh nhập khoá kho lưu trữ Saltstack sudo curl -fsSL -o /usr/share/keyrings/salt-archive-keyring.gpg https://repo.saltproject.io/apt/ubuntu/18.04/amd64/3000/salt- 59 59 archivekeyring.gpg echo "deb [signed-by=/usr/share/keyrings/saltarchive-keyring.gpg] https://repo.saltproject.io/apt/ubuntu/18.04/amd64/3000 bionic main" | sudo tee /etc/apt/sources.list.d/salt.list Phụ lục I.1 Thêm gói cài đặt vào thư viện Salt master - Khi hồn tất, cập nhật danh sách gói hệ thống cài đặt gói Salt Sudo apt-get update Sudo apt upgrade Phụ lục I.2 Cập nhật gói đặt Salt master 60 60 Phụ lục I.3 Cài gói cài đặt Salt master - Cài đặt thành phần Saltstack, salt-master thành phần khác Salt: sudo apt-get install salt-master salt-minion salt-ssh saltsyndic saltcloud salt-api 61 61 Phụ lục I.4 Cài đặt thành phần Salt- master Cấu hình file master salt master: Đặt địa saltmaster quản lý (172.16.1.10) 62 62 Phụ lục I.5 Cấu hình file master II CÀI ĐẶT MÔI TRƯỜNG TRÊN CLIENT UBUNTU 18.04 - Chạy lệnh nhập khoá kho lưu trữ Saltstack sudo curl -fsSL -o /usr/share/keyrings/salt-archive-keyring.gpg https://repo.saltproject.io/apt/ubuntu/18.04/amd64/3000/saltarchivekeyring.gpg echo "deb [signed-by=/usr/share/keyrings/saltarchive-keyring.gpg] https://repo.saltproject.io/apt/ubuntu/18.04/amd64/3000 bionic main" | sudo tee /etc/apt/sources.list.d/salt.list 63 63 Phụ lục II.1 Cài đặt thư viện Salt minion Khi hoàn tất, cập nhật danh sách gói hệ thống cài đặt gói Salt Sudo apt-get update Sudo apt upgrade Phụ lục II.2 Cập nhật thư viện Salt minion Phụ lục II Cài đặt gói nhật thư viện Salt minion Cài đặt thành phần Saltstack, salt-minion: sudo apt-get install salt-minion 64 64 Phụ lục II Cài đặt thành phần Salt Minion Sửa đổi tên minion /etc/salt/minon_id thành saltminon Phụ lục II Đổi tên Id Minion Sửa file cấu hình minion, thay địa IP saltmaster quản lý: 172.16.1.10 65 65 Phụ lục II Cấu hình Salt- minion minion Phụ lục II.7 Cấu hình Salt minion III KẾT NỐI MÁY CHỦ SALTMASTER VỚI MÁY SALTMINON Xem key private salt master(192.168.1.10): Salt-key -Fmaster: 66 66 Phụ lục III Key public Salt master Copy master.pub salt master(192.168.1.10) vào master_finger file config minion Phụ lục III Gán key Public salt master vào file cài đặt salt minion Mỗi kết nối Salt master Salt minion quản lý bảo mật khóa mật mã Sau cài đặt, Salt minion gửi khóa cơng khai đến Salt master, nơiđể chấp nhận Các khóa Salt minion phải chấp nhận trước hệ thống nhận lệnh từ Salt master Kiểm tra mục máy chờ kết nối Saltmaster(192.168.1.10): 67 67 Phụ lục III Danh sách hàng chờ kết nối Salt master Tạo phiên kết nối client – server master: fshw Phụ lục III Kết nối minion ới master Kết nối thành công Phụ lục III Kết nối thành công master - minion ... vụ saltstack 33 2.9 Ứng dụng saltstack 34 Kết luận chương 35 CHƯƠNG III THỰC NGHIỆM MÔ HÌNH GIÁM SÁT, QUẢN LÝ MÁY CHỦ 36 4 3.1 Ứng dụng công cụ Saltstack. .. tài tốt nghiệp ? ?Nghiên cứu ứng dụng công cụ Saltstack? ?? Nội dung Đề tài gồm chương Chương Tổng quan an tồn thơng tin Chương khái qt tình hình an tồn thơng tin nay, giới thiệu cơng cụ quản lý cấu... tính cho Saltstack Tạo hội cho bên thứ ba tham gia đóng góp phát triển để sử dụng Saltstack quản lý sản phẩm họ 2.9 Ứng dụng saltstack Thực thi từ xa: • Saltstack khung thực thi từ xa sử dụng để