Поднятие шлюза на Slackware 13 (для VPN между двумя офисами)

SLAX, Deep Style, ZenWalk

Модератор: Модераторы разделов

Dimitriy
Сообщения: 5
ОС: Linux Slackware

Поднятие шлюза на Slackware 13

Сообщение Dimitriy »

Доброго времени суток!
Есть проблема, поставил на работе сервер слаки 13... Но у меня не получается поднять шлюз... Дабы поднять VPN между двумя оффисами. Был бы признателен за помощь. Как это правильно сделать. И поподробнее.
Да, об этой теме много написано, но хотелось бы конкретики! Зарание спасибо за ответ и помощь.

С Уважением, Дмитрий!
Спасибо сказали:
Аватара пользователя
gramozeka
Сообщения: 204
ОС: Slackware-14

Re: Поднятие шлюза на Slackware 13

Сообщение gramozeka »

Dimitriy писал(а):
04.08.2010 16:17
..Как это правильно сделать. И поподробнее.
Да, об этой теме много написано, но хотелось бы конкретики! Зарание спасибо за ответ и помощь.

С Уважением, Дмитрий!


так-то телепаты в отпуске (все!) что вы делали , что конкретно у вас не получается , что выдает консоль , в конце концов какой у вас провайдер , конкретезируйте и будет Вам и конкретика , а так пальцем в небо ...

Код: Выделить всё

#!/bin/sh

#./rc.inet1 restart
#Скрипт соединения vpn ppp соединения с beeline
#тестированно работает в Linux Slackware 12
# разработан Александром Волковым 2009
# http://www.anvpro.narod.ru

#Примечание:
#
#Предполагается что у вас установлены пакеты
# ppp  (http://samba.org/ppp/)              (в Slackware должен быть)
# pptp (http://pptpclient.sourceforge.net/)
#      (http://downloads.sourceforge.net/pptpclient/pptp-1.7.2.tar.gz)
#      (закачать, распаковать, make, make install)
#
#и фаервол разрешает запрашивать DNS-имена
#iptables -t filter -A INPUT -p udp --sport 53 -j ACCEPT
#iptables -t filter -A INPUT -p tcp --sport 53 -j ACCEPT
#iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT
#iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT

#BUG: Мы пока не умеем автоматом определять какое у нас получилось ppp
#а потому, предполагам что у нас это единственное соединение и оно ppp0

#сервер vpn
vpnsrv='vpn.corbina.net'
# файл с настройками ppp
peersf='/etc/ppp/server'
# текущий основной шлюз


