Racoon: различия между версиями
м |
|||
Строка 1: | Строка 1: | ||
=== Racoon (VPN) сервер === | === Racoon (VPN) сервер === | ||
Racoon позволяет осуществлять VPN-соединения типа "транспорт" или "туннель" между компьютерами и целыми подсетями. Представляет собой собственно сервис для осуществления первой фазы соединения и задания правил фазы 2. Основных утилит по работе с VPN-соединением две: racoonctl и setkey, функционал которых несколько пересекается. Команда racoon - собственно демон - | Racoon позволяет осуществлять VPN-соединения типа "транспорт" или "туннель" между компьютерами и целыми подсетями. Представляет собой собственно сервис для осуществления первой фазы соединения и задания правил фазы 2. Основных утилит по работе с VPN-соединением две: racoonctl и setkey, функционал которых несколько пересекается. Команда racoon - собственно демон - ожидает подключений или осуществляет подключение сам. После обмена данными по выбору шифрования и подтверждения ключевой фразы (пароль) создает cookie соединения, который используется при переподключении в "времени жизни" этого самого cookie. Далее в ход вступают правила, настроенные через setkey - это фактически инструкции для изменения маршрутов. Приведем несколько полезных команд... | ||
=== (Бес)Полезные команды === | === (Бес)Полезные команды === | ||
*'''/etc/init.d/racoon start|stop|restart|status''' - позволяет управлять службой, но делать это стоит крайне осторожно, дело в том, что рестарт этой службы обрубит соединения и вычистит куки, сохраненные после фазы 1. Может так получиться, что вторая сторона будет продолжать их требовать при попытке снова подключиться (вместо полноценной процедуры обмена сертификатами и пр.), что помешает восстановить соединение, пока, например, второй сервер не будет перезапущен тоже... Кстати, информативность сообщений о такой ошибке будет никакой. | *'''/etc/init.d/racoon start|stop|restart|status''' - позволяет управлять службой, но делать это стоит крайне осторожно, дело в том, что рестарт этой службы обрубит соединения и вычистит куки, сохраненные после фазы 1. Может так получиться, что вторая сторона будет продолжать их использовать (и, следовательно, требовать) при попытке снова подключиться (вместо полноценной процедуры обмена сертификатами и пр.), что помешает восстановить соединение, пока, например, второй сервер не будет перезапущен тоже... Кстати, информативность сообщений о такой ошибке будет... никакой. | ||
*'''racoonctl reload-config''' - без разрыва имеющихся соединений позволяет применить новые настройки - | *'''racoonctl reload-config''' - без разрыва имеющихся соединений позволяет применить новые настройки - рекомендуется использовать вместо рестарта службы, чтобы перечитать настройки. | ||
*'''racoonctl vpn-connect|vpn-disconnect <ip_gateway_of_the_2th_side> '''- явная попытка подключиться. Замечу, что при правильной настройке такое подключение осуществляется неявно при любом запросе удаленной стороны (ping, ssh и т.п.). Команды малополезны: об ошибках они НЕ сообщают. Удобны, чтобы сразу после их выполнения смотреть все ошибки в /var/log/messages. | *'''racoonctl vpn-connect|vpn-disconnect <ip_gateway_of_the_2th_side> '''- явная попытка подключиться. Замечу, что при правильной настройке такое подключение осуществляется неявно при любом запросе удаленной стороны (ping, ssh и т.п.). Команды малополезны: об ошибках они НЕ сообщают. Удобны, чтобы сразу после их выполнения смотреть все ошибки в /var/log/messages. | ||
Строка 16: | Строка 16: | ||
*'''racoonctl show-sa isakmp''' - показывает сохраненные куки для соединений (результат фазы 1) | *'''racoonctl show-sa isakmp''' - показывает сохраненные куки для соединений (результат фазы 1) | ||
=== Настройка racoon === | |||
Основной файл настроек /etc/racoon.conf: | |||
<pre> | |||
path include "/etc/racoon"; | |||
path pre_shared_key "/etc/racoon/psk.txt"; #Здесь хранятся пароли !!! | |||
path certificate "/etc/racoon/certs"; | |||
path script "/etc/racoon/scripts"; | |||
#Это оказалось важным, для того, чтобы через консоль можно было управлять демоном: | |||
listen | |||
{ | |||
adminsock "/var/lib/racoon/racoon.sock" "root" "wheel" 0600; | |||
} | |||
remote 80.254.27.106 { | |||
exchange_mode main; | |||
proposal_check obey; | |||
proposal { | |||
encryption_algorithm des; | |||
hash_algorithm sha1; | |||
authentication_method pre_shared_key; | |||
dh_group modp768; | |||
} | |||
nat_traversal on; | |||
} | |||
sainfo address 91.232.225.223/32 any address 192.168.3.0/24 any | |||
{ | |||
lifetime time 18000 seconds; | |||
encryption_algorithm des; | |||
authentication_algorithm hmac_sha1; | |||
compression_algorithm deflate; | |||
pfs_group modp768; | |||
} | |||
sainfo address 192.168.3.0/24 any address 91.232.225.223/32 any | |||
{ | |||
lifetime time 18000 seconds; | |||
encryption_algorithm des; | |||
authentication_algorithm hmac_sha1; | |||
compression_algorithm deflate; | |||
pfs_group modp768; | |||
} | |||
</pre> |
Версия 10:28, 7 мая 2013
Racoon (VPN) сервер
Racoon позволяет осуществлять VPN-соединения типа "транспорт" или "туннель" между компьютерами и целыми подсетями. Представляет собой собственно сервис для осуществления первой фазы соединения и задания правил фазы 2. Основных утилит по работе с VPN-соединением две: racoonctl и setkey, функционал которых несколько пересекается. Команда racoon - собственно демон - ожидает подключений или осуществляет подключение сам. После обмена данными по выбору шифрования и подтверждения ключевой фразы (пароль) создает cookie соединения, который используется при переподключении в "времени жизни" этого самого cookie. Далее в ход вступают правила, настроенные через setkey - это фактически инструкции для изменения маршрутов. Приведем несколько полезных команд...
(Бес)Полезные команды
- /etc/init.d/racoon start|stop|restart|status - позволяет управлять службой, но делать это стоит крайне осторожно, дело в том, что рестарт этой службы обрубит соединения и вычистит куки, сохраненные после фазы 1. Может так получиться, что вторая сторона будет продолжать их использовать (и, следовательно, требовать) при попытке снова подключиться (вместо полноценной процедуры обмена сертификатами и пр.), что помешает восстановить соединение, пока, например, второй сервер не будет перезапущен тоже... Кстати, информативность сообщений о такой ошибке будет... никакой.
- racoonctl reload-config - без разрыва имеющихся соединений позволяет применить новые настройки - рекомендуется использовать вместо рестарта службы, чтобы перечитать настройки.
- racoonctl vpn-connect|vpn-disconnect <ip_gateway_of_the_2th_side> - явная попытка подключиться. Замечу, что при правильной настройке такое подключение осуществляется неявно при любом запросе удаленной стороны (ping, ssh и т.п.). Команды малополезны: об ошибках они НЕ сообщают. Удобны, чтобы сразу после их выполнения смотреть все ошибки в /var/log/messages.
- setkey -DP - показывает "шаблоны" соединений (должны быть нетривиальные записи даже до установленного соединения).
- setkey -DH (полный аналог: racoonctl show-sa ipsec) - показывает установленные соединения (обычно парами: из А в В, из В в А) с некоторой статистикой. Замечены дублирующиеся записи (порты, например, могут быть разные), но это не влияло на работоспособность.
- racoonctl show-sa isakmp - показывает сохраненные куки для соединений (результат фазы 1)
Настройка racoon
Основной файл настроек /etc/racoon.conf:
path include "/etc/racoon"; path pre_shared_key "/etc/racoon/psk.txt"; #Здесь хранятся пароли !!! path certificate "/etc/racoon/certs"; path script "/etc/racoon/scripts"; #Это оказалось важным, для того, чтобы через консоль можно было управлять демоном: listen { adminsock "/var/lib/racoon/racoon.sock" "root" "wheel" 0600; } remote 80.254.27.106 { exchange_mode main; proposal_check obey; proposal { encryption_algorithm des; hash_algorithm sha1; authentication_method pre_shared_key; dh_group modp768; } nat_traversal on; } sainfo address 91.232.225.223/32 any address 192.168.3.0/24 any { lifetime time 18000 seconds; encryption_algorithm des; authentication_algorithm hmac_sha1; compression_algorithm deflate; pfs_group modp768; } sainfo address 192.168.3.0/24 any address 91.232.225.223/32 any { lifetime time 18000 seconds; encryption_algorithm des; authentication_algorithm hmac_sha1; compression_algorithm deflate; pfs_group modp768; }