компьютера, принадлежащих различным сетям. В большинстве случаев обе системы выполняют роль маршрутизаторов, но, если понадобится, вы можете инсталлировать 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.