Giới hạn trình lắng nghe VPN trong các giao diện bạn dự định
Trình lắng nghe wildcard và quy tắc tường lửa là hai cơ chế kiểm soát khác nhau. Đọc các socket thực tế bằng ss, sau đó kiểm tra họ địa chỉ và tường lửa.
Một dịch vụ VPN có thể truy cập được từ bất cứ nơi nào socket của nó được gắn và tường lửa cho phép. Đó là hai quyết định riêng biệt, và mọi người thường chỉ đưa ra một trong hai. Đọc trình lắng nghe thực tế mất mười giây và giải quyết một câu hỏi mà phỏng đoán không thể. Hãy bắt đầu từ đó, sau đó thay đổi từng cơ chế kiểm soát một.
Mọi thứ bên dưới giả định rằng bạn có thể chạy lệnh trên máy chủ với root hoặc sudo.
Đọc các socket trước khi thay đổi bất cứ điều gì
Trên Linux, ss -lunp liệt kê các trình lắng nghe UDP cùng địa chỉ cục bộ, cổng và tiến trình của chúng, và ss -ltnp làm điều tương tự với TCP. Tìm cổng của VPN và đọc kỹ cột địa chỉ. 0.0.0.0:51820 và [::]:51820 nghĩa là mọi giao diện, trong khi 10.0.0.5:51820 nghĩa là một địa chỉ trên một giao diện. Hướng dẫn ss mô tả các cột nếu đầu ra không quen thuộc. Nếu thiếu tên tiến trình, hãy chạy cùng lệnh với sudo, vì cột chủ sở hữu cần đặc quyền.
Ghi lại địa chỉ. Đó là sự thật mà phần còn lại của hướng dẫn này phụ thuộc vào.
Gắn với một địa chỉ, không phải với một mong muốn
OpenVPN gắn trình lắng nghe với một địa chỉ cụ thể bằng chỉ thị local của nó, và đó là cách được hỗ trợ để giới hạn nó ở cấp độ tiến trình. Không phải mọi triển khai đều cung cấp một tương đương, và một giao thức không có tùy chọn gắn kết thì không thể thu hẹp theo cách này. Nếu bản của bạn không có, tường lửa là cơ chế kiểm soát duy nhất của bạn, và ghi chú triển khai nên nói rõ điều đó. Trên một máy chủ có nhiều địa chỉ, hãy gắn với địa chỉ hướng về đường hầm; gắn với một địa chỉ trôi nổi thường là sai lầm.
Một dịch vụ phải tồn tại qua thay đổi địa chỉ cần một kế hoạch cho việc gắn kết cũ, không chỉ một dòng cấu hình.
Kiểm tra họ địa chỉ riêng biệt
IPv4 và IPv6 là các socket riêng biệt. Một tiến trình được gắn với 0.0.0.0 vẫn có thể chấp nhận IPv6 qua socket chồng đôi, hoặc không, tùy thuộc vào tùy chọn socket và giá trị mặc định của nền tảng. Chỉ đọc dòng IPv4 đã đánh lừa nhiều hơn một lần đánh giá triển khai. Liệt kê cả hai họ trước khi kết luận rằng trình lắng nghe bị thu hẹp.
Nếu IPv6 không phải là một phần của thiết kế, việc vô hiệu hóa nó ở cấp độ socket sạch hơn là hy vọng tường lửa bao phủ nó. Đây là một quyết định chính sách, vì vậy hãy ghi lại nó cùng với các lựa chọn giao diện khác.
Xếp lớp tường lửa lên trên việc gắn kết
Một liên kết hẹp không thay thế quy tắc tường lửa, và một quy tắc tường lửa không thu hẹp một liên kết wildcard. Hãy dùng cả hai: gắn ở nơi triển khai hỗ trợ, sau đó chỉ cho phép cổng từ những nguồn cần tiếp cận nó. Các nhóm bảo mật đám mây nằm trước tường lửa của máy chủ, vì vậy hãy kiểm tra cả hai khi đường đi vượt qua ranh giới VPC. Quy tắc hiệu lực là giao của hai, và mỗi lớp chỉ có thể trừ đi khả năng tiếp cận.
Kiểm tra từ một nguồn được phép và từ một nguồn bị loại trừ có chủ ý. Kết nối từ localhost không chứng minh được gì về ranh giới công cộng.
Ghi lại những gì bạn đã chọn
Ghi lại địa chỉ đã gắn, giao diện sở hữu nó, quy tắc tường lửa và mục đích của nó. Một NIC thay thế hoặc một địa chỉ đám mây được gán lại có thể thay đổi mức phơi bày mà không ai chỉnh sửa hồ sơ. Ghi ngày vào ghi chú, vì địa chỉ đám mây di chuyển giữa các lần xem xét thường xuyên hơn mọi người mong đợi.
Chính ghi chú đó biến lần xem xét tiếp theo thành một so sánh thay vì một dự án khảo cổ.