Anonim

Навіщо використовувати VPN для доступу до свого будинку

Швидкі посилання

  • Навіщо використовувати VPN для доступу до свого будинку
  • Налаштування Pi
    • Встановити Raspbian
  • Налаштування OpenVPN
    • Орган сертифікації
    • Зробіть кілька ключів
    • Конфігурація сервера
    • Запустіть сервер
  • Налаштування клієнта
    • Конфігурація клієнта
  • Переадресація порту
  • Підключення до клієнта
  • Заключні думки

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

А Малина Пі - це прекрасний спосіб досягти цього. Їм не потрібно багато енергії для запуску, і вони мають достатню потужність для запуску VPN-сервера. Ви можете встановити його поруч із маршрутизатором і взагалі забути про нього.

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

Налаштування Pi

Перш ніж почати налаштування VPN, вам потрібно буде встановити Raspberry Pi. Найкраще налаштувати Pi за допомогою корпусу та картки пам'яті пристойного розміру, 16 ГБ повинно бути більш ніж достатньо. Якщо можливо, підключіть свій Pi до маршрутизатора за допомогою кабелю Ethernet. Це зведе до мінімуму будь-які затримки в мережі.

Встановити Raspbian

Найкраща операційна система для використання на Pi - це Raspbian. Це вибір за замовчуванням, встановлений фондом Raspberry Pi, і заснований на Debian, одній з найбільш захищених і стабільних версій Linux, доступних.

Перейдіть на сторінку завантаження програми Rasbian і перейдіть на останню версію. Тут ви можете скористатись версією Lite, оскільки графічний робочий стіл вам фактично не потрібен.

Під час завантаження знайдіть останню версію Etcher для вашої операційної системи. Після завершення завантаження витягніть зображення Raspbian. Потім відкрийте Etcher. Виберіть зображення Raspbian, звідки ви його витягли. Виберіть SD-карту (Вставте її спочатку). Нарешті, запишіть зображення на карту.

Залиште SD-карту на своєму комп’ютері, коли це буде зроблено. Відкрийте менеджер файлів та перейдіть до картки. Ви повинні побачити пару різних розділів. Шукайте розділ "boot". Це один із файлом «kernel.img». Створіть порожній текстовий файл на розділі "boot" і назвіть його "ssh" без розширення файлу.

Ви можете нарешті підключити Pi. Переконайтеся, що ви підключили його останнім часом. Вам не знадобиться екран, клавіатура чи миша. Ви збираєтесь віддалено отримувати доступ до Raspberry Pi через вашу мережу.

Дайте Пі кілька хвилин, щоб налаштувати себе. Потім відкрийте веб-браузер і перейдіть до екрана управління маршрутизатором. Знайдіть Raspberry Pi і зазначте його IP-адресу.

Незалежно від того, чи працюєте ви в Windows, Linux або Mac, відкрийте OpenSSH. Підключіться до Raspberry Pi за допомогою SSH.

$ ssh

Очевидно, використовуйте фактичну IP-адресу Pi. Ім'я користувача завжди пі, а пароль - малиновий.

Налаштування OpenVPN

Налаштувати OpenVPN не просто так, як налаштувати сервер. Хороша новина - вам потрібно це зробити лише один раз. Тому перед тим, як викопатися, переконайтеся, що Raspbian повністю оновлений.

$ sudo apt оновлення $ sudo apt оновлення

Після завершення оновлення ви можете встановити OpenVPN та утиліту сертифікатів, яка вам потрібна.

$ sudo apt встановити openvpn easy-rsa

Орган сертифікації

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

Спочатку створіть каталог для ваших сертифікатів. Перейдіть до цього каталогу.

$ sudo make-cadir / etc / openvpn / certs $ cd / etc / openvpn / certs

Огляньте файли конфігурації OpenSSL. Потім зв’яжіть найновіший з openssl.cnf.

$ ls | grep -i openssl $ sudo ln -s openssl-1.0.0.cnf openssl.cnf

У цій самій папці "certs" є файл під назвою "vars". Відкрийте цей файл у своєму текстовому редакторі. Nano - це типовий засіб, але сміливо встановлюйте Vim, якщо вам це зручніше.

Знайдіть спочатку змінну KEY_SIZE. За замовчуванням встановлено 2048 Змініть його на 4096.

експорт KEY_SIZE = 4096

Основний блок, з яким потрібно мати справу, встановлює інформацію про ваш сертифікатний орган. Це допомагає, якщо ця інформація точна, але все, що ви можете пам’ятати - це добре.

export KEY_COUNTRY = "US" експорт KEY_PROVINCE = "CA" експорт KEY_CITY = "SanFrancisco" export KEY_ORG = "Fort-Funston" export KEY_EMAIL = "" export KEY_OU = "MyOrganizationalUnit" export KEY_NAME = "ГоловнаVPN

