lời tựa
“Tình bạn” của chúng tôi bắt đầu từ hai năm trước. Tôi đến nơi làm việc mới, nơi quản trị viên trước đó tình cờ để lại cho tôi phần mềm này như một vật thừa kế. Tôi không thể tìm thấy bất cứ điều gì trên Internet ngoài tài liệu chính thức. Ngay cả bây giờ, nếu bạn google “bánh lái”, trong 99% trường hợp nó sẽ xuất hiện: mũ lái tàu và máy bay bốn cánh. Tôi đã tìm được cách tiếp cận anh ấy. Vì cộng đồng của phần mềm này không đáng kể nên tôi quyết định chia sẻ kinh nghiệm và cào của mình. Tôi nghĩ điều này sẽ hữu ích cho ai đó.
Vì vậy, bánh lái
Rudder là một tiện ích quản lý cấu hình và kiểm tra mã nguồn mở giúp tự động hóa cấu hình hệ thống. Nó hoạt động dựa trên nguyên tắc cài đặt một tác nhân cho mỗi người dùng cuối. Thông qua giao diện thuận tiện, chúng tôi có thể theo dõi mức độ tuân thủ của cơ sở hạ tầng với tất cả các chính sách được chỉ định.
Sử dụng
Dưới đây tôi sẽ liệt kê những mục đích tôi sử dụng Rudder.
-
Kiểm soát tệp và cấu hình: ./ssh/authorized_keys ; /etc/hosts; iptables ; (và sau đó trí tưởng tượng của bạn dẫn đến đâu)
-
Kiểm soát các gói đã cài đặt: zabbix.agent hoặc bất kỳ phần mềm nào khác
Cài đặt máy chủ
Gần đây tôi đã cập nhật từ phiên bản 5 lên 6.1, mọi thứ đều ổn. Dưới đây là các lệnh dành cho Deban/Ubuntu nhưng cũng có hỗ trợ:
Tôi sẽ ẩn phần cài đặt trong phần tiết lộ nội dung để không làm bạn mất tập trung.
Spoiler
Sự phụ thuộc
rudder-server yêu cầu Java RE ít nhất phiên bản 8, có thể được cài đặt từ kho lưu trữ tiêu chuẩn:
Kiểm tra xem nó đã được cài đặt chưa
java -version
nếu kết luận
-bash: java: command not found
sau đó cài đặt
apt install default-jre
Máy chủ
Nhập khóa
wget --quiet -O- "https://repository.rudder.io/apt/rudder_apt_key.pub" | sudo apt-key add -
Đây là bản in
pub 4096R/474A19E8 2011-12-15 Rudder Project (release key) <[email protected]>
Key fingerprint = 7C16 9817 7904 212D D58C B4D1 9322 C330 474A 19E8
Vì chúng tôi không có đăng ký trả phí nên chúng tôi thêm kho lưu trữ sau
echo "deb http://repository.rudder.io/apt/6.1/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/rudder.list
Cập nhật danh sách kho và cài đặt máy chủ
apt update
apt install rudder-server-root
Tạo người dùng quản trị
rudder server create-user -u admin -p "Ваш Пароль"
Trong tương lai chúng ta có thể quản lý người dùng thông qua config
Thế là xong, máy chủ đã sẵn sàng.
Điều chỉnh máy chủ
Bây giờ bạn cần thêm địa chỉ IP của các tác nhân hoặc toàn bộ mạng con vào tác nhân bánh lái, chúng tôi tập trung vào chính sách bảo mật.
Cài đặt -> Chung
Trong trường “Thêm mạng”, nhập địa chỉ và mặt nạ ở định dạng xxxx/xx. Để cho phép truy cập từ tất cả các địa chỉ của mạng nội bộ (Tất nhiên trừ khi đây là mạng thử nghiệm và bạn đứng sau NAT), hãy nhập: 0.0.0.0/0
Quan trọng - sau khi thêm địa chỉ IP, đừng quên nhấp vào Lưu thay đổi, nếu không sẽ không có gì được lưu.
Cảng
Mở các cổng sau trên máy chủ
-
443-tcp
-
5309 - tcp
-
514 - udp
Chúng tôi đã sắp xếp xong thiết lập máy chủ ban đầu.
Cài đặt đại lý
Spoiler
Thêm một chìa khóa
wget --quiet -O- "https://repository.rudder.io/apt/rudder_apt_key.pub" | sudo apt-key add -
Vân tay chìa khóa
pub 4096R/474A19E8 2011-12-15 Rudder Project (release key) <[email protected]>
Key fingerprint = 7C16 9817 7904 212D D58C B4D1 9322 C330 474A 19E8
Thêm một kho lưu trữ
echo "deb http://repository.rudder.io/apt/6.1/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/rudder.list
Cài đặt đại lý
apt update
apt install rudder-agent
Thiết lập đại lý
Chúng tôi chỉ cho đại lý địa chỉ IP của máy chủ chính sách
rudder agent policy-server <rudder server ip or hostname> #Без скобок. Можно также использовать доменное имя
Bằng cách chạy lệnh sau, chúng tôi sẽ gửi yêu cầu thêm một tác nhân mới vào máy chủ, trong vài phút nữa nó sẽ xuất hiện trong danh sách các tác nhân mới, tôi sẽ giải thích cách thêm trong phần tiếp theo
rudder agent inventory
Chúng tôi cũng có thể buộc tác nhân bắt đầu và nó sẽ gửi yêu cầu ngay lập tức
rudder agent run
Đại lý của chúng tôi đã được thiết lập, hãy tiếp tục.
Thêm đại lý
Đăng nhập
https://127.0.0.1/rudder/index.html
Tác nhân của bạn sẽ xuất hiện trong phần “Chấp nhận nút mới”, chọn hộp và nhấp vào Chấp nhận
Sẽ mất một chút thời gian cho đến khi hệ thống kiểm tra sự tuân thủ của máy chủ
Tạo nhóm máy chủ
Hãy tạo một nhóm (vẫn là giải trí), không hiểu tại sao các nhà phát triển lại thành lập nhóm tàn ác như vậy, nhưng theo tôi hiểu thì không còn cách nào khác. Đi tới phần Quản lý nút -> Nhóm và nhấp vào Tạo, chọn nhóm và tên tĩnh.
Chúng tôi lọc máy chủ mà chúng tôi cần theo các tính năng đặc biệt, chẳng hạn như theo địa chỉ IP và lưu
Nhóm đã được thành lập.
Thiết lập quy tắc
Đi tới Chính sách cấu hình → Quy tắc và tạo quy tắc mới
Thêm nhóm đã chuẩn bị trước đó (việc này có thể thực hiện sau)
Và chúng tôi hình thành một chỉ thị mới
Hãy tạo một lệnh để thêm khóa chung vào .ssh/authorized_keys. Tôi sử dụng điều này khi một nhân viên mới rời đi hoặc để tái bảo hiểm, chẳng hạn như nếu ai đó vô tình cắt chìa khóa của tôi.
Đi tới Chính sách cấu hình → Chỉ thị ở bên trái, chúng tôi thấy “Thư viện chỉ thị” Tìm “Truy cập từ xa → Khóa ủy quyền SSH”, ở bên phải, nhấp vào Tạo chỉ thị
Chúng tôi nhập thông tin về người dùng và thêm khóa của anh ấy. Tiếp theo, chọn chính sách ứng dụng
-
Toàn cầu - Chính sách mặc định
-
Thực thi - Thực thi trên các máy chủ được chọn
-
Kiểm toán - Sẽ tiến hành kiểm tra và cho biết khách hàng nào có chìa khóa
Hãy chắc chắn để chỉ ra quy tắc của chúng tôi
Sau đó lưu lại là xong.
Kiểm tra
Đã thêm khóa thành công
bánh bao
Tác nhân cung cấp thông tin đầy đủ về máy chủ. Danh sách các gói đã cài đặt, giao diện, cổng mở và nhiều hơn thế nữa mà bạn có thể xem trong ảnh chụp màn hình bên dưới
Bạn cũng có thể cài đặt và điều khiển phần mềm không chỉ trên Linux mà còn trên Windows, tôi không kiểm tra phần sau, không cần..
Từ tác giả
Bạn có thể hỏi, tại sao lại phát minh ra bánh xe nếu ansible và con rối đã được phát minh từ lâu rồi?
Tôi trả lời: Ansible có một số nhược điểm, chẳng hạn như chúng tôi không thấy cấu hình này hiện tại ở trạng thái nào hoặc tình huống quen thuộc khi bạn khởi chạy một vai trò hoặc playbook và xuất hiện lỗi treo và bạn bắt đầu leo lên máy chủ và xem gói nào đã được cập nhật ở đâu. Và tôi không làm việc với con rối..
Rudder có bất kỳ nhược điểm nào không? Rất nhiều.. Bắt đầu từ việc các tác nhân rơi ra và bạn phải cài đặt lại chúng hoặc sử dụng lệnh đặt lại bánh lái. (nhưng nhân tiện, tôi chưa thấy điều này trong phiên bản 6), dẫn đến việc thiết lập cực kỳ phức tạp và giao diện phi logic.
Có bất kỳ lợi thế? Và cũng có rất nhiều ưu điểm: Không giống như Ansible nổi tiếng, chúng tôi có giao diện web trong đó bạn có thể thấy sự tuân thủ mà chúng tôi đã áp dụng. Ví dụ: các cổng có kết nối với thế giới không, trạng thái của tường lửa là gì, các tác nhân bảo mật có được cài đặt hay các tiện ích khác không.
Phần mềm này hoàn hảo cho bộ phận bảo mật thông tin, vì trạng thái của cơ sở hạ tầng sẽ luôn ở trước mắt bạn và nếu bất kỳ quy tắc nào sáng lên màu đỏ thì đây là lý do để truy cập máy chủ. Như tôi đã nói, tôi đã sử dụng Rudder được 2 năm và nếu bạn hút một chút, cuộc sống sẽ tốt hơn. Điều khó khăn nhất trong một cơ sở hạ tầng lớn là bạn không nhớ máy chủ đang ở trạng thái nào, liệu June có lỡ cài đặt các tác nhân bảo mật hay liệu anh ta đã cấu hình đúng iptables hay chưa, nhưng bánh lái sẽ giúp bạn theo kịp mọi sự kiện. Nhận thức có nghĩa là vũ trang! )
PS Hóa ra nhiều hơn tôi dự định, tôi sẽ không mô tả cách cài đặt các gói, nếu đột nhiên có yêu cầu, tôi sẽ viết phần thứ hai.
PSS Bài viết nhằm mục đích cung cấp thông tin, tôi quyết định chia sẻ nó vì có rất ít thông tin trên Internet. Có lẽ điều này sẽ thú vị với ai đó. Chúc một ngày tốt lành nhé các bạn thân yêu)
Như một quảng cáo
Máy chủ hoành tráng -
Nguồn: www.habr.com