Назад

Обходим великий российский фаервол

Добрый день. Есть большая вероятность, что к осени 2023 года в России будут заблокированы наиболее популярные VPN протоколы на основе WireGuard, IPSek, OpenVPN. Поэтому есть смысл уже сейчас смотреть в сторону решений от китайских товарищей, которые были созданы для обхода великого китайского фаервола.

Статья написана как рерайт статьи от автора на хабре — ссылка на статью источник.

Особая благодарность Слава, за ссылку на статью 🙂

Почему важно использовать VPN в 2023 году?

Потому-то информация о нас давно уже стала товаров и способом манипуляций, я думаю что каждый человек имеет право переписываться без товарища Майора за спиной. VPN — это в первую очередь безопасность т.к. весь трафик шифруется. Говорить что VPN — это для совершения преступлений, это верх двуличия.

Почему VLESS, ShadowSocks и 3X-UI?

Как одни из наиболее защищенных протоколов на данный момент. VLESS, например отлично мимикрирует под обычный https трафик.

Панель управления VPN на 3X-UI устанавливается и настраивается очень легко через Docker. По мне — это одно из лучших решений сейчас на рынке, как для личного, так и коммерческого использования.

Почему статья такая большая?

Статью необязательно читать полностью, вы можете брать только ту часть, которую хотите реализовать прямо сейчас — итерацию.

Например, при установке с нуля, вам важны части статьи про рекомендации сервера, установка 3X-UI, настройка 3X-UI и программы для VPN. Это быстрая часть. Настройка безопасности сервера — на ваше усмотрение, к ней вы можете вернуться позже.

Выбор хостинга для VPN

Предлагаю вам на выбор 2 хостинга, которые рекомендую на данный момент и которыми пользуюсь. Вообще выбор хостинга должен быть из рассчета что вам нужно — какая локация, какая скорость канала и т.д. Широкой выбор VDS с дисконтами есть по этой ссылке — lowendbox.com

Американский хостер Racknerd (ссылка) предлагает самые выгодные тарифа на сервера, которые можно использовать как под хостинг так и под VPN, но это верно только на акционные сервера (ссылка на акцию). Благо, акции с скидками проходит весь год 🙂

Для РФ есть возможность оплаты через крипту, сейчас не проблема завести кошелек на Huobi или Kucoin.

Железо — отличное, используют как современные Intel, так и AMD Epyc. Любой тариф, даже самый дешевый, легко потянет VPN.

Можно заранее пинговать сервера, выбрать IP адрес и его расположение. Сам хостинг зарекомендовал себя как очень надежный. Я им пользуюсь уже 3 года и пожалуй, это наименее проблемный хостинг из всех в т.ч. российских как например Beget, Timeweb

Speedtest показывает скорость Download 420 — 760Mbit/s, Upload 750 — 790 Mbit/s и Packet loss: 0 %

Минимальная сумма для пополнения счета — 10 — 20 $ за 1 год, что конечно очень выгодно.

Хостер Aeza (ссылка) предлагает очень хорошие тарифы с оплатой от 1-го часа и расположением в Европе и СНГ. По железу — все отлично, управлять сервером удобно. Не находятся в юрисдикции РФ и никаких персональных данных не просят. Из минусов — довольно часто меняют цены в сторону увеличения, ну и контора слегка мутная.

Speedtest показывают скорость Download 678 — 735 Mbit/s, Upload 632 — 668 Mbit/s и Packet Loss: 0 % — отличный результат.

Минимальная стоимость сервера под VPN — в районе 5 Евро, бывают акционные сервера из Швеции — например я использую такой, за 1 бакс в месяц. Производительность отличная, но канал всего 100 Мб (для youtube 4k хватает более чем). Принимают оплату в т.ч. в рублях. При регистрации по ссылке, у вас будет Wellcome бонус +15%, к первому пополнению счета, но за первые 24 часа.

Установка 3X-UI

Обновляем ПО:

apt update && apt upgrade -y

Установка Docker:

