Проблема в написании Скрипта для настройки VPN
Только поза-вчера пересел на линукс с винды.
И сразу приходится писать скрипт на Cи. ДО этого с Си не работал, но в программировании не ноль.
Даже не знаю с чего начать. Суть вот в чём:
Есть Login
Есть Password
Есть IP - сервера,который в нашей сети даёт нам инет.
Собствнно, как "с нуля" написать что-то что будет орагнизовывать связь между моим компом и сервером. Могу что-то не так сказать, если что поправьте.
Понимаю. что вопрос из серии "опять...100раз уже объясняли" Перерыв кучу скриптов прописав их в систему не один не работает... то нет файла, то неверная директория... Собственно хочу Сам!Свой!Понятно для самого себя!
И ещё - прописывая скрипты (из рунета) интуитивно начинаю понимать что нет какой то библиотеки, а может и есть... собственно чтио для скрипта ещ должно быть на компьютере?
(Если в двух словах. Нужен Алгоритм действий: Что откуда взять? Куда положить? Что прописать? Запустить...)
1) Четко поставить задачу
2) Если нет уверенности в терминах -- брать их в кавычки
3)Описать что есть в наличии
4)получить ответ и действовать по ситуации
2. зачем писать свое, когда есть готовое? проще включить мозг и разобрать почему не работает это самое готовое :)
терь по пунктам:
1)Настроить VPN подключение.
2)Ок
3)В наличии Linux LiCs 1000, "кучай фалов и дикое желание"
4)Жду....
Не хочу брать готове, т.к. я новенький в системах Юникс. Брать готове - 90% вероятности что я там ничего не пойму, не потому что "тупой" а потому что с точки зрения команд процедур и функций Паскаль != Си... Словарь во многом не понятен.
Вообщем вам все равно для начала читать литературу из прикрепленного топика сначала об архитектуре, потом о bash, а только потом пытаться написать скрипт настройки VPN.
Linux LiCs 1000 это ближе к RedHat`у, его и смотрите.
Баш ближе всего к Си... а точнее является ёё(Си) детещем... по этому сюда и написал... по поводу литературы... начитал по ВПН оч много... скрипты делал разбирал исправлял... не помогает.
Вопрос такой: какие библиотеки должны быть установлены в Linux для VPN??
Кроме пакета openvpn больше ничего не нужно для настройки соединения, ну если только чуточку сообразительности и изобретательности :)
Сталкивался с такой проблемой год назад, у меня спутниковый инет на Linux; с провайдером связь через виртуальный тунель VPN. Опишу как смогу, что останется за гранью понимания-доспрашиваешь.
В случае соединения по VPN тунелю, провайдер ОБЯЗАН предоставить тебе файлы: youre_login.ovpn, youre_login.up, youre_login.key. Примерное содержание оных:
dev tun
ifconfig xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx # Твой IP и маршрут по умолчанию соответственно, назначенные провайдером
remote 82.211.xxx.xxx #Удалённый адрес сервера провайдера
port 51360
comp-lzo
secret /etc/openvpn/youre_login.key
up /etc/openvpn/youre_login.up
user nobody
auth none
;inactive 600
tun-mtu 1500
replay-window 640 15
redirect-gateway
dhcp-option DNS 82.211.xxx.xxx #Первичный и вторичный адресс DNS, обязательно провайдера
;dhcp-option DNS 213.138.xxx.xxx
echo Starting
sleep 10
route add -host 82.211.xxx.xxx gw 10.6.6.6 #IP сервера и шлюз использумой "земли"
route del default
route add default gw 172.27.xxx.xxx #Шлюз по умолчанию назначенный провайдером
echo Routes_added_Tunnel_started
Все эти 3 файла помещаются в директ /etc/openvpn/
Не знаю как у тебя, а у меня пакеты идут на DVB карту через VPN. Скрипт запуска и настройки DVB SkyStar2 приведу на всякий случай:
DIR=/usr/local
PID=530
DEV_NAME=dvb0_0
IP_ADDR=172.27.xxx.xxx #IP назначенный провайдером твоему компу
MAC_ADDR=xx:xx:xx:xx:xx:xx # :)
cd $DIR/sbin
case "$1" in
start)
/home/sashok/bin/ss2 -restart #Самописный скрипт для создания девайсов DVB, если понадобится выложу
modprobe dvb-core dvb_shutdown_timeout=0
modprobe stv0299
modprobe b2c2-flexcop-pci
$DIR/sbin/szap -c /etc/channels.conf -n 1 -x #Для настройки тарелки, если понадобится выложу
$DIR/sbin/dvbnet -p $PID
/sbin/ifconfig $DEV_NAME $IP_ADDR netmask 255.255.255.252 broadcast 172.27.xxx.xxx
/sbin/ifconfig $DEV_NAME hw ether $MAC_ADDR
/sbin/ifconfig dvb0_0 mtu 1500
echo 0 > /proc/sys/net/ipv4/conf/dvb0_0/rp_filter
;;
stop)
/sbin/ifconfig $DEV_NAME down
$DIR/sbin/dvbnet -d 0
modprobe -r b2c2-flexcop-pci
modprobe -r stv0299
modprobe -r dvb-core
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: `basename $0` start | stop | restart"
;;
esac
Запускать VPN можно как из командной строки, предварительно запустив "землю":
/usr/local/sbin/openvpn --config /etc/openvpn/youre_login.ovpn
или написать небольшой скриптик:
NAME="tun1" #Скорее tun1, tun0-"земля"
UTILITY="/usr/local/sbin/openvpn"
CONFIG="/etc/openvpn/youre_login.ovpn"
echo -n '$UTILITY'
case "$1" in
start)
${UTILITY} --config ${CONFIG}
;;
stop)
kill -9 `cat /var/run/${NAME}.pid`
;;
*)
echo "Usage: `basename $0` {start|stop}" >&2
exit 64
;;
esac
exit 0
Вначале опробуй VPN тунель без скрипта, если всё подымется тести остальное.
[/LEFT]
советую такого больше не писать. ибо лишитесь модератора. помру со смеху :) если уж на то пошло, то к С ближе csh/tsch. если вообще корректно - сравнивать коммандный интерпретатор и язык программирования.