Руководство по настройке Vpn для Linux-клиентов

biz

Местный
ну дык аутентикация у тя рубится ... в скрипте pppd имя тоже правильно ?
 

biz

Местный
для автоматического получения маршрутов с dhcp Веги:

/etc/dhclient-ethX.conf
где X - номер интерфейса:

Код:
option rfc3442-static-routes code 249 = array of unsigned integer 8; 

interface "ethX" { 
send host-name "<Имя_хоста>"; 
request subnet-mask, routers, static-routes, domain-name,
domain-name-servers, rfc3442-static-routes; 
require subnet-mask, domain-name-servers; 
}

/etc/dhclient-exit-hooks:
Код:
#! /bin/bash 

RUN="yes" 

if [ "$RUN" = "yes" ]; then 
if [ x"$new_rfc3442_static_routes" != x"" ]; then 
rfc_routes=($new_rfc3442_static_routes) 
for(( i=0; i < ${#rfc_routes[@]}; )); do 
net_length=${rfc_routes[$i]} 
((i++))

net_address=(0 0 0 0) 
for(( j=0; j < $[$net_length / 8 + ($net_length % 8 ? 1 : 0)]; j++, i++)); do 
net_address[$j]=${rfc_routes[$i]} 
done 

gateway=(0 0 0 0) 
for (( j=0; j < 4; j++, i++ )); do 
gateway[$j]=${rfc_routes[$i]} 
done 

old_IFS="$IFS" 
IFS='.' 

if [ x"$net_length" == x"32" ]; then 
/sbin/ip route add "${net_address[*]}" via "${gateway[*]}" 
else 
/sbin/ip route add "${net_address[*]}/$net_length" via "${gateway[*]}" 
fi 

IFS="$old_IFS" 

done 
fi 
fi
==========================================================
$ chmod a+x /etc/dhclient-exit-hooks
$ /etc/rc.d/init.d/network restart

зы: подправил синтаксические ошибки и само содержимое под реалии Веги
 

biz

Местный
У меня на машине (не понял почему) не отрабатывается опция defaultroute
потому што этот маршрут уже есть в системе ...
вроди как на этот щёт в некоторых дистрибутивах (debian/suse/mandriva(?)/...) добавили в pppd опцию replacedefaultroute, а в альтлинухе - наоборот cleardefaultroute ... вопрос тока нуно ли это ибо как при отключении впн всё назад вернуть ...
наерна приведённый тобой вариант луче буит для нас ...
 

koala

Уже освоился
Сделал все по инструкции, однако все работает, если команды vpn-start и vpn-stop запускаю под root'ом. Если как обычный пользователь, то получаю сообщение
[koala@localhost ~]$ vpn-start
SIOCADDRT: Операция не позволяется
pppd: must be root to run pppd, since it is not setuid-root
SIOCDELRT: Операция не позволяется
SIOCADDRT: Операция не позволяется
/usr/local/bin/vpn-start: line 8: /tmp/OLDGW: Отказано в доступе
[koala@localhost ~]$
Подскажите пожалуйста, как сделать, чтобы обычный пользователь мог включить ВПН.
 

koala

Уже освоился
/usr/sbin/pppd r-xr-xr-x
/usr/local/bin/vpn-start rwxr-xr-x
/usr/local/bin/vpn-stop rwxr-xr-x
/etc/ppp/options rw-r--r--
/etc/ppp/options.pptp rw-r--r--
/etc/ppp/peers/vega rw-r--r--

не было выставлено право на запись для /tmp/OLDGW, однако это сильно не повлияло
на всякий случай поставил право на чтение для chap-secrets, однако тоже безрезультатно.

мне непонятно, почему
pppd: must be root to run pppd, since it is not setuid-root
если у меня установлено разрешение на исполнение
и что такое SIOCADDRT и SIOCDELRT так как:
[koala@localhost ~]$ man SIOCADDRT
Ничего про SIOCADDRT в руководстве нет

some security-sensitive options are privileged,
which means that they may not be used by an ordinary non-privileged
user running a setuid-root pppd, either on the command line, in the
user’s ~/.ppprc file, or in an options file read using the file option.
Privileged options may be used in /etc/ppp/options file or in an
options file read using the call option.
 

koala

Уже освоился
Вам нужно отключить SELinux.
Ну или написать соответствующие правило для него.

SELinux я отключил еще при установке(disabled, если я правильно понял). Проблему с pppd решил командой chmod a+s pppd. Сделал тоже для route, но получил после запуска vpn-start сообщение (после выполнения команды : route add default dev ppp0):
SIOCADDRT: Сеть не работает
И сеть после этого действительно перестает работать. Команда vpn-stop восстанавливает работу убитой таким образом сети. Еще, когда просто делаю команду pppd call vega, то начинает тарахтеть диск, а после команды killall pppd он выключается. Причем здесь диск?
 

Mike22

Местный
Уважаеммые товарищи учёные, у меня под полом слышится какой-то стук ...
(простите, не удержался :lol: :( :) )

Проблему с pppd решил командой chmod a+s pppd. Сделал тоже для route
Это не очень хорошее решение, ну да ладно, система ваша.
... но получил после запуска vpn-start сообщение (после выполнения команды : route add default dev ppp0):
SIOCADDRT: Сеть не работает
И сеть после этого действительно перестает работать. Команда vpn-stop восстанавливает работу убитой таким образом сети. Еще, когда просто делаю команду pppd call vega, то начинает тарахтеть диск, а после команды killall pppd он выключается. Причем здесь диск?
При чём тут диск я не знаю, у вас и правда простые вещи порой какими-то проблемами обрастаюют и понять причину бывает сложно с первого раза.
Что до остального - вы понимаете что делают скрипты?
Они предназначены для класического случая, когда eth0 - это интерфейс куда подключен кабель от Веги.
Если мне память не изменяет - у вас это не так!
Соответственно, скрипты нужно править для того чтобы они у вас "поднимали" VPN.
 

koala

Уже освоился
Это не очень хорошее решение, ну да ладно, система ваша.

Если знаете решение лучше, то чего же не поделитесь?

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

Мне, плохо знакомому с этой ОС, понять еще труднее.

Что до остального - вы понимаете что делают скрипты?
Они предназначены для класического случая, когда eth0 - это интерфейс куда подключен кабель от Веги.
Если мне память не изменяет - у вас это не так!
Соответственно, скрипты нужно править для того чтобы они у вас "поднимали" VPN.

Самое интересное, что эти скрипты работают, если я выполню команду su, а затем vpn-start.

Т.е. сейчас не отрабатывается команда route. Как она работает я плохо понимаю, но видимо где-то запрещается изменять IP routing tables простому пользователю. И что такое ppp0?

P.S. Снимаю вопрос. Проще запускать ВПН через su, чем тратить время на поиск причины.
 

Mike22

Местный
koala, мне ещё сложнее, у меня нет VPN`а, и я "играю в шахматы по-памяти" когда даю вам советы по нему :lol:
Если знаете решение лучше, то чего же не поделитесь?
Для вас наверное лучше всего - освоить sudu и воспользоваться этой программой, ну или уж тогда поставить suid на скрипты, а не на системные утилиты.
Самое интересное, что эти скрипты работают, если я выполню команду su, а затем vpn-start.
Т.е. сейчас не отрабатывается команда route. Как она работает я плохо понимаю, но видимо где-то запрещается изменять IP routing tables простому пользователю. И что такое ppp0?
Я не совсем понимаю, как вы определили, что с правами рута у вас "всё работает"?
Наплюйте пока на права, нужно убедиться в нормальной работе сети.
Но мне трудно давать вам советы т.к. я не понимаю как у вас настроен и в каком режиме работает беспроводной роутер.
Сразу после загрузки Linux`а у вас нормально видна вся "локальная" сеть Веги и сайт и этот форум доступны?
После выполнения vpn-start у вас в системе появляется интерфейс ppp0 ?
 

koala

Уже освоился
ну или уж тогда поставить suid на скрипты, а не на системные утилиты.

Уже пробовал, но безрезультатно.

Я не совсем понимаю, как вы определили, что с правами рута у вас "всё работает"?
Наплюйте пока на права, нужно убедиться в нормальной работе сети.
Но мне трудно давать вам советы т.к. я не понимаю как у вас настроен и в каком режиме работает беспроводной роутер.
Сразу после загрузки Linux`а у вас нормально видна вся "локальная" сеть Веги и сайт и этот форум доступны?

К этому компьютеру роутер подключен через сетевой провод (если это так важно). В него скопирован МАК адрес сетевой платы к которой ранее была подключена Вега. Этот роутер работает как DHCP сервер и динамически назначает IP адрес подключенным к нему компьютерам.

После загрузки Линукса вижу локальную сеть. Сейчас пишу находясь в Линуксе. Если запускаюсь через su, то могу подключиться во внешний Интернет (проверял) и никаких сообщений об ошибках не получаю. Если запускаю vpn-start как обычный пользователь, то имею приведенные выше ошибки.

После выполнения vpn-start у вас в системе появляется интерфейс ppp0 ?

# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
172.20.0.1 * 255.255.255.255 UH 0 0 0 ppp0
valid.vega-int. 192.168.0.1 255.255.255.255 UGH 0 0 0 eth0
192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
169.254.0.0 * 255.255.0.0 U 0 0 0 eth0
default * 0.0.0.0 U 0 0 0 ppp0
Это включено через su. Если через обычного пользователя, то ppp0 отсутствует.
 

Mike22

Местный
koala, понятно. VPN работает нормально, проблема в другой плоскости.
sudo - видимо будет наилучшим способом решить проблему запуска и останова VPN без ввода паролей.
Разобраться почему-же у вас не получается это проделать другими способами можно выполняя (и проверяя результат) скрипт пошагово.
Что-то где-то мы наверное упускаем из виду.
 

koala

Уже освоился
koala, понятно. VPN работает нормально, проблема в другой плоскости.
sudo - видимо будет наилучшим способом решить проблему запуска и останова VPN без ввода паролей.
Разобраться почему-же у вас не получается это проделать другими способами можно выполняя (и проверяя результат) скрипт пошагово.
Что-то где-то мы наверное упускаем из виду.

Попробую через sudo. По шуму диска, о котором говорил выше : обнаружил, что он связан с постоянной записью в файл /etc/ppp/connect-errors строчек вида
anon warn[pptp_gre_bind:pptp_gre.c:82]: socket: Operation not permitted
anon fatal[main:pptp.c:284]: Cannot bind GRE socket, aborting.
 

Phobos

Пользователь
Mike22, помоги пожалуйста, подключился к анлимиту, выдали новые атрибуты, новый адрес впн сервера, в общем заменяю в скрипте(и ppp опциях) адрес, логин и пароль. ошибок не выдает но сети нет. в винде пробнул тоже самое только выдавал ошибку звонил в вегу подсказали в свойствах -> Безопасность -> Требуется шифрование данных(иначе отключиться) убрать галачку, все заработало, на счет настройки Unix-подобных систем посоветовали обратится к Вам (т.к. сами не знают). заранее благодарен
 

biz

Местный
Mike22, помоги пожалуйста, подключился к анлимиту, выдали новые атрибуты, новый адрес впн сервера, в общем заменяю в скрипте(и ppp опциях) адрес, логин и пароль. ошибок не выдает но сети нет. в винде пробнул тоже самое только выдавал ошибку звонил в вегу подсказали в свойствах -> Безопасность -> Требуется шифрование данных(иначе отключиться) убрать галачку, все заработало, на счет настройки Unix-подобных систем посоветовали обратится к Вам (т.к. сами не знают). заранее благодарен
сети нет - понятие относительное ....
ppp0 в списке ifconfig появляется ?
гляньте /var/log/messages насчёт сообщений об ошибках ...


В файле /etc/ppp/chap-secrets
пароль не шифруется что ли

Звездочки тоже вводить или это специальный символы в вашем сообщении

ваше_имя * ваш_пароль *
тоже вводить
 

Phobos

Пользователь
сети нет - понятие относительное ....
ppp0 в списке ifconfig появляется ?
гляньте /var/log/messages насчёт сообщений об ошибках ...
в ifconfig ppp0 появляется
в /var/log/messages ошибок не обнаружил
но не на какой адрес что во внешней, что во внутреней не заходит
фаеровол отключил
 

biz

Местный
в ifconfig ppp0 появляется
в /var/log/messages ошибок не обнаружил
но не на какой адрес что во внешней, что во внутреней не заходит
фаеровол отключил
адреса интерфейсов (ifconfig) соответствуют истине ?
покажите результат route -n
tcpdump -i ppp0 пробовали ? гляньте уходит ли чтолибо наружу и приходит ли чонить обрано
обычное (не анлимит) подключение работает ?
 

Phobos

Пользователь
адреса интерфейсов (ifconfig) соответствуют истине ?
покажите результат route -n
tcpdump -i ppp0 пробовали ? гляньте уходит ли чтолибо наружу и приходит ли чонить обрано
обычное (не анлимит) подключение работает ?
обычное подключение работает без проблем,
извиняюсь остальное смогу указать только ближе к вечеру
 
Сверху