Không thể kết nối với OpenVPN bên ngoài mạng LAN


0

Tôi đã thiết lập OpenVPN phía sau bộ định tuyến và cổng được chuyển tiếp 1194. VPN đang sử dụng mạng con 10.3.15.0/24và có 192.168.1.14trên mạng LAN.

Nó hoạt động khi tôi kết nối cục bộ hoặc từ mạng gia đình của tôi kết nối với IP công cộng. Nhưng không phải trên các mạng khác tôi đã thử.

Tôi không thể thiết lập kết nối với VPN và trên máy khách tôi nhận được:

Mon Apr 20 13:50:42 2015 UDPv4 link local: [undef]
Mon Apr 20 13:50:42 2015 UDPv4 link remote: [AF_INET]83.***.***.***:1194
Mon Apr 20 13:51:42 2015 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Mon Apr 20 13:51:42 2015 TLS Error: TLS handshake failed
Mon Apr 20 13:51:42 2015 SIGUSR1[soft,tls-error] received, process restarting
Mon Apr 20 13:51:42 2015 Restart pause, 2 second(s)

Tôi nghĩ rằng nó có thể là một vấn đề tường lửa, đây là từ iptables của tôi:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
ACCEPT     all  --  10.3.15.0/24         anywhere             ctstate NEW

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Nhưng tôi đã cố gắng để rửa bàn, mà không hoạt động. Và khi chạy tcpdump -qni any port 1194có một số giao tiếp (trong cả hai trường hợp):

13:44:35.936684 IP 194.***.***.****.53929 > 192.168.1.14.1194: UDP, length 14
13:44:41.043704 IP 194.***.***.****.22955 > 192.168.1.14.1194: UDP, length 14
13:44:43.063426 IP 194.***.***.****.22955 > 192.168.1.14.1194: UDP, length 14
13:44:43.544690 IP 194.***.***.****.53929 > 192.168.1.14.1194: UDP, length 14

Tôi cũng nhận thấy một cái gì đó về destination port unreachable, nhưng những lỗi đó đã biến mất.

Đây là cấu hình máy chủ của tôi:

port 1194
proto udp
dev tun

ca openvpn_certs/host-ca.pem
cert openvpn_certs/host-cert.pem
key openvpn_certs/host-key.pem
dh openvpn_certs/dh1024.pem

server 10.3.15.0 255.255.255.0
route 10.3.15.0 255.255.255.0
ifconfig-pool-persist ipp.txt

push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
push "redirect-gateway def1 bypass-dhcp"
push "remote-gateway 10.3.15.1"

client-to-client
max-clients 20

keepalive 10 120
comp-lzo

user nobody
group nobody

persist-key
persist-tun
status /var/log/openvpn-status.log
log-append /var/log/openvpn.log

verb 11

Đây là cấu hình máy khách của tôi:

client
dev vpn
dev-type tun
proto udp
remote server.remote 1194
resolv-retry infinite
nobind
ns-cert-type server
persist-key
persist-tun
pull
ca certs/ca-host.pem
cert certs/cert-local.pem
key certs/key-local.pem
comp-lzo
verb 11

Máy chủ chạy linux linux trong khi máy khách chạy Gentoo.

Tôi bị mắc kẹt và không biết tìm ở đâu, có ý tưởng hay hướng dẫn nào không?

Cảm ơn!


Làm thế nào bạn thiết lập chìa khóa của bạn? Tôi muốn giới thiệu theo hướng dẫn này . Bạn có thể đăng nhật ký openvpn từ máy chủ không?
hololeap

Câu trả lời:


1

Trước hết, tôi không chắc bạn đang sử dụng phiên bản OpenVPN nào, nhưng 'gateway từ xa' không phải là một tùy chọn hợp lệ trong v2.3.2. Nếu bạn đang sử dụng phiên bản cũ hơn, hãy kiểm tra trang người đàn ông địa phương của bạn và xóa chỉ thị đó nếu cần.


Theo wiki OpenVPN , lỗi "Đàm phán khóa TLS không thành công ..." hầu như luôn là kết quả của:

  1. Tường lửa chu vi trên mạng của máy chủ đang lọc các gói OpenVPN đang đến (theo mặc định OpenVPN sử dụng cổng UDP hoặc TCP số 1194).

    • Điều này dường như không thể xảy ra trong trường hợp của bạn, nhưng hãy kiểm tra tường lửa của bộ định tuyến của bạn để chắc chắn.
  2. Một tường lửa phần mềm chạy trên chính máy chủ OpenVPN đang lọc các kết nối đến trên cổng 1194.

    • Bảng bộ lọc bạn cung cấp trông ổn, giả sử bạn thường có chính sách INPUT mặc định được đặt thành chấp nhận. Nếu không, bạn cần cho phép cổng UDP 1194:

      iptables -A INPUT -p udp -m udp --dport 1194 -j ACCEPT
      
  3. Cổng NAT trên mạng của máy chủ không có quy tắc chuyển tiếp cổng cho TCP / UDP 1194 đến địa chỉ nội bộ của máy chủ OpenVPN.

  4. Cấu hình máy khách OpenVPN không có địa chỉ máy chủ chính xác trong tệp cấu hình của nó. Lệnh từ xa trong tệp cấu hình máy khách phải trỏ đến chính máy chủ hoặc địa chỉ IP công cộng của cổng mạng máy chủ.

  5. Tường lửa Windows đang chặn truy cập cho nhị phân openvpn.exe. Bạn có thể cần phải đưa danh sách trắng (thêm nó vào danh sách "Ngoại lệ") để OpenVPN hoạt động.


Nếu bạn vẫn gặp sự cố, có thể có sự cố với Cơ sở hạ tầng khóa công khai của bạn. Tôi không quen thuộc với linux linux và liệu gói OpenVPN của họ có dễ sử dụng hay không, vì vậy hãy tiếp tục và tải xuống bản phát hành mới nhất và trích xuất nó đến một vị trí thích hợp trên cả máy chủ của bạn và, (tốt nhất là) không kết nối mạng máy (Cơ quan cấp chứng chỉ của bạn). Để đơn giản, tôi sẽ cho rằng máy chủ của bạn đang tạo yêu cầu cho khách hàng. Trên cả hai hệ thống, thay đổi thư mục nơi bạn trích xuất EasyRSA và ...

cp vars.example vars
editor ./vars

Trên hệ thống CA, bỏ ghi chú và chỉnh sửa các trường tổ chức phù hợp (EASYRSA_REQ_COUNTRY, v.v.). Trên máy chủ, tùy ý thay đổi "set_var EASYRSA_PKI" để nó trỏ đến một vị trí thích hợp (ví dụ / etc / openvpn / pki).

Tạo yêu cầu chứng chỉ trên máy chủ:

./easyrsa init-pki
./easyrsa gen-req <your_server_name> nopass
./easyrsa gen-req <some_client_name> nopass

Trên máy chủ không phải máy chủ, tạo CA mới:

./easyrsa init-pki
./easyrsa build-ca

Sao chép các tệp .req vào hệ thống CA của bạn, sau đó nhập và ký chúng:

./easyrsa import-req server /tmp/<your_server_name>.req
./easyrsa import-req client /tmp/<some_client_name>.req
./easyrsa sign-req server <your_server_name>
./easyrsa sign-req client <some_client_name>

Sao chép các chứng chỉ mới được ký, cũng như chứng chỉ CA, vào một vị trí thích hợp trên máy chủ và máy khách. Sau đó, trên máy chủ, tạo dh params:

 ./easyrsa gen-dh

Cuối cùng, sao chép khóa máy khách vào máy khách (nếu chưa có) và cập nhật cấu hình của bạn với vị trí khóa và chứng chỉ mới.



Bạn có thể thêm vào các phần có liên quan của liên kết vào câu trả lời của bạn? Chúng tôi yêu cầu điều này giúp OP ra ngoài, vì vậy họ sẽ không phải tìm kiếm thông qua thông tin có thể không liên quan đến họ. Điều này cũng là để bảo vệ các thông tin liên quan trong trường hợp trang web lưu trữ bị sập. Để biết thêm thông tin, xem bài meta này .
Cfinley

0

Đảm bảo rằng chứng chỉ máy chủ của bạn đã được ký với nsCertType = chỉ định máy chủ (điều này không được khấu hao và không phải mặc định nếu bạn sử dụng easyrsa3). Nếu không, chỉ thị 'ns-cert-cert-server' trong cấu hình máy khách của bạn sẽ khiến bắt tay tls không thành công. Thay vào đó, hãy sử dụng server máy chủ cert-cert-tls.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.