Эта команда создает 128-битовый ключ и помещает его в файл
/root/rsa.key
. Указав значение параметра, отличающееся от приведенного в данном примере, вы можете сгенерировать ключ другой длины. Данные, полученные в результате выполнения этой команды, нельзя непосредственно использовать. В начало файла надо включить следующую строку:
: RSA {
Перед и после RSA обязательно должны быть пробелы. Кроме того, в конец файла надо включить как минимум один пробел, указав за ним закрывающую фигурную скобку (
}
). Полученный результат надо скопировать в файл
/etc/ipsec.secrets
. Описанные выше действия надо
выполнить на обоих VPN-маршрутизаторах, реализованных с помощью FreeS/WAN.
В составе данных, сгенерированных посредством
ipsec rsasigkey
, содержится закомментированная строка, начинающаяся с
#pubkey=
. В ней указан открытый, или общий, ключ. Этот ключ надо передать системе, с которой должна взаимодействовать данная система.
Установка опций в файле ipsec.conf
В большинстве случаев при инсталляции 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.
•
leftnexthop
. IP-адрес обычного маршрутизатора, к которому подключена система VPN. В примере, показанном на рис. 26.6, используется адрес 10.0.0.10. Подобная информация необходима, так как KLIPS не применяет обычные средства маршрутизации, реализованные в ядре, а передает данные непосредственно следующему маршрутизатору.
•
leftfirewall
. Если подсеть, обслуживаемая VPN-маршрутизатором, содержит IP-адреса, которые не маршрутизируются обычными средствами (например, если она использует средства NAT), либо если VPN-маршрутизатор выполняет также функции брандмауэра, необходимо задать
leftfirewall=yes
.
•
rightnexthop
. В качестве значения этой опции задается IP-адрес обычного маршрутизатора, который доставляет пакеты удаленной сети.
•
right
. Данная опция указывает на внешний сетевой интерфейс удаленного VPN-маршрутизатора. Подобно
left
, вы можете принять значение этой опции по умолчанию.
•
rightsubnet
. Блок IP-адресов удаленной подсети. В примере, показанном на рис. 26.6, это сеть 192.168.1.0/24.
•
leftid
. Идентификатор "левой" системы. Это может быть IP-адрес, имя домена или имя узла, которому предшествует символ
@
(например,
@vpn.threeroomco.com
). Имя узла, перед которым указан символ
@
, означает, что система не должна пытаться преобразовать имя в IP-адрес.
•
rightid
. Значение данной опции идентифицирует "правую" часть VPN-соединения.