Jak hostować własną sieć VPN za pomocą Algo i hostingu w chmurze

Firmy na całym świecie sprzedają usługi VPN, aby zabezpieczyć Twoją aktywność online, ale czy naprawdę możesz zaufać dostawcy VPN? Jeśli chcesz, możesz utworzyć własną wirtualną sieć prywatną za pomocą oprogramowania typu open source Oprogramowanie Algoi wybranego dostawcy usług hostingowych w chmurze.

VPN i zaufanie

Niezależnie od tego, co mówi lub chwali się polityka prywatności na temat audytów bezpieczeństwa na firmowym blogu, nic nie stoi na przeszkodzie, aby VPN monitorował wszystko, co robisz online. Ostatecznie wybór usługi VPN sprowadza się do zaufania.

Jeśli ufasz bezimiennym usługom online, jedną z alternatyw jest uruchomienie własnego serwera VPN. Kiedyś było to trudne zadanie, ale dzięki projekt open source Algo od firmy ochroniarskiej Trail of Bits, tworzenie własnej sieci VPN jest teraz łatwe.

Za 5 USD miesięcznie możesz uruchamiać i kontrolować swój własny, pełnoetatowy serwer VPN. Co więcej, możesz użyć Algo, aby skonfigurować i zlikwidować serwery VPN, gdy ich potrzebujesz, i zaoszczędzić przy tym pieniądze.

Aby skonfigurować Algo, musisz użyć wiersza poleceń. Jeśli to odstrasza, nie martw się – przeprowadzimy Cię przez każdy krok.

Tych instrukcji może wydawać się dużo, ale to tylko dlatego, że wyjaśniamy tyle, ile możemy. Po kilkukrotnym utworzeniu VPN za pomocą Algo nie powinno to zająć dużo czasu. Ponadto wystarczy raz skonfigurować środowisko instalacyjne Algo. Następnie możesz utworzyć nowy serwer VPN za pomocą kilku naciśnięć klawiszy.

Ale czy możesz ufać, że skrypty Algo nie robią nic niewłaściwego? Dobra wiadomość jest taka Kod Algo jest publiczny na GitHub dla każdego do obejrzenia. Ponadto wielu ekspertów ds. Bezpieczeństwa jest zainteresowanych projektem Algo, który zmniejsza prawdopodobieństwo popełnienia przestępstwa.

Co Algo może (a czego nie może) zrobić

VPN to dobry sposób na ochronę Twojej aktywności online – szczególnie w publicznej sieci Wi-Fi na lotnisku lub w kawiarni. VPN sprawia, że ​​przeglądanie sieci jest bezpieczniejsze i utrudnia działanie złośliwym podmiotom, które mogą znajdować się w tej samej lokalnej sieci Wi-Fi. VPN może również pomóc, jeśli Twój dostawca usług internetowych ogranicza określone rodzaje ruchu, takie jak torrenty.

Ale uważajcie, piraci! Pobieranie łupów przez własną sieć VPN nie jest dobrym pomysłem, ponieważ aktywność można łatwiej prześledzić wstecz.

Ponadto, jeśli chcesz oglądać Netflix przez VPN, musisz szukać gdzie indziej – Algo z tym nie działa. Istnieje jednak wiele usług komercyjnych, które obsługują Netflix.

Wymagania wstępne dla Algo

Aby uruchomić i uruchomić serwer Algo VPN, potrzebujesz powłoki Unix Bash. W systemie Mac lub Linux możesz użyć programu Terminal, ale w systemie Windows musisz aktywować podsystem dla systemu Linux. Oto jak zainstalować i używać powłoki Linux Bash w systemie Windows 10.

Będziesz także potrzebować konta u dostawcy hostingu serwera w chmurze. Algo obsługuje wszystkie z poniższych:

DigitalOcean
Amazon Lightsail
Amazon EC2
Vultr
Microsoft Azure
Google Compute Engine
Scaleway
Chmura Hetznera
Instaluje się również w instancjach OpenStack i CloudStack.

