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

Материал из Etersoft wiki
Перейти к навигацииПерейти к поиску
м
Строка 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)


To Be Continued...
=== Настройка 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;
        }