IPSEC

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску

IPSEC

У меня нет полного понимания работы IPSEC потому пока просто приведу рабочие конфинги для

  • setkey
  • openswan


Вобщем-то эти 2 конфигурации работают и вместе (закомметарить flush; spdflush;) - тогда шифруется и траффик между ВМками на нодах (192.168...) и между внешними адресами.
Выглядит это так

/etc/init.d/openwpn start; /path/to/script/ipsec.sh

Тогда политики созданны е скриптом не ломаются при старте сервиса.
Думаю что то же самое можно сделать только OpenSwan но я пока-что я не знаю как.

setkey

setkey это такая утилита из ipsec-tools

rpm -qf  /usr/sbin/setkey
ipsec-tools-0.8.0-25.3.x86_64

Насколько я понимаю все шифрование выполняется ядром а утилита (как iptables или tc) только управляет правилами. Скорее всего все то же самое можно делать и другими средсвами
Вот пример конфигурации шифрования между 2 хостами

  • infra-dal06 infra-sjc0 - это хостнеймы прописаные в /etc/hosts и вместо них можно использовать IP address

Host 1

#!/usr/sbin/setkey -f

flush;
spdflush;



add infra-dal06 infra-sjc01 ah 15800 -A hmac-md5 "1234567890123456";
add infra-sjc01 infra-dal06 ah 24600 -A hmac-md5 "1234567890123456";
add infra-dal06 infra-sjc01 esp 15801 -E 3des-cbc "1234567890123456fq2aswZE";
add infra-sjc01 infra-dal06 esp 24601 -E 3des-cbc "XmRVNN9Z1234567890123456";

spdadd infra-sjc01 infra-dal06 any -P out ipsec
    esp/transport//require
    ah/transport//require;

spdadd infra-dal06 infra-sjc01 any -P in ipsec
    esp/transport//require
    ah/transport//require;

Host2

#!/usr/sbin/setkey -f

flush;
spdflush;



### infra-sjc01

add infra-dal06 infra-sjc01 ah 15800 -A hmac-md5 "1234567890123456";
add infra-sjc01 infra-dal06 ah 24600 -A hmac-md5 "1234567890123456";
add infra-dal06 infra-sjc01 esp 15801 -E 3des-cbc "1234567890123456fq2aswZE";
add infra-sjc01 infra-dal06 esp 24601 -E 3des-cbc "XmRVNN9Z1234567890123456";

spdadd infra-dal06 infra-sjc01 any -P out ipsec
    esp/transport//require
    ah/transport//require;

spdadd infra-sjc01 infra-dal06 any -P in ipsec
    esp/transport//require
    ah/transport//require;

OpenSWAN

/etc/ipsec.conf

ipsec.conf отличаются только параметром listen

config setup
        plutodebug=all
        plutostderrlog=/var/log/pluto.log
        protostack=netkey
        nat_traversal=yes
        oe=off
        listen=50.XX.XX.XX

include /etc/ipsec.d/*.conf

/etc/ipsec.secret

ipsec.secret идентичны на обоих нодах и по сути просто подключают файлы "сикретов"

include /etc/ipsec.d/*.secrets

/etc/ipsec.d

Нода dal06

  • file : conn_to_dal07.conf на ноде с именем dal06 и ip 184.XX.XX.XX, локальная сеть за нодой (в моем случае - для ВМок) 192.168.130.0.24, удаленная сеть - 192.168.131.0/24
  • 184.XX.XX.XX - local ip
  • 50.XX.XX.XX - remote ip
conn dal07-infra
        authby=secret
        auto=start
        ike=3des-md5
        ## phase 1 ##
        keyexchange=ike
        ## phase 2 ##
        phase2=esp
        phase2alg=3des-md5
        compress=no
        pfs=yes
        type=tunnel

        left=184.XX.XX.XX
        leftsourceip=192.168.130.1
        leftsubnets={ 192.168.130.1/255.255.255.0 }
        leftnexthop=%defaultroute
        right=50.XX.XX.XX
        rightsubnets={ 192.168.131.1/255.255.255.0 }

file: conn_to_dal07.secrets

50.XX.XX.XX  184.XX.XX.XX : PSK "super-puper-secret"
184.XX.XX.XX 50.XX.XX.XX  : PSK "super-puper-secret"

Нода dal07

  • file : conn_to_dal06.conf на ноде с именем dal07 и ip 50.XX.XX.XX, локальная сеть за нодой (в моем случае - для ВМок) 192.168.131.0.24, удаленная сеть - 192.168.130.0/24
  • 50.XX.XX.XX - local ip
  • 184.XX.XX.XX - remote ip
conn dal06-infra2
        authby=secret
        auto=start
        ike=3des-md5
        ## phase 1 ##
        keyexchange=ike
        ## phase 2 ##
        phase2=esp
        phase2alg=3des-md5
        compress=no
        pfs=yes
        type=tunnel

        left=50.XX.XX.XX
        leftsourceip=192.168.131.1
        leftsubnets={ 192.168.131.1/255.255.255.0 }
        leftnexthop=%defaultroute
        right=184.XX.XX.XX
        rightsubnets={ 192.168.130.1/255.255.255.0 }

file: conn_to_dal06.secrets

50.XX.XX.XX  184.XX.XX.XX : PSK "super-puper-secret"
184.XX.XX.XX 50.XX.XX.XX  : PSK "super-puper-secret"