_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, выглядит немного по другому:

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

VPN поднимается при загрузке компьютера, решил очень просто. Мой компьютер используется в качестве роутера, поэтому я просто добавил в конец скрипта Маскарадинга команду на запуск VPN.

Если есть же хочется, чтобы это еще и поднималось...

Улыбнуло, пасиб :angry:

 

P.S. Хороший HOWTO, я бы прикрепил.

Редактировано пользователем Animal.X
0

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


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

а не подскажете почему у меня файл /etc/ppp/peers/corbina перезаписывается вот этим?

connect "usr/bin/wvdial --remotename corbina --chat 'Default'"

А, похоже, что это system-config-network меняет.

 

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

 

ЗЫ Настраиваю на 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

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


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

Использую Red Hat Enterprise Linux 4.

До этого удавалось поднимать VPN только при помощи KVpnc, что очень неудобно.

По себе знаю. Первое, что хочется, - это заходить в сеть по-человечески, а не как в виндах :P

Проверил, этот способ работает как с "pptp-linux-1.4.0-1", так и с "pptp-1.7.0-1".

От себя хотелось бы добавить, в RHEL нету yum, т.ч. pptp и MPPE надо искать самому.

yum тут не очень поможет. Во-первых, стандартный способ таскать обновления в RHEL - up2date, во-вторых для yum, даже, если он установлен, нужны репозитарии с пакетами под RHEL - есть ли такие, я не знаю.

P.S. Хороший HOWTO, я бы прикрепил.

А как это сделать?

0

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


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

Padre, попробуй в файле "/etc/ppp/peers/corbina" убрать пробел перед последней кавычкой, тоесть чтобы было не

pty "pptp vpn.corbina.ru --nolaunchpppd "

, а

pty "pptp vpn.corbina.ru --nolaunchpppd"

Если не получится, то после работы выложу свои настройки.

А как это сделать?

Надо чтобы модераторы обратили внимание на эту тему.

 

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

0

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


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

Прикрепляю.

0

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


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

Animal.X

Не помогает. Тоже самое. ;)

0

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


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

Очень сложно

0

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


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

Автор молодец. Я сам давно хотел описать настройки VPN под FC? но что-то руки никак не доходили.

 

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

yum --enablerepo=extras install pptp

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

 

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

0

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


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

Автор молодец. Я сам давно хотел описать настройки VPN под FC? но что-то руки никак не доходили.

 

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

 

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

 

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

 

респект, Andrey-m

0

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


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

Автор молодец. Я сам давно хотел описать настройки VPN под FC? но что-то руки никак не доходили.

 

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

 

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

 

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

Плис помоги мне настроить FC 5.. плис++++

0

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


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

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

Редактировано пользователем Dominator
0

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


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

2 Dominator: "Use the Force Luke!"

Поиск это наше все! -> Fedora Core4 VPN

0

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


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

Animal.X, молодца ^_^ отличный набор готовых к употреблению файлов, практически сразу все заработало на FC5.

0

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


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

[root@localhost ~]# /etc/sysconfig/network-scripts/ip-up.local

ppp0: Неизвестный хост

gw: Неизвестный хост

SIOCADDRT: Нет такого устройства

[root@localhost ~]#

Что это значит?

Редактировано пользователем Dominator
0

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


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

Сори за деильный пост. Не догнал сразу как инет включать :tease:

Редактировано пользователем Dominator
0

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


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

помогло бороться с pppd. :D

Осталась одна проблема - зависание тунеля - кто как борется?

0

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


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

помогло бороться с pppd. :rofl:

Осталась одна проблема - зависание тунеля - кто как борется?

/etc/init.d/network restart

0

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


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

/etc/init.d/network restart

 

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

0

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


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

> Вопрос как с этим бороться в автоматическом режиме, дабы само определяло,

> что тунель завис и перезапускало.

 

По моему очевидно:

в кроне вызывать скрипт, который будет пинговать google.com, rambler.ru и т.п.

Если не пингуется то перезапускать

0

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


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

> Вопрос как с этим бороться в автоматическом режиме, дабы само определяло,

> что тунель завис и перезапускало.

 

По моему очевидно:

в кроне вызывать скрипт, который будет пинговать google.com, rambler.ru и т.п.

Если не пингуется то перезапускать

 

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

0

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


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

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

> да и коряво как.

 

не на каждую секунду а на каждую минуту.

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

 

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

0

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


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

Ты недооцениваешь мощь современных компьютеров.

 

Мдаааа... Тогда вопрос, а зачем хрон вообще. Если следовать такой логике то лучшим решением будет скрипт 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.

Так как просили помоч.

Давайте в джабер пишите или сразу в личку.

Так как отслеживать весь форум проблематично.

pptp.tar

Редактировано пользователем 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