Коли у вас є все, збережіть і вийдіть.

Цей пакет Easy-RSA, який ви встановили раніше, містить безліч скриптів, які допомагають налаштувати все, що вам потрібно. Вам просто потрібно запустити їх. Почніть з додавання файла "vars" як джерела. Це завантажить усі змінні, які ви тільки що встановили.

$ sudo джерело ./vars

Далі почистіть ключі. У вас немає жодного, тому не переживайте за повідомлення про те, що ваші ключі будуть видалені.

$ sudo ./clean-install

Нарешті, створіть свій сертифікат. Ви вже встановили значення за замовчуванням, тож ви можете просто прийняти типові параметри, які він відображає. Не забудьте встановити надійний пароль і відповісти «так» на останні два запитання, дотримуючись пароля.

$ sudo ./build-ca

Зробіть кілька ключів

Ви пережили всю цю проблему, щоб налаштувати сертифікат, щоб ви могли підписувати ключі. Тепер саме час зробити щось. Почніть зі створення ключа для вашого сервера.

$ sudo ./build-key-server сервер

Далі побудуйте PEM Diffie-Hellman. Це те, що OpenVPN використовує для забезпечення підключення клієнта до сервера.

$ sudo openssl dhparam 4096> /etc/openvpn/dh4096.pem

Останній ключ, який вам зараз потрібен, називається ключем HMAC. OpenVPN використовує цей ключ для підписання кожного окремого пакету інформації, що обмінюється між клієнтом і сервером. Це допомагає запобігти деяким видам атак на з'єднання.

$ sudo openvpn --genkey --secret /etc/openvpn/certs/keys/ta.key

Конфігурація сервера

У вас є ключі. Наступним елементом налаштування OpenVPN є сама конфігурація сервера. На щастя, тут не все так багато, що потрібно зробити. Debian пропонує базову конфігурацію, яку ви можете використовувати для початку роботи. Отже, почніть з отримання цього конфігураційного файла.

$ sudo gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz> /etc/openvpn/server.conf

Використовуйте текстовий редактор знову, щоб відкрити /etc/openvpn/server.conf. Перші, що вам потрібно знайти, це файли ca, cert та key. Вам потрібно встановити їх, щоб вони відповідали фактичному розташуванню створених вами файлів, які знаходяться у / etc / openvpn / certs / keys.

ca /etc/openvpn/certs/keys/ca.crt cert /etc/openvpn/certs/keys/server.crt ключ /etc/openvpn/certs/keys/server.key # Цей файл слід зберігати в таємниці

Знайдіть налаштування dh та змініть його відповідно до створеної вами Diffie-Hellman .pem.

dh dh4096.pem

Встановіть шлях і для вашого ключа HMAC.

tls-auth /etc/openvpn/certs/keys/ta.key 0

Знайдіть шифр і переконайтесь, що він відповідає наведеному нижче прикладу.

шифр AES-256-CBC

Наступна пара варіантів є, але вони коментуються за допомогою;. Видаліть крапки з комою перед кожною опцією, щоб увімкнути їх.

push "перенаправлення-шлюз def1 bypass-dhcp" push "dhcp-опція DNS 208.67.222.222" push "dhcp-опція DNS 208.67.220.220"

Шукайте параметри користувача та групи. Відключіть їх і змініть користувача на "openvpn".

користувач openvpn група ноггруп

Нарешті, останні два рядки не знаходяться в конфігурації за замовчуванням. Вам потрібно буде додати їх у кінці файлу.

Встановіть дайджест аутентифікації, щоб вказати більш сильне шифрування для автентифікації користувача.

# Дайджест аутентифікації auth SHA512

Потім обмежте ципери, якими OpenVPN може скористатися лише сильнішими. Це допомагає обмежити можливі атаки на слабкі шифри.

# Обмеження шифрів tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384: TLS-DHE-RSA-WITH-AES-128-GCM-SHA256: TLS-DHE-RSA-WITH-AES-256- CBC-SHA: TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA: TLS-DHE-RSA-WITH-AES-128-CBC-SHA: TLS-DHE-RSA-WITH-CAMELLIA-128-CBC- SHA

Це все для конфігурації. Збережіть файл та вийдіть.

Запустіть сервер

Перш ніж ви зможете запустити сервер, вам потрібно зробити того, хто ви вказали, openvpn користувача.

$ sudo adduser --system --shell / usr / sbin / nologin --no-create-home openvpn

Це спеціальний користувач лише для запуску OpenVPN, і він більше нічого не робитиме.

Тепер запустіть сервер.

$ sudo systemctl start openvpn $ sudo systemctl start

Перевірте, чи обидва вони працюють

$ sudo systemctl статус openvpn * .service

Якщо все виглядає добре, включіть їх при запуску.

$ sudo systemctl enable openvpn $ sudo systemctl enable

Налаштування клієнта

