Обучение

Обучение

Life-Hack

Предлагаю вашему вниманию инструкцию (в виде цикла статей), как обойти ограничения на посещение сайтов и стать безликим для рекламных сетей с применением VPN и прокси сервера, установленных на VPS.

Многие из вас в гневе восклинут, что это боян и статей про VPN и Squid миллион! Да это так, но тем не менее, считаю данный материал актуальным и вот почему.

Большинство инструкций по настройке VPN сервера не описывают:

- где взять виртуальную машину для его установки;

- как выбрать хостинг, какие требования к VPS и хостингу;

- где взять консоль;

- как попасть в консоль;

- как попасть в консоль по сертификату и защитить сервер от брутфорса;

- как обойтись без консоли (в частности для редактирования файлов), а то ничего не понятно;

- как защитить сервер, настроив файрволл;

- как обойти ограничения корпоративных сетей на «левые» порты и протоколы.


Т.е. инструкции по настройки есть, но для человека, далекого от тематики они порождают вопросов больше, чем дают ответов. А на свободный интернет и анонимность имеют право все.


Кроме того, имея где-то там свой личный сервер с VPN было бы глупо не использовать возможность установки анонимного прокси, который пусть и не на 100%, но процентов на 90 сделает вас безликим для сборщиков личной информации (рекламные сети, поисковики и пр.).


Есть платные VPN сервисы, есть платные прокси и у них есть много неоспоримых преимуществ (множество IP, возможность менять IP и страну на ходу, легкое подключение). Но есть и очевидные недостатки:

- в первую очередь цена. Свой VPS обойдется значительно дешевле.

- кто-то, кто создал сервис, знает о вас всё.

- IP адреса таких платных сервисов часто банятся как на уровне провайдеров, так и на уровне интернет-ресурсов.


В общем я написал пошаговую, очень подробную инструкцию, как:

1. Выбрать хостера и арендовать VPS.

2. Настроить безопасный вход по SSH с использованием сертификатов.

3. Настроить файрволл своего VPS.

4. Установить и настроить VPN сервер. Настроить все свои устройства для подключения к этому серверу (в том числе смартфоны);

5. Установить и настроить прокси-сервер Squid и настроить подключение к нему


Напоминаю, нашей целью не является полная анонимность. Если вы хотите стать анонимным в сети, используйте vpn+vpn+Tor и свою паранойю. Наша цель избавиться от слежения со стороны рекламных сетей и интернет-провайдеров, исключить модификацию трафика интернет-провайдерами, обойти ограничения на посещение сайтов и зашифровать весь свой трафик, проходящий по территории страны проживания. Если вы будете делать что-то противозаконное с использованием описанных в статье технологий, вас найдут, даже не сомневайтесь.


А еще сможете в компании так невзначай сказать: "Что, вы не можете зайти на порн-хаб? Элементарно! Я вот поднял свой VPN сервер c проксированием в Нидерландах. Никакие ограничения на меня не действуют, хожу в интернет по зашифрованному каналу".


Выбор хостинга и аренда VPS

Для начала нам понадобиться виртуальный сервер (VPS). В мире много… нет, не так. В мире ОЧЕНЬ МНОГО хостеров, готовых предложить VPS за небольшие деньги. Конкуренция велика и это хорошо. Чтобы выбрать именно то, что нам нужно, определим требования:


1. Поддержка tun/tap (Что это такое, ищите в Википедии. Некоторые хостеры эту технологию не предоставляют вообще, некоторые по запросу, некоторые сразу. Уточнить можно в службе продаж или в службе тех. поддержки хостера.)

2. Как можно дешевле. Ну тут понятно.

3. Датацентр хостера должен быть как можно ближе к вам (меньше пинг).

4. Желательно, чтобы он не попадал под юрисдикцию российских спецслужб и никак от них не зависел. Т.е. у хостера не должно быть представительств или датацентров в России. Мы же не хотим, чтобы кто-то «слушал» наш трафик или лез в нашу личную жизнь. Вернее, лезть то будут, это будут спецслужбы Нидерландов, Франции или Германии, но не наши спецслужбы.

5. Нам не важен размер жесткого диска VPS и скорость его работы. Т.е. нам всё равно, HDD будет SSD. Да и места потребуется настолько мало, что этим параметром можно пренебречь.

6. А вот оперативной памяти я бы не рекомендовал меньше 512 МБ.

7. Сетевой трафик VPS должен быть либо не ограничен, либо иметь такое ограничение, в которое мы не упремся (по опыту от 512 ГБ в месяц и выше).

8. Скорость сетевого интерфейса не менее 100 МБ/сек.

9. Ну и сам хостер должен быть с более-менее приличным сроком нахождения на рынке, а не какой-то реселлер однодневка.


