Назад

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

Добрый день. Есть большая вероятность, что к осени 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.

anonim
anonim
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
Ответить на  Dmitrii
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/

Иван
Иван
Ответить на  Иван Цой
10 месяцев назад

Уже какой раз вижу ссылку на 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 год назад

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

Влад
Влад
11 месяцев назад

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

Влад
Влад
Ответить на  Dmitrii
10 месяцев назад

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