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

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

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

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

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

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

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

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

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

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

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

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

Установка 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.

26 comments

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *

20 + семнадцать =

Сайт использует cookies Политика обработки персональных данных