IPSEC: различия между версиями
Sirmax (обсуждение | вклад) (→Host 1) |
Sirmax (обсуждение | вклад) (→IPSEC) |
||
(не показано 14 промежуточных версий этого же участника) | |||
Строка 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> |
<PRE> |
||
Строка 62: | Строка 76: | ||
==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"