Об авторах
О рецензентах
Благодарности
Введение
Подробно о содержании
Характеристика глав
I
Виртуальные частные сети
1. Введение в виртуальные частные сети (VPN)
Что такое VPN?
Определение
Элементы VPN
Почему VPN?
Доверяйте своим мобильным пользователям
Пример VPN
Топология сетей VPN
Хост-хост
Хост-сеть
Сеть-сеть
Преимущества и недостатки VPN
Преимущества
Недостатки
Сравнение VPN co стандартными технологиями.
Безопасность сетей VPN
Значение планирования
Использование брандмауэров
Требуется идентификатор
Храните надежно ваши секреты
Генерация ключей
Безопасная передача ключей
Вы уверены, что это работает?
Какую безопасность VPN не обеспечивает
Принятие решения об использовании VPN
Когда используется VPN
Когда не нужно использовать VPN
Группы VPN
Группа VPNC
Группа открытого кода
Протоколы VPN
Стандартные протоколы VPN
Нестандартные протоколы VPN
Заключение
2. Основные принципы VPN
Наши соглашения
Сравнение шлюзов и сетей
Пример схемы
Некоторые соображения
Распределение ключей
Масштабируемость
Совместимость
Поддержка разных платформ
Стоимость
Взаимодействие VPN и брандмауэра
Типы межсетевой защиты
Обычные брандмауэры Linux
Установка брандмауэра
Проблемы сетевой организации
Сравнение выделенных и динамических адресов
Внутренние подсети
Маски сетей
Сетевые конфликты
DNS для VPN
Маршрутизация
Уровень доверия
Протоколирование
Производительность
Производительность сервера
Производительность сети
MRTG
Заключение
II
Реализация стандартных VPN-протоколов
3. Создание VPN с использованием протоколов SSH и PPP
Обзор сочетания "PPP через SSH"
PPP
SSH
Версии протокола
Наш образец сети
Как насчет документации?
Установка "PPP через SSH" вручную
Инсталляция и проверка PPP
Включение маршрутизации IP
Создание пользователя VPN
Соглашения об именах
Установление беспарольного SSH-соединения
Установка Sudo
Установка PPP
Обход PPP-аутентификации
Установление PPP-соединения вручную
Проверка соединения
Настройка таблицы маршрутизации
Повышение безопасности VPN
Требование на PPP-аутентификацию
Накладывание ограничений на идентификаторы SSH
Запуск собственного демона ssh на VPN-сервере
Установка опций SSH в файле .ssh/config
Скрипты VPN
Установка программ vpn-server и vpn-client
Ссылки на vpn-{client, server} в /etc/init.d
Конфигурирование ip-up для запуска наших VPN-скриптов
Изменение файла authorized_keys{2}
Создание глобального конфигурационного файла VPN
Создание VPN-специфичного конфигурационного файла
Запуск и останов VPN
Поддержка нескольких сетей VPN
Поиск проблем
Проблемы PPP
Проблемы SSH
Сетевые проблемы
Ограничения
Заключение
4. Построение VPN с использованием протоколов SSL/TLS и PPP
Обзор сочетания "PPP через SSL"
PPP
SSL/TLS
Наш образец сети
Установка соединения PPP через SSL/TLS вручную
Инсталляция и проверка PPP
Включение маршрутизации IP (IP Forwarding)
Создание пользователя VPN
Соглашения об именах
Создание ключей и сертификатов
Установка сертификатов
Тестирование проверки сертификата
Установка Sudo
Установка PPP
PPP-аутентификация не требуется
Установление PPP-соединения вручную
Проверка соединения
Настройка таблицы маршрутизации
Повышение безопасности VPN
Скрипты VPN
Установка программ vpn-server и vpn-client
Ссылки на vpn-{client, server} в /etc/init.d
Конфигурирование ip-up для запуска наших VPN-скриптов
Создание глобального конфигурационного файла VPN
Создание VPN-специфичного конфигурационного файла
Запуск и останов VPN
Поддержка нескольких сетей VPN
Поиск проблем
Проблемы PPP и сетевые проблемы
Ограничения
Заключение
5. IPSec
Архитектура, компоненты и концепции IPSec
Как работает IPSec
Компоненты IPSec
Где можно реализовать IPSec
Параметры безопасности
Основные концепции
Протоколы IPSec для управления и обмена ключами
Обзор IKE
Протоколы манипуляций с пакетами IPSec
Создание VPN с помощью IPSec
IPSec для тех, кто в пути
Совместимость реализаций IPSec
FreeS/WAN
Тестирование совместимости на основе web
Тест соответствия
Уступающее шифрование
Ограничения и выводы
Заключение
6. FreeS/WAN
Обзор
Основы
KLIPS
Pluto
Уступающее шифрование
Планирование VPN
Составление плана
Соглашение об именах
Сбор адресов
Компиляция FreeS/WAN
GMP
Компиляция ядра
Компиляция FreeS/WAN
IP Security Protocol (FreeS/WAN IPSec) (Протокол безопасности IP)
IPSec: IP-in-IP Encapsulation (Tunnel mode) (Инкапсуляция IP в IP (Туннельный режим)
IPSec: Authentication Header (Аутентификационный заголовок)
HMAC-MD5 Authentication Algorithm (Алгоритм аутентификации HMAC-MD5)
HMAC-SHA1 Authentication Algorithm (Алгоритм аутентификации HMAC-SHA1)
IPSec: Encapsulating Security Payload (Инкапсуляция зашифрованных данных)
3DES Encryption Algorithm (Алгоритм шифрования 3DES)
IPSec: IP Compression (Сжатие IP)
IPSec Debugging Option (Опция наладки IPSec)
Перезагрузка
Где все находится
Безопасность файловой системы
Конфигурирование FreeS/WAN
Криптографические ключи
Соединение с сетью
Поля в файле ipsec.conf
Конфигурация хост-хост
Конфигурация хост-сеть
Конфигурация сеть-сеть
Конфигурация "Для тех, кто в пути"
Отключение VPN
Брандмауэры
NAT и маскирование IP-адресов
Краткий обзор команд IPSec
Более подробная информация
Работа и поиск ошибок в FreeS/WAN
Анализ пакетов
Ping, traceroute, Telnet
Прочие команды IPSec
"Ну конечно!"
Заключение
7. PPTP
Протокол PPTP
Реализация PPTP от компании Microsoft
Проблемы реализации PPTP от компании Microsoft
PPTP в Linux
PPTP, фильтры пакетов и брандмауэры
Инсталляция ppp-mppe
Инсталляция ppp-mppe из исходного кода
Введение расширений в ppp-mppe
Компоновка pppd
Установка ppp-mppe в директорию по умолчанию
Установка ppp-mppe в другой каталог
Модули ядра для PPP
Построение VPN-клиента PPTP
Инсталляция программного обеспечения клиента PPTP
Установка клиента PPTP-туннеля
Запуск PPTP VPN
Запуск PPTP VPN вручную
Дополнительные опции pptp-command
Построение VPN-сервера PPTP
Инсталляция pptpd
Инсталляция ppp-mppe для PoPToP
PPTPD и SLiRP
Создание конфигурационных файлов PPTPD
Создание файла опций pppd
Настройка файла chap-secrets
Запуск pptpd
Обнаружение проблем
Модули PPTP не загружаются
Включение отладки
Опции, связанные с несовместимым шифрованием
Общие проблемы PPP
Отказ в приеме входящих соединений на PPTP-сервере
PPTP VPN все равно не работает
PPTP VPN не шифруется
Заключение
III
Реализация нестандартных VPN-протоколов
8. VTun
Обзор VTun
Компоненты VTun и их функционирование
Поддерживаемые методы шифрования
Поддерживаемые режимы туннелей
IP-туннели
Туннели ethernet
Последовательные туннели
Канальные туннели
Прочие доступные свойства
Зависимости
Маршрутизация IP
OpenSSL
Исходный код ядра
Драйвер TUN/TAP
Поддержка создания мостов ethernet
PPP
zlib
Компоновка библиотек LZO
Компиляция VTun
Конфигурация VTun
Общий обзор vtund.conf
Раздел options
Раздел default и разделы отдельных туннелей
Конфигурация IP-туннеля
Туннель ethernet
Последовательный туннель
Пример канального туннеля
Выявление ошибок
Совместимость
Заключение
9. cIPe
Общий обзор cIPe
Компоненты cIPe и их функции
Поддерживаемые криптографические алгоритмы и протоколы
Протокол передачи CIPE
Инсталляция
Зависимости
Компиляция CIPE
Конфигурация CIPE
Статическая конфигурация на основе ключей (установлена по умолчанию)
Конфигурация на основе pkcipe
Использование CIPE
Ситуации
Ограничения
Заключение
10. tinc
Общий обзор tinc
Свойства
Инсталляция
Зависимости
Компоновка tinc из исходного кода
Конфигурация
Конфигурирование tinc
Добавление правил брандмауэра
Запуск tinc
Использование tinc
Статические хосты
Динамические хосты
Выявление проблем
Использование для поиска проблем средства протоколирования tinc
Использование tcpdump для перехвата трафика tinc
Ограничения
Заключение
IV
Приложения
Приложение А Коммерческие решения
Приложение B Выбор шифра
Важнейшие параметры шифров
Длина и время жизни ключа
Режимы
Критерии выбора
Безопасность
Производительность
Доступность
Приложение C Глоссарий
Предметный указатель