_Raven_

Настройка VPN для дистрибутивов RedHat (Fedora Core, Enterprise Linux etc)

293 сообщения в этой теме

Недавно удалось разобраться настройками VPN в дистрибутивах типа RedHat (Fedora Core, Enterprise Linux, возможно, ASP)

Предполагаем, что к Корбине мы подключаемся через eth0 и VPN у нас будет жить на ppp0. Если у вас это
по-другому, подставляете свои интерфейсы.

Так же предполагается, что PPP сам по себе у вас настроен, то есть все, что нужно, в /etc/modprobe.conf (/etc/modules.conf) присутствует.

Сначала ставим пакет pptp (иногда он называется pptp-linux). Для Fedora Core (поручиться могу за версии 3,4,5,6) он имеется в репозитарии extras, и устанавливается командой:

yum --enablerepo=extras install pptp

В файл /etc/sysconfig/network-scripts/route-eth0 записываем список статических маршрутов к локальным ресурсам. Они будут добавляться при подъеме интерфейса eth0 и, соответственно, удаляться при его отключении:

10.0.0.0/8 via ваш_шлюз
62.205.179.146 via ваш_шлюз
85.21.79.0/24 via ваш_шлюз
85.21.90.0/24 via ваш_шлюз
85.21.52.198 via ваш_шлюз
85.21.52.254 via ваш_шлюз
85.21.138.3 via ваш_шлюз
83.102.146.96/27 via ваш_шлюз
83.102.237.231 via ваш_шлюз
195.14.50.1 via ваш_шлюз
195.14.50.3 via ваш_шлюз
195.14.50.16 via ваш_шлюз
195.14.50.26 via ваш_шлюз

Вместо ваш_шлюз поставьте то, что DHCP вам выдает в качестве шлюза.

В /etc/sysconfig/network-scripts/ifcfg-eth0 добавляем строчку:

METRIC=10

Это нужно, чтобы не заниматься извращениями с удалением/добавлением маршрутов. Есть СТАНДАРТНЫЕ механизмы работы IP-стека, ими и надо пользоваться.

Создаем файл /etc/sysconfig/network-scripts/ifcfg-corbina со следующим содержимым:

ONBOOT=no
USERCTL=yes
TYPE=Modem
PEERDNS=yes
DEVICE=ppp0
PROVIDER=corbina
DEFROUTE=no

Далее начинаем пилить настройки PPP. Записываем файл /etc/ppp/peers/corbina:

updetach
remotename corbina
linkname corbina
ipparam corbina
pty "pptp vpn.corbina.ru --nolaunchpppd "
name your_name
usepeerdns
nodefaultroute
noauth
file /etc/ppp/options.pptp

Соответственно в /etc/ppp/chap-secrets будет:

your_name corbina your_password *

В /etc/ppp/options.pptp:

lock
noauth
nobsdcomp
nodeflate

Впрочем, я тут ничего не менял. Это то, что там было по-умолчанию (просто, на всякий случай).

А теперь самое интересное - скрипты для замены маршрутов.

/etc/ppp/ip-up.local:

#!/bin/sh

eth0_gw=`/sbin/route -n | awk '/^0.0.0.0/ {print $2}'`
vpn_server=`/sbin/route -n | awk '/ppp0/ {print $1}'`

if [ -n $vpn_server ]; then
/sbin/route del -host $vpn_server ppp0
/sbin/route add -host $vpn_server gw $eth0_gw eth0
/sbin/route add default dev ppp0
fi

/etc/ppp/ip-down.local

#!/bin/bash

/sbin/route del default dev ppp0

routes=`/sbin/route -n`
vpn_list=`host vpn.corbina.ru | awk '/vpn.corbina.ru has address/ {print $4}'`


for vpn_server in $vpn_list; do
if (echo $routes | grep -q $vpn_server); then
/sbin/route del -host $vpn_server
fi
done

Собственно здесь уже можно проверять соединение.

ifup corbina - подъем туннеля
ifdown corbina - отключение туннеля

До этого момента все, что использовалось, требовало только стандартных средств. Если есть же хочется, чтобы это еще и поднималось автоматом придется немножко поизвращаться. Одна замена ONBOOT=no на ONBOOT=yes в ifcfg-corbina тут не поможет. Проблема тут в том, что интерфейсы поднимаются в алфавитном порядке и опускаются в нем же. Поскольку, VPN при старте должен быть последним, а при отключении первым, через наименование это не решить.