Я буду приводить скриншоты при работе с одним из моих постоянных хостеров, у других всё тоже самое. Принципиальных отличий нет.


Итак, нашли подходящего хостера и берём в аренду VPS.

Если при настройке услуги хостер просит указать доменное имя и DNS, пишем любую лабуду. Нам это, в данном случае, не важно. Операционную систему я выбрал CentOS 7 x64 и для неё будут все дальнейшие инструкции. Вы вольны выбрать любой дистрибутив, принципиальных отличий нет.

При первоначальной регистрации и оплате хостер может запросить некоторые ваши документы: фото удостоверения личности (паспорта); фото банковской карты, с которой проводится оплата (естественно с закрашенными начальными цифрами номера и закрашенным CVC-кодом); копию последней платежки за коммунальные услуги с различимым адресом проживания. Это нормальная ситуация. Хотят убедится, что вы не мошенник и не пользуетесь чужой картой. Могут и не запросить. Тут как повезёт.


После оплаты и верификации вы получите на свою электронную почту письмо примерно такого содержания:

Как видим нам дали IP адрес нашего арендованного VPS (Main IP), логин (Username) и пароль (Root Password) для входя по SSH. Также дали ссылку на панель управления сервером и логин-пароль для входа в панель. Из панели, как правило, можно включить/выключить/перезагрузить сервер, сбросить пароль root, посмотреть статистику сервера (использование памяти/процессора/трафика) и прочие базовые вещи.


Настройка SSH


Управлять нашим сервером мы будем через SSH-консоль. Да, есть множество решений графического интерфейса для управления linux-серверами, но это не наш путь. Во-первых, наш VPS очень базового уровня и его ресурсов если и хватит для работы графического интерфейса, то впритык. Во-вторых, практически для любого графического интерфейса потребуется Web-сервер и дополнительные открытые порты, что резко увеличивает уязвимость нашего сервера для атак злоумышленников. Ну и в-третьих, нам его один раз настроить и забыть.

Нам потребуется сам SSH-клиент, а также утилиты для генерации ключей. Качаем и распаковываем архив https://the.earth.li/~sgtatham/putty/latest/w32/putty.zip

Из архива нужны будут сам клиент putty.exe и утилита генерации ключей puttygen.exe. Также можно скачать их по-отдельности на этой странице: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html


Еще нам понадобиться WinSCP. Очень удобная штука, особенно для тех, кто не любит работать в консоли. Качаем здесь https://winscp.net/download/files/201705310908cd3ce105c1c1caeb75d894a2226ee533/WinSCP-5.9.5-Portable.zip и распаковываем архив. Для запуска используем WinSCP.exe


Теперь все готово. Начинаем настраивать.


Для начала подключимся по SSH по паролю и убедимся, что наш сервер работает. Для этого запускаем putty.exe

в поле Host Name вписываем полученный по почте IP-адрес и жмем кнопку Open (если появится окно PuTTY Security, жмем «Да») и, в черном окне, вводим логин (root) и пароль из письма.

Маленький лайфхак: сейчас вам придётся в консоль вводить длинный и не удобный пароль, а в дальнейшем длинные и неудобные команды. Можно сократить ручной труд и просто копировать вставлять. Копировать как обычно, а для вставки переводим курсор на черное окно putty и жмем правую кнопку мыши. Всё. То, что копировали, будет вставлено. И пароль тоже вставиться. Этого будет не видно, но ничего страшно, после нажатия правой кнопки мыши сразу нажмите Enter. При копировании будьте аккуратны, выделяя текст для копирования не зацепите лишние пробелы.

login as: root

root@123.123.123.123's password:

[root@vps12345~]#

Чтобы завершить ввод команды, нужно нажать Enter. Например, добавим нужный репозиторий и обновим наш сервер. Вводим (или копируем отсюда) следующую команду и жмем Enter.

yum install epel-release –y

Результат будет выглядеть примерно так:

Теперь обновим сервер:

yum update –y

Свернём пока консоль, она нам понадобиться чуть позже. Попробуем подключиться к серверу в WinSCP. Запускаем WinSCP.exe.

Настраиваем параметры:

File protocol: SFTP

Host name: IP-адрес из письма

User name: root

Password: оставляем пустым

Жмём “Save”, в появившемся окне «ОК». Теперь слева, в списке, появилась запись вида root@[IP-адрес]. Дважды кликнем по ней. Появится окно с предупреждением, жмём Yes. Вводим пароль и WinSCP подключается.

Теперь мы видим две панели: слева файловую систему своего компьютера (диск С), а справа файловую систему VPS (обычно при первом входе бывает открыта папка /root). Обратите внимание: в правой панели сверху списка папок всегда будет символ папки со стрелочкой и двумя точками. Если его два раза кликнуть (или стрелками на клавиатуре переместить на него курсор и нажать Enter) вы перейдёте на уровень вверх. Например, сейчас сможете попасть в корень файловой структуры сервера. Выглядит это так:

