Định tuyến tất cả lưu lượng truy cập thông qua OpenVPN


39

Đúng, câu hỏi này đã được hỏi hàng trăm lần, và tôi đã tìm kiếm khắp nơi, không có kết quả.

Tiêu đề nói lên tất cả.

Tôi có máy chủ OpenVPN (Trên Ubuntu) và tôi có thể kết nối với nó thông qua ứng dụng khách của mình (Windows 8) ...

Vấn đề bắt đầu khi tôi cố gắng định tuyến TẤT CẢ lưu lượng truy cập thông qua VPN.

Tôi đã thêm các pushcờ trong server.conf:

push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"

Khi tôi kết nối từ máy khách, máy khách xuất ra:

Wed May 07 21:38:40 2014 SENT CONTROL [StretchVPN-CA]: 'PUSH_REQUEST' (status=1)
Wed May 07 21:38:41 2014 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1,dhcp-option DNS 8.8.8.8,route-gateway <Remote Router IP>,ping 10,ping-restart 120,ifconfig 192.168.0.201 255.255.255.0'
Wed May 07 21:38:41 2014 OPTIONS IMPORT: timers and/or timeouts modified
Wed May 07 21:38:41 2014 OPTIONS IMPORT: --ifconfig/up options modified
Wed May 07 21:38:41 2014 OPTIONS IMPORT: route options modified
Wed May 07 21:38:41 2014 OPTIONS IMPORT: route-related options modified
Wed May 07 21:38:41 2014 OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
Wed May 07 21:38:41 2014 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Wed May 07 21:38:41 2014 open_tun, tt->ipv6=0
Wed May 07 21:38:41 2014 TAP-WIN32 device [Local Area Connection 4] opened: \\.\Global\{1F145805-92FC-454E-8FD9-0A6017DD4AD1}.tap
Wed May 07 21:38:41 2014 TAP-Windows Driver Version 9.9
Wed May 07 21:38:41 2014 Notified TAP-Windows driver to set a DHCP IP/netmask of 192.168.0.201/255.255.255.0 on interface {1F145805-92FC-454E-8FD9-0A6017DD4AD1} [DHCP-serv: 192.168.0.0, lease-time: 31536000]
Wed May 07 21:38:41 2014 Successful ARP Flush on interface [35] {1F145805-92FC-454E-8FD9-0A6017DD4AD1}
Wed May 07 21:38:46 2014 TEST ROUTES: 1/1 succeeded len=0 ret=1 a=0 u/d=up
Wed May 07 21:38:46 2014 C:\WINDOWS\system32\route.exe ADD <Remote Router IP> MASK 255.255.255.255 172.20.10.1
Wed May 07 21:38:46 2014 ROUTE: CreateIpForwardEntry succeeded with dwForwardMetric1=25 and dwForwardType=4
Wed May 07 21:38:46 2014 Route addition via IPAPI succeeded [adaptive]
Wed May 07 21:38:46 2014 C:\WINDOWS\system32\route.exe ADD 0.0.0.0 MASK 128.0.0.0 192.168.0.3
Wed May 07 21:38:46 2014 ROUTE: CreateIpForwardEntry succeeded with dwForwardMetric1=30 and dwForwardType=4
Wed May 07 21:38:46 2014 Route addition via IPAPI succeeded [adaptive]
Wed May 07 21:38:46 2014 C:\WINDOWS\system32\route.exe ADD 128.0.0.0 MASK 128.0.0.0 192.168.0.3
Wed May 07 21:38:46 2014 ROUTE: CreateIpForwardEntry succeeded with dwForwardMetric1=30 and dwForwardType=4
Wed May 07 21:38:46 2014 Route addition via IPAPI succeeded [adaptive]
Wed May 07 21:38:46 2014 Initialization Sequence Completed

Tôi đã thử sử dụng các cờ ở phía máy khách khi mở kết nối:

openvpn --config "C:\Program Files\OpenVPN\config\client.ovpn" --redirect-gateway def1 --route-method exe

Tuy nhiên, khi tôi truy cập whatsmyip.org, nó vẫn báo ip khách hàng của tôi.

Có ai có vấn đề này và quản lý để giải quyết nó?

Cảm ơn nhiều


Bạn đã thử push "route 0.0.0.0 0.0.0.0"hoặc tương tự để đẩy các tuyến đường? Đừng quên tuyến đường trở lại trong VPN!
Lub

Ừ này được thực hiện autmatically khi đẩy "chuyển hướng-gateway def1" được sử dụng ... Nó cho biết thêm 0.0.0.0 mask 127.0.0.0 và 127.0.0.0 127.0.0.0 mặt nạ (vượt các tuyến đường mặc định mà không xóa cái đã có)
Chỉ cần May mắn thật sự vào

Tôi lo ngại nếu bạn đang chạy ứng dụng khách dưới dạng "Chạy với tư cách quản trị viên" trong windows! Vấn đề này có thể xảy ra nếu bạn chạy OVPN Windows Client mà không có quản trị viên chạy.
Kousha