Для FC5 проще всего применить злобный хак и прописать TYPE=Bridge вместо TYPE=Modem. ifup в любом случае отработает корректно, но для bridge четко определен порядок подключения и отключения (после основных интерфейсов при старте и до них при выключении).

Если такой способ не помогает (например, если bridge реально используется), придется идти по другому пути и прописать TYPE=VPN, а для него определить DEVICETYPE в /etc/sysconfig/network-scripts/network-functions и соответствующие правила (по аналогии с Bridge) в /etc/init.d/networks Редактировано пользователем _Raven_
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Использую Red Hat Enterprise Linux 4.
До этого удавалось поднимать VPN только при помощи KVpnc, что очень неудобно.
Проверил, этот способ работает как с "pptp-linux-1.4.0-1", так и с "pptp-1.7.0-1".
От себя хотелось бы добавить, в RHEL нету yum, т.ч. pptp и MPPE надо искать самому. Мой файл route-eth0, выглядит немного по другому:[code]GATEWAY14=10.210.0.17
NETMASK14=255.255.255.255
ADDRESS14=195.14.50.26
GATEWAY13=10.210.0.17
NETMASK13=255.255.255.255
ADDRESS13=195.14.50.21
----- КУСЬ -----
GATEWAY0=10.210.0.17
NETMASK0=255.0.0.0
ADDRESS0=10.0.0.0[/code]
VPN поднимается при загрузке компьютера, решил очень просто. Мой компьютер используется в качестве роутера, поэтому я просто добавил в конец скрипта Маскарадинга команду на запуск VPN.
[quote name='_Raven_' post='1056741934' date='Sep 3 2006, 22:34']
Если есть же хочется, чтобы это еще и поднималось...[/quote]
Улыбнуло, пасиб :angry:

P.S. Хороший HOWTO, я бы прикрепил. Редактировано пользователем Animal.X
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
а не подскажете почему у меня файл /etc/ppp/peers/corbina перезаписывается вот этим?
[code]connect "usr/bin/wvdial --remotename corbina --chat 'Default'"[/code]
А, похоже, что это system-config-network меняет.

[b]2Animal.X[/b] Подскажи плиз свои настройки. Совсем измучался :)

ЗЫ Настраиваю на RHEL4 который стоит в качестве прокси и файрвола.

