Truy cập bằng SSH đến máy chủ đứng sau Proxy (Reverse Proxy làm Gateway)
1. Bối cảnh và bài toán
Trong mô hình triển khai máy chủ hiện đại, đặc biệt với hệ thống có yêu cầu tách lớp mạng và tăng cường an toàn, các máy chủ ứng dụng (QMS, AI, DB, …) thường không kết nối trực tiếp ra Internet, mà được đặt đứng sau một máy chủ Proxy/Gateway.
Mô hình này đặt ra một bài toán thực tế:
Làm thế nào để quản trị viên có thể truy cập SSH vào các máy chủ nội bộ (QMS, AI, …) thông qua Proxy, khi các máy chủ này không có IP public và không được NAT trực tiếp từ router?
Bài viết này hướng dẫn cách truy cập SSH đúng chuẩn trong mô hình đó.
2. Mô hình mạng minh họa
prx (Reverse Proxy)
Có IP LAN với router (ví dụ:
192.168.1.88)Là máy duy nhất được NAT/forward từ router
Đóng vai trò:
Reverse Proxy (HTTP/HTTPS)
Router/NAT cho mạng nội bộ
Bastion Host (jump host) cho SSH
qms (máy chủ QMS)
Nằm trong mạng nội bộ
10.10.10.0/24Không có IP public
Gateway trỏ về
10.10.10.1(prx)
3. Nguyên tắc truy cập SSH trong mô hình này
Nguyên tắc cốt lõi
Không SSH trực tiếp từ Internet vào QMS
Chỉ SSH vào Reverse Proxy
Từ Reverse Proxy → SSH tiếp vào QMS (hop thứ hai)
Reverse Proxy lúc này đóng vai trò Jump Host / Bastion Host.
4. Điều kiện cần trước khi SSH
4.1. Trên Reverse Proxy (prx)
SSH server đang chạy:
prx truy cập được QMS:
Nếu bước này chưa thành công, cần kiểm tra:
IP routing
Firewall
NAT / forward
4.2. Trên QMS
SSH server đang chạy:
Default route đúng:
Kết quả mong muốn:
5. Cách 1 – SSH thủ công qua Proxy (cách cơ bản, dễ hiểu)
Bước 1: SSH vào Reverse Proxy
Từ máy quản trị (laptop/PC):
Ví dụ:
Bước 2: Từ prx, SSH tiếp vào QMS
✔ Cách này:
Dễ triển khai
Dễ debug
Phù hợp giai đoạn setup, xử lý sự cố
❌ Nhược điểm:
Phải SSH hai lần
Không tiện cho automation
6. Cách 2 – SSH một lệnh bằng Jump Host (khuyến nghị)
6.1. Dùng tham số -J
Trên máy quản trị:
Luồng kết nối:
✔ Ưu điểm:
Một lệnh duy nhất
Chuẩn OpenSSH
Rất phù hợp cho sysadmin
6.2. Cấu hình sẵn trong ~/.ssh/config (cách chuyên nghiệp)
Trên máy quản trị, sửa file:
Thêm:
Sau đó chỉ cần:
✔ Đây là cách làm chuẩn production.
7. Vì sao KHÔNG nên NAT cổng SSH trực tiếp vào QMS?
Lý do an toàn
Giảm bề mặt tấn công (attack surface)
Chỉ có 1 điểm SSH duy nhất từ Internet
Dễ audit log, dễ khóa IP, dễ áp MFA
Lý do quản trị
Mở rộng thêm AI, DB, Backup server không cần NAT thêm
Không phải nhớ nhiều IP/cổng
Phù hợp mô hình Zero Trust / Bastion
8. Checklist kiểm tra nhanh khi SSH không vào được QMS
Trên prx:
Trên qms:
Kiểm tra firewall prx:
9. Tổng kết
Reverse Proxy không chỉ để reverse HTTP/HTTPS
Trong mô hình chuẩn, nó còn là:
Gateway
Router nội bộ
Bastion Host cho SSH
Cách SSH đúng:
Internet → prx
prx → QMS / AI / server nội bộ
Mô hình này:
An toàn
Dễ mở rộng
Đúng chuẩn hệ thống server thực tế
- Đăng nhập để gửi ý kiến