IPSEC
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"