Hai hồ sơ chỉ khác nhau một dòng hoạt động khác nhau ngay khi một máy khách thứ hai khởi động trên cùng máy chủ. Một hồ sơ mang nobind và nhận bất kỳ cổng cục bộ nào mà nhân cấp; hồ sơ kia đặt trước 1194, và phiên bản thứ hai chết với địa chỉ đã được sử dụng. Dòng đó quyết định ai chọn cổng nguồn, điều này lại quyết định liệu hồ sơ có thể cùng tồn tại với bất cứ thứ gì khác trên máy hay không. Ba câu hỏi giải quyết điều đó, và câu đầu tiên trả lời phần lớn hồ sơ trước khi bạn đến hai câu còn lại.

nobind thực sự bỏ qua điều gì

Theo mặc định máy khách liên kết một socket cục bộ trước khi gọi ra, và cổng cục bộ là 1194 trừ khi hồ sơ nói khác. nobind loại bỏ việc đặt trước đó, nên chồng giao thức cấp một cổng chưa dùng tại thời điểm kết nối. Đây là ngoại lệ, không phải mặc định, và máy khách không có dòng đó giữ 1194, đó chính là lý do phiên bản thứ hai không được ghim xung đột. Hầu hết hồ sơ máy khách được phát hành mang chỉ thị này vì lý do đó, và việc một tệp mẫu làm điều gì đó không giống với việc cơ chế làm điều đó theo mặc định.

Điều không thay đổi là phía xa. Máy chủ vẫn lắng nghe ở nơi hồ sơ nói là nó lắng nghe, và cổng đích trong cấu hình vẫn là cổng đích. Một cổng nguồn động thay đổi địa chỉ trả về của socket của bạn và không thay đổi gì của máy chủ.

Nó cũng không giấu gì. Địa chỉ công cộng của bạn là thứ mà đường đi dịch nó thành, gói tin vẫn đi qua mạng cục bộ, và ai quản lý mạng đó vẫn thấy một luồng. nobind không phải tính năng riêng tư cũng không phải cách vượt tường lửa.

Ba điều kiện quyết định

Một câu hỏi quyết định hai câu còn lại, nên hãy trả lời nó trước khi sửa bất cứ thứ gì. Nếu đối tác gọi ra ngoài, các câu hỏi còn lại chỉ tinh chỉnh một quyết định đã được đưa ra. Nếu nó chấp nhận kết nối vào, không mức tinh chỉnh cổng cục bộ nào làm nó có thể tiếp cận được.

Đối tác này có khởi tạo kết nối không? Nếu nó gọi ra ngoài, một cổng nguồn động là vô hại và thường tốt hơn, vì câu trả lời quay lại theo cùng luồng. Nếu nó chờ kết nối vào, cổng động làm nó không thể tiếp cận trừ khi có gì đó phía trước công bố cổng. Câu trả lời duy nhất đó tách mọi hồ sơ máy khách khỏi mọi hồ sơ máy chủ.

Đường đi có lọc theo cổng nguồn không? Một quy tắc nghiêm ngặt viết cho một cổng đã biết buộc phải có cổng cục bộ rõ ràng, và hồ sơ nên ghi lại quy tắc mà nó đáp ứng. Hầu hết mạng chỉ lọc theo đích, nên điều kiện này hiếm hơn điều kiện đầu. Ở nơi nó áp dụng, nó vượt lên trên ưu tiên cổng động.

Nhiều phiên bản có dùng chung máy chủ không? Một cổng cố định không thể phục vụ hai trong số chúng, và một phiên bản khởi động lại có thể thấy 1194 vẫn đang ở trạng thái đóng. Cổng động loại bỏ xung đột đó mà không thay đổi gì khác. Nếu bạn không thể trả lời chắc chắn, hãy giả định là có và để nhân chọn.

Nơi cổng được ghim là câu trả lời đúng

Một số mạng lọc cả cổng nguồn lẫn đích, nên người vận hành có thể đã viết một quy tắc chỉ cho lưu lượng từ một cổng đã biết đi qua. Ghim cổng cục bộ khi đó là đúng, và hồ sơ nên mang một chú thích nêu tên quy tắc mà nó đáp ứng. Ghim để đối xứng với cổng máy chủ không phải lý do, vì hai con số đó không liên quan gì đến nhau. Nếu việc ghim chỉ tồn tại vì một mẫu có nó, hãy xóa nó.

Nếu không, một cổng được ghim sẽ mua rắc rối: hai máy khách trên một máy không thể cùng giữ 1194, và cái thứ hai thất bại với lỗi chỉ vào cổng chứ không phải hồ sơ. Một container khởi động lại nhanh đụng cùng bức tường. Cách sửa là chỉ thị mà các hồ sơ được phát hành đã chứa.

Máy chủ và máy khách không đối xứng

hướng dẫn OpenVPN 2.6 đặt nobind bên cạnh lport, đó là lập luận trong một dòng: một tùy chọn nói nhân chọn, tùy chọn kia nói bạn chọn. Một cổng cục bộ động chỉ hoạt động cho đối tác gọi ra ngoài, vì phía trả lời không thể biết cổng trước. Đó là lý do sao chép một hồ sơ máy khách lên máy chủ tạo ra một trình lắng nghe mà không ai tiếp cận được.

Trên một máy chủ có nhiều giao diện mạng, địa chỉ là quyết định tách biệt với cổng. Liên kết một địa chỉ cục bộ cụ thể và liên kết một cổng cụ thể là hai cài đặt khác nhau, và một máy chủ có hai liên kết lên thường ghim cả hai. Một máy khách ghim cả hai đã nhận lấy sự cứng nhắc tương tự mà không có lợi ích gì.

Bản tóm tắt nói về vai trò chứ không phải bảo mật: ai gọi ra ngoài có thể linh hoạt về nguồn của mình, và ai trả lời thì không thể. Không lựa chọn nào thay đổi điều mà đầu kia học được về danh tính của bạn. Đó cũng là lý do chỉ thị xuất hiện trong các ví dụ máy khách và hầu như không bao giờ trong các ví dụ máy chủ.

Xác minh cổng mà nhân đã chọn

Sau khi kết nối, hãy đọc socket chứ không phải cấu hình, vì cấu hình nêu ý định và socket nêu điều đã xảy ra. Những dữ kiện đáng ghi lại là cổng cục bộ, điểm cuối từ xa và liệu có gì còn đang lắng nghe. Trên một máy Linux cả ba đều cách một lệnh.

ss -unp | grep openvpn
ss -lunp | grep openvpn
sudo lsof -nP -i | grep openvpn

Một máy khách với nobind hiển thị một cổng cục bộ cao và cổng từ xa đã cấu hình, đó là hình dạng mong đợi. Máy chủ hiển thị một socket đang lắng nghe trên cổng đã cấu hình của nó, và nếu socket đó thiếu thì hồ sơ hoặc không phải trình lắng nghe hoặc đã không liên kết được. Khi có luồng nhưng không có gói nào quay lại, hãy so sánh cổng nguồn đã chọn với bất kỳ bộ lọc cổng nào trên đường đi trước khi sửa hồ sơ. Thay đổi một thứ, kết nối lại và đọc socket lần nữa.

Bài viết liên quan