подключение к интернету по VPN (Corbina, Beeline и т.д.)
требуется только
http://www.slax.org/modules/776/dl/pptp-1.7.2.lzm скрипт для подключения: ( vpn ), можно собрать в .lzm, рассчитан на работу в составе live CD(не проверял). VPN-сервер по умолчанию- vpn.corbina.ru. Тестировалось и для vpn.corbina.com без изменения текста скрипта. Мною подправлены некоторые места. Возможно, работоспособен на линуксах с установленным перлом. В консоли набираем: vpn configure.
Код: #!/bin/bash
#Кидаете в /usr/bin
## vpn configure
#Запросит VPN-сервер, Логин и Пароль
# vpn start запуск
# vpn stop остановка
# vpn status статус соединения
LINK_NAME=vpn
PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"
script_name=$0
check_vpn_run() {
[ -f "/var/run/ppp-$LINK_NAME.pid" ] && return 0
return 1
}
usage() {
echo "Usage: $script_name {start|stop|configure|status}"
exit 1
}
configure_vpn() {
#
#
#здесь надо создать директорию peers,если нет
if [ ! -d "/etc/ppp/peers" ]; then
mkdir /etc/ppp/peers
fi
touch /etc/ppp/peers/$LINK_NAME
chmod 600 /etc/ppp/peers/$LINK_NAME
echo -n 'VPN-server (vpn.corbina.ru): '; read vpn_server
if [ $vpn_server="" ]; then
vpn_server="vpn.corbina.ru"
fi
echo -n 'Login: '; read username
stty -echo
echo -n 'Password: '; read password; echo
stty echo
cat <<EOT > /etc/ppp/peers/$LINK_NAME
noipdefault
nodefaultroute
noauth
refuse-pap
nobsdcomp
nodeflate
novj
linkname $LINK_NAME
user '$username'
password '$password'
updetach
mtu 1464
pty 'pptp $vpn_server --nolaunchpppd --loglevel 0 --nobuffer --logstring pptp'
EOT
}
start_vpn() {
if [ ! -f "/etc/ppp/peers/$LINK_NAME" ]; then
echo "$script_name: VPN-connection not configured" >&2
exit 1
fi
default_gw=`route -n|awk '/^0\.0\.0\.0 .* eth/{print $2}'|head -1`
if [ -z "$default_gw" ]; then
echo "$script_name: No default route" >&2
exit 1
fi
vpn_server=`awk '/pptp/ {print($3)}' /etc/ppp/peers/$LINK_NAME`
pppd call $LINK_NAME
status=$?
if [ $status -ne 0 ]; then
echo "$script_name: pppd error: $status" >&2
exit 1
fi
if [ -f "/var/run/ppp-$LINK_NAME.pid" ]; then
ppp_iface=`tail -1 /var/run/ppp-$LINK_NAME.pid`
route add -host $vpn_server gw $default_gw
route add -net default dev $ppp_iface
fi
}
stop_vpn() {
vpn_server=`awk '/pptp/ {print($3)}' /etc/ppp/peers/$LINK_NAME`
pid=`head -1 /var/run/ppp-$LINK_NAME.pid`
kill $pid
route del -host $vpn_server
route del -net default dev
}
status_vpn() {
if check_vpn_run; then
echo "VPN-connection is UP"
else
echo "VPN-connection is DOWN"
fi
}
case "$1" in
start)
if check_vpn_run; then
echo "VPN-connection already started"
exit 0
fi
start_vpn
;;
stop)
if check_vpn_run; then
stop_vpn
else
echo "VPN-connection not started"
fi
;;
configure)
configure_vpn
;;
status)
if check_vpn_run; then
echo "VPN-connection is UP"
else
echo "VPN-connection is DOWN"
fi
;;
*)
usage
;;
esac
#------------------------------------------------------------------------------------------------
#
#Некоторые замечания.
#
# Параметр "mtu 1464" возможно будет нуждаться в коррекции.
# Конфиг сохраняется в /etc/ppp/peers/vpn.