компьютера, принадлежащих различным сетям. В большинстве случаев обе системы выполняют роль маршрутизаторов, но, если понадобится, вы можете инсталлировать FreeS/WAN на отдельном компьютере, который должен взаимодействовать с удаленной сетью.
Редактирование конфигурационных файлов
FreeS/WAN использует два конфигурационных файла: /etc/ipsec.secrets и /etc/ipsec.conf. Эти файлы предназначены для различных целей. В файле /etc/ipsec.secrets содержатся ключи кодирования, а в файле /etc/ipsec.conf — опции общего назначения.
Как было сказано ранее, при создании FreeS/WAN должен быть создан файл /etc/ipsec.secrets, содержащий ключи кодирования. Если этот файл не был создан или если ключи в нем отсутствуют, сгенерируйте ключи с помощью команды
# ipsec rsasigkey 128 > /root/rsa.key
Эта команда создает 128-битовый ключ и помещает его в файл /root/rsa.key. Указав значение параметра, отличающееся от приведенного в данном примере, вы можете сгенерировать ключ другой длины. Данные, полученные в результате выполнения этой команды, нельзя непосредственно использовать. В начало файла надо включить следующую строку:
: RSA {
Перед и после RSA обязательно должны быть пробелы. Кроме того, в конец файла надо включить как минимум один пробел, указав за ним закрывающую фигурную скобку (}). Полученный результат надо скопировать в файл /etc/ipsec.secrets. Описанные выше действия надо выполнить на обоих VPN-маршрутизаторах, реализованных с помощью FreeS/WAN.
В составе данных, сгенерированных посредством ipsec rsasigkey, содержится закомментированная строка, начинающаяся с #pubkey=. В ней указан открытый, или общий, ключ. Этот ключ надо передать системе, с которой должна взаимодействовать данная система.
В большинстве случаев при инсталляции FreeS/WAN создается файл /etc/ipsec.conf. Установки по умолчанию, как правило, не обеспечивают выполнение сервером требуемых функций, но содержимое этого файла можно использовать как базу для дальнейшей настройки системы. В файле /etc/ipsec.conf содержатся три основных раздела: config setup, conn %default и conn remotename.
В разделе config setup содержатся локальные опции. В файле /etc/ipsec.conf, создаваемом по умолчанию, этот раздел имеет следующий вид:
config setup
# THIS SETTING MUST BE CORRECT or almost nothing will work;
# %defaultroute is okay for most simple cases.
interfaces=%defaultroute
# Debug-logging controls: 'none' for (almost) none, 'all'
for lots.
klipsdebug=none
plutodebug=none
# Use auto= parameters in conn descriptions to control
startup actions.
plutoload=%search
plutostart=%search
# Close down old connection when new one using same ID shows
up.
uniqueids=yes
Наиболее важный компонент данного раздела — опция interfaces, которая сообщает FreeS/WAN о том, какие интерфейсы следует использовать для поддержки VPN- соединений. Значение по умолчанию %defaultroute указывает на то, что FreeS/WAN должен использовать маршрут по умолчанию. Однако вы можете указать конкретные интерфейсы. В следующем примере опция interfaces задает использование интерфейсов eth0 и ppp1:
interfaces='ipsec0=eth0 ipsec1=ppp1'
Опции klipsdebug и plutodebug задают протоколирование функций KLIPS (Kernel IP Security — IP-защита ядра) и демона Pluto. Демон Pluto является частью пакета FreeS/WAN и поддерживает обмен ключами. Если в процессе работы возникают проблемы, вам надо задать для этих опций значение all.
Pluto может загружать соединения в память или автоматически запускать их при запуске FreeS/WAN. Опции plutoload и plutostart показывают, над какими соединениями надо выполнять соответствующие действия. В большинстве случаев можно принять значения данных опций по умолчанию, но, возможно, вы захотите указать лишь некоторые соединения; для этого надо задать их имена.
Отдельные соединения описываются в разделах, которые начинаются с ключевого слова conn. Наряду с реальными соединениями FreeS/WAN поддерживает соединение %default. В разделе, соответствующем этому соединению, обычно содержатся следующие опции.
• keyingtries. Если соединение установить не удалось, FreeS/WAN предпримет новую попытку. Значение 0 данной опции указывает на то, что попытки установить соединение должны продолжаться бесконечно. Если вы хотите ограничить число попыток, укажите в качестве значения опции keyingtries конкретное число.
• authby. По умолчанию применяется метод аутентификации, задаваемый значением authby=rsasig. Согласно этому методу, для аутентификации должны использоваться ключи RSA. Существует другой способ аутентификации, но в данной главе он рассматриваться не будет.
Помимо приведенных выше опций, в данный раздел можно включить опции, которые будут рассматриваться в следующем разделе. Если вы обнаружите, что одна и та же опция содержится в описании нескольких соединений, перенесите ее в раздел по умолчанию. При этом снижается вероятность появления ошибок, а размеры конфигурационного файла уменьшаются.
Каждое соединение требует настройки, для выполнения которой надо изменить содержимое соответствующего раздела conn. За ключевым словом conn следует имя соединения, а затем — опции. В начале строки, содержащей опцию, должен стоять хотя бы один пробел. Многие из опций, включаемых в раздел conn, определяют сетевые интерфейсы. Рассмотрим рис. 26.6, на котором изображена типичная сеть, созданная с помощью FreeS/WAN. VPN-маршрутизатор, расположенный сверху, считается 'левым'. Вам необходимо указать FreeS/WAN IP-адреса, используемые в данной конфигурации. Для этого используются следующие опции.
• left subnet. Локальная подсеть, к которой подключен маршрутизатор FreeS/WAN. В примере, показанном на рис. 26.6, это сеть 172.16.0.0/16.
• left. Адрес, связанный с внешним интерфейсом сервера VPN. В большинстве случаев для этой опции задается значение %defaultroute, но вы можете указать конкретный IP-адрес. На рис. 26.6 это адрес 10.0.0.1.
