Как настроить VPN (site-to-site) на основе IPsec с помощью Strongswan в Debian и Ubuntu

Как настроить VPN (site-to-site) на основе IPsec с помощью Strongswan в Debian и Ubuntu?

LinuxSecurity

Strongswan — это кроссплатформенная, полнофункциональная и широко используемая реализация VPN  с открытым исходным кодом, работающая на Linux, FreeBSD, OS X, Windows, Android и iOS. Это прежде всего демон управления ключами, который поддерживает протоколы обмена ключами в Интернете (IKEv1 и IKEv2) для установления security associations (SA) между двумя узлами. Но как настроить VPN (site-to-site) на основе IPsec с помощью Strongswan в Debian и Ubuntu?

В этой статье мы опишем, как настроить межсетевые шлюзы IPSec VPN с использованием StrongSwan на серверах Ubuntu и Debian. Под сервером мы подразумеваем, что у каждого шлюза безопасности есть подсеть. Кроме того, одноранговые узлы будут аутентифицировать друг друга, используя предварительный общий ключ (PSK).

 

Тестовая среда

Не забудьте заменить следующие IP-адреса реальными IP-адресами для настройки среды:

Site 1 Gateway (sedicomm-devgateway)
OS 1: Debian or Ubuntu
Public IP: 10.20.20.1
Private IP: 192.168.0.101/24
Private Subnet: 192.168.0.0/24

 

Site 2 Gateway (sedicomm-prodgateway)
OS 2: Debian or Ubuntu
Public IP: 10.20.20.3
Private IP: 10.0.2.15/24
Private Subnet: 10.0.2.0/24

 

Шаг 1. Включение пересылки пакетов в ядре

1. Во-первых, вам нужно настроить ядро ​​для включения пересылки пакетов, добавив соответствующие системные переменные в файл конфигурации /etc/sysctl.conf на обоих шлюзах безопасности:

$ sudo nano /etc/sysctl.conf

 

Найдите следующие строки, раскомментируйте их и установите их значения, как показано ниже (для получения дополнительной информации прочитайте комментарии в файле):

net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0 

 

vpn

 

2. Затем загрузите новые настройки, выполнив следующую команду:

$ sudo sysctl -p

 

vpn

 

3. Если у вас включена служба брандмауэра UFW, вам нужно добавить следующие правила в файл конфигурации /etc/ufw/before.rules непосредственно перед правилами фильтрации в любом из шлюзов безопасности:

Site 1 Gateway (sedicomm-devgateway)
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.0.2.0/24 -d 192.168.0.0/24 -j MASQUERADE
COMMIT

 

Site 2 Gateway (sedicomm-prodgateway)
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 192.168.0.0/24 -d 10.0.2.0/24 -j MASQUERADE
COMMIT

 

4. После добавления правил брандмауэра примените новые изменения, перезапустив UFW, как показано ниже:

$ sudo ufw disable
$ sudo ufw enable

 

Шаг 2: Установка strongSwan в Debian и Ubuntu

5. Обновите кэш пакетов на обоих шлюзах безопасности и установите пакет strongswan с помощью диспетчера пакетов APT:

$ sudo apt update
$ sudo apt install strongswan

 

6. После завершения установки сценарий установщика запустит службу strongswan и включит её автоматический запуск при загрузке системы. Вы можете проверить его статус и узнать, включен ли он, используя следующую команду:

$ sudo systemctl status strongswan.service
$ sudo systemctl is-enabled strongswan.service

 

Шаг 3: Настройка шлюзов безопасности

7. Далее необходимо настроить шлюзы безопасности с помощью файла конфигурации /etc/ipsec.conf:

Site 1 Gateway (sedicomm-devgateway)
$ sudo cp /etc/ipsec.conf /etc/ipsec.conf.orig
$ sudo nano /etc/ipsec.conf 

 

Скопируйте и вставьте следующую конфигурацию в файл:

config setup
charondebug="all"
uniqueids=yes
conn devgateway-to-prodgateway
type=tunnel
auto=start
keyexchange=ikev2
authby=secret
left=10.20.20.1
leftsubnet=192.168.0.101/24
right=10.20.20.3
rightsubnet=10.0.2.15/24
ike=aes256-sha1-modp1024!
esp=aes256-sha1!
aggressive=no
keyingtries=%forever
ikelifetime=28800s
lifetime=3600s
dpddelay=30s
dpdtimeout=120s
dpdaction=restart

 

 

Site 2 Gateway (sedicomm-prodgateway)
$ sudo cp /etc/ipsec.conf /etc/ipsec.conf.orig
$ sudo cp /etc/ipsec.conf 

 

Скопируйте и вставьте следующую конфигурацию в файл:

config setup
charondebug="all"
uniqueids=yes
conn prodgateway-to-devgateway
type=tunnel
auto=start
keyexchange=ikev2
authby=secret
left=10.20.20.3
leftsubnet=10.0.2.15/24
right=10.20.20.1
rightsubnet=192.168.0.101/24
ike=aes256-sha1-modp1024!
esp=aes256-sha1!
aggressive=no
keyingtries=%forever
ikelifetime=28800s
lifetime=3600s
dpddelay=30s
dpdtimeout=120s
dpdaction=restart

 

Вот значение каждого параметра конфигурации:

  • config setup — указывает общую информацию о конфигурации для IPSec, которая применяется ко всем соединениям.
  • charondebug — определяет, сколько выходных данных отладки Charon должно быть зарегистрировано.
  • uniqueids — указывает, должен ли конкретный идентификатор оставаться уникальным.
  • conn prodgateway-to-devgateway — определяет имя соединения.
  • type — определяет тип соединения.
  • auto — указывает как обрабатывать соединение при запуске или перезапуске IPSec.
  • keyexchange — определяет какую версию протокола IKE использовать.
  • authby — определяет, как одноранговые узлы должны аутентифицировать друг друга.
  • left — определяет IP-адрес интерфейса публичной сети левого участника.
  • leftsubnet — указывает частную подсеть позади левого участника.
  • right — указывает IP-адрес общедоступного сетевого интерфейса правого участника.
  • rightsubnet — указывает частную подсеть позади правого участника.
  • ike — определяет список используемых алгоритмов шифрования/аутентификации IKE/ISAKMP SA. Вы можете добавить список через запятую.
  • esp — определяет список алгоритмов шифрования/аутентификации ESP, которые будут использоваться для соединения. Вы можете добавить список через запятую.
  • aggressive — указывает, использовать ли Aggressive или Main режим.
  • keyingtries — указывает количество попыток согласования соединения.
  • ikelifetime — указывает, как долго должен быть доступным канал соединения ключей до повторного согласования.
  • lifetime — определяет, как долго должен длиться конкретный экземпляр соединения, от успешного согласования до истечения срока действия.
  • dpddelay — указывает временной интервал, с которым R_U_THERE/INFORMATIONAL сообщения отправляются одноранговому узлу.
  • dpdtimeout — указывает интервал времени ожидания, после которого все соединения с одноранговым узлом удаляются в случае неактивности.
  • dpdaction — определяет, как использовать протокол Dead Peer Detection (DPD) для управления соединением.

 

Для получения дополнительной информации о вышеуказанных параметрах конфигурации прочитайте справочную страницу ipsec.conf, выполнив команду:

$ man ipsec.conf[*code]

 
<h4>Шаг 4. Настройка PSK для одноранговой аутентификации</h4>
8. После настройки обоих шлюзов безопасности создайте безопасный <strong>PSK</strong>, который будет использоваться узлами с помощью следующей команды:

[code]$ head -c 24 /dev/urandom | base64

 

vpn

 

9. Затем добавьте PSK в файл /etc/ipsec.secrets на обоих шлюзах:

$ sudo vim /etc/ipsec.secrets

 

Скопируйте и вставьте следующую строку:

------- Site 1 Gateway (sedicomm-devgateway) -------

10.20.20.1 10.20.20.3 : PSK "qLGLTVQOfqvGLsWP75FEtLGtwN3Hu0ku6C5HItKo6ac="

------- Site 2 Gateway (sedicomm-prodgateway) -------

10.20.20.3 10.20.20.1 : PSK "qLGLTVQOfqvGLsWP75FEtLGtwN3Hu0ku6C5HItKo6ac="

 

10. Перезапустите программу IPSec и проверьте её состояние для просмотра подключений:

$ sudo ipsec restart
$ sudo ipsec status

 

11. Наконец, убедитесь, что вы можете получить доступ к частным подсетям с любого шлюза безопасности, выполнив команду ping:

$ ping 192.168.0.101
$ ping 10.0.2.15

 

12. Кроме того, вы можете остановить и запустить IPSec, как показано ниже:

$ sudo ipsec stop
$ sudo ipsec start

 

13. Чтобы узнать больше о командах IPSec для мануального установления соединений и многого другого, посетите справочную страницу IPSec:

$ ipsec --help

 

На этом всё! В этой статье мы описали, как настроить IPSec VPN типа «site-to-site» с использованием strongSwan на серверах Ubuntu и Debian, где оба шлюза безопасности были настроены для аутентификации друг друга с помощью PSK. Если у вас есть какие-либо вопросы или мысли, делитесь ими с нами ниже.

 

 

Спасибо за уделенное время на прочтение статьи о том, как  настроить VPN (site-to-site) на основе IPsec с помощью Strongswan в Debian и Ubuntu!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасности,  полный курс по кибербезопасностикурсы DevNet (программируемые сети) от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco и Linux с трудоустройством!

Спешите подать заявку! Осталось пару мест. Группы стартуют 22 июля, а следующая 19 августа, 23 сентября, 21 октября, 25 ноября, 16 декабря, 20 января, 24 февраля.
Что Вы получите?
  • Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
  • Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
  • Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
  • Если хотите индивидуальный график — обсудим и осуществим.
  • Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
А еще поможем Вам:
  • отредактировать резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco CCNA Routing & Switching и Linux LPI, подайте заявку или получите бесплатную консультацию.
LinuxSecurity

Больше похожих постов

Переход с CentOS 8 на CentOS 8 Stream

Переход с CentOS 8 на CentOS 8 Stream

18
0
Сегодня поговорим о том, как осуществить переход с CentOS 8 на CentOS 8 Stream. Введение CentOS до недавнего времени представляла…

Добавить комментарий

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

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Самое читаемое
Меню