Jeśli nigdy nie korzystałeś z żadnej z tych usług, zalecamy DigitalOcean, ponieważ jest bardzo przyjazny dla użytkownika. Jest to również usługa, której używamy w tym samouczku. Proces będzie nieco inny, jeśli korzystasz z innego dostawcy.

Kiedy Twoje konto DigitalOcean będzie gotowe do użycia, zaloguj się, a następnie z głównego pulpitu wybierz „API” z lewej szyny pod nagłówkiem „Konto”.

Na następnej stronie kliknij „Wygeneruj nowy token”. Token dostępu to długi ciąg liter i cyfr, który umożliwia dostęp do zasobów konta bez nazwy użytkownika i hasła. Musisz nazwać nowy token. Ogólnie rzecz biorąc, dobrym pomysłem jest nazwanie go na podstawie używanej aplikacji, na przykład „algo” lub „ian-algo” (jeśli tak się składa, że ​​masz na imię Ian).

Plik Menu „Aplikacje i API” DigitalOcean.

Po wygenerowaniu nowego tokena skopiuj go i wklej do dokumentu tekstowego na pulpicie. Będziesz go potrzebować za kilka minut.

Konfigurowanie środowiska

Wróć na pulpit, otwórz nowe okno terminala, wpisz cd („zmień katalog”, tak nazywa się foldery w świecie Uniksa) i naciśnij Enter. Zapewni to, że pracujesz z katalogu domowego terminala.

W tym momencie Algo wymaga Pythona 3.6 lub nowszego. Wpisz następujące polecenie do programu terminala:

python3 --version

Jeśli otrzymasz odpowiedź taką jak Python 3.6.9, możesz działać; jeśli nie, będziesz musiał zainstalować Python 3.

Aby zainstalować Python 3 na komputerze Mac, możesz użyć menedżera pakietów Homebrew. Gdy Homebrew będzie gotowy do pracy, wpisz następujące polecenie w oknie terminala:

brew install python3

Jeśli używasz systemu Ubuntu Linux lub WSL w systemie Windows, powinny one domyślnie mieć Python 3. Jeśli nie, metody instalacji różnią się w zależności od wersji systemu Linux. Wyszukaj w Internecie hasło „zainstaluj Python 3 na [insert your version of Linux here]”W celu uzyskania instrukcji.

Następnie musisz zainstalować Virtualenv Python3, aby utworzyć izolowane środowisko Python dla Algo. Wpisz następujące informacje w Bash na komputerze Mac:

python3 -m pip install --upgrade virtualenv

W systemie Ubuntu Linux i WSL polecenie jest następujące:

sudo apt install -y python3-virtualenv

Zwróć uwagę, że dostosowujemy ten samouczek do Ubuntu i pokrewnych dystrybucji, ale te instrukcje będą również działać dla innych wersji Linuksa z niewielkimi zmianami. Jeśli na przykład używasz CentOS, zamień instrukcje używające apt z dnf.

Następnie musimy pobrać Algo za pomocą polecenia wget. Komputery Mac nie mają domyślnie zainstalowanego programu Wget, więc aby pobrać go za pośrednictwem Homebrew, wpisz:

brew install wget

Narzędzie wget w oknie terminala.Narzędzie wget pobierające pliki instalacyjne Algo.

Teraz pobierzmy pliki Algo:

wget https://github.com/trailofbits/algo/archive/master.zip

Po zakończeniu pracy wget w katalogu domowym terminala pojawi się skompresowany plik o nazwie „master.zip”; sprawdźmy to z ls.

Jeśli na wyświetlonej liście plików i folderów zobaczysz „master.zip”, możesz zaczynać. Jeśli nie, spróbuj ponownie uruchomić wget.

Teraz musimy rozpakować plik, więc wpisujemy:

unzip master.zip

Po zakończeniu naciśnij ponownie ls. Powinieneś teraz zobaczyć nowy folder w swoim katalogu domowym o nazwie „algo-master”.

Jesteśmy prawie gotowi do działania, ale najpierw musimy skonfigurować nasze izolowane środowisko i zainstalować kilka dodatkowych zależności. Tym razem będziemy pracować w folderze „algo-master”.

