Một cơ sở dữ liệu chạy được trước khi VPN kết nối và hỏng sau đó hiếm khi là vấn đề thông tin đăng nhập. Tường lửa đám mây đối chiếu địa chỉ nguồn, và đường hầm đầy đủ thay thế đúng địa chỉ mà chúng đang đối chiếu. Khoảng cách giữa điều bạn nghĩ máy tính gửi đi và điều máy chủ nhận được chính là toàn bộ lỗi, và có thể đo trong một bước.

Địa chỉ nguồn trở thành gì

Trong đường hầm đầy đủ, mọi gói tin ra ngoài qua cổng VPN, nên máy chủ thấy địa chỉ ra của cổng chứ không phải kết nối tại nhà của bạn. Nếu có proxy chuyển tiếp trên đường đi, địa chỉ của nó là thứ đến. Cả hai đều là nguồn hợp lệ, và không cái nào là địa chỉ trong quy tắc ban đầu của bạn.

Các quy tắc tường lửa của Azure SQL ở cấp máy chủ và cấp cơ sở dữ liệu đối chiếu địa chỉ máy khách đến máy chủ logic, mà sau đường hầm đầy đủ chính là địa chỉ ra. Một nhóm bảo mật AWS chỉ cho phép một địa chỉ cũng hành xử như vậy. Gói tin bị bỏ trước khi xác thực, nên lỗi nhận được trông như sự cố mạng chứ không phải vấn đề quyền. Đó chính là lý do người ta bắt đầu đặt lại mật khẩu.

Danh sách cho phép được quyết định ở đâu

Hãy đọc quy tắc khớp với đường đi đang hỏng, không phải quy tắc bạn nhớ là đã tạo. Ghi nhận phạm vi, cổng, giao thức và việc nó có được đánh giá trước mọi kiểm tra danh tính hay không.

Sau đó quyết định lớp nào thực sự sở hữu quyết định này một cách hợp lệ. Quy tắc địa chỉ trả lời lưu lượng đến từ đâu. Điểm cuối riêng trả lời dịch vụ có thể truy cập qua đường riêng hay không. Ngoại lệ đường hầm tách trả lời đích nào đi vòng qua đường hầm. Chúng không thể hoán đổi, và mỗi cái hỏng theo cách khác nhau khi đường hầm thay đổi.

Ba cách sửa, ba lớp

Mỗi lựa chọn dưới đây sửa luồng vì một lý do khác nhau, và chọn sai sẽ tạo ra kết nối chỉ chạy được đến lần đổi cổng tiếp theo.

RepairLayer it changesWhat it does not fix
Add the egress address to the ruleSource address matchingNothing about routing, and it breaks when the egress moves
Use a private endpointWhether the service is reached privatelyA client that still resolves the public name
Add a split-tunnel exceptionWhich flows bypass the tunnelAn expired credential or a wrong password

Thêm địa chỉ ra là thay đổi nhỏ nhất và mong manh nhất, vì một cổng mới hoặc một vùng khác sẽ âm thầm vô hiệu hóa nó. Hãy ghi lại địa chỉ bên cạnh định nghĩa đường hầm để cả hai cùng di chuyển. Một dải rộng tạm thời là chẩn đoán, không phải cách sửa; để nguyên nó là cách các dịch vụ nội bộ cuối cùng bị phơi ra.

Vì sao một nền tảng được quản lý không thể tham gia đường hầm

Các nền tảng ứng dụng như Heroku, AppHarbor hoặc CloudBees chạy mã của bạn trong môi trường không có thiết bị tun hay tap và không có quyền tạo một thiết bị như vậy. Mô hình đầu vào của họ là HTTP chứ không phải một ổ cắm lắng nghe tùy ý. Một buildpack mang theo tệp nhị phân VPN vẫn không có chỗ đặt giao diện. Các mẫu khả thi là địa chỉ ra tĩnh mà cơ sở dữ liệu có thể cho phép, một sản phẩm kết nối riêng do nền tảng cung cấp, hoặc một proxy trong DMZ truy cập qua HTTPS.

Proxy đó là một đường truy cập có xác thực và ghi log riêng. Nó không biến nền tảng thành thành viên VPN của bạn, và mô tả như vậy tạo ra các quy tắc không ai kiểm toán được.

Kiểm chứng từ máy khách đã hỏng

Kết nối lại và lặp lại chính xác đường đi của máy khách. Kiểm tra địa chỉ nguồn mà dịch vụ ghi log, tuyến mà máy khách chọn cho tên cơ sở dữ liệu, và kết quả của truy vấn thực tế, theo đúng thứ tự đó. Một phép thử từ cổng chỉ chứng minh cổng chạy được, điều chưa bao giờ bị nghi ngờ. Nếu kết nối giờ đã xác thực mà truy vấn vẫn hỏng, vấn đề còn lại là quyền trên cơ sở dữ liệu.

Hãy xem lại các quy tắc này mỗi khi đường hầm thay đổi. Một cổng bị thay hoặc một dải ra mới phá đường đi mà không có thay đổi nào trong cấu hình ứng dụng.

Bài viết liên quan