Đã kết nối OpenVPN nhưng không ping hay chia sẻ SMB được? Kiểm tra ba cổng
Một đường hầm hoạt động không nói gì về chuyển tiếp, cổng SMB hay phân giải tên. Hãy thử từng cổng theo thứ tự và dừng ở cổng đầu tiên thất bại.
Đường hầm dựng lên, máy khách nhận được địa chỉ, nhưng không gì trên LAN ở xa trả lời. Ping thất bại, chia sẻ không mở, và nhật ký VPN trông sạch sẽ vì theo góc nhìn của nó phiên vẫn khỏe. Giữa phiên đó và một tệp trên máy chủ có ba cổng độc lập: chính sách chuyển tiếp, các cổng mà dịch vụ cần và cái tên bạn gõ thay cho địa chỉ.
Mỗi cổng thất bại với triệu chứng khác nhau, và chỉ cổng đầu tiên nằm trên máy chủ VPN.
Chuyển tiếp là một chính sách trên chuỗi FORWARD
Việc chấp nhận bộ lắng nghe OpenVPN diễn ra ở INPUT, vì vậy đường hầm vẫn kết nối được trong khi mọi gói hướng tới LAN bị bỏ. Lưu lượng đi vào tun0 và ra qua giao diện LAN sẽ đi qua FORWARD, và máy chủ có chính sách DROP mặc định ở đó âm thầm bỏ nó. Trước khi chạm vào bất cứ điều gì khác, hãy kiểm tra cả sysctl lẫn chuỗi: sysctl net.ipv4.ip_forward và iptables -L FORWARD -v -n.
Cho phép hướng bạn muốn và các phản hồi thuộc về nó, ví dụ một quy tắc accept từ giao diện đường hầm sang giao diện LAN cùng một quy tắc stateful cho lưu lượng established và related. Nếu LAN nằm sau một bộ định tuyến khác, bộ định tuyến đó cần tuyến quay lại nhóm máy khách hoặc source NAT trên máy chủ VPN. Hãy xác nhận đường đó bằng một lần ping trước khi thêm quy tắc, vì một quy tắc không thể tiếp cận sẽ không bao giờ xuất hiện trong bộ đếm.
SMB cần nhiều hơn một cổng
Chia sẻ tệp không phải một cuộc trò chuyện TCP 445 duy nhất. Việc khám phá dùng UDP 137 và 138, phiên NetBIOS cũ dùng TCP 139, và phiên SMB hiện đại dùng TCP 445. Một quy tắc chỉ mở 445 tạo ra trường hợp bực bội khi ổ đĩa đã ánh xạ hoạt động còn duyệt mạng thì không, hoặc ngược lại.
Truyền lớn qua đường hầm cũng gặp vấn đề MSS trông như chia sẻ hỏng. Một SYN công bố kích thước phân đoạn đầy đủ của LAN bị bỏ do MTU nhỏ hơn của đường hầm, và kết nối treo sau khi bắt tay. Kẹp MSS trên đường chuyển tiếp, iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu, loại bỏ kiểu đình trệ đó. Hãy kiểm chứng bằng một bản sao vài megabyte thay vì danh sách thư mục, vì các phản hồi nhỏ vẫn đi qua kể cả khi truyền lớn không đi qua.
Bộ điều hợp đường hầm xuất hiện như một cấu hình mạng mới
Windows phân loại mỗi bộ điều hợp vào một cấu hình mạng, và bộ điều hợp đường hầm mới thường rơi vào Public, nơi các quy tắc chia sẻ tệp và máy in bị chặn. Đó là quyết định của tường lửa trên máy chủ tệp, không phải vấn đề định tuyến trên máy chủ VPN. Hãy chủ động đổi loại bằng Set-NetConnectionProfile -InterfaceAlias "Ethernet 3" -NetworkCategory Private sau khi xác nhận chính sách cho phép, vì loại cũng thay đổi những quy tắc vào nào áp dụng.
Cùng cấu hình đó giải thích vì sao ping thất bại trong khi TCP 445 thành công: các yêu cầu echo bị bỏ ở Public theo mặc định.
Tên không tự vượt qua một đường hầm có định tuyến
Phân giải tên NetBIOS và khám phá cục bộ dựa vào quảng bá mà đường hầm có định tuyến không mang theo. Vì thế gõ tên ngắn của máy chủ thất bại trong khi địa chỉ của nó hoạt động, và chia sẻ trông hỏng khi chỉ phần tra cứu hỏng. Thêm bản ghi DNS cho máy chủ trên bộ phân giải mà đường hầm cấp, hoặc dùng địa chỉ trong lối tắt.
Nếu triển khai vẫn phụ thuộc WINS, hãy cấu hình nó trên máy khách thay vì hy vọng lưu lượng quảng bá xuất hiện. Trước tiên hãy thử bằng địa chỉ để lỗi tên không bị nhầm với lỗi tường lửa.
Thử từng lớp một và đọc lỗi đầu tiên
Đi từ dưới lên: ping cổng của đường hầm, ping một máy trong LAN bằng địa chỉ, sau đó mở cổng dịch vụ bằng Test-NetConnection -ComputerName 10.8.0.5 -Port 445, và chỉ sau đó mới xác thực vào chia sẻ. Bước đầu tiên thất bại chính là lớp cần sửa, và mọi bước sau đó chỉ là nhiễu cho tới khi nó qua. Ping trả lời trong khi cổng vẫn đóng chỉ ra tường lửa của chính máy chủ tệp, còn cổng mở dù ping im lặng chỉ ra việc lọc ICMP. Ghi lại bước thất bại đầu tiên trước khi thay đổi bất cứ điều gì, vì thay đổi thứ hai che mất kết quả của thay đổi thứ nhất.
Nếu máy chủ VPN không phải bộ định tuyến của LAN, hãy xác nhận tuyến quay lại trên bộ định tuyến đó trước khi thêm quy tắc vào máy chủ. Không có nó, yêu cầu tới được máy nhưng phản hồi lại đi ra theo tuyến mặc định về phía internet, điều mà từ phía máy khách trông đúng như tường lửa bỏ gói.
Giữ tài khoản chia sẻ tách khỏi đăng nhập VPN trong ghi chú của bạn, vì một đường hầm thành công không nói gì về quyền tệp. Việc mở SMB ra internet để né một quy tắc thiếu không phải là giải pháp.