PI là bộ định tuyến VPN cho các máy cục bộ


18

Tôi muốn cho phép một vài máy của tôi truy cập internet thông qua kết nối VPN. Ý tưởng của tôi là PI có thể chỉ cần quay số trong một thiết lập kết nối và sau đó định tuyến các yêu cầu từ các máy khác thông qua nó.

Tôi nghĩ rằng việc thiết lập một bộ định tuyến mặc định của thiết bị thành IP của PI.

Trong khi bằng cách nào đó có kinh nghiệm với cấu hình dòng lệnh của vô số thứ, bạn có thể vui lòng chỉ cho tôi chỉ đường về những gói / dịch vụ tôi cần không?

Tóm tắt thiết lập:

  • PI kết nối trực tiếp với internet thông qua bộ định tuyến mặc định
  • PI tạo kết nối VPN (OpenVPN) và lắng nghe trên giao diện cục bộ của nó để lưu lượng truy cập
  • PI thiết lập lại kết nối về những thất bại
  • các thiết bị mạng khác có cổng mặc định được đặt thành IP của PI và tất cả lưu lượng truy cập của chúng đều đi qua VPN, miễn là nó hoạt động (và không có kết nối internet nếu VPN bị hỏng).

Tôi không cần dịch vụ NAT hoặc DHCP (DNS cũng có thể đi qua VPN).


vấn đề ở đây là gì? Nếu bạn sử dụng Pi trên mạng cục bộ của mình để tạo kết nối ra ngoài, tại sao bạn không sử dụng các máy tính khác của mình để tạo kết nối ra ngoài tương tự trực tiếp, tiết kiệm chi phí cho Pi và đau đầu cho việc cài đặt và cài đặt phần mềm? thiết lập VPN thông thường là máy tính trên mạng cục bộ của bạn, lắng nghe các kết nối gửi đến và kiểm tra mật khẩu, sau đó cho phép máy tính từ xa sử dụng trực tiếp mạng cục bộ của bạn chứ không phải ngược lại.
lenik

1
@lenik quan điểm là tôi có vô số máy đang sử dụng cùng một kết nối VPN. Ngoài ra, việc cấu hình một máy đơn giản hơn nhiều so với việc thay đổi cấu hình nhiều máy để đảm bảo chúng quay số, v.v. Và bạn đã đúng - đó không phải là một thiết lập tiêu chuẩn, nếu có, tôi có thể sẽ tìm hướng dẫn và không được hỏi
petr

1
Chưa kể rằng việc sử dụng một thiết bị khác để thực hiện định tuyến giúp cho việc đảm bảo TẤT CẢ lưu lượng truy cập qua VPN đơn giản hơn nhiều
petr

3
Một số thiết bị cũng không có khả năng kết nối với VPN. Các thiết bị này bao gồm nhiều máy chơi game và các thiết bị khác không chạy các hệ điều hành tiêu chuẩn có thể dễ dàng được cấu hình để kết nối với VPN.
Kibbee

@lenik Thiết lập này là phổ biến trong thiết bị mạng cấp doanh nghiệp. Nó được xây dựng trong các bộ định tuyến bắt đầu từ khoảng $ 300 trở lên. OP đang tìm kiếm một giải pháp cho khoảng 10 giá ... như tôi
Philip Couling

Câu trả lời:


15

Tôi có cùng thiết lập với bạn:

Cable modem -> Router (192.168.1.1) +-> Raspberry Pi (192.168.1.11)
                                    |-> iPad (DHCP)
                                    |-> PC (DHCP)
                                    `-> AppleTV (DHCP)

Đầu tiên, tôi đã thay đổi cài đặt mạng ( /etc/network/interfaces) trên RPi thành địa chỉ tĩnh

iface eth0 inet static
address 192.168.1.11
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1

Sau đó, bạn cần thiết lập OpenVPN trên RPi:

sudo apt-get install openvpn

Tiếp theo, bạn phải đặt tệp cấu hình cho vpn /etc/openvpn/server.conf. Tôi đã sử dụng các mẫu được cung cấp bởi dịch vụ VPN của tôi (Witopia) và thay đổi dev tunđể dev tun0và thêm redirect-gatewayvào cuối.

Bước tiếp theo, sửa đổi iptables để cho phép NAT

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Để làm cho nó vĩnh viễn, lưu nó như thế này

sudo bash
iptables-save > /etc/iptables.up.rules
nano /etc/network/if-pre-up.d/iptables

Thêm phần này vào tập tin mới:

#!/bin/bash
/sbin/iptables-restore < /etc/iptables.up.rules

Lưu và làm cho nó thực thi với chmod +x /etc/network/if-pre-up.d/iptables. Bây giờ bạn cần kích hoạt chuyển tiếp IP bằng cách chỉnh sửa /etc/sysctl.confvà bỏ ghi chú dòngnet.ipv4.ip_forward = 1

Khởi động lại và RPi sẽ được kết nối với VPN của bạn và sẵn sàng nhận lưu lượng đến. Tôi đã thêm một tùy chọn mới cho dịch vụ dhcp của mình trên bộ định tuyến (chạy OpenWrt) để chỉ định cổng được gửi đến máy khách. Tôi đã thêm dòng list 'dhcp_option' '3,192.168.1.11'vào tập tin /etc/config/dhcpvà khởi động lại bộ định tuyến. IPad, PC và AppleTV của tôi hiện kết nối thông qua RPi để truy cập các url bên ngoài.

Nguồn:


1
Tôi vừa hoàn thành việc thiết lập một cấu hình tương tự vào cuối tuần trước. Tôi cũng đã phải thêm "net.ipv4.tcp_ecn = 0" vào tệp /etc/sysctl.conf. Không chắc chắn những gì nó làm, nhưng cổng sẽ không hoạt động đúng nếu không có nó.
Kibbee

Điều này hiệu quả với tôi, với một sửa đổi: quy tắc NAT phải làiptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
Regan Walsh


0

Thử

https://help.ubuntu.com/community/OpenVPN

Raspbian phải đủ gần với Ubuntu để thiết lập giống nhau và tôi vừa kiểm tra xem gói OpenVPN có sẵn trong repo Raspbian không.

Tuy nhiên, lưu ý rằng hầu hết các hướng dẫn VPN sẽ cho bạn biết cách tạo máy chủ để mở mạng LAN cho máy khách VPN trên internet thay vì ngược lại, vì vậy bạn có thể cần thử nghiệm một chút với cài đặt định tuyến.


Cảm ơn, chút đó tôi hiểu rõ hơn một chút - điều tôi không chắc chắn là làm thế nào để PI lắng nghe các kết nối và chuyển tiếp chúng qua VPN?
petr

1
@petr Bạn chỉ cần chạy sysctl -w net.ipv4.ip_forward = 1 và các máy khác của bạn sử dụng RPI làm cổng mặc định và RPI sẽ vui vẻ định tuyến.
số

0

Không biết điều này có hữu ích không, nhưng tôi đang sử dụng VPN trên Raspberry Pi từ nhà cung cấp vpn khi tôi đi từ Hoa Kỳ đến Trung Quốc , họ có một tập lệnh dd-wrt mà tôi đã cài đặt và lần đầu tiên nó hoạt động. Vì vậy, có thể bạn có thể tự cứu mình rất nhiều rắc rối nếu bạn tìm kiếm một nhà cung cấp với tập lệnh dd-wrt đã được tạo. Nếu ai đó tò mò về kịch bản tôi có thể đăng nó ở đây.



0

Đây là thiết lập của tôi rất giống với nhu cầu của bạn; điều duy nhất bạn cần, cài đặt ứng dụng khách OpenVPN và thực hiện một số cấu hình trên Raspbian. nhập mô tả hình ảnh ở đây

Tôi đã mô tả nó trong blog của tôi; Thiết lập Cổng VPN với Raspberry PI


Xin chào và chào mừng! Ngay bây giờ tôi không nghĩ rằng câu hỏi "bạn có thể vui lòng chỉ cho tôi chỉ đường về những gói / dịch vụ tôi cần không? Bạn có thể vui lòng chỉ cho tôi chỉ dẫn về những gói / dịch vụ tôi cần không?" được giải quyết trong câu trả lời. Bạn có thể vui lòng giải thích thêm một chút mà không yêu cầu mọi người theo liên kết (mà thực tế chỉ là con số một lần nữa)?
Ghanima

@Ghanima, cảm ơn bình luận của bạn. Tôi đã thay đổi trả lời của tôi.
afelaho
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.