IPSEC: различия между версиями

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску
 
(не показано 19 промежуточных версий этого же участника)
Строка 1: Строка 1:
 
=IPSEC=
 
=IPSEC=
  +
[[Категория:Linux]]
  +
[[Категория:IPSEC]]
 
У меня нет полного понимания работы IPSEC потому пока просто приведу рабочие конфинги для
 
У меня нет полного понимания работы IPSEC потому пока просто приведу рабочие конфинги для
 
* setkey
 
* setkey
 
* openswan
 
* openswan
  +
  +
<BR>
  +
Вобщем-то эти 2 конфигурации работают и вместе (закомметарить flush; spdflush;) - тогда шифруется и траффик между ВМками на нодах (192.168...) и между внешними адресами.
  +
<BR>
  +
Выглядит это так
  +
<PRE>
  +
/etc/init.d/openwpn start; /path/to/script/ipsec.sh
  +
</PRE>
  +
Тогда политики созданны е скриптом не ломаются при старте сервиса.
  +
<BR>
  +
Думаю что то же самое можно сделать только OpenSwan но я пока-что я не знаю как.
 
==setkey==
 
==setkey==
 
setkey это такая утилита из ipsec-tools<BR>
 
setkey это такая утилита из ipsec-tools<BR>
Строка 13: Строка 26:
 
<BR>
 
<BR>
 
Вот пример конфигурации шифрования между 2 хостами
 
Вот пример конфигурации шифрования между 2 хостами
  +
* infra-dal06 infra-sjc0 - это хостнеймы прописаные в /etc/hosts и вместо них можно использовать IP address
 
===Host 1===
 
===Host 1===
  +
<PRE>
 
#!/usr/sbin/setkey -f
 
#!/usr/sbin/setkey -f
   
Строка 26: Строка 41:
 
add infra-sjc01 infra-dal06 esp 24601 -E 3des-cbc "XmRVNN9Z1234567890123456";
 
add infra-sjc01 infra-dal06 esp 24601 -E 3des-cbc "XmRVNN9Z1234567890123456";
   
spdadd infra-prod-sjc01 infra-prod-dal06 any -P out ipsec
+
spdadd infra-sjc01 infra-dal06 any -P out ipsec
 
esp/transport//require
 
esp/transport//require
 
ah/transport//require;
 
ah/transport//require;
   
spdadd infra-prod-dal06 infra-prod-sjc01 any -P in ipsec
+
spdadd infra-dal06 infra-sjc01 any -P in ipsec
 
esp/transport//require
 
esp/transport//require
 
ah/transport//require;
 
ah/transport//require;
  +
</PRE>
   
 
===Host2===
 
===Host2===
  +
<PRE>
  +
#!/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;
  +
</PRE>
   
 
==OpenSWAN==
 
==OpenSWAN==
  +
===/etc/ipsec.conf===
  +
ipsec.conf отличаются только параметром listen
  +
<PRE>
  +
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
  +
</PRE>
  +
  +
===/etc/ipsec.secret===
  +
ipsec.secret идентичны на обоих нодах и по сути просто подключают файлы "сикретов"
  +
<PRE>
  +
include /etc/ipsec.d/*.secrets
  +
</PRE>
  +
  +
===/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
  +
<PRE>
  +
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 }
  +
</PRE>
  +
  +
file: conn_to_dal07.secrets
  +
<PRE>
  +
50.XX.XX.XX 184.XX.XX.XX : PSK "super-puper-secret"
  +
184.XX.XX.XX 50.XX.XX.XX : PSK "super-puper-secret"
  +
</PRE>
  +
  +
==== Нода 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
  +
<PRE>
  +
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 }
  +
</PRE>
  +
file: conn_to_dal06.secrets
  +
<PRE>
  +
50.XX.XX.XX 184.XX.XX.XX : PSK "super-puper-secret"
  +
184.XX.XX.XX 50.XX.XX.XX : PSK "super-puper-secret"
  +
</PRE>

Текущая версия на 17:46, 29 октября 2014

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"