Эта статья сделана с упором на максимальную доступность в процессе установки и настройки VPN сервера на WG Easy, основанном на протоколе WireGuard. В принципе, достаточно будет навыка регистрации на сайте + умение копировать и вставить.
VPN нам может понадобиться по 3 причинам:
- Обойти ограничения, которые существует в РФ
- Для релокантов — зайти на закрытые от внешнего мира сайты РФ
- Обеспечить безопасность в интернете
В чем преимущество WG Easy?
- Простая установка
- Удобная web-панель для управления
- Возможность создавать пользователей и видеть их статистику скачивания (только объем)
Разделы статьи
Выбор хостинга для VPN
Предлагаю вам на выбор 4 хостинга, которые можно использовать для VPN, исходя из своей субъективной оценки. Три ссылки реферальные, так вы сможете и отблагодарить меня, без всяких усилий, если статья вам оказалось полезной.
Установка WG Easy:
Для начала, устанавливаем curl и Docker:
sudo apt install curl -y && curl -sSL https://get.docker.com | sh && sudo usermod -aG docker $(whoami)
exit
// далее 1-2 раза ввести exit и Enter, после этого нас может выбросить из консоли //
Установка WG Easy
Обратите внимание, нам нужно указать:
- IP адрес нашего сервера
- Пароль, который будет использован для входа в веб-панель WG Easy
- DNS сервер
- Номер порта для VPN соединений (стандартный — 51820/udp)
- Номер порта для веб-панели WG Easy ((стандартный — 51821/tcp)
Эти данные обязательно сохраните у себя где-нибудь в файле. Они нам потом еще понадобятся.
docker run -d \
--name=wg-easy \
-e WG_HOST=ip_адрес_нашего_сервера \
-e PASSWORD=наш_пароль\
-e WG_DEFAULT_DNS=1.1.1.1,9.9.9.9 \
-v ~/.wg-easy:/etc/wireguard \
-p 51820:51820/udp \
-p 51821:51821/tcp \
--cap-add=NET_ADMIN \
--cap-add=SYS_MODULE \
--sysctl="net.ipv4.conf.all.src_valid_mark=1" \
--sysctl="net.ipv4.ip_forward=1" \
--restart unless-stopped \
weejewel/wg-easy
echo nameserver 1.1.1.1,9.9.9.9 | sudo tee /etc/resolv.conf
На этом установка закончена и веб-панель WG Easy будет доступна по адресу:
www.ip_адрес_нашего_сервера:51821
Теперь переходим в браузере по адресу:
Пароль мы установили ранее, в поле -e PASSWORD=наш_пароль\
Теперь мы можем генерировать ключи, пользоваться VPN на всех наших устройствах, давать их женам, детям, любовницам и любовникам. В общем, ни в чем себе не отказывать.
На этом установка закончена!
Бонусное задание — безопасность сервера
Обновляем и защищаем наш сервер:
apt install fail2ban -y && apt install ufw -y && apt install nano -y && apt update && apt upgrade -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
Нажимаем CTRL+ 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, чтобы сохранить.
Настраиваем фаервол:
Внимание! Вместо 51820/udp пишем номер порта, который мы указали ранее при установке WG Easy -p 51820:51820/udp -p 51821:51821/tcp
ufw allow 22 && ufw allow 51820/udp && ufw allow 51821/tcp && ufw limit 22/tcp && ufw enable
// нажимаем Y + Enter //
Обновление WG Easy
Раз в месяц можно заходить на сервер и обновлять ПО:
apt update && apt upgrade -y && apt autoclean -y && apt clean -y && apt autoremove -y
Обновление WG Easy:
docker stop wg-easy && docker rm wg-easy && docker pull weejewel/wg-easy
Запускаем WG Easy после обновления. Не забываем указывать наши актуальные данные:
docker run -d \
--name=wg-easy \
-e WG_HOST=ip_адрес_нашего_сервера \
-e PASSWORD=наш_пароль \
-e WG_DEFAULT_DNS=1.1.1.1 \
-v ~/.wg-easy:/etc/wireguard \
-p 51820:51820/udp \
-p 51821:51821/tcp \
--cap-add=NET_ADMIN \
--cap-add=SYS_MODULE \
--sysctl="net.ipv4.conf.all.src_valid_mark=1" \
--sysctl="net.ipv4.ip_forward=1" \
--restart unless-stopped \
weejewel/wg-easy
Будут вопросы, заявки, уточнения — пишите.
Привет! Спасибо за статьи, я покупал vps на racknerd (гиг, 1 проц, 4 TB в месяц за 12,98 на год 1 января), локация США (Нидерландов пока нет у них).
В принципе все работает с VPN WG Easy и WireGuard (на гаджетах, а также выборочный обход на роутере Keenetic с КВАСОМ).
Но нигде (на телефонах с wi-fi/мобильным интернетом) с включенными VPN WG Easy и WireGuard не открывается сайт netflix.com, а если скачать какой-нибудь мод VPN приложения, то без проблем…
Также я частенько захожу на сайт newegg. com и с VPN на VPS у меня это не получается, вот такая ошибка: Our system have detected unusual traffic from this device, please check our Policy & Agreement for more information, feel free to click this link to give us feedback.
В поддержку пока не писал, возможно найду у нас ответ на данные вопросы
Проблема у вас именно в хостере, скорее всего пул их IP в блэклистах этих сервисов. Развернулся в одном из российских провайдеров в локации Нидерланд — работает как netflix, так и newegg.
После обновления WG Easy придется заново заводить всех клиентов?
Нет, но бэкапить клиентов и ключи необходимо в любом случае. Либо потом клиентам делать рассылку, что тех. сбой и включи поменялись
То-есть после обновления клиенты не отвалятся? У них не поменяются ключи? А если бекапить то каким образом?
Когда ставлю WG Easy то по умолчанию он начинает всегда выдавать внутренние IP адреса клиентам в подсети 10.8.0.0 можно ли как то поменять эту настройку что бы выдавались IP например в 10.10.0.0 , 192.168.x.x и тп ? Нигде настрое этого я не нашел
Статья обновлена
Ставил WGEasy и закинул дефолтные -e WG_DEFAULT_DNS=1.1.1.1, но теперь хочу поменять на 8.8.8.8, 1.1.1.1. Мне заново нужно конфигурировать docker run -d И там ставить -e WG_DEFAULT_DNS=8.8.8.8, 1.1.1.1 ?
Рассматривали ли вы другую GUI, например вот эту https://github.com/donaldzou/WGDashboard ? Я так понимаю, если я захочу эту морду поменять, то надо все сносить и заново генерить все ключи?
Да, достаточно остановить и запустить контейнер, с новыми параметрами. С этим гуем не знаком, в WG сейчас нет особого смысла, если использовать без обфускацию трафика. Слишком легко его заблокировать.
Лучше посмотрите в сторону Xray.
Большое спасибо за ответ. Не слышал про xray, буду изучать. Информации по нему почти нет, а следовательно, он должен долго продержаться. Нежели WG, про который везде пишут.
В идеале наверно пустить трафик на подсети только на запрещенных ИНСТ картинок и парочку необходимых сайтов. Тогда, наверно, будет жить долго и счастливо)
А каким образом можно учет трафика для каждого пользователя wg посмотреть?
Мне кажется что никак, не предусмотрено автором
В панеле пишет There is an update available!
Updated to Node.js v18.
Обновляю easy-wireguard — но все-равно пишет, что есть новая версия Node. Что делать? 🙂
docker pull weejewel/wg-easy запускает обновление, но это есть в статье. Что делать — ничего не делать 🙂
Поменять
docker pull weejewel/wg-easy
на
docker pull ghcr.io/wg-easy/wg-easy
weejewel сдулся. У него об этом написано в гитхабе