The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Соединения 2 локальных сетей с помощью ppp over ssh (ssh ppp network vpn)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: ssh, ppp, network, vpn,  (найти похожие документы)
From: Голованов Сергей <[email protected]> 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 и приводим строку про этого пользователя к виду: vpn-user:*:520:520::/home/vpn:/usr/sbin/pppd 2. Настраиваем pppd: в /etc/ppp/options пишем: ipcp-accept-local ipcp-accept-remote proxyarp noauth 3. Добавляем в etc/crontab строчку: * * * * * root /sbin/route add -net 192.168.2.0 gw 192.168.2.19 netmask 255.255.255.0 2>/dev/null 4. Настраиваем ssh: В /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 prog=VPND USERNAME=vpn-user IDENTITY=/etc/ssh/identify.vpn CRYPTO=blowfish LOCK_DIR=/var/run VPN_EXTERNAL=100.200.300.400 VPN_INTERNAL=192.168.1.19 #PPP_OPTIONS=" mtu 1200 mru 1200" PTY_REDIR=/usr/sbin/pty-redir PPPD=/usr/sbin/pppd ROUTE=/sbin/route SSH=/usr/bin/ssh start() { echo -n $"Starting $prog: " $PTY_REDIR $SSH -t -e none -o 'Batchmode yes' -c $CRYPTO -i $IDENTITY -l $USERNAME $VPN_EXTERNAL > /tmp/vpn-device sleep 10 $PPPD `cat /tmp/vpn-device` 192.168.2.19:$VPN_INTERNAL # $PPP_OPTIONS ret=$? sleep 10 $ROUTE add -net 192.168.1.0 gw $VPN_INTERNAL netmask 255.255.255.0 [ $ret -eq 0 ] && echo_success; touch $LOCK_DIR/vpnd.pid echo return $ret } stop() { echo -n $"Shutting down $prog: " killall pppd ret=$? [ $ret -eq 0 ] && rm -f $LOCK_DIR/vpnd.pid echo return $ret } restart() { echo $"Restarting $prog:" stop start } rhstatus() { echo $"Status of $prog:" status pppd } case "$1" in start) start ;; stop) stop ;; restart) restart ;; status) rhstatus ;; *) echo $"*** Usage: $prog {start|stop|status|restart}" exit 1 esac exit $? Вроде все. Для rh делаем service vpnd start. Должно работать.

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, neshura (?), 21:24, 14/07/2003 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А если канал скажем на 10 мин упадет
    Коннект порвется
    Для поднятия канала нужно restart делать?
     
  • 1.2, Голованов Сергей (?), 06:20, 15/07/2003 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Да, нужно делать restart. Я как раз сейчас делаю скриптик, к-й будет следить за каналом и делать рестарт или поднимать обычный ppp-линк - резервный канал. Как сделаю - могу рассказать :0)
     
  • 1.3, Илья Евсеев (?), 06:25, 15/07/2003 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Довольно странно замечание в тексте про отсутствие источников информации, так как на сайте Linux Domumentation Project есть два документа: "VPN PPP-SSH Mini-HOWTO" и "VPN HOWTO". Оба найдены простым поиском "ppp ssh".
     
  • 1.4, nece (?), 14:26, 16/07/2003 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > # Да, нужно делать restart. Я как раз сейчас делаю >скриптик, к-й будет следить за каналом и делать >рестарт или поднимать обычный ppp-линк - резервный >канал. Как сделаю - могу рассказать :0)

    Ага интересно, хорошо бы в подробностях :-)

     
  • 1.5, Mongos (?), 16:58, 16/07/2003 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    vtun.sf.net  самый простой способ.  :)
     
  • 1.6, Голованов Сергей (?), 16:20, 17/07/2003 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Mongos - риспект и спасибо. ёмаё. :0)) Сколько гемора можно было избежать :0)
     
  • 1.7, UAlex (?), 16:41, 22/07/2003 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А что за IP-шник такой странный 400.300.200.100? По моему он только 4 байта занимает.
     
     
  • 2.8, Алексей (?), 13:29, 02/09/2003 [^] [^^] [^^^] [ответить]  
  • +/
    А что за мозги у тебя такие странные? наверное в них и одного байта не поместится :-))))))
     

  • 1.9, Александр (?), 13:34, 24/12/2003 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    По материалам упомянутых "VPN PPP-SSH Mini-HOWTO" есть гораздо более простой способ организации туннелей: опции для pppd:
    pty "/usr/bin/ssh user@remote.host -o Batchmode=yes
    и  persist
    pppd сам будет вызывать ssh и сам же перезапускать соединение
     
  • 1.10, panov (?), 17:48, 23/03/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Для rh делаем service vpnd start
    shto oznachaet?
     
  • 1.11, Igor (??), 15:34, 12/09/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    задам глупый вопрос-а ip 192.168.1.19 и 2.19- это ипы маршрутизаторов в сети 1 и 2 или адреса pptpd серверов при поднятии vpn сети?
    (скрипт вроде как и работает, но сек через 10 отваливается- соединений ppp нет)
     
  • 1.12, KeNGa (?), 12:10, 06/10/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Для того чтобы в частности маршруты добавлять после успешного завершения IPCP в pppd есть скрипт /etc/ppp/ip-up.local (у меня на ALT Linux запускается из /etc/ppp/ip-up, не знаю, входит ли в дистрибутив pppd или xNix-дистрибуто-зависим). Для того, чтобы настраиваемые после поднятия IP параметры этого соединения не пересекались с другими соединениями, можно использовать опцию pppd linkname, а скрипт ip-up.local написать в следующем виде:
    [cut here]------------------------------------
    #!/bin/sh

    IP_UP_LINKDEP=/etc/ppp/ip-up.${LINKNAME}
    [ -x "${IP_UP_LINKDEP}" ] && "${IP_UP_LINKDEP" "$@"
    [cut here]------------------------------------

    Соответственно, в /etc/ppp/ip-up.${LINKNAME} пишем все команды route которые нам нужны, а также прочие вещи, типа забора почты, или открывания CDROM :)

    Аналогичным образом, все действия которые необходимо совершить, запихиваем в /etc/ppp/ip-down.${LINKNAME}

     
  • 1.13, Johnny (??), 00:11, 26/12/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Есть проблема: после ./vpnd start
    рисуется такая гадость:
    Starting VPND: Ran out of pty.
    ~▒}#▒!}!}!} }4}"}&} } } } }%}&CWj▒}'}"}(}"!▒~▒}#▒!}!}!} }4}"}&} } } } }%}&CWj▒}'}"}(}"!▒~▒}#▒!}!}!} }4}"}&} } } } }%}&CWj▒}'}"}(}"!▒~▒}#▒!}!}!} }4}"}&} } } } }%}&CWj▒}'}"}(}"!▒~▒}#▒!}!}!} }4}"}&} } } } }%}&CWj▒}'}"}(}"!▒~▒}#▒!}!}!} }4}"}&} } } } }%}&CWj▒}'}"}(}"!▒~▒}#▒!}!}!} }4}"}&} } } } }%}&CWj▒}'}"}(}"!▒~▒}#▒!}!}!} }4}"}&} } } } }%}&CWj▒}'}"}(}"!▒~▒}#▒!}!}!} }4}"}&} } } } }%}&CWj▒}'}"}(}"!▒~▒}#▒!}!}!} }4}"}&} } } } }%}&CWj▒}'}"}(}"!▒SIOCADDRT: Network is unreachable
    подскажите, что с этим делать - не могу настроить впн через ссш :(
     
  • 1.14, Johnny (??), 00:12, 26/12/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Есть проблема: после ./vpnd start
    рисуется такая гадость:
    Starting VPND: Ran out of pty.
    ~▒}#▒!}!}!} }4}"}&} } } } }%}&CWj▒}'}"}(}"!▒~▒}#▒!}!}!} }4}"}&} } } } }%}&CWj▒}'}"}(}"!▒~▒}#▒!}!}!} }4}"}&} } } } }%}&CWj▒}'}"}(}"!▒~▒}#▒!}!}!} }4}"}&} } } } }%}&CWj▒}'}"}(}"!▒~▒}#▒!}!}!} }4}"}&} } } } }%}&CWj▒}'}"}(}"!▒~▒}#▒!}!}!} }4}"}&} } } } }%}&CWj▒}'}"}(}"!▒~▒}#▒!}!}!} }4}"}&} } } } }%}&CWj▒}'}"}(}"!▒~▒}#▒!}!}!} }4}"}&} } } } }%}&CWj▒}'}"}(}"!▒~▒}#▒!}!}!} }4}"}&} } } } }%}&CWj▒}'}"}(}"!▒~▒}#▒!}!}!} }4}"}&} } } } }%}&CWj▒}'}"}(}"!▒SIOCADDRT: Network is unreachable
    подскажите, что с этим делать - не могу настроить впн через ссш :(
    Буду ОЧЕНЬ признателен, если кто-нить соображающий постучится мне в аську 150040169 и объяснит, что я делаю не так.
    или на почту
     
     
  • 2.15, fog_W (?), 14:43, 14/07/2006 [^] [^^] [^^^] [ответить]  
  • +/
    у мня тоже такая история..
    что это есть? и как его победить??
    поскажите, пожалуста..
     

  • 1.16, fog_W (?), 14:40, 19/07/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    панял, это оно (PPP) законектилось на текущий терминал ( эквивалентно ./pppd noauth)
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру