Маршрутизация в VPN сетях
Так как VPN может использоваться для объединения не только компьютер клиент + компьютер сервер, а для объединения сетей необходимо обеспечить автоматическую настройку маршрутизации. В прошлой заметке у меня это делается вручную после подключения, а это совсем не удобно при автоматическом подключении, поэтому пришлось разбираться как работает эта система
Итак для создания специфических маршрутов при подключение к VPN серверу необходимо создать файл /etc/ppp/ip-up.d/pptp_vpn со следующим текстом (ниже описано как правильно называть файл с маршрутами)
cat /etc/ppp/ip-up.d/pptp_vpn
#!/bin/sh
# мой маршрут пересылающий пакеты из локальной сети в сеть 192.168.80.0/24
route add -net 192.168.80.0/24 gw 192.168.100.2
Это файл должен быть исполняемым, для удаления маршрута необходимо использовать файл: /etc/ppp/ip-down.d/pptp_vpn со следующими командами ( и pptpd - для VPN сервера)
cat /etc/ppp/ip-down.d/pptp_vpn
#!/bin/sh
route del -net 192.168.80.0/24 gw 192.168.100.2
Тут видно, что мои скрипты настройки маршрутизации чрезвычайно примитивны и не учитывают множество ситуаций, но меня они устраивают. Но если потребуется большее, например на сервере необходимо выдавать маршруты в зависимости от имени подключаемого пользователи или имени интерфейса или добавлять правила фаервола, то придётся применять условия и обрабатывать переменные окружения которые формирует pptpd.
Чтобы узнать какие формируются переменные при создании нового соединения нужно добавить в созданные файлы вот такую команду:
env > /tmp/env.vpn
На моём VPN сервере я получаю вот такие переменные
cat /tmp/env.vpn
PPP_TTY=/dev/pts/0
IFNAME=ppp1
PPPLOGNAME=root
IPLOCAL=192.168.100.1
PPP_REMOTE=192.168.100.2 # IP на другом конце тонеля
PPP_IFACE=ppp1 # название интерфейса
PPP_TTYNAME=0
ORIG_UID=0
SPEED=115200 # индикатор скорости подключения, можно игнорировать
PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin
IPREMOTE=192.168.100.2
PPP_LOCAL=192.168.100.1
PPP_IPPARAM=92.255.239.93 # IP хоста откуда произошло подключение
PPPD_PID=331 # PID текущего процесса
PWD=/
PPP_SPEED=115200
PEERNAME=mywork # имя под которым подключился клиент
DEVICE=/dev/pts/0
Думаю этих переменных достаточно чтобы организовать довольно сложные конфигурации
Следует обратить внимание на то как называть файлы скриптов дополнительных маршрутов.
При создании или удалении ppp, pptp интерфейсов запускаются файлы: /etc/ppp/ip-up /etc/ppp/ip-down соответственно. Эти файлы являются скриптами которые определяют дальнейшее поведение соединения. Например, если создать файл /var/log/ppp-ipupdown.log то в нём будет отображаться некоторые переменные поясняющие дальнейшее действие скрипт, затем эти переменные используются для вызова утилиты run-parts. Вот пример поясняющий работу этой утилиты
ffsdmad@ffsdmad-home:~$ run-parts --list --regex 'vpn' /etc/ppp/ip-up.d
/etc/ppp/ip-up.d/99_pptpd_vpn
ffsdmad@ffsdmad-home:~$ run-parts --list --regex '[0-9]+vpn' /etc/ppp/ip-up.d
ffsdmad@ffsdmad-home:~$
Тоесть эта утилита запускает скрипты соответствующие регулярному выражени из указанной директории
В моём случае , да вообще по умолчанию, запускаются все скрипты из директории ip-up.d и ip-down.d, так как не задано регулярное выражение для отбора нужного скрипта:
run-parts /etc/ppp/ip-up.d --arg=ppp1 --arg= --arg=38400 --arg=192.168.100.2 --arg=192.168.100.1 --arg=vpn
В случае, когда потребуется запуск разных файлов для разных соединения и это будет невозможно сделать внутри самих скриптов с помощью переменных окружения, можно использовать механизм отбора нужного скрипта по регулярному выражению при запуске run-parts и опции --regexp
текст недоступен
другие страницы раздела
- Установка базовой системы
 - Поиск приложений по открытым файлам
 - Первые впечатления о CentOS
 - 5 самых частных команд, используемых во время установки gentoo
 - Занятный iptables
 - Ручная настройка монитора в Xorg
 - Автомонтирование в ArchLinux
 - Первые впечатления от InfraLinux, Ubuntu 8.04.1 от компании Инфра Ресурс
 - Gentoo in Ubuntu или переезд из Ubuntu в Gentoo
 - Объединение русских манов
 - Bacup + SSH через Nat - Передача большого количества файлов с помощью tar и ssh
 - Alt Linux научит заниматься сексом, manpages russian
 - Настройка кэширующего dns сервера bind
 - Переезд на OpenSuse 11 откладывается
 - Bind, настройка собственной зоны
 - Настройка AR242x 802.11abg Wireless PCI Express Adapter
 - Быстрый способ установки Samba
 - Настройка nfs сервера и nfs клиента ubuntu 8.04
 - Обновление Ubuntu 8.10 - Отважный Козерог
 - Укрепление безопасности в связи с получением реального IP адреса
 - RussianFedora - не для домашнего использования
 - Ephemeris - программа по астрономии
 - Linux драйвер для карточки Ethernet RTL8111/8168b
 - Подключение Asus EEEpc 701 к интернету через GPRS на Sony Ericsson Z530i
 - Запуска apache в окружении chroot
 - Установка VirtulaBox на Ubuntu с нестандартным ядром
 - Полезные ссылки
 - Настройка проверки орфографии в OpenOffice3
 - Установка "Налогоплательщик ЮЛ" в Linux
 - Благодаря анонимоусам я осилил LVM
 - Переезд на LVM
 - Таблица значений для настройки framebuffer
 - Производительность компьютеров в зависимости от процессора и объёма памяти
 - CentOS или Ubuntu
 - Очень простая авторизация в Squid
 - Что выбрать i386 или AMD64
 - Как узнать, что расшарено на NFS сервере
 - HOWTO: Как за 12 минут установить Linux, попробовать и удалить
 - Видео: Уменьшение размера LVM раздела, создание нового раздела, откат назад
 - Динамическое добавление swap в Linux
 - Зеркалирование репозитория Ubuntu
 - Как я навредил своим юзерам
 - Установка Ubuntu 8.04.2 Desktop на LVM
 - Как заработать на пользователях Linux
 - Открытый биос на основе технологий Linux
 - Конвертирование m4b,ape,cue в ogg, mp3 через fifo (трубку)
 - Xming, X сервер для Windows
 - Ubuntu 8.04, Wine 1.1.19, WarCraft 3
 - Asus EEEPC 701и Linux как инструмент начинающего разведчика
 - Моя мама и Linux
 - Два подхода к использованию компьютера или чем линуксоид отличается от виндузятника
 - Создание chroot для враждебного пользователя
 - Шрифты в Linux и Windows
 - Сценарий Amarok для работы Publish Tune в Psi
 - Видео ролик - Коварные планы Майкрософт
 - Касперский опять нашёл вирусы под Linux и опять обделался
 - Multiseat, Эффективное использование 2 ядерных процессоров в Linux
 - Перенос ядра из другого дистрибутива
 - Выбор WiFi USB адаптера для Linux
 - Chrome под Linux
 - Как отправить SMS из консоли
 - Почему админы любят DHCP
 - Восстановление файловой системы
 - Настройка PPPoE в Linux без NetworkManager
 - Перевод документации про OpenLDAP
 - Russian Fedora 11 + KDE4 против людей
 - Как заработать на Linux миллионы
 - Как вырезать кусок из фильма и конвертировать в flv с помощью mplayer
 - Вот и ПОЧТИ умер очередной двухпанельник Double Commander
 - Пока Майкрософт разваливается и идёт ко дну Redhat развивается и получает прибыли
 - Групповое переименование файлов в Linux
 - Два варианта добавление GPG ключа репозитория из консоли
 - Почему Mono это плохо
 - Установка PCLinux 2009 на LVM и восстановление домашнего LVM раздела
 - Точка доступа из десктопа с использованием внешного шлюза и dhcp
 - Как запрограммировать поведение сетевых интерфейсов
 - Пакетная обработка документов RTF в OpenOffice с помощью bash и OOBasic
 - Как добавить текст в защищённый файл с помощью sudo
 - Google объясняет чего не хватает линуксу
 - Выбор web камеры для Linux, Genius Eye 110 - плохой выбор
 - Выбор web камеры для Linux, Gembird CAM90U и Genius iSlim 1322AF, Genius iLook 1321v2 - хороший выбор
 - Как установить TremFusion в Ubuntu 8.04
 - Первая доза закончилась, скоро в школах начнётся ломка или бабки на бочку
 - Как появляются Боги OpenSource
 - Как удалить из фильмов английскую звуковую дорожку
 - Slackware13 мистика какая то
 - Установка Slackware13 на LVM
 - Linux территория безопасности или опять наш Касперский хочет жрать
 - Как навариться на винтузятниках и линуксоидах при этом сделав им хорошо
 - У линуксоидов есть деньги(надо же) и они покупают игры
 - Передача звука с микрофона по сети
 - Ubuntu 9.04 для жены
 - Автоматическая обработка файлов на хостинге с помощью bash
 - Как удалить на хостиге файл имя которого не набрать в консоли
 - Установка Flash player AMD64 для Firefox и Chrome одной командой
 - Печать в PDF через Cups
 - Противостояние линуксоидов и виндузятников в искусстве, стёб
 - LVM использование снапшотов
 - Удаление физического раздела из LVM
 - Страсти по виндовым шрифтам
 - Автоматическая обработка файлов, часть два
 - Настройка печати на PDF принтер в Ubuntu 9.10
 - Ubuntu 9.10 добавление resume раздела
 - Сравнение файловых систем ext2 ext3 ext4 xfs reiserfs btrfs vfat jfs для домашней директории
 - Machinarium - постапокалиптическая игра для линуксоидов
 - Как обезопасить свои каналы общения, своих друзей и близких с помощью шифрования в Jabber
 - Исключение Gimp из Ubuntu
 - Из Gnome в Xmonad за 5 минут, всё просто
 - Шифрование бекапов для хранения в Gmail
 - Шикарный пиар Ideco - "Добрыня Сисадминыч и айдеко-кладенец"
 - Рабочий стол с защитой от ребёнка
 - Google опять выпустил beta версию Chrome и танцует и поёт
 - С/C++: libconfig - библиотека для обработки конфигурационных файлов
 - SoftMaker2008 или OpenOffice3.1
 - MS IE сливает FF3 по всему миру, а FF3 сливает Opera по РФии
 - Скриншоты Opera 10.50 без поддержки Qt
 - Объединение двух сетей через VPN
 - Google проводит сбор идей на счёт развития своих сервисов и сбор голосов в пользу открытых технологий
 - Настройка mpd, музыкального демона
 - Объединение DNS зон в VPN сетях
 - grub2: ручная загрузка
 - Выбор web камеры для Linux, Age Star S-PC250 - плохой выбор
 - Выбор web камеры для Linux, Icam 7120 - хороший выбор
 - Загрузка с дискеты без дисковода
 - Добавление репозитария в Ubuntu 9.10
 - в ожидании Ubuntu 10.04 LTS
 - Тестирование Ubuntu 10.04 beta и установка на LVM
 - Выбор web камеры для Linux: Genius iSlim 1300v2 - хороший выбор
 - Декомпиляция SWF в Linux
 - Как обойти ограничение DynDNS на создание wildcard
 - apache генерация списка файлов в utf-8
 - Обновление Ubuntu 10.04 до 12.04
 - Ubuntu 12.04 установка WiFi card Marvel 8335
 - Wi-Fi-роутер TP-Link TL-MR3020
 - Редирект неавторизованных в squid пользователей на внутренний ресурс
 - Удаление ботнета sfewfesfs
 - Настройка inotify для работы с большими файловыми системами
 - Двадцатка самых популярных имён пользователей при взломе серверов
 
комментарии (13)
        
          
          
          
          
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
          
          
          
          
          
        
2010-02-03 07:54:56
2010-02-02 15:39:56
2010-02-04 10:28:43
2010-02-04 11:43:13
2010-02-07 04:39:57
2010-02-04 20:27:48
2010-02-08 11:55:25
2010-02-08 11:58:33
2010-02-09 00:08:10
2010-02-16 13:39:03
2010-02-16 13:41:17
2010-11-03 21:31:42
2010-11-03 21:37:11