[Series Zero Trust Hạ Tầng] Bài 3: Mở Rộng Hạ Tầng – Add Server Vệ Tinh, Phân Quyền RBAC Và Xem Lại "Video" Gõ Lệnh Chế Độ Toàn Màn Hình
Chào các bạn, chào mừng các bạn đã quay trở lại với series Làm chủ Teleport. Ở Bài 2, chúng ta đã tự tay dựng thành công một Teleport Cluster "chính chủ" có giao diện Web UI sang xịn mịn và bảo mật bằng SSL Let's Encrypt.
Tuy nhiên, một pháo đài thì không thể chỉ quản lý mỗi... chính nó. Trong thực tế, doanh nghiệp của bạn sẽ có hàng chục, hàng trăm Server khác nhau (Staging, UAT, Production...). Hôm nay, ở Bài 3, mình sẽ hướng dẫn các bạn cách kết nối một Server Linux bất kỳ (Node) vào Teleport Cluster trung tâm, cấu hình phân quyền nâng cao (RBAC) cho từng thành viên trong team, và đặc biệt là trải nghiệm tính năng "quay phim màn hình Terminal" thần thánh của Teleport.
1. Cách Thêm Một Server Mới (Add Node) Trong 30 Giây
Teleport đơn giản hóa việc mở rộng hạ tầng đến mức tối đa. Thay vì phải cấu hình file rườm rà trên Server mới, bạn có thể sinh ra một lệnh tự động (Script) từ Cluster trung tâm.
Bước 1: Sinh mã Token kết nối từ Web UI
- Đăng nhập vào Teleport Web UI của bạn.
- Tại thanh Sidebar, chọn mục Enroll New Resource (hoặc nút Add Resource ở góc trên).
- Chọn loại tài nguyên là Ubuntu / Linux Server.
- Teleport sẽ tự động sinh cho bạn một câu lệnh single-line cực dài có chứa mã Token bảo mật ngắn hạn. Nhấn Copy câu lệnh này.
Câu lệnh sẽ có dạng tương tự như sau:
sudo bash -c "$(curl -fsSL https://teleport.yourdomain.com:443/scripts/1a2b3c4d5e6f.../install-node.sh)"
Bước 2: Thực thi trên Server mục tiêu
- SSH vào con Server mới mà bạn muốn quản lý (Server này chỉ cần ra được Internet, không cần mở port inbound công khai).
- Dán câu lệnh vừa copy ở trên vào Terminal và nhấn
Enter. - Script của Teleport sẽ tự động: Tải gói cài đặt tương thích, khởi tạo Teleport Agent, cấu hình kết nối ngược (Reverse Tunnel) về Cluster trung tâm.
Quay lại Web UI của bạn, vào mục Servers, bạn sẽ thấy con Server mới xuất hiện trong danh sách ngay lập tức! Bạn có thể nhấn Connect và bắt đầu gõ lệnh ngay trên trình duyệt.
2. Trải Nghiệm Tính Năng "Quay Phim Màn Hình" Terminal (Session Recording)
Đây chính là tính năng khiến các Chuyên gia bảo mật (Security Auditor) và các Sếp cực kỳ tâm đắc. Teleport không chỉ lưu lại log dạng text (như lệnh history thông thường vốn rất dễ bị xóa/sửa), nó lưu trữ toàn bộ luồng dữ liệu I/O của Terminal dưới dạng một file "video" gọn nhẹ.
Cách kiểm tra hoạt động:
- Bạn (hoặc một đồng nghiệp) dùng Web UI hoặc Terminal (
tsh ssh) để truy cập vào Server mới add ở trên. - Thử gõ vài lệnh ngẫu nhiên, ví dụ:
top,ls -la,cd /var/log,cat /etc/passwd. Sau đó gõ exit để thoát phiên làm việc. - Bây giờ, đăng nhập bằng tài khoản Admin, vào mục Management -> Session Recordings.
- Bạn sẽ thấy phiên làm việc vừa rồi được ghi lại chính xác từng giây. Nhấn vào nút Play, một trình phát Terminal trực quan sẽ hiện ra. Bạn có thể tua nhanh, tua chậm, hoặc tạm dừng để xem chính xác người dùng đó đã thấy gì và gõ gì trên màn hình vào thời điểm đó.
3. Thiết Lập Phân Quyền Nâng Cao (RBAC - Role-Based Access Control)
Bài toán thực tế: Công ty bạn có 2 nhóm nhân sự:
- Team DevOps: Được quyền vào mọi Server bằng user
rootđể cấu hình hệ thống. - Team Developer: Chỉ được quyền vào các Server Staging/UAT bằng user
ubuntu, tuyệt đối không được sờ vào Server Production.
Tạo Role cho Developer (developer-role.yaml):
kind: role
version: v7
metadata:
name: developer
spec:
# 1. Những gì Dev ĐƯỢC PHÉP làm
allow:
# Dev được phép đóng vai user 'ubuntu' hoặc 'dev-user' trên OS
logins: [ubuntu, dev-user]
# Chỉ cho phép truy cập vào các server có gắn nhãn (Label) env: staging hoặc env: uat
node_labels:
'env': ['staging', 'uat']
# 2. Những gì Dev BỊ CẤM (Từ chối tuyệt đối có độ ưu tiên cao hơn)
deny:
# Cấm tuyệt đối không được login bằng quyền root
logins: [root]
# Cấm sờ vào server có nhãn env: production
node_labels:
'env': 'production'
Khi một nhân sự mới vào team Dev, bạn chỉ cần gán Role developer này cho tài khoản của họ. Cho dù họ có cố tình dùng lệnh để SSH vào máy Production, Teleport Proxy sẽ chặn đứng ngay từ vòng gửi xe vì Label của Server không khớp với quyền được cho phép.
4. Mẹo Nhỏ: Sử Dụng Nhãn (Labels) Để Quản Lý Hạ Tầng Khoa Học
Như bạn thấy ở phần RBAC, Teleport quản lý tài nguyên dựa trên các cặp Key: Value gọi là Labels. Bạn có thể gán nhãn cho Server bằng 2 cách:
- Static Labels: Sửa trực tiếp trong file cấu hình
/etc/teleport.yamlcủa con Server vệ tinh:
ssh_service:
enabled: "yes"
labels:
env: staging
team: backend
- Dynamic Labels (Nhãn động): Bạn có thể bắt Teleport chạy một script định kỳ để tự cập nhật nhãn (Ví dụ: Cứ 1 tiếng chạy lệnh kiểm tra dung lượng ổ cứng còn trống bao nhiêu % và gán thành một nhãn để tiện theo dõi).
Tạm kết Bài 3
Kết thúc bài học hôm nay, bạn đã biết cách biến Teleport thành một trung tâm điều hành hạ tầng thực thụ: Gom tất cả các server về một mối, thiết lập hàng rào phân quyền RBAC chặt chẽ và có trong tay bằng chứng "sống" thông qua Session Recording để điều tra khi hệ thống có sự cố.
Ở Bài 4, chúng ta sẽ nâng cấp hệ thống lên một tầm cao mới: Bảo mật quyền truy cập vào Database (PostgreSQL/MySQL) và cụm Kubernetes Cluster bằng Teleport để loại bỏ hoàn toàn mật khẩu tĩnh.
Hãy nhấn Upvote và Follow để tiếp tục đón xem bài tiếp theo trong series cực chất này nhé! Nếu có bước nào chưa làm được, hãy thả nhẹ một comment bên dưới để mình giải cứu!
All rights reserved