Съдържание:

Raspberry Pi VPN шлюз: 6 стъпки
Raspberry Pi VPN шлюз: 6 стъпки

Видео: Raspberry Pi VPN шлюз: 6 стъпки

Видео: Raspberry Pi VPN шлюз: 6 стъпки
Видео: Кибериммунность и IoT: как создать безопасный промышленный шлюз 2024, Юли
Anonim
Raspberry Pi VPN шлюз
Raspberry Pi VPN шлюз

Актуализация 2018-01-07:

  • Актуализираните неща липсват и са необходими промени за текущата версия на Raspian.
  • Също така създаде специално ръководство за NordVPN.

Има няколко различни приложения за VPN. Или искате да защитите поверителността и личните си данни от любопитни очи, или трябва да получите източник от друга държава. Източникът от друга държава може да бъде много полезен за достъп до услуги, които не се предоставят във вашата страна. Днес има редица VPN услуги и повечето от тях предлагат лесен за използване софтуер за вашия компютър и приложения за вашия таблет или телефон. Но ако имате други устройства, които не се поддържат от софтуера, искате да преминете през VPN? След това изградете шлюз, който ви дава достъп до интернет през VPN.

Ако погледнете основната си мрежова настройка, имате „шлюз по подразбиране“, който се използва за всеки ip-адрес, който не се намира в текущата ви подмрежа (много опростен). Така че, ако настроите шлюз, който може да насочва интернет трафика през установена VPN връзка, всяко мрежово устройство може да се възползва от VPN тунела.

Моят основен случай на използване в апартамента ми в Сан Франциско е VPN тунел към родната ми Швеция, за да мога да предавам поточно шведски канали за възпроизвеждане на моите медийни плейъри и смарт телевизия. Това е доста често срещан случай на използване за повечето хора, нуждаещи се от VPN тунел. Тъй като моите медийни плейъри и интелигентните телевизори не се поддържат от VPN софтуера, създадох такъв от Raspberry Pi.

Можете да вземете един за под $ 40 в Amazon. Препоръчвам обаче да закупите и калъф и приличен захранващ адаптер. За тази инструкция се нуждаете от:

  • Raspberry Pi 2 или 3
  • Случай по ваш вкус
  • Приличен захранващ адаптер
  • Мрежов кабел

Стъпка 1: Избор на вашата VPN услуга

Избор на вашата VPN услуга
Избор на вашата VPN услуга

Важното при избора на VPN услуга е тя да отговаря на вашите изисквания. За този случай на използване имах нужда от VPN услуга с шведска изходна точка, това е най -важното, тъй като имам нужда от шведските услуги, за да се убедя, че съм в Швеция. През годините съм използвал няколко различни доставчици и по -долу са нещата, които вземам предвид при избора на доставчик на VPN за конкретния случай на употреба:

Безплатен тест

Искам безплатен период на тестване или малко количество тестови данни, за да усетя софтуера или приложението. Също така искам да тествам производителността и цялостния опит, преди да платя за това. Също така е хубаво да проверя дали идеята ми ще работи, преди да започна да плащам.

поверителност

Ако внедряването е за опасения за поверителността, тогава е наистина важно какво гласи политиката за поверителност. Важно е също от коя държава оперира компанията и какви закони защитават вашата поверителност. Потребителите, които наистина се интересуват от поверителността, трябва да потърсят услуга, в която се посочва, че не се съхраняват дневници на трафика и позволяват например анонимни плащания чрез Bitcoin.

Разрешен трафик

Възможно е да има ограничения за това какъв тип трафик ще ви бъде разрешено да изпълнявате. По-сериозните доставчици обикновено блокират трафика между партньори. Това не е само за избягване на правни проблеми, но и за поддържане на ефективността за всички потребители. Има обаче много добри доставчици, които дават възможност за равнопоставени услуги и въпреки това да предоставят висококачествени услуги. Но ако това не е основното ви обезщетение, препоръчвам да изберете услуга, която не позволява peer-to-peer.

Ограничение на данните

Никога не използвайте услуга, която поддържа ограничение на данните пред своите платещи потребители. Това просто ще свърши в най -лошия възможен момент точно като данните на телефона ви точно преди смешната част във видеоклип!

Излизане от държави

В зависимост от случая на употреба това има различно значение. За случай на използване като моя, където трябва да попадна в определена държава, разбира се, че трябва да е в списъка. Трябва също да ми бъде позволено да избера в коя държава да изляза. Има услуги, при които не можете да изберете държава за излизане, стойте далеч от тях. Можете да попаднете в държава с лошо представяне или закони за поверителност. Дори и да нямате нужда от конкретна държава, все пак трябва да изберете услуга с няколко различни държави, от която да се показвате, за да можете да намерите такава с добро представяне.

Тип софтуер и поддръжка

Това е една от основните причини, поради които предпочитам услуги с безплатен тест. Има толкова много доставчици с лош софтуер, които са бъги, несигурни или просто не работят. За реализация на Raspberry Pi се нуждая от доставчик, който поддържа OpenVPN.

