IPSEC: различия между версиями
Sirmax (обсуждение | вклад) (→Host 1) |
Sirmax (обсуждение | вклад) (→IPSEC) |
||
| (не показано 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 |
+ | spdadd infra-sjc01 infra-dal06 any -P out ipsec |
esp/transport//require |
esp/transport//require |
||
ah/transport//require; |
ah/transport//require; |
||
| − | spdadd infra |
+ | 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"