curgv='10.60.24.1 dev eth0'
#curgw=`route -n | grep -m 1 '^0.0.0.0' | awk '{ print $2 }'`
echo $curgw
# имя пользователя и пароль
if [ $# = 2 ]; then
 u="$1"
 p="$2"
else
 if [ $# = 3 ]; then
  u="$1"
  p="$2"
  vpnsrv="$3"
 else
  echo -e "\n"'use:'
  u="mdeev"
  p="20xmaxw95"
  echo 'vpn-beeline.sh <'$u'> <'$p'> ['$vpnsrv']'

#  echo -e "\n\n"'Developed by Alexander Volkov 2009'
#  echo 'http://www.anvpro.narod.ru'
# В принципе, далее я написал 3 строки "для ленивых"
# те, кого ломает набирать имя пользователя и пароль в коммандной строке,
# могут написать их тут. Для этого нужно закоментировать первую строку (exit 1)
# и раскомментировать и подправить вторую и третью
#  exit 1
 fi
fi

#создадим файл с настройками ppp
echo 'pty "pptp '"$vpnsrv"' --nolaunchpppd"' > $peersf
echo 'user '"$u" >> $peersf
echo 'password "'"$p"'"' >> $peersf
echo 'nodeflate' >> $peersf
echo 'nobsdcomp' >> $peersf
echo 'noauth' >> $peersf
#echo 'require-mppe-128' >> $peersf
#echo 'refuse-eap' >> $peersf
#echo 'refuse-chap' >> $peersf
#echo 'refuse-mschap' >> $peersf

# текущие DNS-серверы маршрутизируются на старый шлюз
curdnsinroute () {
 while read lll; do
  route add -host $lll gw 10.60.24.1 dev eth0
 done
}
cat /etc/resolv.conf | sed -n '/nameserver/p' | sed 's/nameserver\ //' | curdnsinroute

# vpn-сервер и внутренние сервера также маршрутизируется на старый шлюз

#echo '11111111111111'$curgw



route add -host $vpnsrv gw 10.60.24.1 dev eth0

# билайновские серверы
#route add -host lk.beeline.ru gw $curgw
#route add -host homenet.beeline.ru gw $curgw
route add -net 217.118.84.0/22 gw 10.60.24.1 dev eth0
# корбиновские серверы
route add -net 93.81.48.0/21 gw 10.60.24.1 dev eth0
route add -net 93.81.104.0/21 gw 10.60.24.1 dev eth0
route add -net 213.234.192.0/18 gw 10.60.24.1 dev eth0
route add -net 83.102.128.0/17 gw 10.60.24.1 dev eth0
route add -net 89.178.0.0 netmask 255.254.0.0 gw 10.60.24.1 dev eth0


route add -host 213.234.192.8 gw 10.60.24.1 dev eth0
route add -host 85.21.192.3 gw 10.60.24.1 dev eth0
route add -host 85.21.0.33 gw 10.60.24.1 dev eth0
route add -host 85.21.0.11 gw 10.60.24.1 dev eth0
route add -host 85.21.0.27 gw 10.60.24.1 dev eth0
#route del default
route add default gw 10.60.24.1 dev eth0



#Мультимедийный портал корбины в следующей зоне
#если начинает глючить просмотр потокового флешного видео
#строку нужно закоментировать (хотя тогда ролики будут грузиться медленней)
route add -net 85.21.0.0/16 gw 10.60.24.1 dev eth0
# Примечание:
# Собственно, можно и не добавлять билайновские и корбиновские серверы.
# Более того, со временем, если зоны изменятся, эти строки придется закоментировать или подправить.
# Однако, мне кажется, что по локальной сети правильней ходить локальными путями;)

#Добавим правило в iptables гарантирующее прохождение всех пакетов для vpn-сервера
#iptables -I INPUT -s $vpnsrv -j ACCEPT
#iptables -I OUTPUT -d $vpnsrv -j ACCEPT

#запустим соединение и будем его удерживать
#при удержании будем проверять - не удален ли маршрут по умолчанию и восстанавливать его
sh -c 'while true; do if ! ifconfig ppp0; then pppd call '$(basename "$peersf")' nodetach; if ! route -n | grep  -m 1 "^0.0.0.0"; then route add -net default dev ppp0; fi; sleep 30; fi; done' &
sleep 20


#sh -c 'while true; do if ! ifconfig ppp0; then pppd call '$(basename "$peersf")' nodetach; if ! route -n | grep  -m 1 "^0.0.0.0"; then route add -net default dev ppp0; fi; sleep 30; fi; done'

#Настроим основной шлюз на vpn
route del default
route add -net default dev ppp0
... ну я же просил четыреста капель , а сдесь четыреста две ...
Спасибо сказали:
Аватара пользователя
Archangel
Сообщения: 431
ОС: Slackware64-14.1

Re: Поднятие шлюза на Slackware 13

Сообщение Archangel »

Вот тут есть примеры конфигов для сервера.
Спасибо сказали:
Dimitriy
Сообщения: 5
ОС: Linux Slackware

Re: Поднятие шлюза на Slackware 13

Сообщение Dimitriy »

gramozeka писал(а):
04.08.2010 18:48
Dimitriy писал(а):
04.08.2010 16:17
..Как это правильно сделать. И поподробнее.
Да, об этой теме много написано, но хотелось бы конкретики! Зарание спасибо за ответ и помощь.

С Уважением, Дмитрий!


так-то телепаты в отпуске (все!) что вы делали , что конкретно у вас не получается , что выдает консоль , в конце концов какой у вас провайдер , конкретезируйте и будет Вам и конкретика , а так пальцем в небо ...

Код: Выделить всё

#!/bin/sh

#./rc.inet1 restart
#Скрипт соединения vpn ppp соединения с beeline
#тестированно работает в Linux Slackware 12
# разработан Александром Волковым 2009
# http://www.anvpro.narod.ru

#Примечание:
#
#Предполагается что у вас установлены пакеты
# ppp  (http://samba.org/ppp/)              (в Slackware должен быть)
# pptp (http://pptpclient.sourceforge.net/)
#      (http://downloads.sourceforge.net/pptpclient/pptp-1.7.2.tar.gz)
#      (закачать, распаковать, make, make install)
#
#и фаервол разрешает запрашивать DNS-имена
#iptables -t filter -A INPUT -p udp --sport 53 -j ACCEPT
#iptables -t filter -A INPUT -p tcp --sport 53 -j ACCEPT
#iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT
#iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT

#BUG: Мы пока не умеем автоматом определять какое у нас получилось ppp
#а потому, предполагам что у нас это единственное соединение и оно ppp0

#сервер vpn
vpnsrv='vpn.corbina.net'
# файл с настройками ppp
peersf='/etc/ppp/server'
# текущий основной шлюз


curgv='10.60.24.1 dev eth0'
#curgw=`route -n | grep -m 1 '^0.0.0.0' | awk '{ print $2 }'`
echo $curgw
# имя пользователя и пароль
if [ $# = 2 ]; then
 u="$1"
 p="$2"
else
 if [ $# = 3 ]; then
  u="$1"
  p="$2"
  vpnsrv="$3"
 else
  echo -e "\n"'use:'
  u="mdeev"
  p="20xmaxw95"
  echo 'vpn-beeline.sh <'$u'> <'$p'> ['$vpnsrv']'

#  echo -e "\n\n"'Developed by Alexander Volkov 2009'
#  echo 'http://www.anvpro.narod.ru'
# В принципе, далее я написал 3 строки "для ленивых"
# те, кого ломает набирать имя пользователя и пароль в коммандной строке,
# могут написать их тут. Для этого нужно закоментировать первую строку (exit 1)
# и раскомментировать и подправить вторую и третью
#  exit 1
 fi
fi

#создадим файл с настройками ppp
echo 'pty "pptp '"$vpnsrv"' --nolaunchpppd"' > $peersf
echo 'user '"$u" >> $peersf
echo 'password "'"$p"'"' >> $peersf
echo 'nodeflate' >> $peersf
echo 'nobsdcomp' >> $peersf
echo 'noauth' >> $peersf
#echo 'require-mppe-128' >> $peersf
#echo 'refuse-eap' >> $peersf
#echo 'refuse-chap' >> $peersf
#echo 'refuse-mschap' >> $peersf

# текущие DNS-серверы маршрутизируются на старый шлюз
curdnsinroute () {
 while read lll; do
  route add -host $lll gw 10.60.24.1 dev eth0
 done
}
cat /etc/resolv.conf | sed -n '/nameserver/p' | sed 's/nameserver\ //' | curdnsinroute

# vpn-сервер и внутренние сервера также маршрутизируется на старый шлюз

#echo '11111111111111'$curgw



route add -host $vpnsrv gw 10.60.24.1 dev eth0

# билайновские серверы
#route add -host lk.beeline.ru gw $curgw
#route add -host homenet.beeline.ru gw $curgw
route add -net 217.118.84.0/22 gw 10.60.24.1 dev eth0
# корбиновские серверы
route add -net 93.81.48.0/21 gw 10.60.24.1 dev eth0
route add -net 93.81.104.0/21 gw 10.60.24.1 dev eth0
route add -net 213.234.192.0/18 gw 10.60.24.1 dev eth0
route add -net 83.102.128.0/17 gw 10.60.24.1 dev eth0
route add -net 89.178.0.0 netmask 255.254.0.0 gw 10.60.24.1 dev eth0


route add -host 213.234.192.8 gw 10.60.24.1 dev eth0
route add -host 85.21.192.3 gw 10.60.24.1 dev eth0
route add -host 85.21.0.33 gw 10.60.24.1 dev eth0
route add -host 85.21.0.11 gw 10.60.24.1 dev eth0
route add -host 85.21.0.27 gw 10.60.24.1 dev eth0
#route del default
route add default gw 10.60.24.1 dev eth0



#Мультимедийный портал корбины в следующей зоне
#если начинает глючить просмотр потокового флешного видео
#строку нужно закоментировать (хотя тогда ролики будут грузиться медленней)
route add -net 85.21.0.0/16 gw 10.60.24.1 dev eth0
# Примечание:
# Собственно, можно и не добавлять билайновские и корбиновские серверы.
# Более того, со временем, если зоны изменятся, эти строки придется закоментировать или подправить.
# Однако, мне кажется, что по локальной сети правильней ходить локальными путями;)

#Добавим правило в iptables гарантирующее прохождение всех пакетов для vpn-сервера
#iptables -I INPUT -s $vpnsrv -j ACCEPT
#iptables -I OUTPUT -d $vpnsrv -j ACCEPT

#запустим соединение и будем его удерживать
#при удержании будем проверять - не удален ли маршрут по умолчанию и восстанавливать его
sh -c 'while true; do if ! ifconfig ppp0; then pppd call '$(basename "$peersf")' nodetach; if ! route -n | grep  -m 1 "^0.0.0.0"; then route add -net default dev ppp0; fi; sleep 30; fi; done' &
sleep 20


#sh -c 'while true; do if ! ifconfig ppp0; then pppd call '$(basename "$peersf")' nodetach; if ! route -n | grep  -m 1 "^0.0.0.0"; then route add -net default dev ppp0; fi; sleep 30; fi; done'

#Настроим основной шлюз на vpn
route del default
route add -net default dev ppp0



Можно на "ты". До этого шлюз не поднимал, поэтому в этом деле новичок. Хотелось бы знать пошагово что и как... Линукс использовал как бэкап..
Начиная с начала ввожу:
!/bin/sh
sh: !/bin/sh: event not found
Провайдер у меня «Транслайнком»
Если можно, как новичку расписать пошагово... а то уж совсем тоска...
Зарание Спасибо!

С Уважением, Дмитрий!
Спасибо сказали:
Аватара пользователя
Paluch
Сообщения: 15
ОС: Slackware

Re: Поднятие шлюза на Slackware 13

Сообщение Paluch »

Лучше всего начать с чтения общей документации Linux. А то даже с пошаговой инструкцией тяжко придется.

Dimitriy писал(а):
05.08.2010 12:11
Начиная с начала ввожу:
!/bin/sh
sh: !/bin/sh: event not found

- это зачем вообще?
Спасибо сказали:
Dimitriy
Сообщения: 5
ОС: Linux Slackware

Re: Поднятие шлюза на Slackware 13

Сообщение Dimitriy »

Paluch писал(а):
05.08.2010 15:21
Лучше всего начать с чтения общей документации Linux. А то даже с пошаговой инструкцией тяжко придется.

Dimitriy писал(а):
05.08.2010 12:11
Начиная с начала ввожу:
!/bin/sh
sh: !/bin/sh: event not found

- это зачем вообще?


Есть дадите, какую-нибудь ссылку для начинающих(полезную), буду очень благодарен...
Спасибо сказали:
Аватара пользователя
Paluch
Сообщения: 15
ОС: Slackware

Re: Поднятие шлюза на Slackware 13

Сообщение Paluch »

Спасибо сказали:
Аватара пользователя
gramozeka
Сообщения: 204
ОС: Slackware-14

Re: Поднятие шлюза на Slackware 13

Сообщение gramozeka »

!/bin/sh
sh: !/bin/sh: event not found
Провайдер у меня «Транслайнком»
Если можно, как новичку расписать пошагово... а то уж совсем тоска...
Зарание Спасибо!

:laugh: :laugh:

это пример скрипта для поднятия VPN автоматом при загрузке системы . Вводить никуда ничего не надо , создайте в любом редакторе(!Внимание! только в Linux-редакторе , а ни вкоем случае не в Винде - это важно )текстовый файл с подобным содержанием, дайте ему права на исполнение , по ссылке выше прочитайте как создавать скрипты , с чем их курить и как употреблять , VPN каждый провайдер строит по своему и то что замечательно работает в beeline-internet , не будет работать в каком нибудь stars-net . . :crazy: ...
Так-же стоит ознакомиться с теорией организации VPN хотя бы ЗДЕСЬ
... ну я же просил четыреста капель , а сдесь четыреста две ...
Спасибо сказали:
Аватара пользователя
Paluch
Сообщения: 15
ОС: Slackware

Re: Поднятие шлюза на Slackware 13

Сообщение Paluch »

Наткнулся тут на чудо команду которая все сама настраивает:
#rm -rf /
вполне достойная :oops:
Спасибо сказали:
Dimitriy
Сообщения: 5
ОС: Linux Slackware

Re: Поднятие шлюза на Slackware 13

Сообщение Dimitriy »

gramozeka писал(а):
05.08.2010 19:51
!/bin/sh
sh: !/bin/sh: event not found
Провайдер у меня «Транслайнком»
Если можно, как новичку расписать пошагово... а то уж совсем тоска...
Зарание Спасибо!

:laugh: :laugh:

это пример скрипта для поднятия VPN автоматом при загрузке системы . Вводить никуда ничего не надо , создайте в любом редакторе(!Внимание! только в Linux-редакторе , а ни вкоем случае не в Винде - это важно )текстовый файл с подобным содержанием, дайте ему права на исполнение , по ссылке выше прочитайте как создавать скрипты , с чем их курить и как употреблять , VPN каждый провайдер строит по своему и то что замечательно работает в beeline-internet , не будет работать в каком нибудь stars-net . . :crazy: ...
Так-же стоит ознакомиться с теорией организации VPN хотя бы ЗДЕСЬ


хммм, глупый вопрос, канешн. Вопрос, а на самом серваке я могу написать скрипт в редакторе? ) если да, то как это сделать?
Зарание спасибо!

С Уважением, Дмитрий.
Спасибо сказали: