#!/bin/sh
#path to ppp
ppp=/etc/ppp
if [ $USER != "root" ]; then
echo "Только пользователь с правами root может настраивать VPN. Также вы можете воспользоваться командой 'sudo'"
exit 1
fi
printf "Хотите автоматически установить пакет pptp-linux? Отвечайте 'n' если он уже установлен в системе, или у вас устаревший дистрибутив (Debian Etch, Xandros, установленный на Eee PC и т.п.) (y/n): "
read i_install
if [ $i_install = "y" ]; then
echo "Определяется тип вашей системы..."
bit=$(uname -m)
echo "Тип вашей системы определён как: $bit"
echo "Устанавливается $bit версия pptp-linux..."
if [ $bit = "i686" ]; then
dpkg -i "$PWD"/pptp-linux_1.7.0-2ubuntu2_i386.deb
elif [ $bit = "x86_64" ]; then
dpkg -i "$PWD"/pptp-linux_1.7.0-2ubuntu2_amd64.deb
fi
fi
echo "------------------------"
printf "Введите ваш логин для доступа в интернет: "
read i_login
echo "------------------------"
printf "Введите ваш пароль для доступа в интернет: "
read i_password
echo "------------------------"
echo "Выберите пожалуйста, своего провайдера:"
echo " 1. Корбина-Телеком"
echo " 2. Билайн"
printf "Ваш провайдер? (1/2)? "
read provider
if [ $provider = "1" ]; then
echo "Выберите пожалуйста, адрес вашего VPN-сервера:"
echo " 1. Для Москвы и МО"
echo " 2. Для Санкт-Петербурга и ЛО"
echo " 3. Ввести свой адрес VPN (для других регионов /маршруты для локальной сети не будут работать/)"
echo "ВНИМАНИЕ другим регионам! Здесь находится полный список региональных VPN-серверов -
http://help.corbina.net/internet/techinfo/"
echo " "
printf "Ваш выбор? (1/2/3): "
read vpn_number
if [ $vpn_number = "1" ]; then
vpn_address="vpn.corbina.net"
elif [ $vpn_number = "2" ]; then
vpn_address="vpn.spb.corbina.net"
elif [ $vpn_number = "3" ]; then
printf "Введите свой адрес VPN: "
read vpn_address
echo "ВНИМАНИЕ! Вы должны отредактировать файл 'corbina-route' в директории 'vpn_prj' для одновременной работы интернета и локальной сети. Маршруты для вашего региона уточняйте в службе поддержки."
else
echo "Вы ввели неправильный вариант ответа. Пожалуйста, запустите скрипт заново."
exit 1
fi
elif [ $provider = "2" ]; then
vpn_address="vpn.internet.beeline.ru"
fi
echo "------------------------"
printf "Вы хотите автоматически определить адрес вашего шлюза? ([y]/n)? "
read i_gw_detection
if [ $i_gw_detection = "y" ]; then
i_gw=$(route|grep default|awk '{print $2}')
echo "Определено!"
echo "IP вашего районного шлюза: $i_gw"
echo "IP-адрес шлюза должен иметь вид 10.x.x.x, в ином случае он определён неправильно и нужно ввести его вручную."
printf "IP-адрес шлюза определён правильно (имеет вид 10.x.x.x)? (y/n)? "
read i_gw_corr_detection
if [ $i_gw_corr_detection = "n" ]; then
printf "Введите IP-адрес вашего шлюза: "
read i_gw
fi
elif [ $i_gw_detection = "n" ]; then
printf "Введите IP-адрес вашего шлюза: "
read i_gw
fi
echo "------------------------"
echo "Теперь вы должны выбрать метод получения маршрутов. Вы можете выбрать автополучение маршрутов по DHCP (только для Москвы и МО) или предустановленный набор в файле 'corbina-route' (подходит для Москвы, МО, Санкт-Петербурга и ЛО)"
echo "------------------------"
printf "Вы хотите получать маршруты через DHCP? ([y]/n)? "
read i_dhcp
if [ $i_dhcp = "y" ]; then
cp "$PWD"/rfc3442-classless-static-routes /etc/dhcp3/dhclient-exit-hooks.d/rfc3442-classless-static-routes
mv /etc/dhcp3/dhclient.conf /etc/dhcp3/dhclient.conf_bak
cp "$PWD"/dhclient.conf /etc/dhcp3/dhclient.conf
echo "Автонастройка маршрутов через DHCP установлена."
fi
echo "------------------------"
echo "Создаются VPN-параметры..."
echo "${i_login} PPTP ${i_password} *" > $ppp/chap-secrets
cp "$PWD"/ip $ppp/ip-up > /dev/null
printf "${ppp}/ip-up.d/\$6 \$1 \$2 \$3 \$4 \$5 \$6" >> $ppp/ip-up
chmod a+x $ppp/ip-up
cp "$PWD"/ip $ppp/ip-down > /dev/null
printf "${ppp}/ip-down.d/\$6 \$1 \$2 \$3 \$4 \$5 \$6" >> $ppp/ip-down
chmod a+x $ppp/ip-down
cp "$PWD"/corbina-route $ppp/ip-up.d/corbina
printf "route del \$4 dev \$1\n" >> $ppp/ip-up.d/corbina
printf "route add -host \$4 gw ${i_gw}\n" >> $ppp/ip-up.d/corbina
printf "do_route add ${i_gw} \n" >> $ppp/ip-up.d/corbina
printf "route del default \n" >> $ppp/ip-up.d/corbina
printf "route add default dev \$1 \n" >> $ppp/ip-up.d/corbina
chmod a+x $ppp/ip-up.d/corbina
cp "$PWD"/corbina-route $ppp/ip-down.d/corbina
printf "do_route del ${i_gw} \n" >> $ppp/ip-down.d/corbina
printf "route del default \n" >> $ppp/ip-down.d/corbina
printf "route add default gw ${i_gw}\n" >> $ppp/ip-down.d/corbina
chmod a+x $ppp/ip-down.d/corbina
printf "nodeflate\nnobsdcomp\nnoauth\n" > $ppp/options.corbina
printf "pty \"pptp $vpn_address --nolaunchpppd --nobuffer --loglevel 0\"\n" > $ppp/peers/corbina
printf "connect /bin/true\n" >> $ppp/peers/corbina
printf "name ${i_login}\n" >> $ppp/peers/corbina
printf "remotename PPTP\n" >> $ppp/peers/corbina
printf "file ${ppp}/options.corbina\n" >> $ppp/peers/corbina
printf "ipparam corbina\n" >> $ppp/peers/corbina
printf "persist\n" >> $ppp/peers/corbina
printf "maxfail 0\n" >> $ppp/peers/corbina
printf "lcp-echo-interval 30\n" >> $ppp/peers/corbina
printf "lcp-echo-failure 4\n" >> $ppp/peers/corbina
printf "mtu 1460\n" >> $ppp/peers/corbina
echo "------------------------"
echo "Оптимизация настроек соединения выполнена!"
echo "------------------------"
echo "Автоматическое восстановление соединения после разрыва настроено!"
echo "------------------------"
echo "Настройка параметров успешно завершена!"
echo "------------------------"
echo "Перезагрузка сетевых служб..."
/etc/init.d/networking restart
echo "Выполнено!"
echo "------------------------"
printf "Вы хотите создать VPN-соединение с интернетом сейчас? ([y]/n)? "
read i_vpnstart
if [ $i_vpnstart = "y" ]; then
echo "------------------------"
echo "Запускается VPN-соединение..."
pon corbina
echo "VPN-соединение запущено. Если всё сделано правильно и на счёте есть деньги то Вы в интернете:)"
echo "------------------------"
echo "Чтобы подключиться к интернету, напечатайте в консоли: sudo pon corbina"
echo "Чтобы разорвать соединение, напечатайте в консоли: sudo poff"
echo "------------------------"
echo "Не забудьте сказать спасибо на форуме) По всем вопросам об этом скрипте -
http://homenet.corbina.net/index.php?showtopic=199266"
elif [ $i_vpnstart = "n" ]; then
echo "------------------------"
echo "Чтобы подключиться к интернету, напечатайте в консоли: sudo pon corbina"
echo "Чтобы разорвать соединение, напечатайте в консоли: sudo poff"
echo "------------------------"
echo "Не забудьте сказать спасибо на форуме) По всем вопросам об этом скрипте -
http://homenet.corbina.net/index.php?showtopic=199266"
fi
exit 0