From: Голованов Сергей <azgs@mail.ru>
Date: Mon, 14 Jul 2004 13:01:37 +0000 (UTC)
Subject: Соединения 2 локальных сетей с помощью ppp over ssh
соединения 2 локальных сетей с помощью ppp over ssh за 5 минут
-------------------
Когда понадобилось соединить 2 локалки без пересборки ядра, я перечитал
много документации. Статья на opennet.ru "Создание VPN GRE тунеля в
Linux" подвигла меня на подобное творение, но про ppp over ssh, т. е.
vpn , но с шифрованием.
Просмотрев много статей по созданию тунелей я к своему удивлению не
нашел ничего о том как быстро и без проблем создать шифрованный тунель
между двумя машинами (сетями) через интернет. И вот решил написать.
Буду предельно краток...
И так, ДАНО:
1. Сеть 192.168.1.0/24 (255.255.255.0) В которой есть машина подключенная
к интернет. Со стороны локальной сети машина имеет IP: 192.168.1.1 (на eth1)
а со стороны инета имеет IP: 100.200.300.400 (на eth0) Назовем эту машину ALPHA.
2. Сеть 192.168.2.0/24 (255.255.255.0) В которой есть машина подключенная
к интернет. Со стороны локальной сети машина имеет IP: 192.168.2.1 (на eth1)
а со стороны инета имеет IP: 400.300.200.100 (на eth0) Назовем эту машину BETTA.
Цель: Надо организовать шифрованный тунель между машинами ALPHA и BETTA,
чтобы компьютеры одной сети имели доступ к компьютерам в другой сети.
Считаем, что ssh и pppd уже установлен в обоих системах.
На машине ALPHA делаем:
1. Заводим пользователя vpn-user: adduser vpn-user.
Заходим ручками в etc/passwd и приводим строку про этого пользователя к виду:
В /etc/ssh/sshd_config кроме прочих опций надо чтоб было:
PubkeyAuthentication yes
Остальное - по вкусу.
На машине BETTA делаем:
1. Настраиваем /etc/ppp/options:
lock
noauth
2. Делаем su -
И: ssh 100.200.300.400 (для появления файла known_hosts)
ssh-keygen -t rsa -f /etc/ssh/vpn-identity
После этого берем /etc/ssh/vpn-identity.pub и копируем его на машину ALPHA
в каталог /home/vpn/.ssh в файл с именем authorized_keys.
3. Качаем программку pry-redir:
http://uncensored.citadel.org/pub/unix/pty-redir-0.1.tar.gz
Распаковываем, делаем make, складываем то, что получилось в /usr/sbin
4. Пишем например такое:
/etc/init.d/vpnd:
#!/bin/sh
#
# vpnd: Starts the ppp over ssh tunnel
#
# Version: @(#) /etc/init.d/vpnd 1.0
#
#########
# Source function library.
. /etc/init.d/functions