Підключитись до інтернету з Лінукса можна за допомогою цього скрипта.
Перевірено для Mandriva Linux 2007.0
Код:
#!/bin/sh
# Скрипт призначений для встановлення з'єднання з VPN сервером
#
# Виправлення неправильних шляхів
#
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:
export PATH
#
# Налаштування мережі
#
USER=<ВАШ_ЛОГІН> # Ваш логін в білінговій системі системі
NETWORK=<IP_МЕРЕЖІ> # Адреса мережі гуртожитку
NETMASK=<МАСКА_ПІДМЕРЕЖІ> # Маска мережі гуртожитку
VPNSERVER=193.125.78.169 # IP адреса серверу bill.univ.kiev.ua. (ping bill.univ.kiev.ua)
DNSSERVER=193.125.78.100 # IP адреса серверу імен DNS
GATEWAY=<IP_ШЛЮЗУ> # IP шлюзу
DEVICE=eth0
# Для підключення до інтернету необхідно мати встановлені
# пакети pppd і pptp
#
#
# Потім беремо цей скрипт і ставимо його в /usr/bin/, роблячи його виконуваним.
# Після чого залишається лише відредагувати файл /etc/ppp/chap-secrets,
# який повинен мати наступний вигляд:
# 'ВАШ_ЛОГІН' * 'ПАРОЛЬ'
# Ось і все – тепер начебто все повинно працювати.
# Слід відмітити, що файл /etc/ppp/options не повинен містити ніяких записів.
# Запускається з'єднання - від root'а
# набираемо
# $ /usr/bin/vpn start
# після чого має бути виведене таке повідомлення:
# ===> Starting vpn: done
# Тепер, власне можна працювати Інтернеті,
# Розривається з'єднання так:
# $ /usr/bin/vpn stop
# після чого маємо побачити:
# ===> Stopping vpn: done
#
# Перевірка наявності необхідних програм
#
PPPD=/usr/sbin/pppd
PPTP=/usr/sbin/pptp
if [ ! -x $PPPD ]; then
echo '$0: $PPPD not found'
exit 1
fi
if [ ! -x $PPTP ]; then
echo '$0: $PPTP not found'
exit 1
fi
#
# here we go
#
case $1 in
start)
if [ ! -d /var/run/pptp ]; then
mkdir /var/run/pptp
fi
if [ -f /var/run/pptp/remote ]; then
if ping -vc1 'cat /var/run/pptp/remote'; then
exit 1
fi
killall -HUP pptp
killall -TERM pppd
sleep 2
fi
rm -rf /var/run/pptp/* >/dev/null
route del default
route add -host $VPNSERVER gw $GATEWAY
route add -host $DNSSERVER gw $GATEWAY
route add -net $NETWORK netmask $NETMASK gw $GATEWAY dev $DEVICE
#
# Встановлення маршрутів до університетських ресурсів
#
route add 193.41.88.2 gw $GATEWAY
route add 193.41.88.3 gw $GATEWAY
route add 193.41.88.5 gw $GATEWAY
route add 193.41.88.7 gw $GATEWAY
route add 193.41.88.11 gw $GATEWAY
route add 193.41.88.14 gw $GATEWAY
route add 193.41.88.130 gw $GATEWAY
route add 193.125.78.82 gw $GATEWAY
route add 193.125.78.92 gw $GATEWAY
route add 193.125.78.101 gw $GATEWAY
route add 193.125.78.102 gw $GATEWAY
route add 193.125.78.106 gw $GATEWAY
route add 193.125.78.107 gw $GATEWAY
route add 193.125.78.110 gw $GATEWAY
route add 193.125.78.111 gw $GATEWAY
route add 193.125.78.116 gw $GATEWAY
route add 193.125.78.117 gw $GATEWAY
route add 193.125.78.130 gw $GATEWAY
route add 193.125.78.131 gw $GATEWAY
route add 193.125.78.132 gw $GATEWAY
route add 193.125.78.167 gw $GATEWAY
route add 193.125.79.178 gw $GATEWAY # 2-nd DNS
echo -n '===> Starting vpn: '
($PPTP $VPNSERVER defaultroute noauth user $USER && \
echo -n 'done') || echo -n 'failed'
echo
;;
stop)
echo -n '===> Stopping vpn: '
killall -HUP pptp
killall -TERM pppd
sleep 2
rm /var/run/pptp/* >/dev/null
route del -net $NETWORK netmask $NETMASK gw $GATEWAY dev $DEVICE
route del -host $VPNSERVER gw $GATEWAY
route del -host $DNSSERVER gw $GATEWAY
#
# Відновлення попередніх налаштувань маршрутизації
#
route del 193.41.88.2 gw $GATEWAY
route del 193.41.88.3 gw $GATEWAY
route del 193.41.88.5 gw $GATEWAY
route del 193.41.88.7 gw $GATEWAY
route del 193.41.88.11 gw $GATEWAY
route del 193.41.88.14 gw $GATEWAY
route del 193.41.88.130 gw $GATEWAY
route del 193.125.78.82 gw $GATEWAY
route del 193.125.78.92 gw $GATEWAY
route del 193.125.78.101 gw $GATEWAY
route del 193.125.78.102 gw $GATEWAY
route del 193.125.78.106 gw $GATEWAY
route del 193.125.78.110 gw $GATEWAY
route del 193.125.78.111 gw $GATEWAY
route del 193.125.78.116 gw $GATEWAY
route del 193.125.78.117 gw $GATEWAY
route del 193.125.78.130 gw $GATEWAY
route del 193.125.78.131 gw $GATEWAY
route del 193.125.78.132 gw $GATEWAY
route del 193.125.78.167 gw $GATEWAY
route del 193.125.79.178 gw $GATEWAY
route add default gw $GATEWAY dev $DEVICE
echo 'done'
;;
restart)
$0 stop
sleep 2
$0 start
;;
*)
echo '*** Usage: vpn {start|stop|restart}'
exit 1
;;
esac
exit 0