• Библиотека GMP. FreeS/WAN использует библиотеку GМР (
http://www.swox.com/gmp/
). Данная библиотека поставляется в составе многих дистрибутивных пакетов Linux. Если она отсутствует, вам следует установить ее.
• Библиотека ncurses. При настройке FreeS/WAN может потребоваться библиотека
ncurses
. Она не является необходимым компонентом, но наличие ее желательно. Эта библиотека часто используется, поэтому не исключено, что она установлена в вашей системе.
Для инсталляции FreeS/WAN выполните следующие действия.
1. Убедитесь, что на вашем компьютере установлены все описанные выше компоненты.
2. Распакуйте пакет FreeS/WAN, выбрав для размещения его
содержимого произвольный каталог, например подкаталог каталога
usr/src
. После распаковки не копируйте и не перемещайте каталог
freeswan-версия
, так как это может повредить символьные ссылки.
3. Сделайте текущим каталог с исходными кодами FreeS/WAN и введите одну из команд, предназначенных для конфигурирования пакета, внесения изменений в ядро Linux и создания FreeS/WAN. Команда
make oldgo
ориентирована на использование существующей конфигурации ядра и установок FreeS/WAN, заданных по умолчанию, команда
make ogo
вызывает
make config
, команда
make menugo
использует для настройки ядра
make menuconfig
, а команда
make
вызывает
make xconfig
. Использование последних трех команд позволяет изменить конфигурацию ядра.
4. Введите команду
make kinstall
для создания ядра. В результате будут созданы ядро и необходимые модули, а также вызвана команда
make modules_install
для инсталляции модулей.
5. Измените конфигурацию LILO, GRUB или другого инструмента, используемого для загрузки ядра Linux. Вам надо скопировать файл ядра из каталога
/usr/src/linux/arch/architecture-code/boot
, отредактировать файл
/etc/lilo.conf
(или другой конфигурационный файл) и ввести команду
lilo
(или другую команду загрузки).
6. Перезагрузите компьютер. В процессе перезагрузки следите за тем, чтобы ядро системы было указано правильно.
С этого момента ядро вашей системы может поддерживать FreeS/WAN. В процессе установки должен быть создан файл
/etc/ipsec.secrets
, содержащий ключи кодирования. Этот файл будет использоваться в дальнейшем, сейчас же важно убедиться, что он есть в наличии и содержит некоторые ключи (ключи выглядят как наборы шестнадцатеричных цифр).
Для того чтобы можно было использовать средства FreeS/WAN, настройте как минимум два компьютера, принадлежащих различным сетям. В большинстве случаев обе системы выполняют роль маршрутизаторов, но, если понадобится, вы можете инсталлировать 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=
. В ней указан открытый, или общий, ключ. Этот ключ надо передать системе, с которой должна взаимодействовать данная система.
Установка опций в файле 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
показывают, над какими соединениями надо выполнять соответствующие действия. В большинстве случаев можно принять значения данных опций по умолчанию, но, возможно, вы захотите указать лишь некоторые соединения; для этого надо задать их имена.