Bastion SSH hay truy cập VPN trực tiếp: chính sách nào áp dụng?
Thực hiện bốn kiểm tra theo thứ tự: bastion kiểm soát gì, đích có phân biệt được các đường đi không, nhật ký giữ gì và chính sách được thực thi ở đâu.
Việc người dùng VPN có thể tới máy chủ mà không đi qua máy chủ nhảy là một câu hỏi chính sách khoác áo mạng. Nếu bastion thực hiện một kiểm soát bắt buộc thì việc tham gia VPN phải dẫn tới nó chứ không phải vòng qua nó. Nếu máy chủ nhảy chỉ bắc cầu cho một phân đoạn trước đây không thể tới, một đường trực tiếp hẹp có thể là sự thay thế trung thực. Hãy làm các kiểm tra dưới đây theo thứ tự và dừng ở kiểm tra đầu tiên thất bại, vì câu trả lời đó quyết định phần còn lại.
Kiểm tra xem bastion thực sự kiểm soát điều gì
Bắt đầu bằng bằng chứng về hiện tại, không phải sơ đồ từ tài liệu thiết kế. Xem cấu hình SSH và bộ lọc gói của đích: nếu cổng 22 vào chỉ được chấp nhận từ địa chỉ của bastion thì máy chủ nhảy là kiểm soát bị áp đặt. Nếu cùng cổng đó chấp nhận kết nối từ toàn bộ nhóm VPN thì bastion chỉ là tiện ích và việc thực thi nằm ở nơi hoàn toàn khác. Lịch sử phiếu yêu cầu thường xác nhận cái nào trong hai có trước.
Phát biểu phát hiện trong một câu nêu tên kiểm soát mà bastion cung cấp: giới hạn đích, bước xác thực thứ hai, ghi phiên hoặc khả năng quan sát vận hành trong sự cố. Chính câu đó là điều chính sách thay thế phải giữ lại.
Kiểm tra xem đích có phân biệt được các đường đi không
Các quy tắc địa chỉ nguồn chỉ hoạt động khi hai đường đi đến với địa chỉ nguồn khác nhau. Một cổng VPN che giấu lưu lượng tới mạng con máy chủ sẽ xóa mất khác biệt đó, và sau đó mọi kết nối tới cổng 22 đều trông như đến từ cổng. Việc kiểm tra là cục bộ trên đích và chỉ mất một lát: liệt kê các phiên SSH đã thiết lập và đọc địa chỉ đối tác của từng phiên.
Khi cả hai đường đi sụp vào một địa chỉ, sự phân biệt phải được làm sớm hơn, qua những đích mà VPN được phép đẩy tới và qua chính các bộ lọc của cổng. Thêm một quy tắc trên đích trong tình huống đó tạo ra ảo giác về ranh giới mà không thay đổi điều gì đến.
Kiểm tra xem mỗi bản ghi thực sự giữ gì
Ba nhật ký khác nhau mô tả ba sự kiện khác nhau và không cái nào thay thế cái nào. Bản ghi kết nối của VPN cho thấy một danh tính đã vào phạm vi mạng. Bản ghi chuyển tiếp của bastion cho thấy một kênh TCP rời nó về phía đích và cổng. Nhật ký xác thực của đích cho thấy một tài khoản đã đăng nhập qua SSH. Đọc chúng cùng nhau mới tạo ra dòng thời gian; đọc một cái thì tạo ra phỏng đoán.
Không bản ghi nào trong số đó chứa điều đã xảy ra bên trong phiên mã hóa giữa máy khách và đích. Nếu cần rà soát ở mức lệnh, nó cần một cơ chế ghi được triển khai có chủ đích với các quy tắc xử lý dữ liệu riêng. Trông đợi điều đó từ nhật ký của máy chủ nhảy là cách một lỗ hổng kiểm toán vẫn ẩn cho tới khi nó thành vấn đề.
Kiểm tra nơi chính sách thực sự được thực thi
Một thiết lập máy khách như ProxyJump là một yêu cầu, không phải một hạn chế. OpenSSH sẵn lòng mở kết nối trực tiếp khi đích có thể tới được, vì vậy các tệp cấu hình trên máy tính xách tay mô tả ý định trong khi tường lửa quyết định kết quả. Việc thực thi thuộc về các đích được phép của cổng VPN và các quy tắc truy cập của chính đích, và người dùng không thể sửa cả hai. Đồng thời kiểm toán các đường thay thế: một giao diện thứ hai, một trình lắng nghe công khai, một lớp mesh hay một đường hầm cũ giữa các site đều có thể khôi phục lối tắt bạn vừa đóng.
Dù vậy hãy cấu hình ProxyJump, vì nó khiến tuyến đã được phê duyệt trở thành tuyến dễ dàng và ngăn công việc thường ngày sinh ra ngoại lệ. Xác nhận điều máy khách thực sự phân giải trước khi tin nó.
ssh -G app01.lab.internal | grep -iE '^(hostname|port|proxyjump|proxycommand)'
Xác minh bằng một lần thử trực tiếp có chủ đích
Một chính sách chưa từng được kiểm thử là một hy vọng. Từ một máy khách gắn với VPN, hãy thử đường đi lẽ ra phải bị từ chối, rồi thử đường đã được phê duyệt, và giữ cả hai kết quả. Lần thử bị từ chối chính là bằng chứng thay đổi đã có hiệu lực.
nc -vz -w 3 10.20.30.41 22
ssh -J bastion.lab.internal app01.lab.internal true
Một kết quả sạch trông giống kết nối trực tiếp bị từ chối hoặc hết thời gian tới địa chỉ đích, tiếp theo là đăng nhập thành công vào máy chủ nhảy và một mục xác thực phía đích nêu tên nguồn được hỗ trợ. Bất cứ điều gì khác nghĩa là ranh giới vẫn còn lỗ hổng, bất kể tài liệu nói gì. Ghi lại ngày, quy tắc đã thay đổi và hai kết quả, rồi hãy trao cho đường khôi phục một người phụ trách và một ngày hết hạn để truy cập khẩn cấp không lặng lẽ trở thành tuyến hàng ngày.