Ваш сервер зараз налаштований і працює. Далі потрібно налаштувати конфігурацію клієнта. Це конфігурація, яку ви використовуєте для підключення пристроїв до вашого сервера. Поверніться до папки certs та підготуйтеся до складання клієнтських ключів. Можна вибрати окремі ключі для кожного клієнта або один ключ для всіх клієнтів. Для домашнього використання один ключ повинен бути добре.

$ cd / etc / openvpn / certs $ sudo source ./vars $ sudo ./build-key client

Процес майже ідентичний серверному, тому виконайте ту саму процедуру.

Конфігурація клієнта

Конфігурація для клієнтів дуже схожа на конфігурацію для сервера. Знову ж таки, у вас є готовий шаблон, на якому базується ваша конфігурація. Вам потрібно лише змінити його, щоб відповідати серверу.

Перейдіть до каталогу клієнтів. Потім розпакуйте зразок конфігурації.

$ cd / etc / openvpn / client $ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/client/client.ovpn

Відкрийте файл client.ovpn у своєму текстовому редакторі. Потім знайдіть віддалений варіант. Якщо припустити, що ви вже не використовуєте VPN, Google пошукає "Що таке моя IP-адреса". Візьміть адресу, яку він відображає, і встановіть їй віддалену IP-адресу. Залиште номер порту.

віддалений 107.150.28.83 1194 # Цей IP іронічно - це VPN

Змініть серти, щоб вони відображали створені вами файли, як ви робили з сервером.

ca ca.crt cert client.crt ключ client.key

Знайдіть користувацькі параметри та скаментуйте їх. Добре керувати клієнтами як ніхто.

користувач ніхто не групує ноги

Відмініть коментар tls-auth для HMAC.

tls-auth ta.key 1

Далі шукайте параметр шифру і переконайтеся, що він відповідає серверу.

шифр AES-256-CBC

Потім просто додайте дайджест дайджесту аутентифікації та обмеження шифрування внизу файлу.

# Дайджест аутентифікації auth SHA512 # Обмеження шифрів tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384: TLS-DHE-RSA-WITH-AES-128-GCM-SHA256: TLS-DHE-RSA-WITH -AES-256-CBC-SHA: TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA: TLS-DHE-RSA-WITH-AES-128-CBC-SHA: TLS-DHE-RSA-WITH-CAMELLIA -128-CBC-SHA

Коли все виглядає правильно, збережіть файл та вийдіть. Використовуйте tar для того, щоб запакувати конфігурацію та серти, щоб ви могли надіслати їх клієнту.

$ sudo tar cJf /etc/openvpn/clients/client.tar.xz -C / тощо / openvpn / certs / ключі ca.crt client.crt client.key ta.key -C /etc/openvpn/clients/client.ovpn

Передайте цей пакет клієнтові, що завгодно. SFTP, FTP і USB-накопичувач - це чудові варіанти.

Переадресація порту

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

Підключіться до веб-інтерфейсу вашого маршрутизатора, ввівши його IP-адресу у своєму браузері.

У кожного маршрутизатора різне. Навіть все-таки всі вони повинні мати певну форму цього функціоналу. Знайдіть його на маршрутизаторі.

В основному налаштування однакові на кожному маршрутизаторі. Введіть початковий і кінцевий порти. Вони повинні бути однаковими між собою та тією, яку ви встановили у своїх конфігураціях. Потім для IP-адреси встановіть це на IP-адресу вашого Raspberry Pi. Збережіть свої зміни.

Підключення до клієнта

Кожен клієнт відрізняється, тому універсального рішення не існує. Якщо ви працюєте в Windows, вам знадобиться клієнт Windows OpenVPN .

На Android ви можете відкрити тарбол і перенести клавіші на телефон. Потім встановіть додаток OpenVPN. Відкрийте додаток та підключіть інформацію з конфігураційного файла. Потім виберіть свої ключі.

В Linux вам потрібно встановити OpenVPN так само, як і для сервера.

$ sudo apt встановити openvpn

Потім перейдіть у / etc / openvpn і розпакуйте тарбол, який ви надіслали.

$ cd / etc / openvpn $ sudo tar xJf /path/to/client.tar.xz

Перейменуйте файл клієнта.

$ sudo mv client.ovpn client.conf

Не запускайте клієнта ще. Це не вдасться. Спочатку потрібно включити переадресацію портів на маршрутизаторі.

Заключні думки

Тепер у вас повинна бути робоча установка. Ваш клієнт підключиться безпосередньо через ваш маршрутизатор до Pi. Звідти ви можете ділитися і підключатися до вашої віртуальної мережі, якщо всі пристрої підключені до VPN. Обмежень немає, тому ви завжди можете підключити всі свої комп’ютери до Pi VPN.

Перетворіть малиновий пі в vpn, щоб отримати доступ до своєї мережі з будь-якого місця