Рвется соединение и в и-нет выйти не получается
# less /var/log/messages
Sep 9 00:56:51 gate ifup-ppp: pppd started for corbina on at
Sep 9 00:56:51 gate pppd[28005]: pppd 2.4.2 started by root, uid 0
Sep 9 00:56:51 gate pppd[28005]: Using interface ppp0
Sep 9 00:56:51 gate pptp[28016]: anon log[main:pptp.c:267]: The synchronous pptp option is NOT activated
Sep 9 00:56:51 gate pptp[28020]: anon log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 1 'Start-Control-Connection-Request'
Sep 9 00:56:51 gate pppd[28005]: Connect: ppp0 <--> /dev/pts/8
Sep 9 00:56:51 gate pptp[28020]: anon log[ctrlp_disp:pptp_ctrl.c:738]: Received Start Control Connection Reply
Sep 9 00:56:51 gate pptp[28020]: anon log[ctrlp_disp:pptp_ctrl.c:772]: Client connection established.
Sep 9 00:56:52 gate pptp[28020]: anon log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 7 'Outgoing-Call-Request'
Sep 9 00:56:52 gate pptp[28020]: anon log[ctrlp_disp:pptp_ctrl.c:857]: Received Outgoing Call Reply.
Sep 9 00:56:52 gate pptp[28020]: anon log[ctrlp_disp:pptp_ctrl.c:896]: Outgoing call established (call ID 0, peer's call ID 10558).
Sep 9 00:56:55 gate pppd[28005]: CHAP authentication succeeded
Sep 9 00:56:55 gate pppd[28005]: local IP address 89.178.107.243
Sep 9 00:56:55 gate pppd[28005]: remote IP address 195.14.40.9
Sep 9 00:56:55 gate pppd[28005]: primary DNS address 213.234.192.7
Sep 9 00:56:55 gate pppd[28005]: secondary DNS address 195.14.50.1
Sep 9 00:56:55 gate NET: /etc/sysconfig/network-scripts/ifup-post : updated /etc/resolv.conf
Sep 9 00:56:55 gate su(pam_unix)[28069]: session opened for user root by (uid=0)
Sep 9 00:56:55 gate su(pam_unix)[28069]: session closed for user root
Sep 9 00:57:47 gate pptp[28020]: anon log[ctrlp_disp:pptp_ctrl.c:928]: Call disconnect notification received (call id 10558)
Sep 9 00:57:47 gate pptp[28020]: anon log[ctrlp_disp:pptp_ctrl.c:787]: Received Stop Control Connection Request.
Sep 9 00:57:47 gate pptp[28020]: anon log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 4 'Stop-Control-Connection-Reply'
Sep 9 00:57:47 gate pptp[28020]: anon log[callmgr_main:pptp_callmgr.c:255]: Closing connection (shutdown)
Sep 9 00:57:47 gate pptp[28020]: anon log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 12 'Call-Clear-Request'
Sep 9 00:57:47 gate pptp[28020]: anon log[call_callback:pptp_callmgr.c:78]: Closing connection (call state)
Sep 9 00:57:47 gate pppd[28032]: Modem hangup
Sep 9 00:57:47 gate pppd[28032]: Connection terminated.
Sep 9 00:57:47 gate pppd[28032]: Connect time 1.0 minutes.
Sep 9 00:57:47 gate pppd[28032]: Sent 185694232 bytes, received 183 bytes.
Sep 9 00:57:49 gate NET: /etc/sysconfig/network-scripts/ifdown-post : updated /etc/resolv.conf
Sep 9 00:57:49 gate su(pam_unix)[28172]: session opened for user root by (uid=0)
Sep 9 00:57:49 gate su(pam_unix)[28172]: session closed for user root
Sep 9 00:57:49 gate pppd[28032]: Connect time 1.0 minutes.
Sep 9 00:57:49 gate pppd[28032]: Sent 185694232 bytes, received 183 bytes.
Sep 9 00:57:49 gate pppd[28032]: Exit. Редактировано пользователем Padre
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
[quote name='Animal.X' post='1056751009' date='Sep 8 2006, 11:49']
Использую Red Hat Enterprise Linux 4.
До этого удавалось поднимать VPN только при помощи KVpnc, что очень неудобно.
[/quote]
По себе знаю. Первое, что хочется, - это заходить в сеть по-человечески, а не как в виндах :P
[quote name='Animal.X' post='1056751009' date='Sep 8 2006, 11:49']
Проверил, этот способ работает как с "pptp-linux-1.4.0-1", так и с "pptp-1.7.0-1".
От себя хотелось бы добавить, в RHEL нету yum, т.ч. pptp и MPPE надо искать самому.
[/quote]
yum тут не очень поможет. Во-первых, стандартный способ таскать обновления в RHEL - up2date, во-вторых для yum, даже, если он установлен, нужны репозитарии с пакетами под RHEL - есть ли такие, я не знаю.
[quote name='Animal.X' post='1056751009' date='Sep 8 2006, 11:49']
P.S. Хороший HOWTO, я бы прикрепил.
[/quote]
А как это сделать?
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
[b]Padre[/b], попробуй в файле "/etc/ppp/peers/corbina" убрать пробел перед последней кавычкой, тоесть чтобы было не [code]pty "pptp vpn.corbina.ru --nolaunchpppd "[/code], а [code]pty "pptp vpn.corbina.ru --nolaunchpppd"[/code] Если не получится, то после работы выложу свои настройки.
[quote name='_Raven_' post='1056753882' date='Sep 9 2006, 11:54']
А как это сделать?
[/quote]
Надо чтобы модераторы обратили внимание на эту тему.

P.S. Осталось на форуме найти скриптик, чтобы при обрыве VPN, он его заного поднимал.
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Прикрепляю.
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
[b]Animal.X[/b]
Не помогает. Тоже самое. ;)
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Прикрепил.
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Очень сложно
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Автор молодец. Я сам давно хотел описать настройки VPN под FC? но что-то руки никак не доходили.

Есть только оодно замечание.
[quote]yum --enablerepo=extras install pptp[/quote]
работать не будет так как изначально интернета у нас нет и получить этот пакет из репозитария мы не сможем ((

А так сейчас настрою FC6 и скажу если что изменилось. или выложу свои настройки
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
[quote name='Andrey-m' post='1061506884' date='Oct 26 2006, 17:24']
Автор молодец. Я сам давно хотел описать настройки VPN под FC? но что-то руки никак не доходили.

Есть только оодно замечание.

работать не будет так как изначально интернета у нас нет и получить этот пакет из репозитария мы не сможем ((

А так сейчас настрою FC6 и скажу если что изменилось. или выложу свои настройки
[/quote]

респект, Andrey-m
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
[quote name='Andrey-m' post='1061506884' date='Oct 26 2006, 16:24']
Автор молодец. Я сам давно хотел описать настройки VPN под FC? но что-то руки никак не доходили.

Есть только оодно замечание.

работать не будет так как изначально интернета у нас нет и получить этот пакет из репозитария мы не сможем ((

А так сейчас настрою FC6 и скажу если что изменилось. или выложу свои настройки
[/quote]
Плис помоги мне настроить FC 5.. плис++++
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Настройки разжевали хорошо. А вот где взять пакеты pptp и mppe? :( Обшарил диски , че-то не нашел. Не могли бы выложть, а то инета-то нету. Редактировано пользователем Dominator
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 Dominator: "Use the Force Luke!"
Поиск это наше все! -> [url="http://homenet.corbina.net/index.php?s=&showtopic=5501&view=findpost&p=87020"]Fedora Core4 VPN[/url]
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
[b]Animal.X[/b], молодца ^_^ отличный набор готовых к употреблению файлов, практически сразу все заработало на FC5.
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
[root@localhost ~]# /etc/sysconfig/network-scripts/ip-up.local
ppp0: Неизвестный хост
gw: Неизвестный хост
SIOCADDRT: Нет такого устройства
[root@localhost ~]#
Что это значит? Редактировано пользователем Dominator
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Сори за деильный пост. Не догнал сразу как инет включать :tease: Редактировано пользователем Dominator
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
помогло бороться с pppd. :D
Осталась одна проблема - зависание тунеля - кто как борется?
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
[quote name='Weaver' post='1061689317' date='Dec 2 2006, 15:25']
помогло бороться с pppd. :rofl:
Осталась одна проблема - зависание тунеля - кто как борется?
[/quote]
/etc/init.d/network restart
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
[quote name='_Raven_' post='1061697264' date='Dec 3 2006, 21:36']
/etc/init.d/network restart
[/quote]

мгм - вообще то ответ не совсем в тему. Вопрос как с этим бороться в автоматическом режиме, дабы само определяло, что тунель завис и перезапускало.
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
> Вопрос как с этим бороться в автоматическом режиме, дабы само определяло,
> что тунель завис и перезапускало.

По моему очевидно:
в кроне вызывать скрипт, который будет пинговать google.com, rambler.ru и т.п.
Если не пингуется то перезапускать
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
[quote name='dilmah' post='1061697793' date='Dec 3 2006, 22:38']
> Вопрос как с этим бороться в автоматическом режиме, дабы само определяло,
> что тунель завис и перезапускало.

По моему очевидно:
в кроне вызывать скрипт, который будет пинговать google.com, rambler.ru и т.п.
Если не пингуется то перезапускать
[/quote]

крон ИМХО не выход, крон на каждую секунду вешать не рекомендуется, да и коряво как.
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
> крон ИМХО не выход, крон на каждую секунду вешать не рекомендуется,
> да и коряво как.

не на каждую секунду а на каждую минуту.
не вижу ничего страшного сделать раз в минуту пинг. Ты недооцениваешь мощь современных компьютеров.. Если тебя волнует то что диск будет каждую минуту дергаться -- монтируй тогда его с noatime

можешь поэкспериментировать с ip monitor
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
[quote name='dilmah' post='1061698318' date='Dec 4 2006, 00:07']
Ты недооцениваешь мощь современных компьютеров.
[/quote]

Мдаааа... Тогда вопрос, а зачем хрон вообще. Если следовать такой логике то лучшим решением будет скрипт c циклом while true. Запущенный с nohup &.
Это костыли.
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
> Это костыли.

что за бред? Если тебе нужно проследить что что-то работаети не падает, то естественно что должно быть что-то что будет постоянно мониторить ситуацию;

Или тебе нужно чтобы это работало штатными средствами ОС? Ну сделай свой дистрибутив в котором это будет штатно.
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ваша позиция понятна, надеюсь у кого нибудь есть более правильное и изящное решение.
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Люди у меня FC 6 на команду ifup corbina пишет

Failed to activate corbina with error 1

Как лечить??? Редактировано пользователем Yura13
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Привет нужен совет!!!

У меня только что уствановлена FC8
Кто знает как ее подключить к Корбине???

извените за ламерский вопрос, впервые установил линух. ;)
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
вот вам 2 пакета pptp так как без vpn вы их скачать не сможете. они вам нужно сразу
две версии i386 и x86_64

P.S.
Так как просили помоч.
Давайте в джабер пишите или сразу в личку.
Так как отслеживать весь форум проблематично. Редактировано пользователем Andrey
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Нужна помощь по настройке vpn в FC6,кто может помочь напишите в личку плиз
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Зарегистрироваться на нашем форуме.


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now