bash <(curl -sSL https://get.docker.com)

Клонируем репотизиторий 3X-UI:

git clone https://github.com/MHSanaei/3x-ui.git
cd 3x-ui

Запускаем скрипт 3X-UI:

docker compose up -d

Настройка панели управления

В браузере переходим по адрecу  http://Ip-адрес-вашего-сервера:2053/panel/ логин и пароль — admin.

Panel Setting

Panel Port — меняем, например 16545

Panel URL Root Path — меняем, например /hghgj/

Делаем перезапуск панели

Panel Setting > Security Settings

Меняем логин-пароль admin — admin, например на jhfjhsjh — kfkdhr389

Получаем SSL на панель

Расскажу от 3 способах получить SSL, первый, встроен в скрипт 3X-UI. Поэтому начнем с него.

Через X-UI:

x-ui

Выбираем пункт 15 и введем наш домен, к которому прилинкован IP сервера.

Переходим в панель 3X-UI по адресу yourdomain.com:2053(или тот порт, который вы указали при установке). В разделе Panel Settings прописываем пути к сертификатам SSL:

/etc/letsencrypt/live/yourdomain.com/fullchain.pem
/etc/letsencrypt/live/yourdomain.com/privkey.pem

Пример:

Через Cloudflare. Прилинковываем наш домен к Cloudflare и выпускаем сертификат на 15 лет через их сервис

Через Acme:

apt install cron  && apt install socat
curl https://get.acme.sh | sh -s email=mail@mail.com
mkdir -p /var/lib/marzban/certs/

DOMAIN и SUBDOMAIN1.DOMAIN — пишем наши домены и суб-домены. Которые мы прилинковали заранее к нашему IP. Если суб-домены не нужны, удаляем их

~/.acme.sh/acme.sh --set-default-ca --server letsencrypt --issue --standalone \
-d DOMAIN \
--key-file /var/lib/marzban/certs/key.pem \
--fullchain-file /var/lib/marzban/certs/fullchain.pem

Добавляем наши полученные сертификаты в панель 3X-UI, вместе с доменом.

Создаем VPN пользователя

Shadowsocks

Переходим на вкладку Inbounds > Add Inbound

Remark — любое рандомное название

Protocol — shadowsocks

Нажимаем Create

Теперь можно отсканировать QR код и пользоваться VPN на Shadowsocks

VLESS + Reality

Remark — любое рандомное название

Protocol — vless

Port — 443

Ниже, где Transparent Proxy ставим галочку на Reality

 uTLS — Chrome

Dest — microsoft.com:443

Server Names — microsoft.com,www.microsoft.com

И нажать кнопку Get New Key > Create

Безопасность сервера

Защитим сервер от взлома через брутфорс:

apt install fail2ban -y && apt install ufw -y && apt install nano -y
touch /etc/fail2ban/jail.local && nano /etc/fail2ban/jail.local

Откроется редактор, вставим в него код:

[sshd]
enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
logpath = /var/log/auth.log
findtime = 600
maxretry = 3
bantime = 43200

Нажимаем ctlr + x, далее Y и enter, чтобы сохранить.

Отключаем двухсторонний пинг

Чтобы улучшить нашу маскировку, отключим пинг

 nano /etc/ufw/before.rules

Меняем концовку следующего выражения с ACCEPT на DROP:

-A ufw-before-input -p icmp --icmp-type echo-request -j DROP

Нажимаем ctlr + x, далее y + enter, чтобы сохранить.

Включаем фаервол

Чтобы включить фаервол, нужно заранее выписать все используемые порты на сервере, для этого мы установим netstat и посмотрим какие порты нужно открыть:

apt install net-tools
netstat -ntlp | grep LISTEN

Смотрите порты, которые идут после 0.0.0.0:порт или IP_адрес вашего_сервера:порт, например:

  1. 0.0.0.0:993
  2. 76.20.7.12:53
  3. :::22

Их необходимо открыть в UFW или через панель управления вашим сервером/хостингом. Смотря как это реализовано у вас. Ниже пример для UFW.

ufw allow 17753/tcp && ufw allow 443 && ufw allow 22918 && ufw allow 53 && ufw allow 62789 && ufw allow 22/tcp && ufw enable

Подтверждаем через Y + Enter

Напоследок очистимся и перезагрузимся:

apt update && apt upgrade -y && apt autoclean -y && apt clean -y && apt autoremove -y && reboot

Обновление Docker 3X-UI

Чтобы обновить ПО, выполните через консоль. За эту информацию моя благодарность Иван Цой 🙂

cd 3x-ui && docker compose pull 3x-ui && docker compose up -d

Удаление 3X-UI

Чтобы удалить образ Docker, нужно узнать его id и остановить. В примере ниже, id контейнера у нас будет d6f0a3616f48.

Узнаем id:

docker container ls

Останавливаем и удаляем:

docker stop d6f0a3616f48
docker rmi -f d6f0a3616f48
docker container rm -f d6f0a3616f48

Программы для VPN

Буду рекомендовать только одну программу, которая есть для всех платформа (Android, iOS, Windows, MacOS, Linux). Это Hiddify.

ingenare
Author: ingenare

IT Project Manager, организатор IT-конференций в РФ

5 2 голоса
Рейтинг статьи
ingenare
ingenare
https://itstar.space
IT Project Manager, организатор IT-конференций в РФ
Подписаться
Уведомить о
guest
26 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
unReal
unReal
1 год назад

А как можно оптимизировать создание новых юзеров VLESS + Reality? Имеется ввиду через консоль. Не заходя при этом в админ-панель. Что-то я не нашёл инфы

Андрей
Андрей
1 год назад

Дмитрий, подскажите а можно как сделать исключения для определенных сайтов типа Авито, госуслуги и т.д. что бы не отключать VPN для входа на подобные ресурсы?

Последний раз редактировалось 1 год назад Андрей ем
Иван Цой
Иван Цой
Ответить на  Андрей
1 год назад

Как настроить, чтобы на российские сервера и сайты доступ шел напрямую, без прокси?
https://habr.com/ru/articles/770400/

daim
daim
1 год назад

А как входить в админку по https?

daim
daim
Ответить на  ingenare
1 год назад

Я прописывал сертификаты в файле docker-compose.yml, но они почему то не поттягиваются,когда завершается сборка пишет что значения не верны.
P.S.Спасибо за обратную связь,у вас хороший блог)

