тайная канцелярия КОНСТАНТИН ГАВРИЛЕНКО Спецвыпуск: Хакер, номер #068, стр. 068-056-3 Для статьи использовалocь последнee стабильнoe 2.6.16 ядрo, ipsec-tools 0.6.5 и iproute2 2.6.16. Опустим стандартный процесс сборки и установки, сконцентрировавшись непосредственно на самом процессе конфигурации. проверь, что в конфигурационном файле ядра следующие опции отмечены для включения в ядрo или выбраны как модули CONFIG_XFRM=y CONFIG_CRYPTO_MD5=y CONFIG_XFRM_USER=m CONFIG_CRYPTO_SHA1=m CONFIG_NET_KEY=m CONFIG_CRYPTO_SHA256=m CONFIG_INET_AH=m CONFIG_CRYPTO_SHA512=m CONFIG_INET_ESP=m CONFIG_CRYPTO_DES=y CONFIG_INET_IPCOMP=m CONFIG_CRYPTO_AES=m CONFIG_INET_TUNNEL=m CONFIG_CRYPTO_DEFLATE=m ЛИСТИНГ проверь, что два хоста, между которыми ты собираешься устанавливать туннель, не имеют никаких препятствий для связи (если установлен брандмауэр, то разреши соединения на UDP-порты 500, 4500 и протоколы 50 и 51) iptables -A INPUT -i eth0 -p 50 -j ACCEPT iptables -A INPUT -i eth0 -p 51 -j ACCEPT iptables -A INPUT -i eth0 -p udp --dport 500 -j ACCEPT iptables -A INPUT -i eth0 -p udp --dport 4500 -j ACCEPT для отделения потока трафика, пришедшего через IPSec-туннель, необходимо пометить входящие ESP-пакеты и разрешить беспрепятственный доступ или перенаправить их в отдельную таблицу iptables -t mangle -A PREROUTING -i eth0 -p esp -j MARK --set-mark 50 iptables -A INPUT -i eth0 -m mark --mark 50 -j ACCEPT [конфигурация «хост в хост».] Существует достаточно возможностей установления безопасного соединения между двумя статическими хостами, начиная от использования SSH для защиты административного канала управления или инкапсуляции всего трафика в PPP- канал связи с последующей защитой через SSH или SSL. Хотя наиболее простым и правильным решением в данном случае будет установка хост в хост IPSec соединения, используя PSK для аутентификации сторон. Ракун — достаточно сложный в конфигурации демон с огромным количеством опций, большинство из которых, к счастью, можно оставить по умолчанию, что значительно облегчает задачу. В первую очередь нужно установить пароль. Значение ключа устанавливается в файле psk.txt (проверь, чтобы права доступа были 400, -r-------- 1 root root, иначе Ракун не запустится). генерирование случайного ключа arhontus / # dd if=/dev/random bs=16 count=1 | xxd -ps 1+0 records in 1+0 records out 16 bytes (16 B) copied, 4.4e-05 seconds, 364 kB/s cc0c6778f478f5aff03caa38779090c1 помести ключ в файл psk.txt, который имеет двухстолбцовую структуру arhontus racoon # cat psk.txt 192.168.55.66 cc0c6778f478f5aff03caa38779090c1 В первом столбце указывается идентификатор хоста, будь-то ИП-адрес или имя хоста, а во втором — сам ключ. Такую же операцию проведи и на втором хосте, заменив ИП на противоположный. Далее необходимо задать политику безопасности IPSec, а именно — какие каналы коммуникации необходимо защитить, а так же каким образом будет осуществляться защита соединения. Политику безопасности возможно определить для хостов и для направления соединения, а также и на уровне сокета, которым пользуется программа. При запуске Ракун не пытается немедленно установить соединение, а ждет уведомления от ядра о том, что данное соединение становится активным и нуждается в защите, после чего инициирует обмен ключами. |