Tải bản đầy đủ (.docx) (67 trang)

Nghiên cứu và ứng dụng công cụ saltstack

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.44 MB, 67 trang )

1
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
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 TỒN THƠNG TIN ....................................
1
1.1. Tổng quan an tồn thông tin ...................................................................
1
1.2. Vấn đề về bảo mật hệ thống mạng, máy chủ ..........................................
4
1.3. Tổng quan quản lý cấu hình máy chủ .....................................................


6
Kết luận chương 1 ..........................................................................................
9
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 của saltstack ..............................................................................
11
2.4. Kiến trúc saltstack .................................................................................
12
2.5. Cách thức hoạt động .............................................................................
14


3
3
2.6. An toàn trong 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ụ của saltstack .............................................................
33
2.9. Ứng dụng của saltstack .........................................................................
34
Kết luận chương 2 ........................................................................................
35
CHƯƠNG III. THỰC NGHIỆM MƠ HÌNH GIÁM SÁT, QUẢN LÝ MÁY
CHỦ.................................................................................................................
36


4
4
3.1. Ứng dụng công cụ Saltstack cho quản lý máy chủ ...............................
36
3.1.1. Kịch bản thực nghiệm .....................................................................
36

3.1.2. Kết quả thực nghiệm .......................................................................
37
Kết luận chương 3 ........................................................................................
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 cơ an ninh mạng ......................................................................
4
Hình 1.2. Các vấn đề an ninh của hệ thống.......................................................
5
Hình 2.1. Kiến trúc Salt stack………………………………………………..12
Hình 2.2. Mơ hình Master - Minion ................................................................
13


5
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 2 8. 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
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 trên Salt master…………………50
Phụ lục I.2. Cập nhật gói cái đặt trên Salt master ...........................................
50

Phụ lục I.3. Cài gói cài đặt trên Salt master ...................................................
51
Phụ lục I.4. Cài đặt thành phần cơ bản trê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 trên Salt minion………………………………54
Phụ lục II.2. Cập nhật thư viện trên Salt minion.............................................
54
Phụ lục II. 3. Cài đặt gói nhật thư viện trên Salt minion ................................
54


88
Phụ lục II. 4. Cài đặt các thành phần Salt cơ bản trên Minion .......................
55
Phụ lục II. 5. Đổi tên Id trong Minion ............................................................
55
Phụ lục II. 6. Cấu hình Salt- minion trên minion ............................................
56
Phụ lục II.7. Cấu hình Salt minion ..................................................................
56
Phụ lục III. 1. Key public trên Salt master…………………………………..57
Phụ lục III. 2. Gán key Public của salt master vào file cài đặt salt minion ....
57
Phụ lục III. 3. Danh sách hàng chờ kết nối trên Salt master ...........................
58
Phụ lục III. 4. Kết nối minion ới master .........................................................
58
Phụ lục III. 5. 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 cuộc tấn 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 hiện 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 và
PHP


PAM

Pluggable Authentication

Mô-đun xác thực có

Modules
SIEM

Event Management

Hệ thống giám sát an tồ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 một cách bảo
mật.

YAML Ain't Markup

Cấu trúc ngôn ngữ hướng dữ
liệu được sử dụng làm định
dạng đầu vào cho các ứng
dụng phần mềm đa dạng

YAML

Security Information and

Language

DANH MỤC BẢNG

Bảng 1. Thông tin máy chủ Salt-master ..........................................................
37
Bảng 2. 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 được nhiều sự giúp
đỡ, đóng góp ý kiến và chỉ bảo nhiệt tình của các Thầy, Cơ, gia đình và 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 chính viễn thơng, người đã tận tình
hướng dẫn, chỉ bảo em trong suốt quá trình làm đồ án.
Em cũng xin chân thành cảm ơn các Thầy, Cô giáo của Học viện Kỹ
thuật mật mã đã dạy dỗ cho em kiến thức về các môn đại cương cũng như các
môn chuyên ngành, giúp em có được cơ sở lý thuyết vững vàng và tạo điều
kiện giúp đỡ em trong suốt quá trình học tập.
Cuối cùng, em xin chân thành cảm ơn gia đình và bạn bè, đã luôn tạo
điều kiện, quan tâm, giúp đỡ, động viên em trong suốt q trình học tập và
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 7 năm 2021
SINH VIÊN THỰC HIỆN


11 11