Моят избор

За тази конструкция отидох с тунелна мечка. Предлага се безплатен тест до 500 GB, за да мога да тествам, че всъщност мога да предавам поточно, преди да платя нещо. Те са базирани в Канада, която до Швеция има някои от най -силните закони за поверителност в света. Няма ограничение на данните за платена услуга и също така имам право да свързвам няколко устройства едновременно. Така че защитата за моя телефон, таблет и компютър по време на пътуване по незащитен wifi също е подредена. Изходният възел в Швеция се поддържа, той всъщност се предоставя чрез Bahnhof, който е известен със силната поверителност в Швеция. За платените планове те предлагат поддръжка на OpenVPN. Те не правят безплатния тест, но беше достатъчно да го стартирам от моя лаптоп, за да се уверя, че услугите за стрийминг работят.

Стъпка 2: Инсталирайте Raspberry Pi

За подобни реализации използвам операционната система Raspbian Lite. Тъй като изобщо нямам нужда от графичния интерфейс. Можете да получите най -новата версия тук.

Използвам Win32DiskImager за зареждане на.img файла на SD картата за Raspberry Pi.

След като Raspberry Pi се стартира, поглеждам в списъка на DHCP на маршрутизаторите си, за да получа IP адреса и след това се свързвам по SSH с Putty. Стандартното потребителско име и парола са pi/raspberry

След като се свържа, стартирам инструмента raspi-config, за да променя основните настройки.

sudo raspi-config

Най -важните неща, за които трябва да се погрижите в тази конфигурация, са:

  • Разширете файловата система
  • Промяна на паролата

Можете също да промените името на хоста на вашия Raspberry Pi, ако желаете. Моите DHCP имат много дълги договори за наем и мога също да резервирам конкретен адрес. Ако нямате тази възможност, трябва да конфигурирате Raspberry Pi да използва статичен IP-адрес. Тъй като други устройства ще използват това като шлюз по подразбиране, важно е той да използва същия IP адрес. Ето публикация, която написах за задаване на статичен IP адрес в Raspbian Jessie.

След това трябва да надстроим всичко до последната версия:

sudo apt-get updates sudo apt-get upgrade sudo apt-get dist-upgrade

Стъпка 3: Инсталирайте OpenVPN

Инсталирайте OpenVPN
Инсталирайте OpenVPN

Сега трябва да инсталираме OpenVPN на Raspberry Pi.

sudo apt-get install openvpn

След това трябва да се уверим, че услугата стартира правилно.

sudo systemctl активира openvpn

Когато инсталацията приключи, трябва да копираме конфигурационните файлове и сертификати на OpenVPN в полето. Това ще ви бъде предоставено от вашия VPN доставчик. В моя случай, използвайки TunnelBear, намерих там публикация в блога за поддръжката на Linux. На тази страница има връзка към zip файл, съдържащ всичко, от което се нуждаем.

Файлът съдържа файловете със сертификати и.opvn конфигурационен файл за всяка държава, към която можете да тунелирате. Нуждаете се от всички файлове със сертификати и конфигурационния файл.opvn за държавата по ваш избор, в моя случай Швеция. Разархивирайте необходимите файлове и използвайте winscp, за да качите файловете във вашия Raspberry Pi. Същото потребителско име/парола, използвано за SSH, ще ви отведе до/home/pi, просто пуснете файловете там.

След това се връщаме към SSH терминала и преместваме файловете в папката OpenVPN. Първата команда е само да се уверим, че сме в /home /pi папката.

cd /home /pi

sudo mv */etc/openvpn/

Сега трябва да направим някои модификации на файловете. Първо трябва да преименуваме конфигурационния файл от.ovpn в.conf. Всеки файл, завършващ на.conf в папката /etc /openvpn, ще стартира автоматично при стартиране на демона OpenVPN. Първо трябва да влезем в тази директория.

cd /etc /openvpn

След това променяме името на конфигурационния файл. Можете да го наречете с каквото искате, стига да завършва на.conf. Предпочитам да използвам имена на файлове без празни пространства, в този случай отивам със swe.conf.

sudo mv *.ovpn swe.conf

След това се нуждаем от файл за удостоверяване, съдържащ потребителското име и паролата, използвани за VPN тунела. Отворете текстов редактор и напишете потребителското име и паролата на отделни редове. Ще наречем този файл auth.txt.

sudo nano auth.txt

Съдържанието трябва да е като този пример:

потребителско име

парола

След това използвайте CTRL + O, за да запишете във файла, и CTRL + X, за да излезете от текстовия редактор на нано. Също така трябва да защитим файла auth.txt, съдържащ нашите идентификационни данни.

sudo chmod 600 /etc/openvpn/auth.txt

След това трябва да редактираме конфигурационния файл, за да се уверим, че всички пътища са правилни, и да добавим препратка към новосъздадения файл auth.txt.

sudo nano swe.conf