Câu trả lời:


35

Tôi đã kiểm tra điều này bằng máy chủ OpenVPN và thiết lập tùy chọn redirect-gateway def1 trong cấu hình máy khách và máy chủ hoạt động tốt. Khi tôi truy cập whatismyip.org, tôi thấy IP của máy chủ OpenVPN của mình. Dưới đây là cấu hình máy khách tôi sử dụng:

client
dev tun
proto udp
# THE IP OF THE REMOTE OPENVPN SERVER:
remote ip_address port
resolv-retry infinite
nobind
persist-key
persist-tun
# THE CSR FILE:
pkcs12 certificate.p12
ns-cert-type server
cipher AES-256-CBC
comp-lzo
redirect-gateway def1
verb 3

Tôi cũng đã thử nghiệm với việc thêm tùy chọn redirect-gateway def1 vào lệnh openvpn và đạt được kết quả tương tự. Cấu hình máy chủ là:

port 1194
proto udp
dev tun

dh /etc/openvpn/easy-rsa/keys/dh1024.pem
ca /etc/openvpn/easy-rsa/keys/ca.crt
# ENSURE THE DOMAIN NAME/FILENAME IS CORRECT:
cert /etc/openvpn/easy-rsa/keys/cert.crt
key /etc/openvpn/easy-rsa/keys/cert.key

server 10.5.3.0  255.255.255.0
# YOUR LOCAL SERVER IP HERE:
client-config-dir ccd
route 10.5.3.0 255.255.255.0
ifconfig-pool-persist ipp.txt
cipher AES-256-CBC
comp-lzo
persist-key
persist-tun

status log/openvpn-status.log 5
status-version 2
log-append log/openvpn.log
verb 3  # verbose mode
management localhost port /etc/openvpn/management-password

# ROUTE THE CLIENT'S INTERNET ACCESS THROUGH THIS SERVER:
push "redirect-gateway def1"
push "remote-gateway vpn_server_ip"
push "dhcp-option DNS 8.8.8.8"
keepalive 10 60

Đã thử rằng hôm nay ... Vẫn không có may mắn. Tôi nhận thấy bạn đang sử dụng bộ điều hợp TUN chứ không phải bộ điều hợp TAP ... Tôi sẽ thay thế và báo cáo lại: D
Just Lucky Thực sự

1
Okie, sử dụng bộ điều hợp TUN dường như đang hoạt động ... Mặc dù tôi gặp một chút rắc rối bởi các tuyến đường tôi cần chỉ định ... Tôi đang sử dụng 192.168.1.0/24 cho mạng VPN và 192.168.0.0/ 24 là mạng LAN máy chủ của tôi. Vì vậy, trong cấu hình máy chủ của tôi, tôi đã thêm route 192.168.1.0 255.255.255.0push "route 192.168.0.0 255.255.255.0"nhưng khách hàng của tôi không có quyền truy cập vào bất kỳ mạng con nào khác ngoài mạng 192.168.1.0/24 ... Tôi sẽ tìm hiểu thêm một chút
Chỉ là Lucky Thật sự là

19

Có lẽ bạn đã quên sửa đổi NAT của bạn? Chạy 3 lệnh đó với quyền root

Các lệnh:

iptables -I FORWARD -i tun0 -o eth0 \
         -s 10.8.0.0/24 -m conntrack --ctstate NEW -j ACCEPT

iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED \
         -j ACCEPT

iptables -t nat -I POSTROUTING -o eth0 \
          -s 10.8.0.0/24 -j MASQUERADE

Chú thích:

  • tun0: thẻ mạng VPN ảo của bạn
  • eth0: thẻ mạng bình thường của bạn
  • 10.8.0.0: khối ip mạng VPN của bạn

1
Bước sửa đổi NAT này là rất quan trọng. Tôi chỉ không thể làm việc này mà không thực hiện trên 3 lệnh.
Nitesh Kumar Anand

6
lưu ý rằng các lệnh này cần được chạy trên máy chủ openvpn, không phải máy khách.
Kem Mason

1
Tôi thấy rằng chỉ sửa đổi natbảng cũng hoạt động trên máy chủ của tôi.
Ginhing

1
Chúng ta có cần duy trì các quy tắc iptables trong trường hợp máy chủ openVPN được khởi động lại không?
DWils

@DWils Có, bạn cần đưa chúng vào một số tập lệnh khởi động. Kiểm tra Q & A này: askubfox.com/questions/270693/ từ
Arne

1

Sau khi tìm kiếm câu trả lời, có vẻ như tôi đã giải quyết được điều này, có thể một phần, nhưng ít nhất là rất đơn giản:

Tôi sử dụng gói Xubfox 14.04 và OpenVPN từ nguồn chính. Trong Cài đặt> Hệ thống> Mạng , tôi đã thay thế địa chỉ DNS được cài đặt sẵn 127.0.1.1bằng Google 8.8.8.8và bây giờ tôi có thể thấy tất cả lưu lượng truy cập đi qua máy chủ VPN.