LỜI NĨI ĐẦU
Trong mơi trường doanh nghiệp, khi nhu cầu sử dụng máy chủ tăng lên
theo quy mô của doanh nghiệp, cũng là lúc nảy sinh nhiều vấn đề. Bài tố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
ngun; đồ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 tồ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”.
Nội dung Đề tài gồm 3 chương
Chương 1. Tổng quan an tồn thơng tin
Chương này khái qt tình hình an tồn thơng tin hiện nay, và giới thiệu
cơng cụ quản lý cấu hình.
Chương 2. Tổng quan cơng cụ Saltstack
Chương này sẽ tìm hiểu về cơ sở hạ tầng, cách thức hoạt động, vai trò,
bảo mật trong công cụ saltstack.


12 12
Chương 3. Triển khai hệ thống Saltstack và thực nghiệm
Chương 3 Đề cập tới một số kịch bản mô tả chức năng cơ bản của
Saltstack.
1

CHƯƠNG I. TỔNG QUAN AN TỒN THƠNG TIN
1.1. Tổng quan an tồn thơng tin
Hiện nay, việc phát triển vượt bậc của công nghệ mạng và internet
cùng với các website thông tin trực tuyến trong các lĩnh vực của cuộc sống
đã làm cho nhu cầu triển khai các hệ thống ứng dụng trong lĩnh vực mạng
máy tính và truyền thơng tăng lên nhanh chóng. Đối với các doanh nghiệp,
mạng máy tính và Internet đã trở thành một trong những nhân tố tăng sức
mạnh, khả năng cạnh tranh trên thị trường; chính vì vậy, hiện nay mỗi doanh
nghiệp đang cố gắng xây dựng cho mình một hệ thống Mạng máy tính mạnh,
ổn định và có khả năng bảo mật cao. Tuy nhiên, cùng với phát triển của

mạng Internet, tình hình mất an ninh mạng đang diễn biến phức tạp và xuất
hiện nhiều nguy cơ đe dọa nghiêm trọng đến việc ứng dụng công nghệ thông
tin phục vụ phát triển kinh tế - xã hội và đảm bảo quốc phịng, an ninh. Số vụ
tấn cơng trên mạng và các vụ xâm nhập hệ thống công nghệ thông tin nhằm
do thám, trục lợi, phá hoại dữ liệu, ăn cắp tài sản, cạnh tranh không lành
mạnh và một số vụ việc mất an tồn thơng tin số khác đang gia tăng ở mức
báo động về số lượng, đa dạng về hình thức, tinh vi về cơng nghệ...
1.1.1. Trên thế giới
Khơng gian mạng hình thành từ sự kết hợp của những công nghệ đột
phá đã làm thay đổi thế giới, tác động đến mọi lĩnh vực của đời sống kinh tế
- xã hội, công tác quản lý và điều hành của các quốc gia; đồng thời, đặt ra
nhiều thách thức như tội phạm mạng, khủng bố mạng, chiến tranh mạng.
Khả năng kết nối vô hạn, không bị giới hạn bởi không gian, thời gian
và bản chất xã hội của không gian mạng đang đặt ra nhiều thách thức an ninh


13 13
mang tính tồn cầu như chiến tranh mạng, khủng bố mạng, tội phạm mạng,
nhiễu loạn thông tin. Theo báo cáo của Tổ chức Cảnh sát Hình sự quốc tế, tội
phạm sử dụng công nghệ cao đứng thứ 2 trong các loại tội phạm nguy hiểm
nhất, sau tội phạm khủng bố. Do đặc thù của loại tội phạm này là hoạt động
trên môi trường mạng, mọi tổ chức, cá nhân có kết nối với mạng internet đều
có thể trở thành nạn nhân. Trên phạm vi toàn cầu, tội phạm mạng gây thiệt
hại lên tới khoảng 600 tỷ USD mỗi năm, tương đương 0,8% GDP tồn cầu.
Trong đó, khu vực Đơng Á thiệt hại ước tính từ 120 - 200 tỷ USD, tương
đương 0,53 - 0,89% GDP khu vực.
1.1.2. Tại Việt Nam
Xu thế này diễn ra ngày càng nhiều và nghiêm trọng hơn, các vấn đề
về hoạt động lợi dụng không gian mạng dẫn đến một số thực trạng như:
Một là, không gian mạng đã trở thành môi trường trọng điểm cho các