Редовете, които трябва да бъдат променени, са тези, които се отнасят до други файлове, те трябва да бъдат абсолютни пътища. В този пример това е, което търсим:

ca CACertificate.crt

cert UserCertificate.crt ключ PrivateKey.key

Променяме ги на абсолютни пътища по следния начин:

ca /etc/openvpn/CACertificate.crt

cert /etc/openvpn/UserCertificate.crt ключ /etc/openvpn/PrivateKey.key

След това в края на файла добавяме препратка към файла auth.txt, по следния начин:

auth-user-pass /etc/openvpn/auth.txt

Отново използваме CTRL + O, за да запазим файла и след това CTRL + X, за да излезем от nano. Сега можем да рестартираме демона на OpenVPN и да видим, че тунелът работи.

sudo услуга openvpn рестартиране

Ако изпълните командата ifconfig, трябва да видите адаптер tun0 в допълнение към вашите адаптери eth0 и lo, ако тунелът е нагоре. Можете също да изпълните тази команда, за да проверите своя публичен IP:

wget https://ipinfo.io/ip -qO -

Ако имате проблеми с издигането на тунела, първо опитайте да рестартирате Raspberry Pi и след това проверете два пъти конфигурацията за грешки.

Стъпка 4: Настройка на маршрутизиране

Сега трябва да активираме IP препращането. Тя позволява на мрежовия трафик да се подава от един от мрежовите интерфейси и от другия. По същество създаване на рутер.

sudo /bin /su -c "echo -e '\ n#Активиране на IP маршрутизиране / nnet.ipv4.ip_forward = 1'> /etc/sysctl.conf"

Ако стартирате sudo sysctl -p, трябва да видите това отпечатано на екрана:

net.ipv4.ip_forward = 1

Сега маршрутизацията е активирана и трафикът може да минава през Raspberry Pi, през тунела и навън в интернет.

Стъпка 5: Настройка на защитна стена и NAT

Тъй като ще имаме няколко клиенти отвътре, които имат достъп до интернет през един публичен IP адрес, трябва да използваме NAT. Той означава превод на мрежов адрес и ще следи кой клиент е поискал какъв трафик, когато информацията се върне през тунела. Трябва също така да настроим известна сигурност около Raspberry Pi самостоятелно и тунела.

sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

Активиране на NAT.

sudo iptables -A НАПРЕД -i eth0 -o tun0 -j ПРИЕМАМ

Разрешаване на всеки трафик от eth0 (вътрешен) да премине през tun0 (тунел).

sudo iptables -A НАПРЕД -i tun0 -o eth0 -m състояние -състояние СВЪРЗАНО, УСТАНОВЕН -j ПРИЕМА

Разрешаване на трафика от tun0 (тунел) да се върне през eth0 (вътрешен). Тъй като ние посочваме състоянието RELATED, ESTABLISHED, то ще бъде ограничено до връзка, инициирана от вътрешната мрежа. Блокиране на външен трафик при опит за иницииране на нова връзка.

sudo iptables -A INPUT -i lo -j ACCEPT

Разрешаване на собствения loopback трафик на Raspberry Pi.

sudo iptables -A INPUT -i eth0 -p icmp -j ACCEPT

Разрешаване на компютри в локалната мрежа да пингуват Raspberry Pi.

sudo iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT

Разрешаване на SSH от вътрешната мрежа.

sudo iptables -A INPUT -m състояние -състояние УСТАНОВЕНО, СВЪРЗАНО -j ПРИЕМАНЕ

Разрешаване на целия трафик, иницииран от Raspberry Pi, да се върне. Това е същият главен щат, както по -рано.

sudo iptables -P НАПРЕД

sudo iptables -P INPUT DROP sudo iptables -L

Ако трафикът не съответства на нито едно от посочените правила, той ще бъде премахнат.

sudo apt-get install iptables-persistent

sudo systemctl активира netfilter-persistent

Първият ред инсталира код, който прави правилата за iptable, които току -що създадохме, постоянни между рестартирането. Второто записва правилата, след като сте ги променили. Този път е достатъчно да стартирате първия. Ако промените правилата, стартирайте второто, за да запазите. Iptable правилата са в сила веднага след като ги добавите, ако объркате и загубите достъп, просто рестартирайте и тези, които още не са запазени, ще се върнат.

Стъпка 6: Заключение

Сега можете да използвате този тунел от всяко устройство или компютър в същата мрежа. Просто променете шлюза по подразбиране на който и да е IP адрес, който има Raspberry Pi. В моя случай и двата ми медийни центъра Kodi (една спалня и една всекидневна) използват тази връзка, за да мога да предавам поточно своите шведски канали за игра. Разбира се, има и други неща, за които можете да използвате това.

Само имайте предвид, че в зависимост от избрания от вас доставчик на VPN и скоростта на вашата интернет връзка може да има бавна производителност.

Ако имате въпроси или искате да изясня нещо, уведомете ме в коментарите! За повече технически публикации, моля, посетете моя блог Hackviking!

Препоръчано: