12  /  16

Конфигурация IPSec

IPSec

IPSEC, сокращенный IP Security, представляет собой набор протоколов, стандартов и алгоритмов для защиты трафика по ненадежной сети, такой как Интернет. IPseс поддерживается всеми дистрибутивами Linux и позволяет обезопасить данные в сети. 

Конфигурация IPSec

Два сервера подключены к интернету через статические белые адреса. На каждом из них заведены приватные сети. Разумеется, эти сети не маршрутизируются в Интернете. Наша задача прокинуть туннель. Для компьютеров в офисах в разных городах не существует никакого интернета. Они считают, что находятся в локальной сети.




Phase 1
  • Метод аутентификации
    • PSK
    • PKI
  • Алгоритмы аутентификации и шифрования
    • ikev1
    • ikev2
  • Метод безопасного обмена крипто ключами
    • DH Group 2
    • DH Group 5
    • DH Group 7
    • DH Group 12
    • DH Group 14
  • Метод шифрования
    • DES
    • 3DES
    • AES128
    • AES256
  • Метод хеширования
    • MD5
    • sha1
    • sha2
    • sha128
    • sha256

Phase 2

  • Протокол
    • ESP
    • AH
  • Метод инкапсуляции
    • Tunnel
    • Transport
  • Метод шифрования
    • DES
    • 3DES
    • AES
    • AES128
    • AES256
  • Метод хеширования
    • MD5
    • sha1
    • sha2
    • sha128
    • sha256


Изначальные данные

  • VPN Server 1 c IP адресом 20.20.20.2 через публичную сеть видит VPN Server 2 с IP адресом 40.40.40.2:


  • Компьютер из локальной сети 192.168.1.0/24 с адресом 192.168.1.2 не видит компьютер из локальной сети 172.16.0.0/24 с адресом 172.16.0.2:


Подготовка сервера

Установка необходимых пакетов:

sudo apt install strongswan

Если произошла ошибка при установки, значит нужно просто добавить рабочий репозиторий, я использую:

deb http://http.us.debian.org/debian/ bullseye main contrib non-free

Статус службы можно посмотреть с помощью команды:

systemctl status ipsec.service

Дублируем конфигурационный файл перед тем как его редактировать:

sudo cp /etc/ipsec.conf /etc/ipsec.conf.ORIG

VPN Server 1

1) Редактируем конфигурационный файл:

sudo nano /etc/ipsec.conf 

содержимое:

config setup
        charondebug="all"
        uniqueids=yes
        strictcrlpolicy=no

conn %default
        type=tunnel
        dpddelay=30
        dpdtimeout=120
        dpdaction=restart
        # Phase 1
        keyexchange=ikev2
        authby=psk
        ike=aes256-sha2_256-modp2048!
        ikelifetime=86400s
        # Phase 2
        esp=aes256-sha2_256-modp2048!
        lifetime=3600s
        auto=start
#------------------------------------
conn vpnServer2
        left=20.20.20.2 
        leftsubnet=192.168.1.0/24
        right=40.40.40.2    
        rightsubnet=172.16.0.0/24

2) Добавляем строку для обмена Preshared keys:

 sudo nano /etc/ipsec.secrets

содержимое:

20.20.20.2 40.40.40.2 : PSK '#Micros@123'

3) Запуск тунеля:

sudo ipsec start

Диагностика

Статус активных туннелей можно посмотреть с помощью команды:

sudo ipsec statusall


Таблицу маршрутизации IPSec туннелей можно посмотреть с помощью команды:
sudo ip xfrm policy

Информация про первую фазу:

sudo ip xfrm state

VPN Server 2

1) Редактируем конфигурационный файл:

sudo nano /etc/ipsec.conf 

содержимое:

config setup
        charondebug="all"
        uniqueids=yes
        strictcrlpolicy=no

conn %default
        type=tunnel
        dpddelay=30
        dpdtimeout=120
        dpdaction=restart
        # Phase 1
        keyexchange=ikev2
        authby=psk
        ike=aes256-sha2_256-modp2048!
        ikelifetime=86400s
        # Phase 2
        esp=aes256-sha2_256-modp2048!
        lifetime=3600s
        auto=start
#------------------------------------
conn vpnServer1
        left=40.40.40.2
        leftsubnet=172.16.0.0/24
        right=20.20.20.2    
        rightsubnet=192.168.1.0/24

2) Добавляем строку для обмена Preshared keys:

 sudo nano /etc/ipsec.secrets

содержимое:

40.40.40.2 20.20.20.2 : PSK '#Micros@123'

3) Запуск тунеля:

sudo ipsec start

Диагностика

Статус активных туннелей можно посмотреть с помощью команды:

sudo ipsec statusall


Таблицу маршрутизации IPSec туннелей можно посмотреть с помощью команды:
sudo ip xfrm policy

Информация про первую фазу:

sudo ip xfrm state

Результат:

  • Компьютер из локальной сети 192.168.1.0/24 с адресом 192.168.1.2 видит компьютер из локальной сети 172.16.0.0/24 с адресом 172.16.0.2:


  • Компьютер из локальной сети 172.16.0.0/24 с адресом 172.16.0.1 видит компьютер из локальной сети 192.168.1.0/24 с адресом 192.168.1.1:


IPSec — это шифрованный туннель, а значит ваши данные будут в безопасности, если в промежутке включить снифер, то можно увидеть что проходят шифрованные данные, ну а что именно внутри не видно:



  • Так же для анализа предоставляю файл в формате понятный для wireshark
  • Скачать актуальный wireshark для вашей системы можно по ссылке