hoạt động xâm phạm an ninh, hoạt động tội phạm, tán phát thơng tin giả
mạo; kích động biểu tình, gây rối an ninh trật tự xã hội. Hai là, hoạt động tấn
công mạng, gián điệp mạng diễn biến hết sức phức tạp và ngày càng trở nên
nguy hiểm hơn. Đã xuất hiện nhiều cuộc tấn công mạng quy mô rộng lớn,
phạm vi ảnh hưởng mang tính tồn cầu. Có chiều hướng gia tăng mạnh về số
lượng cũng như mức độ nguy hiểm. Ba là, ngoài ra các hoạt động chiếm
đoạt, lạm dụng thông tin cá nhân, dữ liệu người dùng đang diễn ra công khai.
Bốn là, không gian mạng cũng đã trở thành môi trường quan trọng trong hoạt
động của các tổ chức khủng bố quốc tế, nhất là các hoạt động tuyên truyền,
tuyển lựa, huấn luyện và chỉ đạo hoạt động của các mạng lưới. Năm là, tình
hình An ninh mạng thế giới diễn biến nhanh, ngày càng phức tạp và có tác
động lớn đến mọi mặt đời sống, kinh tế, chính trị, an ninh, quốc phịng của
mỗi quốc gia và trên toàn thế giới.
Nước ta đã và đang hội nhập ngày càng sâu rộng vào không gian mạng
tồn cầu. Hệ thống mạng viễn thơng, internet của chúng ta kết nối trực tiếp


14 14
với mạng viễn thơng, internet quốc tế. Do đó, chúng ta cũng đang chịu ảnh
hưởng trực tiếp từ tình hình, diễn biến phức tạp của An ninh mạng thế giới.
Các thế lực thù địch, tổ chức phản động lưu vong và đối tượng chống đối
tăng cường hoạt động lợi dụng không gian mạng với nhiều phương thức, thủ
đoạn khác nhau, triệt để sử dụng những dịch vụ mới nhất, công nghệ tiên tiến
nhất của hệ thống mạng viễn thông, internet nhằm phá hoại đất nước ta.
Vấn đề đặt ra để đảm bảo An ninh mạng Đảng, Nhà nước ta đã có
nhiều chủ trương, chính sách đẩy mạnh ứng dụng, phát triển công nghệ
thông tin phục vụ phát triển kinh tế - xã hội, bảo đảm quốc phòng, an ninh và
đã đạt được nhiều thành tựu rất quan trọng. Nhiều chính sách, pháp luật được
ban hành như Luật An ninh mạng, Luật An tồn thơng tin mạng, Luật Bảo vệ
bí mật nhà nước và các văn bản hướng dẫn thi hành. Trong đó, nổi bật là

Nghị quyết số 52-NQ/TW ngày 27-9-2019 của Bộ Chính trị “Về một số chủ
trương, chính sách chủ động tham gia cuộc cách mạng công nghiệp lần thứ
tư”, các chủ trương về bảo vệ Tổ quốc trên không gian mạng, bảo vệ an ninh
mạng quốc gia nhằm nâng cao tiềm lực khoa học, công nghệ cũng như năng
lực bảo đảm an ninh mạng, phòng, chống chiến tranh mạng. Xây dựng kết
cấu hạ tầng viễn thông ở nước ta khá đồng bộ; nền kinh tế số được hình
thành và phát triển nhanh, ngày càng trở thành bộ phận quan trọng của nền
kinh tế. Công nghệ số được áp dụng ở hầu hết các ngành; xuất hiện ngày
càng nhiều hình thức kinh doanh, dịch vụ mới xuyên quốc gia, dựa trên nền
tảng công nghệ số và Internet. Việc triển khai chính phủ điện tử được thực
hiện quyết liệt, đã đưa phục vụ các kỳ họp của Chính phủ.
Tuy nhiên, bên cạnh những thành tựu đã đạt được thì tình hình an ninh
mạng tiếp tục có nhiều diễn biến phức tạp, không gian mạng tiếp tục là mục
tiêu trọng yếu của các cuộc tấn công, là môi trường chủ yếu để tiến hành các
hoạt động gián điệp, khủng bố, phá hoại, thực hiện các hành vi phạm tội
ngày càng gia tăng; đặc biệt là tuyên truyền xuyên tạc, kích động chống
Đảng, Nhà nước của các thế lực thù địch, các tổ chức tội phạm đã đặt đất
nước ta trước những nguy cơ, thách thức về An ninh mạng: Một là, an ninh


