PI як маршрутизатор VPN для локальних машин


18

Я хотів би дозволити пару моїх машин отримати доступ до Інтернету через VPN-з'єднання. Моя ідея полягає в тому, що PI може просто набрати в установленому з'єднанні, а потім прокласти маршрутні запити від інших машин через нього.

Я думаю, що встановити маршрутизатор пристрою за замовчуванням на IP-адресу ІП.

Хоча ви якось переживали конфігурацію командного рядка безлічі речей, чи не могли б ви вказати мені вказівки щодо того, які пакунки / послуги мені потрібні?

Короткий зміст налаштування:

  • PI підключення до Інтернету безпосередньо через роутер за замовчуванням
  • PI створює VPN-з'єднання (OpenVPN) і прослуховує його локальний інтерфейс для трафіку
  • PI відновлює з'єднання при відмов
  • для інших мережевих пристроїв шлюз за замовчуванням встановлений на IP-адресу PI, і весь їхній трафік проходить через VPN, за умови, що він працює (і немає підключення до Інтернету, якщо VPN не працює).

Мені не потрібні послуги NAT або DHCP (DNS також може пройти через VPN).


у чому справа? якщо ви використовуєте Pi у вашій локальній мережі для створення вихідного з'єднання, чому б не використовувати інші комп’ютери для створення подібного вихідного з'єднання безпосередньо, заощаджуючи витрати Pi та головний біль на встановлення та налаштування програмного забезпечення? звичайна установка VPN - це комп'ютер у вашій локальній мережі, який слухає вхідні з'єднання та перевіряє паролі, а потім дозволяє віддаленому комп'ютеру безпосередньо використовувати вашу локальну мережу, а не навпаки.
lenik

1
@lenik в тому, що у мене є безліч машин, які використовують одне і те ж VPN-з'єднання. Крім того, налаштувати одну машину набагато простіше, ніж продовжувати змінювати конфігурацію декількох машин, забезпечуючи їх повторний набір і т.д.
Петро

1
Не кажучи вже про те, що використання іншого пристрою для маршрутизації робить завданням забезпечити, щоб ВСІ трафік проходив через VPN набагато простіше
Петро,

3
Деякі пристрої також не можуть підключитися до VPN. Ці пристрої включають багато ігрових консолей та інших пристроїв, які не мають стандартних операційних систем, які можна легко налаштувати для підключення до VPN.
Кіббі

@lenik Ця настройка є звичайною у мережевому обладнанні обладнання. Він вбудований в маршрутизатори, починаючи від $ 300 вгору. ОП шукає рішення приблизно на десяту ціну ... як і я
Філіп Кулінг

Відповіді:


15

У мене таке ж налаштування, як і ви:

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

По-перше, я змінив свої мережеві настройки ( /etc/network/interfaces) на RPi на статичну адресу

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

Після цього потрібно встановити OpenVPN на RPi:

sudo apt-get install openvpn

Далі потрібно встановити конфігураційний файл для vpn /etc/openvpn/server.conf. Я використав зразок, наданий моєю службою vpn (Witopia), і змінив dev tunна dev tun0та додав redirect-gatewayнаприкінці.

Наступним кроком змініть iptables, щоб дозволити NAT

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

Щоб зробити його постійним, збережіть його таким чином

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

Додайте це до нового файлу:

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

Збережіть і зробіть його виконуваним за допомогою chmod +x /etc/network/if-pre-up.d/iptables. Тепер вам потрібно ввімкнути переадресацію IP, редагуючи /etc/sysctl.confта коментуючи рядокnet.ipv4.ip_forward = 1

Перезавантаження та RPi повинні бути підключені до вашої VPN і бути готовими до отримання вхідного трафіку. Я додав нову опцію в службу dhcp на своєму маршрутизаторі (під керуванням OpenWrt), щоб вказати шлюз, надісланий клієнту. Я додав рядок list 'dhcp_option' '3,192.168.1.11'у файл /etc/config/dhcpі перезавантажив маршрутизатор. Мій iPad, ПК та AppleTV зараз підключаються через RPi для доступу до зовнішніх URL-адрес.

Джерела:


1
Я щойно закінчив налаштування подібної конфігурації минулих вихідних. Я також повинен був додати "net.ipv4.tcp_ecn = 0" у файл /etc/sysctl.conf. Не впевнений, що це робить, але без нього шлюз не працював би належним чином.
Кіббі

Це працювало для мене з однією модифікацією: правило NAT повинно бутиiptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
Реган Уолш,


0

Спробуйте

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

Raspbian повинен бути достатньо близьким до Ubuntu, щоб налаштування була однаковою, і я щойно перевірив, чи доступний пакет OpenVPN в репо-програмі Raspbian.

Однак зауважте, що більшість інструкцій VPN розповість вам про те, як створити сервер для відкриття вашої локальної мережі для клієнтів VPN в Інтернеті, а не навпаки, тому вам може знадобитися трохи експериментувати з налаштуваннями маршрутизації.


Дякую, цей біт я розумію трохи краще - в чому я не впевнений, як змусити PI прослуховувати з'єднання та переслати їх через VPN?
Петро

1
@petr Вам просто потрібно запустити sysctl -w net.ipv4.ip_forward = 1, і інші ваші машини використовуватимуть RPI як шлюз за замовчуванням, і RPI буде щасливо маршрутом.
нос

0

Не знаю, чи це корисно, але я використовую VPN на Raspberry Pi від постачальника vpn, коли їду з-за США до Китаю , у них є сценарій dd-wrt, який я встановив, і він працював з першого разу. Тож, можливо, ви зможете заощадити собі багато клопотів, якщо шукаєте постачальника з уже виготовленим сценарієм dd-wrt. Якщо комусь цікаво сценарій, я можу розмістити його тут.



0

Ось моя установка, яка дуже схожа на вашу потребу; єдине, що вам потрібно, встановити OpenVPN клієнт і зробити деякі конфігурації на Raspbian. введіть тут опис зображення

Я описав це у своєму блозі; Налаштування шлюзу VPN із Raspberry PI


Привіт і ласкаво просимо! Зараз я не думаю, що питання "чи не могли б ви вказати мені на вказівки щодо того, які пакунки / послуги мені потрібні? розглянуто у відповіді. Не могли б ви детальніше розробити трохи більше, не вимагаючи від людей переходу за посиланням (що насправді знову лише цифра)?
Ghanima

@Ghanima, дякую за ваш коментар Я змінив свою відповідь.
afelaho
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.