Свернём пока WinSCP и запустим puttygen.exe.

Сейчас мы создадим сертификаты для SSH-подключения. Ранее мы подключились по простому паролю. Использование пароля не безопасно: его можно перехватить или подобрать. Поэтому сделаем ключи и настроим наш сервер на подключение только с этими ключами.


Проверяем, что выбран тип ключа RSA, количество бит не менее 2048

И жмём кнопку “Generate”. Теперь на время освоим роль биологического генератора случайных чисел: двигаем хаотично мышкой и(или) жмем хаотично кнопки на клавиатуре (желательно кнопки с буквами и цифрами, остальные не трогаем). Как только зелёная полоска доползет, закрытый ключ готов.

Придумываем для его защиты хороший пароль (Не менее 10 символов, латинские маленькие и большие буквы, хотя бы один спец-символ !@#$%^&*()<>,.:;”’). Пароль забывать нельзя, его никак не восстановить! Вводим этот пароль два раза:

Жмем “Save public key” и сохраняем публичный ключ (даём ему имя public.pub и не забываем куда сохранили. Я создал папку test на диске С:, дальше буду использовать её). Жмём “Save private key” и сохраняем приватный ключ (даём ему имя private и сохраняем рядом с публичным). У нас должно получиться два файла: private.ppk и public.pub


Рuttygen можно закрывать, он нам больше не понадобиться. Возвращаемся к WinSCP. Слева находим папку с двумя указанными выше файликами, а справа открываем папку /tmp. Слева «становимся» на файл public.pub, нажимаем F5 (одна из ненужных кнопок в самом верхнем ряду клавиатуры) и ОК. Наш файлик копируется на сервер. Получится вот так:

Возвращаемся к консоли PuTTY. Вводим команду:

ssh-keygen -i -f /tmp/public.pub >> /root/.ssh/authorized_keys

Всё, наш сервер готов принимать подключения по сертификату. Закрываем (совсем, крестиком) окно PuTTY и снова запускаем putty.exe. Создадим профиль для нашего сервера. Опять в поле “Host Name” вписываем IP-адрес сервера. Справа, в списке находим пункт Connection -> Data и в поле “Auto-login username” вписываем root. Справа в списке находим пункт Connection -> SSH -> Auth находим поле “Private key file for authentication:” и жмём кнопу “Browse …”. Указываем путь на приватный ключ (в моём случае C:\test\private.ppk)

Слева в списке выбираем пункт Session, в поле “Saved Session” вписываем любое имя профиля (например, my_vpn) и жмем “Save”. Ниже в списке появится строчка с этим именем. Щелкнем её двойным кликом. Появится консоль и попросит ввести пароль от приватного ключа (вы ведь его не забыли):

Вводим его, жмём Enter. Если все сделали правильно, мы авторизуемся. Отлично. Теперь настроим WinSCP. Закроем его окно (крестиком) и вновь запустим wincsp.exe. У нас есть уже сохраненный профиль, просто отредактируем его. Выберем профиль («встать» на него в списке слева) и нажмём кнопку Edit, а затем кнопку Advanced… В появившемся окне слева, в списке, выбираем пункт SSH -> Authentication. Возле поля “Private key file” жмем кнопку с тремя точками и указываем путь на файл приватного ключа (также, как мы это делали для putty).

Жмём ОК и в первоначальном окне жмём кнопку Save. Теперь двойным кликом по названию профиля подключаемся, вводим пароль от приватного ключа.

Теперь запретим нашему серверу принимать подключения по простому паролю. В правой панели WinCSP открываем папку /etc/ssh/ и находим файл sshd_config

Двойным кликом открываем его. Находим строчку, в которой написано

PasswordAuthentication yes

Именно так, без символа #, и меняем yes на no. Получится:

PasswordAuthentication no

Нажимаем сверху символ дискеты и закрываем окно редактирования файла. Если кто-то никогда не видел дискет, то просто закрываем окно редактирования файла и нажимаем Yes в окне с предупреждением. Закрываем окно WinSCP. В консоли PuTTY вводим команду

reboot

и закрываем окно крестиком. Сервер перезагружается. Обычно это занимает от 10 до 60 секунд. По истечении это времени снова запускаем putty.exe и wincsp.exe и подключаемся к серверу в каждом из них.

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

private.key храните только в надежном месте на доверенном компьютере. А лучше вообще на флешке, которую будете подключать только для настройки сервера. А это нужно крайне редко. Ну и пароль от ключа не забывайте.


Свободы и анонимности всем вам. продолжение следует......

Report Page