Слава
Слава
Ответить на  daim
1 год назад

Привет, я с cертификатами тоже мучился, в итоге поставил без докера 3X-UI

Иван Цой
Иван Цой
Ответить на  daim
1 год назад

Заходим в docker-compose.yml и добавляем:

— /etc/letsencrypt/live/domain.org/fullchain.pem:/root/cert/fullchain.pem
— /etc/letsencrypt/live/domain.org/privkey.pem:/root/cert/privkey.pem

чтобы всё заработало нужно скопировать 2 ключа из пути выше, в папку /root/3x-ui/cert/ командой:

cp /etc/letsencrypt/live/proxy.domain.ru/fullchain.pem /root/3x-ui/cert/
cp /etc/letsencrypt/live/proxy.domain.ru/privkey.pem /root/3x-ui/cert/

подробности здесь:
https://openode.ru/topic/529-3x-ui-xray-shadowsocks-kak-zamena-wireguard-docker-edition/

Иван
Иван
Ответить на  Иван Цой
1 год назад

Уже какой раз вижу ссылку на openode, а прочитать там можно только за деньги…

Слава
Слава
1 год назад

Дмитрий, привет, как сам? используешь эту панель? добавь еще ссылку для яблочных, а то у тебя на платную прогу https://apps.apple.com/us/app/foxray/id6448898396

Kirill
1 год назад

Спасибо за работу!
Дополнительные рекомендации:

  1. Добавлять комментарии к правилам ufw. Напр: ufw allow 443 comment 'Allow VLESS proxy connections'
  2. Был раздел про защиту, первым делом стоит изменить порт ssh.
  3. Доступ к админке лучше делать на отдельном порту, доступ к которому разрешен только с определенного ip, если нет такой возможности, то можно натравить fail2ban на проваленные попытки авторизации ( в последних версиях добавили fail2ban в docker образ по умолчанию).
  4. Добавить правило fail2ban на кол-во неудачных попыток авторизации к rpoxy
  5. Добавить мониторинг сервака. Рекомендую бесплатную netdata https://github.com/netdata/netdata
Иван Цой
Иван Цой
1 год назад

Подскажите, как обновить 3x-ui в Docker до версии 1.7.9? После обновления настроенные подключения не слетят?

Иван Цой
Иван Цой
Ответить на  Иван Цой
1 год назад

Может кому-то пригодится. Настройки сохраняются
cd 3x-ui
docker compose pull 3x-ui
docker compose up -d

Max
Max
1 год назад

Подскажите, а как сделать так чтобы проксировался трафик только к заблокированным сайтам реестра без настройки на клиенте андроид?

Влад
Влад
1 год назад

Подскажите пожалуйста, почему обрыв соединения может быть периодами? Через FoxRay на iPhone подрубать, но часто достаточно вырубает…

Влад
Влад
Ответить на  ingenare
1 год назад

Да просто отрубается VPN) Спасибо, попробую.

Политика конфиденциальности сайта