Как насчет документации?
Авторитетным справочным пособием по установлению соединения «PPP-через-SSH» является VPN-HOWTO для Linux, написанное в 1997 году и доступное по адресу www.linuxdoc.org/HOWTO/mini/VPN.html. К сожалению к настоящему времени этот документ несколько устарел и в нем предполагается, что вы уже хорошо знакомы с этими протоколами и теориями.
Перевод рис 3.1 на странице 70
Bears VPN Server | VPN-сервер Bears |
Falcons VPN Client | VPN-клиент Falcons |
sshd server listens on port 9876 | сервер sshd опрашивает порт 9876 |
Bears' sshd server listens on port 9876 for inbound requests from falcons and launches pppd для установления сетевого соединения | Сервер sshd на машине Bears опрашивает порт 9876 на предмет входящих запросов от Falcons и загружает pppd для установления сетевого соединения. |
Falcons pppd process connects to Bears via ssh | процесс pppd на машине Falcons связывается с Bears через ssh . |
Рисунок 3.1 Наша сеть VPN.
Мы покажем как создать VPN с помощью тех же протоколов, но более подробно и с использованием некоторого числа возможностей, не описанных и обсуждаемых в HOWTO, в частности:
- И клиент и сервер запускают свои программы от лица фиктивного пользователя (не root). Хорошей практикой с точки зрения безопасности является как можно меньшее использование root.
- На сервер накладываются ограничения, предотвращающие вход фиктивного пользователя в систему, что могло бы быть использовано для получения дополнительных привилегий.
- Сервер контролирует почти все аспекты соединения, что приводит к тому, что в конфигурировании нуждается только одна машина.
- Больше не нужно использовать метод pty-redir, описанный в HOWTO.
- Выделенный SSH-сервер с ограничивающей конфигурацией позволяет не использовать и не полагаться на действительный SSH-сервер, используемый обычными пользователями.
- Описываются протоколы SSH1 и SSH2 и идентификаторы (identities).
- Обсуждается верификация ключей на SSH-хостах, позволяющая избежать атаки типа «man-in-the-middle» (кто-то посередине).
- Аутентификация PPP (PAP/CHAP, дополнительный пароль), обеспечивает еще один уровень аутентификации в VPN.
- Новые, VPN-зависимые маршруты будут добавлены автоматически при помощи скрипта ip-up после установления VPN-соединения.
Самая большая проблема при использовании VPN-HOWTO – это то, что эта документация была написана для более старой версии pppd. Как мы опишем позже, pppd требует наличия tty , через который осуществляется связь. Метод pty-redir использовался для того, чтобы предоставить tty, через который можно установить соединение. Теперь это делается более аккуратно – при помощи аргумента pty для pppd. Также, при помощи скрипта ip-up, который вызывается после установления соединения, мы немедленно можем добавить маршруты. Большая часть других методов VPN, связанных с PPP, используют команду sleep 10, которая ожидает завершения установления PPP-соединения перед тем, как перейти к добавлению маршрутов, что может привести к задержке VPN, если PPP установится быстро или может привести к неверной установке маршрутов, если установка PPP-соединения займет определенное время.