OpenVPN không phải là cổng mặc định cho tất cả lưu lượng


21

Tôi đang cố gắng làm cho khách hàng của mình chuyển tiếp tất cả lưu lượng truy cập thông qua VPS chạy OpenVPN. Như bạn có thể thấy, nó sẽ cho phép ping đến cả tên miền và địa chỉ IP thô, nhưng nó sẽ không cho phép lưu lượng truy cập được thực hiện thông qua curl và traceroute không xuất hiện bất cứ điều gì. Lưu lượng truy cập hoạt động chính xác khi không được kết nối với VPN.

Tất cả thông tin có tại đây: https://pastebin.com/tGspNefn

Cảm ơn bạn.

Cấu hình hoạt động nhờ giải pháp bên dưới:

Máy chủ:

port <integer>
proto udp
dev tun
ca ca.crt
cert vpnserver.crt
key vpnserver.key  # This file should be kept secret
dh dh4096.pem
tls-auth ta.key 0
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway autolocal"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
keepalive 10 120
cipher AES-256-CBC
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3

Khách hàng:

client
dev tun
proto udp
remote x.x.x.x <port number>
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert vpnclient.crt
key vpnclient.key
tls-auth ta.key 1
ns-cert-type server
cipher AES-256-CBC
comp-lzo
verb 3

/sbin/route add -net 0.0.0.0 netmask 128.0.0.0 gw 10.8.0.5 Tại sao netmask 128.0.0.0?
Antony Gibbs

Cảm ơn DrDinosaur đã chỉ ra serverfault.com/questions/312860/ từ
Antony Gibbs

3
Lần sau trích xuất thông tin liên quan và đưa nó vào câu hỏi. Đoạn trích pastebin có một cuộc đời hạn chế.
MLu

Câu trả lời:


34

Có hai phần trong giải pháp:

1. Chuyển hướng tất cả lưu lượng truy cập vào đường hầm

Giải pháp đơn giản nhất - sử dụng --redirect-gateway autolocaltùy chọn của OpenVPN (hoặc đặt nó trong tệp cấu hình dưới dạng redirect-gateway autolocal.

2. Xử lý lưu lượng trên máy chủ OpenVPN

Bây giờ, đường hầm đã lên, tất cả lưu lượng truy cập vào đường hầm và bật lên ở cuối máy chủ từ tun0giao diện.

Bạn cần cấu hình hai thứ để làm cho nó hoạt động:

a. Cho phép chuyển tiếp gói

Theo mặc định trong hầu hết các bản phân phối, chuyển tiếp gói bị vô hiệu hóa, do đó các gói từ giao diện đường hầm không bao giờ chuyển sang giao diện chung. Bạn phải bật chuyển tiếp với:

~ # sysctl net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1

Sau khi thử nghiệm, thay đổi vĩnh viễn trong /etc/sysctl.conf

Ngoài ra, hãy đảm bảo rằng iptableskhông chặn lưu lượng chuyển tiếp:

~ # iptables -I FORWARD -j ACCEPT

Điều này đủ tốt để thử nghiệm - trong sản xuất, bạn sẽ muốn làm cho các quy tắc tường lửa cụ thể hơn một chút, nhưng điều đó nằm ngoài phạm vi ở đây.

b. NAT các gói đi từ đường hầm

Với việc chuyển tiếp được kích hoạt, các gói theo mặc định được chuyển tiếp với địa chỉ nguồn của chúng không thay đổi, đó là trong trường hợp của bạn 10.8.0.6- các gói đó bị bỏ trên cổng ISP hoặc ngay cả khi chúng đến đích mà câu trả lời không bao giờ tìm được đường về. Những địa chỉ riêng này không thể định tuyến trên internet.

Giải pháp là NAT lưu lượng truy cập đi ra, tức là thay thế 10.8.0.6địa chỉ riêng bằng IP công cộng của máy chủ VPN. Điều đó sẽ đảm bảo rằng các phản hồi đến máy chủ VPN và ở đó chúng sẽ được chuyển tiếp trở lại vào đường hầm.

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

3. Kiểm tra nó

Bây giờ hãy thử ping 8.8.4.4từ máy khách VPN của bạn. Bạn sẽ thấy một câu trả lời. Hãy cho chúng tôi biết nếu không :)


Điều này hoạt động hoàn hảo bây giờ. Rất cám ơn cho câu trả lời chất lượng cao.
DrDinosaur

Về phía máy khách, thêm add pull vào tệp client.conf hoặc thêm tùy chọn --pull vào dòng lệnh, để máy khách chấp nhận cấu hình được đẩy bởi máy chủ. Ngoài ra, nếu máy khách chạy trong Windows Vista hoặc mới hơn vô hiệu hóa UAC, nếu không, dịch vụ openpn chạy trên máy khách sẽ không thể đặt tuyến.
Viktor

> b. NAT các gói đi từ đường hầm Điều đó hữu ích cho tôi.
FelikZ

Thực sự tính đến việc quy tắc FORWARD -j ACCEPT làm cho Máy chủ trở thành một bộ định tuyến mở giữa tất cả các giao diện của nó. Nó không được sử dụng trên các hệ thống sản xuất. Nhưng đối với một HowTo làm cho nó cơ bản hoạt động nhanh chóng một bộ hướng dẫn rất tốt.
Sprinterfreak

Có phải Redirect all the traffic into the tunnelbước trong cấu hình máy khách?
máy bay
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.