Wpisz następujące informacje, aby przejść do folderu:

cd ~/algo-master

Upewnij się, że jesteś tam z tym poleceniem:

pwd

To oznacza „drukuj katalog roboczy” i powinno pokazywać coś takiego jak / home / Bob / algo-master lub / Users / Bob / algo-master. Teraz, gdy jesteśmy we właściwym miejscu, przygotujmy wszystko.

Albo skopiuj i wklej lub wpisz poniższe polecenie w pojedynczym wierszu (nie naciskaj Enter do końca):

python3 -m virtualenv --python="$(command -v python3)" .env && source .env/bin/activate && python3 -m pip install -U pip virtualenv && python3 -m pip install -r requirements.txt

Terminal Bash działający w oknie terminala.

To wyzwala wiele działań w katalogu Algo, aby przygotować się do uruchomienia.

Następnie musisz nazwać swoich użytkowników VPN. Jeśli nie nazwiesz ich wszystkich teraz, będziesz musiał trzymać klucze bezpieczeństwa (co jest mniej bezpieczne) lub później uruchomić nowy serwer od zera.

Tak czy inaczej, wpisz w terminalu:

nano config.cfg

Plik konfiguracyjny Algo w oknie terminala.

Otwiera to przyjazny dla użytkownika edytor tekstu wiersza poleceń, Nano. Plik konfiguracyjny Algo zawiera wiele informacji, ale interesuje nas tylko część, która mówi „użytkownicy”. Wszystko, co musisz zrobić, to usunąć domyślne nazwy użytkownika (telefon, laptop, komputer stacjonarny) i wpisać nazwę każdego urządzenia, które chcesz mieć w swojej sieci VPN.

Na przykład, jeśli tworzę VPN dla siebie, Billa i Mary, plik konfiguracyjny może wyglądać następująco:

users: - Ian_PC - Bill_Mac - Mary_PC - Ian_Android - Bill_iPhone - Mary_iPhone

Po nazwiesz wszystkich, naciśnij Ctrl + O, aby zapisać plik, a następnie Ctrl + X, aby wyjść.

Jesteśmy prawie gotowi do działania, ale najpierw użytkownicy systemu Windows muszą trochę objechać. WSL zwykle nie ustawia właściwych uprawnień użytkownika dla folderu Algo, co zakłóca Ansible (narzędzie, na którym opiera się Algo do wdrażania serwera).

W WSL wpisz następujące polecenie, aby wrócić do katalogu domowego:

cd

Następnie wpisz:

chmod 755 -R ~/algo-master

Aby wrócić do folderu Algo, wpisz:

cd ~/algo-master

Running Algo

Pliki instalacyjne Algo działające w oknie terminala.

A teraz jest chwila prawdy.

W folderze algo-master wpisz w oknie terminala:

./algo

Konfiguracja Algo powinna zacząć działać. Dowiesz się, że działa, gdy zapyta, którego dostawcę chmury chcesz użyć. W naszym przypadku wybieramy numer (1) dla DigitalOcean.

Jeśli Algo zawiedzie, może to być wiele powodów, których nie możemy tutaj przewidzieć. Jeśli błąd mówi, że twój katalog jest „konfigurowalny do zapisu na świecie”, postępuj zgodnie z powyższymi instrukcjami dotyczącymi zmiany uprawnień.

Jeśli pojawi się inny błąd, sprawdź Strona rozwiązywania problemów w repozytorium projektu Algo na GitHub. Możesz także skopiować komunikat o błędzie i wkleić go w Google, aby go wyszukać. Powinieneś znaleźć post na forum, który pomoże, ponieważ jest mało prawdopodobne, że jesteś pierwszą osobą, która otrzyma ten błąd.

Następnie zostaniesz poproszony o token dostępu skopiowany wcześniej z konta DigitalOcean. Skopiuj i wklej go do terminala. Nic nie zobaczysz, ponieważ Bash nie wyświetla znaków dla haseł i fraz bezpieczeństwa. Tak długo, jak naciśniesz wklej, a następnie naciśniesz Enter, powinno być dobrze.