15 15
quốc gia bị đe dọa khi sự phát triển của mạng xã hội đã tạo môi trường thuận
lợi cho các hoạt động tác động, chuyển hóa chính trị, khủng bố ở nhiều quốc
gia và vùng lãnh thổ. Hai là, mất kiểm sốt trên khơng gian mạng nếu khơng
được kiểm sốt chặt chẽ sẽ có thể gây ảnh hưởng nghiêm trọng. Ba là, đối
mặt với các cuộc tấn công mạng quy mô lớn, gây thiệt hại nghiêm trọng.
Bốn là, các hệ thống thông tin quan trọng về an ninh quốc gia bị tấn cơng.
Có thể phá hủy, gây đình trệ hoạt động của các lĩnh vực trọng yếu, thậm chí
làm tê liệt cả quốc gia, nhất là trong bối cảnh đang tăng cường ứng dụng,
phát triển công nghệ thông tin, xây dựng nền kinh tế số.

1.2. Vấn đề về bảo mật hệ thống mạng, máy chủ
 Thiếu giải pháp quản trị nguy cơ an ninh mạng
Trong hệ sinh thái an ninh mạng doanh nghiệp, quản trị nguy cơ an
ninh mạng (Vulnerability Management) là giải pháp phát hiện, cảnh bảo và
xử lý các nguy cơ, điểm yếu, lỗ hổng trước khi một cuộc tấn cơng mạng diễn
ra.

Hình 1.1. Nguy cơ an ninh mạng
Trong khi đó, hầu hết các giải pháp an ninh mạng doanh nghiệp đầu tư
đều phát huy tác dụng khi vụ tấn công mạng đang hoặc đã xảy ra. Ví dụ:
Antivirus: Chỉ phát huy tác dụng khi mã độc đã xâm nhập vào máy
tính.


16 16
Firewall: Chỉ phát huy tác dụng khi hacker đang tấn công hệ thống.
IDS/IPS hay SIEM: Chỉ phát huy tác dụng khi hệ thống đã bị tấn
công.
 Doanh nghiệp không nắm được tình hình chung về an ninh hệ thống
Trên thực tế, các doanh nghiệp đều khơng có phương án để nhìn được
bức tranh tổng thể về an ninh mạng. Cụ thể, doanh nghiệp khơng biết được
phịng ban hay máy tính nào dễ bị tin tặc kiểm sốt. Doanh nghiệp cũng
không nắm được số lượng lỗ hổng đang tồn tại, lỗ hổng nào xuất hiện nhiều
nhất.

Hình 1.2. Các vấn đề an ninh của hệ thống
Để giải quyết vấn đề này, một số doanh nghiệp thuê ngoài dịch vụ
đánh giá an ninh mạng (Cyber Security Network Assessment) hoặc kiểm thử
xâm nhập (Penetration Testing). Tuy nhiên, hai giải pháp này không mang lại
hiệu quả dài hạn. Doanh nghiệp chỉ nhìn được bức tranh nguy cơ mạng tại

thời điểm nghiệm thu kết quả. Sau khi dịch vụ kết thúc, hệ thống sẽ lại phải
đối mặt với các rủi ro bảo mật mới.
 Chưa có giải pháp khắc phục triệt để mọi nguy cơ an ninh mạng
Khi được cảnh báo về các lỗ hổng hoặc điểm yếu trong hệ thống
mạng, quản trị viên thường gặp khó khăn trong việc xử lý. Bởi việc xử lý cần
sự hỗ trợ từ các chuyên gia an ninh mạng giàu kinh nghiệm. Nếu quản trị


17 17
viên khơng biết quy trình và phương pháp phù hợp thì việc khắc phục sẽ trở
nên phức tạp.
• Chưa có giải pháp triển khai cho hệ thống mạng lớn
Một hệ thống mạng lớn với hàng nghìn máy tính đặt tại nhiều vị trí địa
lý khác nhau sẽ cần giải pháp quản trị nguy cơ an ninh mạng chuyên biệt.
Tuy nhiên, không phải giải pháp quản trị nguy cơ an ninh mạng nào cũng có
thể đáp ứng được. Một số loại hình tổ chức, doanh nghiệp đang gặp phải vấn
đề này có thể kể đến như:
Cơ quan nhà nước tại một quận/huyện cần triển khai giải pháp cho hệ
thống mạng từ xã/phường đến quận/huyện. Các tổ chức ngân hàng cần triển
khai giải pháp cho hệ thống data center, hệ thống tại hội sở chính và các
phịng giao dịch. Các tổ chức quân đội cần triển khai giải pháp từ Bộ Chỉ huy
đến các đơn vị thành viên. Các tập đoàn lớn cần triển khai giải pháp từ Tập
đoàn đến các Cơng ty thành viên.
• Hầu hết SOC thiếu giải pháp quản trị nguy cơ an ninh mạng
Hầu hết các trung tâm điều hành an ninh mạng (SOC) ở Việt Nam hiện
nay được thiết kế dựa trên hệ thống SIEM. Do đó, thành phần quản trị nguy
cơ an ninh mạng được thiết kế sơ sài, đơn giản. Có thể nhận thấy rõ ràng,
nếu doanh nghiệp đảm bảo an ninh mạng tốt trước khi tin tặc tấn cơng vào hệ
thống thì việc vận hành SOC sẽ tốt hơn. Điều này đồng nghĩa với việc giảm
bớt nguy cơ bị thiệt hại. Vì vậy, việc đầu tư một hệ thống quản trị nguy cơ an

ninh mạng đầy đủ, tích hợp vào quy trình vận hành của SOC là cần thiết.
1.3. Tổng quan quản lý cấu hình máy chủ
Quản lý cấu hình (Configuration Management) là một q trình thiết
lập và duy trì tính nhất qn về tốc độ, tính năng của một hệ thống, một dịch
vụ với yêu cầu thiết kế và các thông tin vận hành xun suốt vịng đời của
nó. Quản lý cấu hình thường được thực hiện nhờ quá trình xây dựng khung
mẫu cho các chương trình cần quản lý, giám sát yêu cầu thông số phù hợp
khi sử dụng. Các máy chủ tải cấu hình cho mình về và thực thi các công việc


18 18
cài đặt, cấu hình để đạt một trạng thái định trước. Quản lý cấu hình thường
sử dụng ngơn ngữ của vấn đề cần giải quyết che đi sự phức tạp, khác biệt
giữa các nền tảng phần dưới. Một số chương trình hỗ trợ chức năng để đảm
bảo máy chủ ln có một cấu hình như đã định trước ngay cả khi cấu hình
máy
chủ đó đã bị người dùng thay đổi thủ cơng.
Các tiêu chí đánh giá một hệ thống quản lý cấu hình
- Tính đơn giản: Đối tượng sử dụng các hệ thống quản lý cấu hình chủ yếu là
các nhà quản trị viên và vận hành hệ thống. Bởi vậy tính đơn giản là một
trong những tiêu chuẩn hàng đầu khi đánh giá. Những chương trình sử dụng
ngơn ngữ phức tạp viết file cấu hình có thể gây khó khăn cho việc sử dụng
của người dùng.
- Tính linh hoạt: Một cấu hình cần có khả năng áp dụng cho nhiều máy khác
nhau, với những thay đổi tuỳ thuộc theo các thông số của từng máy.
- Khả năng mở rộng tính năng: Nhu cầu dễ dàng thêm các thành phần của bên
thứ ba vào một chương trình quản lý cấu hình là cần thiết. Giúp các nhà phát
triển dễ dàng thêm các thành phần của họ; đồng thời, giúp chương trình có
thể sử dụng ở một mơi trường chun biệt mà khơng địi hỏi hay thay
đổi mã nguồn chương trình.

- Khả năng mở rộng hệ thống: Với những hệ thống lớn, mơ hình của chương
trình quản lý cấu hình sử dụng sảnh hưởng lớn tới khả năng mở rộng của nó.
Một chương trình sử dụng mơ hình máy chủ - máy khách với một máy chủ
duy nhất sẽ dẫn đến quá tải và không thể mở rộng hệ thống.
Một số chương trình quản lý cấu hình tiêu biểu:
- CFEngine: Dự án bắt đầu từ năm 1993, CFEngine ra đời đã trải qua nhiều
phiên bản và thay đổi lớn. Phiên bản mới nhất là CFEngine3. CFEngine là
chương trình đã tồn tại lây nhất trong lĩnh vực này, với toàn bộ mã nguồn
viết bằng C, khơng phụ thuộc vào chương trình bên ngồi, CFEngine là
chương trình hỗ trợ nhiều nền tảng nhất và thuộc loại chạy nhanh nhất và sử
dụng ít tài nguyên nhất trong các chương trình quản lý cấu hình. CFEngine


19 19
được sử dụng bởi các tổ chức như AT&T, ADM, LinkedIn. Ebay, Cisco,
IBM, NASA,… Điểm yếu lớn nhất của CFEngine là ngơn ngữ cấu hình
phức tạp.
- Puppet: Phổ biến thứ hai sau CFEngine, Puppet có cộng dồng người dùng
rộng rãi nhờ ngơn ngữ cấu hình đơn giản hơn nhiều so với CFEngine hay
Chef. Sử dụng rộng rãi nhờ ngôn ngữ cấu hình đơn giản hơn nhiều so với
CFEngine hay Chef. Sử dụng ngôn ngữ thủ tục riêng của Puppet để viết cấu
hình hệ thống. Năm 2010, Puppet đã thêm tính năng sử dụng Ruby DSL để
nâng cao tính linh động của file cấu hình nhưng đồng thời cũng làm giảm đi
tính đơn giản vống có của Puppet. Các đối tác lớn của Puppet như Twitter,
Nokia, SugarCRM,….
- Chef: Được xây dụng ngay từ đầu nhắm tới thị trường cloud computing.
Chef đứng thứ ba về độ phổ biến trong thị phần các chương trình quản lý cấu
hình. Chef sử dụng ngơn ngữ Ruby để viết cấu hình hệ thống, điều này giúp
sự linh hoạt trong cấu hình của Chef là khơng giới hạn nhưng cũng là rào
cản lớn nhất cho người dùng khi họ phải học một ngơn ngữ lập trình. Chef

được sử dụng bởi nhiwwuf hãng công nghệ trên thế giới trong đó có
Facebook và DreamHost.
- Salt: Mới xuất hiện năm 2011 và đang trong quá trình phát triển mạnh mẽ.
Ngay từ khi ra đời, Salt nhanh chóng thu hút được sự quan tâm của cộng
đồng bởi tính đơn giản trong cấu hình và mơ hình có khả năng mở rộng. Salt
sử dụng định dạng YAML để viết file cấu hình kết hợp với một engine
render template. Yếu tố này mang lại sự đơn giản và linh hoạt cho Salt, việc
viết một file cấu hình bằng YAML đơn giản hơn rất nhiều so với học một
ngơn ngữ lập trình mới. Các khách hàng nổi bật của Salt có thể kể đến HP
cloud, Reckspace, LinkedIn, Paypal.


20 20
Kết luận chương 1

Trong phạm vi chương này, đã khái qt được tình hình an tồn thơng
tin hiện tại. Giới thiệu về quản lý cấu hình và các cơng cụ quản lý cấu hình.
Saltstack thu hút được sự quan tâm của cộng đồng bởi tính đơn giản trong
cấu hình và mơ hình có khả năng mở rộng. Yếu tố này mang lại sự đơn giản
và linh hoạt cho Saltstack, việc viết một file cấu hình bằng YAML đơn giản
hơn rất nhiều so với học một ngơn ngữ lập trình mới. Nội dung chương tiếp
theo sẽ là tìm hiểu chi tiết về công cụ Saltstack.


21 21
CHƯƠNG II. CÔNG CỤ SALTSTACK
2.1. Lịch sử phát triển
Salt bắt nguồn từ nhu cầu thu thập dữ liệu tốc độ cao và thực thi nhiệm
vụ cho các quản trị viên hệ thống trung tâm dữ liệu quản lý quy mô cơ sở hạ
tầng lớn và dẫn đến sự phức tạp. Thomas S. Hatch, trước đây đã tạo ra một

số tiện ích cho các nhóm cơng nghệ thơng tin để giải quyết vấn đề quản lý hệ
thống trên quy mô lớn, nhưng nhận thấy những tiện ích này và các giải pháp
mã nguồn mở khác còn thiếu. Hatch quyết định sử dụng thư viện nhắn tin
ZezoMQ để hỗ trợ các yêu cầu tốc độ cao và xây dựng Saltstack sử dụng
ZeroMQ cho tất cả các lớp mạng.
Vào cuối tháng 5 năm 2011, tiến trình ban đầu đã được thực hiện đối
với việc cung cấp quản lý cấu hình được xây dựng trên công cụ thực thi từ xa
Saltstack. Hệ thống quản lý cấu hình này lưu trữ tất cả dữ liệu cấu hình
(trạng thái) bên trong một cấu trúc dữ liệu dễ hiểu sử dụng YAML. Mặc dù
chức năng thử nghiệm của hệ thống Salt State có sẵn vào tháng 5 năm 2011,
nhưng nó khơng được coi là ổn định cho đến khi phát hành Salt 0.9.3 vào
tháng 11 năm 2011.
Bản phát hành Salt 0.14.0 đã giới thiệu một hệ thống kiểm soát đám
mây tiên tiến giúp các máy ảo đám mây riêng và cơng khai có thể quản lý
trực tiếp với Salt. Chức năng Salt Cloud cho phép cung cấp bất kỳ máy chủ
lưu trữ đám mây lai nào, sau đó đưa ra khả năng thực thi, quản lý cấu hình và
tự động hóa theo hướng sự kiện của Salt từ xa cho các hệ thống đám mây lai
mới được cấp phép. Các máy ảo và phiên bản đám mây mới được tự động
kết nối với Salt Master sau khi tạo.
Salt Cloud hỗ trợ 25 hệ thống đám mây công cộng và riêng tư bao
gồm AWS, Azure, VMware, IBM Cloud và OpenStack. Salt Cloud cung cấp
giao diện để Salt tương tác với các máy chủ đám mây và chức năng của đám
mây như DNS, bộ lưu trữ, bộ cân bằng tải, ...
Vào tháng 9 năm 2020, VMware mua lại SaltStack.


22 22
2.2. Khái niệm
Saltstack là một phần mềm mã nguồn mở, một hệ thống thuộc nhóm
Configuration management, được viết bằng ngơn ngữ lập trình Python, sử

dụng YAML làm ngơn ngữ giao tiếp với người dùng. Mục đích dùng để quản
lý cấu hình và là cơng cụ điểu khiển từ xa các ứng dụng trên máy chủ.
Saltstack mang tới một hướng tiếp cận trong quản lý cơ sở hạ tầng
trong hệ thống ngày nay. Đồng thời, cũng mang lại sự dễ dàng trong quản lý,
vận hành cấu hình hàng nghìn máy chủ trong một khoảng thời gian ngắn.
Saltstack được xây dựng để giúp các nhóm vận hành cơng ngệ thơng
tin tự động hoá hạ tầng thuộc mọi loại và ở mọi cấp độ quy mô. Saltstack
cũng cực kỳ modul và linh hoạt để hoạt động cho bất kỳ trường hợp sử dụng
công nghệ thông tin, DevOps, SecOps, NetOps hoặc CloudOps.
2.3. Lợi ích của saltstack
- Đơn giản để thiết lập và quản lý: Bất kể kích thước của cơ sở hạ tầng là bao
nhiêu, saltcực kỳ dễ dàng để thiết lập và duy trì. Nó có một mơ hình máy
chủ/máy khách đơn giản, mà hoạt động liền mạch từ một triển khai nhỏ đến
triển khai trung tâm dữ liệu lớn.
- Khả năng thực thi song song: Salt sử dụng tên máy chủ, thuộc tính hệ thống
được gọi là hạt và các điểm cấu hình tùy chỉnh để thực hiện modul từ xa,
trạng thái và thực thi lệnh trên các nút mục tiêu. Những vụ kiện này xảy ra
song song với triển khai nhanh chóng.
- Tốc độ và bảo mật: Salt kết hợp một nhà mơi giới tin nhắn trong chính
daemon salt bằng cách sử dụng thư viện mạng ZeroMQ. Nó sử dụng các
khóa cơng khai để xác thực giữa các nút Master và máy khách với mã hóa
AES để tải trọng nhanh hơn giao tiếp. Salt cho phép lưu lượng truy cập
mạng nhẹ và nhanh bằng cách sử dụng MSGPack.
- Khả năng mở rộng và tính linh hoạt: Salt cung cấp tính linh hoạt cho quản lý
hệ thống bằng cách cung cấp nhiều cách khác nhau cho các nút chủ và khách
hàng giao tiếp và đồng bộ hóa bằng cả các phương thức đẩy và kéo.


23 23
Salt Master cũng có thể được thu nhỏ với nhiều cấu hình chính để hỗ trợ lớn

và phát triển cơ sở hạ tầng.
- Sử dụng giao diện Python: Thói quen salt có thể được viết dưới dạng
modulPython và salt bản thân nó có thể được gọi từ dịng lệnh hoặc API
Python. Các trạng thái salt thậm chí cịn cho phép việc sử dụng các điều kiện
kiểu Python, các vòng lặp và các chức năng để thực hiện tự động.
2.4. Kiến trúc saltstack
SaltStack sử dụng mơ hình giao tiếp máy chủ-tác nhân để định cấu
hình và quản lý các nút của nó. Điều này có nghĩa là SaltStack cần một máy
chủ chính (salt master) và cần cài đặt một tác nhân salt trên máy chủ đích có
tên là Salt minions. Salt là một cơng cụ quản lý cấu hình dựa trên Python sử
dụng hệ thống nhắn tin để tạo điều kiện kết nối với các nút mục tiêu hoặc các
minion của salt. Điều này cho phép Salt chạy hàng nghìn tác vụ đồng thời
với thiết kế đa xử lý của nó. Máy chủ chủ hoạt động như một bus điều khiển
trung tâm cho các máy khách, tạo ra một lớp giao tiếp tốc độ cao, an toàn và
hai chiều cho nhóm hệ thống (minion).

Hình 2.1. Kiến trúc Salt stack
Kiến trúc của Saltstack được thiết kế để hoạt động với bất kỳ số lượng
máy chủ nào, từ hệ thống mạng cục bộ đến các triển khai khác trên các trung


24 24
tâm dữ liệu khác nhau. Kiến trúc là một mơ hình máy chủ/máy khách đơn
giản với chức năng cần thiết được tích hợp trong một bộ daemon duy nhất.
Salt được thiết kế theo modul và có thể mở rộng dễ dàng, để dễ dàng
áp dụng cho các trường hợp sử dụng công nghệ thông tin đa dạng của doanh
nghiệp.
- Hệ thống Salt bao gồmcác loại daemon chính:
• Salt minions chạy trên mọi máy chủ mà người quản trị muốn quản lý với
Salt-Minions chịu trách nhiệm quản lý cấu hình của phần mềm chạy trên

cùng một máy mà chúng chạy trên đó. Mỗi máy bạn muốn cấu hình phải có
một minion chạy trên đó. Nếu bạn có nhiều minion đang chạy, Salt sẽ điều
phối chúng, tạo thành một hệ thống phân tán. Salt minion có nhiệm vụ kết
nối với Salt master. Minions nhận công việc (tức là hướng dẫn) thông qua
kết nối mở tới cổng 4505 và gửi kết quả (tức là cập nhật trạng thái) qua kết
nối mở tới chủ 4506.
• Các Master Salt chịu trách nhiệm điều phối các minion. Hầu hết các cấu hình
Salt đều sử dụng một master duy nhất. Tuy nhiên, Salt hỗ trợ chạy các
minion khơng chủ cũng như thiết lập nhiều chủ.
• Có một loại daemon thứ ba, được gọi là minion proxy salt Đây là một thiết
lập ví dụ:


25 25
Hình 2.2. Mơ hình Master - Minion
2.5. Cách thức hoạt động
Salt tn theo mơ hình đăng ký xuất bản (pub-sub) để phân phối công
việc. Nghĩa là, các master của Salt công bố công việc cho tất cả các minion
được kết nối và bản thân mỗi minion có trách nhiệm xác định xem đó có
phải là mục tiêu dự kiến hay không. Giao tiếp giữa master và minion được
thực hiện bằng cách sử dụng ZeroMQ, một thư viện nhắn tin không đồng bộ.
Thiết kế modul của saltstack tạo ra các modul python xử lý các khía
cạnh nhất định của các hệ thống Salt có sẵn. Các modul này cho phép tách
rời và sửa đổi các tương tác trong Salt để phù hợp với nhu cầu của nhà phát
triển hoặc quản trị viên hệ thống.
Hệ thống Salt duy trì nhiều loại modul để quản lý các hành động cụ
thể. Modul có thể được thêm vào bất kỳ hệ thống nào hỗ trợ modul động.
Các modul này quản lý tất cả các hành vi thực thi từ xa và quản lý trạng thái
của Salt. Các modul có thể được tách thành sáu nhóm:



Các modul thực thi là mã cơng việc cho chức năng của
Saltstack. Chúng đại diện cho các chức năng có sẵn để thực thi trực tiếp từ
công cụ thực thi từ xa. Các modul này chứa thông tin nền tảng chéo cụ thể
được Saltstack sử dụng để quản lý tính di động và tạo thành API cốt lõi của
các chức năng cấp hệ thống được sử dụng bởi hệ thống Salt.



Modul trạng thái là các thành phần tạo nên phần phụ trợ cho hệ thống quản
lý cấu hình Saltstack. Các modul này thực thi mã cần thiết để thực thi, thiết
lập hoặc thay đổi cấu hình của hệ thống đích. Giống như các modul khác, sẽ
có nhiều trạng thái hơn khi chúng được thêm vào các modul trạng thái.



Grains là một hệ thống phát hiện thông tin tĩnh về một hệ thống và lưu trữ
nó trong RAM để thu thập nhanh chóng.



Modul kết xuất được sử dụng để kết xuất thông tin được chuyển đến hệ
thống trạng thái Saltstack. Hệ thống kết xuất là thứ làm cho nó có thể đại


×