OpenVPN Access Server thực sự lắng nghe trên những cổng nào?
Rà danh sách socket trên một máy chủ Access Server: nhận diện các trình lắng nghe mặc định, phân biệt loopback với cổng đã công bố và kiểm tra chuyển tiếp trước khi đóng một cổng.
Bạn chạy ss -lntup trên một máy chủ Access Server và nhận được danh sách dài gấp đôi so với dự kiến. Một nửa số mục là các cổng có dạng daemon mà không ai nhắc đến khi cài đặt. Phản xạ là đóng mọi thứ không phải 443 hoặc 1194, và đó là cách người ta tự phá cổng thông tin khách hàng của mình.
Access Server không phải một trình lắng nghe duy nhất. Đây là một dịch vụ VPN, một dịch vụ web và một thành viên cụm, và nó có thể tạo thêm các cổng riêng cho daemon cùng các chuyển hướng tường lửa tùy theo số daemon TCP bạn đã cấu hình.
Rà danh sách theo thứ tự: đọc các socket, ánh xạ những cái quen thuộc, phân loại phần còn lại theo chủ sở hữu và ràng buộc, rồi kiểm tra cái gì thực sự công bố chúng.
Bắt đầu bằng một lệnh chỉ đọc
sudo ss -lntup cho bạn giao thức truyền, địa chỉ cục bộ, cổng và tiến trình sở hữu cho mỗi socket đang lắng nghe. Các cờ rất quan trọng: -l là lắng nghe, -n là số, -t là TCP, -u là UDP, -p là tiến trình. Không có root bạn nhận được socket nhưng không nhận được tên tiến trình, và đó chính là cột bạn cần để phân loại.
Ghi lại bốn trường mỗi dòng trước khi hình thành bất kỳ ý kiến nào: giao thức, địa chỉ ràng buộc, cổng và lệnh. Giữ phiên bản Access Server và số daemon đã cấu hình bên cạnh danh sách đó, vì cả hai đều thay đổi điều được kỳ vọng.
Hai dòng trông giống nhau không phải là giống nhau. TCP và UDP trên cùng một số là hai socket riêng biệt với mức phơi bày riêng biệt, và 0.0.0.0 và :: là các ràng buộc riêng cho các họ địa chỉ riêng. Một dịch vụ chỉ ràng buộc vào 127.0.0.1 không thể truy cập trực tiếp từ máy chủ khác, mặc dù một chuyển hướng cục bộ vẫn có thể công bố nó.
Những trình lắng nghe bạn nên nhận ra
Các giá trị mặc định này bao phủ phần lớn triển khai và cho bạn một đường cơ sở để so sánh. Chúng là giá trị mặc định, không phải danh sách cho phép đầy đủ.
| Socket | Role to confirm |
|---|---|
| UDP 1194 | OpenVPN UDP tunnel listener |
| TCP 443 | OpenVPN TCP listener, optionally forwarded to the web service |
| TCP 943 | Admin and client web interfaces, and cluster control in Access Server 3.0 and later |
| TCP 945 | Cluster control in older configurations that predate the move to 943 |
Mọi thứ vượt ra ngoài đó cần giải thích, không phải giả định. Bạn sẽ thường thấy các trình lắng nghe chỉ cục bộ thuộc về các thành phần mà sản phẩm tự cài đặt cho chính nó. Xác nhận chúng qua PID và cấu hình dịch vụ thay vì một số cổng ghi nhớ, và đừng coi một cổng lạ là thù địch chỉ vì nó lạ.
Một socket ngoài cặp quen thuộc cũng không tự động là phần dư. Khi nhiều daemon TCP được cấu hình, Access Server tạo trình lắng nghe cho từng daemon và chuyển hướng lưu lượng tới chúng, nên số lượng và giá trị cổng của chúng tuân theo cấu hình đó.
Phân loại trước khi đóng bất cứ thứ gì
Với mỗi dòng không chắc chắn, trả lời ba câu hỏi theo thứ tự này.
- Chủ sở hữu và mục đích. Ghép PID với một unit hoặc tiến trình và đọc cấu hình của dịch vụ đó. Nếu bạn không thể nêu tên chủ sở hữu, bạn chưa sẵn sàng quyết định bất cứ điều gì về socket.
- Phạm vi ràng buộc. Loopback là cục bộ trong không gian tên. Một ràng buộc wildcard chỉ truy cập được nếu định tuyến, lọc máy chủ và mọi quy tắc cấp đám mây cho phép, nên địa chỉ ràng buộc là cần nhưng chưa đủ. Hãy kiểm tra IPv4 và IPv6 như hai quyết định riêng.
- Đường dẫn đã công bố. Tìm chuyển tiếp dịch vụ, chuyển hướng riêng cho daemon, proxy bên ngoài và chính sách tường lửa hiệu lực. Đây là bước người ta bỏ qua, và chính nó biến một cổng backend trông vô hại thành một đường quản trị có thể truy cập.
Câu hỏi đó đọc khác đi từ bên ngoài máy chủ. Một cổng không có quy tắc tường lửa máy chủ vẫn có thể bị nhóm bảo mật đám mây đóng, và một cổng có quy tắc máy chủ dễ dãi có thể không truy cập được vì không có gì định tuyến tới nó. Hãy nhìn cả hai đầu trước khi viết kết luận của danh sách.
Nơi đường dẫn đã công bố khác với danh sách socket
Tài liệu của chính Access Server bao quát trường hợp gây nhiều nhầm lẫn nhất: khi nhiều daemon TCP chạy, cổng phía trước chuyển tiếp tới các cổng riêng cho daemon, và bố cục nhìn thấy không còn khớp với danh sách socket. hướng dẫn lọc giao diện web mô tả các quy tắc đó và vì sao một bộ lọc chỉ viết cho cổng hiển nhiên có thể bỏ sót hoàn toàn đường đã chuyển hướng.
Điều khiển cụm là nơi thứ hai mà phiên bản quan trọng. Từ 3.0 trở đi nó dùng chung 943; các cấu hình cụm cũ hơn dùng 945. Mở hoặc chặn một trong số đó mà không kiểm tra phiên bản sẽ tạo ra một danh sách trông gọn gàng nhưng sai.
Vậy bề mặt nhìn thấy từ bên ngoài là hợp của ba thứ: các socket đang lắng nghe, các quy tắc chuyển tiếp công bố lại chúng và các kiểm soát mạng phía trước máy chủ. Bất kỳ danh sách nào chỉ ghi cái đầu tiên là chưa đầy đủ, và bất kỳ thay đổi nào chỉ xét cái đầu tiên sẽ để một đường mở hoặc cắt một dịch vụ.
Xác minh sau mọi thay đổi
Thay đổi cài đặt trình lắng nghe thông qua chủ sở hữu cấu hình được hỗ trợ và giữ một bảng điều khiển khôi phục mở trong khi làm. Mất quyền truy cập quản trị vào giao diện web trên một máy chủ từ xa không thể khôi phục qua VPN mà bạn vừa vô hiệu hóa.
Sau đó xác nhận bốn điều mà một triển khai thường cần: một ứng dụng VPN kết nối được, cổng thông tin khách hàng tải được, quyền truy cập quản trị hoạt động và liên lạc cụm vẫn hoạt động nếu bạn chạy nhiều hơn một nút. Bài kiểm tra chỉ VPN vẫn qua dễ dàng trong khi cổng thông tin bị hỏng.
Kết thúc bằng việc ghi lại đường dẫn được phép cho từng dịch vụ: socket nào, ràng buộc nào, quy tắc chuyển tiếp nào, kiểm soát mạng nào. Tài liệu đó là đầu ra bảo mật hữu ích. Số socket tối thiểu thì không, và một lần đặt lại hàng loạt đóng các trình lắng nghe mà chưa ai nhận diện xong cũng không.