Jeśli się nie powiedzie, możesz po prostu zepsuć pastę, co wszyscy robią w Bash. Po prostu wpisz następujące informacje, aby spróbować ponownie:

./algo

Gdy Algo jest uruchomione, odpowiedz na zadawane pytania. Wszystko to jest całkiem proste, jak to, co chcesz nazwać serwerowi (użycie „algo” w nazwie jest dobrym pomysłem).

Następnie zapyta, czy chcesz włączyć „Connect on Demand” dla urządzeń Mac i iOS. Jeśli nie używasz żadnego z tych urządzeń, wpisz N jako nie. Zapyta również, czy chcesz zachować klucze PKI, aby później dodać więcej użytkowników; ogólnie w tym miejscu również wpiszesz N.

Otóż ​​to! Algo zajmie teraz około 15 do 30 minut, aby Twój serwer zaczął działać.

Korzystanie z Algo

Logo WireGuard.

Kiedy Algo zakończy konfigurację, terminal powraca do wiersza poleceń, co oznacza, że ​​VPN jest gotowy do pracy. Podobnie jak wiele usług komercyjnych, Algo używa protokołu WireGuard VPN, który jest najgorętszą nowością w świecie VPN. Dzieje się tak, ponieważ zapewnia dobre bezpieczeństwo, większe prędkości i jest łatwiejszy w obsłudze.

Jako przykład tego, co robić dalej, aktywujemy Algo w systemie Windows. Aby skonfigurować inne urządzenia, zapoznaj się z Repozytorium Algo w serwisie GitHub.

Najpierw zainstalujemy ogólnego klienta pulpitu systemu Windows z Witryna WireGuard. Następnie musimy przesłać programowi nasz plik konfiguracyjny na PC. Pliki konfiguracyjne są przechowywane głęboko w folderze algo-master pod adresem: ~ / algo-master / configs /[VPN server IP address]/ wireguard /.

Istnieją dwa typy plików do konfiguracji urządzeń klienckich VPN: .CONF i .PNG. Te ostatnie to kody QR dla urządzeń takich jak telefony, które mogą skanować kody QR. Pliki .CONF (konfiguracyjne) są plikami tekstowymi dla klientów WireGuard na komputery stacjonarne.

Na komputerach Mac i Ubuntu nie powinno być trudno znaleźć folder algo-master poza wierszem poleceń. Na komputerach Mac algo-master znajduje się w folderze głównym; po prostu użyj Findera> Idź> Strona główna, aby się tam dostać. W Ubuntu możesz otworzyć Nautilusa i będzie on w folderze domowym.

Jednak w systemie Windows WSL jest niezależny od reszty systemu operacyjnego. Z tego powodu po prostu łatwiej jest skopiować pliki za pomocą wiersza poleceń.

Korzystając z poprzedniego przykładu, powiedzmy, że chcemy, aby plik konfiguracyjny „Mary-PC.conf” był używany na komputerze z systemem Windows 10. Polecenie wyglądałoby mniej więcej tak:

cp ~/algo-master/configs/[VPN server IP address]/wireguard/Mary-PC.conf /mnt/c/Users/[your Windows user account name]/Desktop/

Zwróć uwagę na spację między Mary-PC.conf i / mnt /; w ten sposób Bash wie, gdzie znajduje się plik do skopiowania i dokąd zmierza. Wielkość liter też ma znaczenie, więc pamiętaj, aby wpisać wielkie litery tam, gdzie jest to określone.

W systemie Windows naturalna jest chęć użycia dużej litery C na dysku „C:”, ale w Bash nie. Nie zapomnij też zastąpić bitów w nawiasach rzeczywistymi informacjami o komputerze.

Na przykład, jeśli folder użytkownika znajduje się na dysku „D:”, a nie na „C:”, zamień / mnt / c / na / mnt / d /.

Po skopiowaniu pliku otwórz klienta WireGuard dla systemu Windows. Kliknij „Importuj tunele z pliku”, a następnie wybierz plik konfiguracyjny na pulpicie. Po zakończeniu kliknij „Aktywuj”.

W ciągu kilku sekund połączysz się z własną siecią VPN!