Trong bảng của Wireshark, chuỗi như DNS vắng mặt: tất cả dữ liệu giống như TCP thông qua kênh được mã hóa. Tôi có thể thấy lưu lượng DHCP và DNS khi tôi nhìn vào tun0(nội bộ của máy tính xách tay). Khi tôi khám phá wlan0lưu lượng truy cập (bên ngoài giữa máy tính xách tay và bộ định tuyến WiFi) tôi chỉ nhận được các gói TCP màu xám.

Tôi nghĩ điều đó xảy ra vì truy vấn DNS không cần thiết trong giải mã ký tự thành số và nó đi theo luồng chung như gói dữ liệu thông thường.

Tôi sẽ rất vui khi biết những cân nhắc của bạn, sẽ không ngạc nhiên nếu tôi hoàn toàn sai


Tôi quên mất: phương pháp này có một ưu điểm không thể chối cãi - nó hoạt động ngay cả khi máy chủ VPN không hỗ trợ định tuyến lại DNS.
xrobot

Nhân tiện, chúng tôi có thể thực hiện một mẹo: nếu thỉnh thoảng chúng tôi sẽ gửi các truy vấn DNS vô tội có thể nhìn thấy sai, gián tiếp đó có thể là sự xác nhận về lòng trung thành của chúng tôi với Big Brother.
xrobot

1

Thêm chỉ thị sau vào tệp cấu hình máy chủ:

push "redirect-gateway def1"

Nếu thiết lập VPN của bạn qua mạng không dây, nơi tất cả máy khách và máy chủ nằm trên cùng một mạng con không dây, hãy thêm cờ cục bộ:

push "redirect-gateway local def1"

Việc đẩy tùy chọn cổng chuyển hướng đến máy khách sẽ khiến tất cả lưu lượng truy cập mạng IP bắt nguồn từ các máy khách đi qua máy chủ OpenVPN. Máy chủ sẽ cần phải được cấu hình để xử lý lưu lượng này bằng cách nào đó, chẳng hạn như bằng cách NAT nó với internet hoặc định tuyến thông qua proxy HTTP của trang web máy chủ.

Trên Linux, bạn có thể sử dụng một lệnh như thế này để NAT lưu lượng máy khách VPN tới internet:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Lệnh này giả định rằng mạng con VPN là 10.8.0.0/24 (được lấy từ chỉ thị của máy chủ trong cấu hình máy chủ OpenVPN) và giao diện ethernet cục bộ là eth0.

Khi cổng chuyển hướng được sử dụng, các máy khách OpenVPN sẽ định tuyến các truy vấn DNS thông qua VPN và máy chủ VPN sẽ cần xử lý chúng. Điều này có thể được thực hiện bằng cách đẩy một địa chỉ máy chủ DNS để kết nối các máy khách sẽ thay thế các cài đặt máy chủ DNS thông thường của chúng trong thời gian VPN hoạt động. Ví dụ:

push "dhcp-option DNS 10.8.0.1"

sẽ định cấu hình máy khách Windows (hoặc máy khách không chạy Windows có thêm một số kịch bản phía máy khách) để sử dụng 10.8.0.1 làm máy chủ DNS của chúng. Bất kỳ địa chỉ nào có thể truy cập từ máy khách đều có thể được sử dụng làm địa chỉ máy chủ DNS.


0

Nếu ứng dụng khách OpenVPN của bạn trên Windows 10 (hoặc tương tự), có một vấn đề khác cần chú ý, đó là thứ tự ràng buộc của các NIC. Các cài đặt máy chủ DNS hiện có trên bộ điều hợp LAN hoặc Wifi có thể ưu tiên hơn các cài đặt máy chủ DNS cho giao diện đường hầm, do đó, mặc dù mọi thứ được thiết lập hoàn toàn theo quan điểm OpenVPN, Windows vẫn tiếp tục sử dụng máy chủ DNS gốc.

Bạn có thể sửa lỗi này như được mô tả trong bài đăng trên diễn đàn Microsoft này.

https://social.technet.microsoft.com/Forums/windowsserver/en-US/1cc5b647-6e51-482b-8998-ac5c3900938c/how-to-force-vpn-clents-to-use-the-dnsserver-from- them-vpn-adapter-not-the-dnsserver-from-them? forum = wonerverNIS


không phải là một câu trả lời cho câu hỏi
pim

0

Tôi gặp phải vấn đề tương tự và phát hiện ra khi sử dụng tập lệnh thiết lập PiVPN cho Open VPN, cấu hình máy chủ chứa dòng:

đẩy "redirect-gateway def1 bypass-dhcp"

đã Trên máy khách IOS, mọi thứ được tự động chuyển qua đường hầm (đó là những gì nhật ký nói).

Trên máy khách Tunnelblick, bạn cần thêm dòng này vào máy khách. Truy cập dòng:

redirect-gateway def1 bypass-dhcp

và nó sẽ hoạt động hoàn hảo. Ít nhất nó đã làm trên máy Mac của tôi.

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.