Назад

Создаем сервер VPN на IKEv2/IPsec, за 5 минут

Что же такое IPsec и IKEv2 ?

Избавлю вас от сложных и длинных технических определений и не скажу вам кратко и просто. Что это за протокол — по сути не так и важно для потребителя, а вот какую ценность протокол дает в сравнение с Wireguard (как самый быстрый протокол), вот честно, не скажу.

Оба протокола надежно шифрует соединение, оба легко определяется провайдером по UDP трафику.

Для большинства ситуаций вам хватит и Wireguard, но когда дело касается нюансов либо нативной поддержки VPN в ОС Windows, то IKEv2 может быть для вас предпочтительней, чем другие протоколы.

Если у вас нет сервера, то мои рекомендации можете посмотреть в этой статье (ссылка).

Установка IKEv2/IPsec

wget https://get.vpnsetup.net -O vpn.sh && sudo sh vpn.sh

На этом установка все, наши ключи будут лежать в папке /root. Копируем их через FTP/SFTP к себе на устройство. А как их устанавливать, читаем уже на обновляемой статье на Github (ссылка) от автора скрипта.

Как пример, в WIndows 11 — копируем скрипт cmd и ключ (все в одной папке), запускаем его, скармиливаем IP адрес сервера — и он сам добавит его в систему.

На Android почти все то же самое, но нужно поставить программу StrongSwan.

Бонусное задание, защита сервера

Обновляем ПО и защищаем сервер от атаки методом брутфорса и не только.

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

Настраиваем фаервол:

ufw allow 500/udp && ufw allow 4500/udp

Отключим двухсторонний пинг, чтобы затруднить обнаружение туннеля

 nano /etc/ufw/before.rules

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

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

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

screenshot 2023 08 03 105451

Раз в месяц можно запускать обновление ПО

wget https://get.vpnsetup.net/upg -O vpnup.sh && sudo sh vpnup.sh

Если потребуется удалить скрипт с сервера:

wget https://get.vpnsetup.net/unst -O unst.sh && sudo bash unst.sh

На этом все. Если вы прошли установку поэтому гайду поделитесь, пожалуйста, своим мнением. Были ли вам сложно и столкнулись ли вы с каким-либо трудностями? Спасибо 🙂

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

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

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

отправил знакомому по online игре из Туркмении, там у них вообще жестко все, жду когда скажет работает или нет. у меня пока не получается с SSL, купил домен, буду искать в интернете как настроить

Роман
Роман
16 дней назад

Привет, если ли готовые конфиги для Fail2ban, конкретно под IKEv2/IPsec. Спасибо.

Роман
Роман
Ответить на  Роман
6 дней назад

В итоге сделал сам конфиги для Fail2ban опишу тут если интересное:

jail.local

[libreswan]
enabled = true
port   = 500
protocol = tcp,udp
filter  = libreswan
action = iptables-multiport
logpath = /var/log/auth.log

filter.d/libreswan.conf

# Fail2Ban filter for libreswan authentication failures.
#
#

[INCLUDES]

# Read common prefixes.
before = common.conf

[Definition]

# Example messages, as observed on test system.

# This can occur multiple times within «single» log in attempt as VPN client could try multiple times (usually around 10).
# «xauth-psk»[5] <HOST> #<NUM>: probable authentication failure (mismatch of preshared secrets?): malformed payload in packet
# «xauth-psk»[2] <HOST> #<NUM>: XAUTH: User <UNAME>: Authentication Failed: Incorrect Username or Password

failregex = <HOST> #\d+: probable authentication failure.*$
      <HOST> #\d+: XAUTH: User \w+: Authentication Failed.*$

ignoreregex =

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