Мы — долго запрягаем, быстро ездим, и сильно тормозим.
|
||||||||||||
www.lissyara.su
—> статьи
—> FreeBSD
|
|
После установки топаем править конфиг:
|
В итоге, на сервере (в офисе) имеем /usr/local/etc/rc.d/vtund.conf:
|
После чего добавляем строку в /etc/rc.conf, и запускаем сервер:
|
Запустился. Надо заметить, что несмотря на рекомендованную конфигурацию с udp я поставил tcp - он даже при установке udp слушает tcp порт :) Баг, или мои кривые руки - не знаю. Поставил tcp - всё нормально. Не забываем добавить вверху файрволла примерно такие правила:
|
Где ${LanIn} - внутренняя сетевуха.
После чего топаем на машину филиала, там устанавливать. Установка отличий не имеет, главное не забыть обновить порты. Конфиг получился такой /usr/local/etc/rc.d/vtund.conf:
|
После рихтовки конфига, добавляем строки (первая про запуск клиента, а вторая представляет собой имя конфигурации и IP-адрес сервера) в /etc/rc.conf, и запускаем это хозяйство:
|
Добавляем в фаер правила (тока три, т.к. у меня этот сервер имеет право соединяться с кем угодно по tcp, значит про 5000 порт не надо.)
|
Где ${LanIn} - внутренняя сетевуха
После чего смотрим, появился ли интерфейс и пробуем пингануть удалённую сетку:
/usr/local/etc/rc.d/>ifconfig tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500 inet 192.168.30.254 --> 192.168.20.254 netmask 0xffffff00 Opened by PID 89903 /usr/local/etc/rc.d/> /usr/local/etc/rc.d/>ping 192.168.20.1 PING 192.168.20.1 (192.168.20.1): 56 data bytes 64 bytes from 192.168.20.1: icmp_seq=0 ttl=127 time=134.485 ms 64 bytes from 192.168.20.1: icmp_seq=1 ttl=127 time=134.909 ms 64 bytes from 192.168.20.1: icmp_seq=2 ttl=127 time=135.900 ms 64 bytes from 192.168.20.1: icmp_seq=3 ttl=127 time=138.260 ms 64 bytes from 192.168.20.1: icmp_seq=4 ttl=127 time=133.772 ms ^C --- 192.168.20.1 ping statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max/stddev = 133.772/135.465/138.260/1.558 ms /usr/local/etc/rc.d/> |
Всё нормально. Бегает. Если интересует шифруется ли - то tcpdump -i _имя_интерфейса_ -lex вам поможет. Вначале на интерфейсе tun0, а потом на внешнем. На tun будет видно, что это icmp (при пингах), а на внешнем это уже будет Unknown :)
P.S. Косяк - если перезапустить сервер (например перезагрузка понадобилась), то клиенты отваливаются навсегда. Пришлось нарисовать такой скрипт на шелле:
|
И запихать в планировщик (рутовый). Я поставил раз в минуту. Можно и реже.
размещено: 2006-03-29,
последнее обновление: 2006-03-29,
автор: lissyara
Владимир?, 2006-04-25 в 15:31:12
А при таком туннеле, машины второго офиса смогут войти в домен первого?
Brunen, 2006-08-27 в 15:10:56
Приветствую, lissyara!
При попытке запустит команду /usr/local/etc/rc.d/vtunclient.sh start, FreeBSD 5.4 выдает
Starting vtunclient.
vtund[583]: syntax error line 5
vtund[583]: No hosts defined
В основном офисе FreeBSD 5.4 при запуске vtund.sh выдает, как и положено, Starting vtund. Демон vtund висит на сервере. В филиале, из-за этой ошибки - нет.
Brunen, 2006-08-27 в 16:40:23
Ошибка была в филиале vtund.conf: неправильно указал серые подсети.
А теперь, после установки соединения, возник такой вопрос: а клиенты(MSWinXPSP2) могут друг друга по пингу видеть?
Guimplen, 2006-12-14 в 18:39:01
НЕ работает скрипт поднятия тунеля после падения.
НЕ зависимо от того работает прога или нет он пишет что все ногмально и тунель стоит.
lissyara, 2006-12-14 в 20:33:41
У меня этот скрипт уже 10 месяцев работает.
Однако, присмотревшись, понял, что если машина шустрая (у меня - нет), он может и не работать. Надо в выборе процессов, до подсчёта, добавить ещё трубу:
| grep -v "grep"
=============
А вообще, собственной башкой думать неплохобы. Помогает в решении простейших проблем.
Константин, 2007-02-17 в 17:01:41
Хорошая статья.
все получилось.
а опыт использования openvpn у вас есть? очень хорошо вы пишите. очень понятно.
Константин, 2007-02-17 в 18:04:15
Вот только что то скрипт не работает у меня. объясните плиз подробней немножко про grep -v "grep". как всетаки написать скрипт.
lissyara, 2007-02-17 в 19:17:35
а думать-то как все не любят...
more tun0.sh
#!/bin/sh
# Скрипт перезапуска клиента vtun, на случай падений
# где живут программы
ps="/bin/ps"
grep="/usr/bin/grep"
wc="/usr/bin/wc"
# если число "нагрепаных" туннелей меньше одного,
# то выполняем условие
if [ `${ps} -ax | ${grep} "vtun" | ${wc} -l | grep -v grep` -lt 1 ]
then
# запускаем клиента
/usr/local/etc/rc.d/000.vtunclient.sh start #> /dev/null 2>&1
# обновляем таблицы маршрутизации
sleep 15
/sbin/route delete 192.168.0.0/16 &
sleep 2
ping 192.168.8.254 >/dev/null &
sleep 3
kill -9 $!
/sbin/route add 192.168.0.0/16 192.168.8.254
else
# всё пучком, ничё не делаем
fi
exit;
Это с машины где оно стоит уже больше года...
Константин, 2007-02-17 в 21:30:12
Спасибо большое. Я не волшебник, я только учусь. освою.
еще раз спасибо за помощь.
Константин, 2007-02-19 в 14:57:23
все таки что то не так со скриптом.
запускается через 10 раз. то есть 10-15 раз не поднимит клиента 1 раз поднимет.
Константин, 2007-02-19 в 15:23:11
вообщем решил проблему в моем случаем.
добавил еще grep -v "grep"
строка условия выглядит так
if [ `${ps} -ax | ${grep} "vtun" | grep -v "grep" | ${wc} -l | grep -v "grep"` -lt 1 ]
Айзятуллен Рамиль, 2007-02-20 в 13:32:31
>P.S. Косяк - если перезапустить сервер (например >перезагрузка понадобилась), то клиенты отваливаются >навсегда. Пришлось нарисовать такой скрипт на шелле:
Столкнулся с этой проблемой.Все решается гораздо проще, скриптов писать не надо. Смотрим файл vtund.conf.example на предмет нахождения в нем Persist mode.
Persist mode. Reconnect to the server after connection termination. Used only by client.
На клиентской стороне в vtund.conf допишем
ametist {
persist yes;
...
...
kuzea, 2007-06-09 в 16:42:53
Oceni bolishoe spasibo
rabotaet cerez persist = yes bez scripta
kuzea, 2007-06-09 в 16:43:56
oshibocica v predydushem poste
persist yes;
Amadeus, 2008-09-22 в 12:59:38
Бальшее спасибо за статью, оч помогла
shark, 2009-06-17 в 0:17:48
а не проще было бы добавить в кроне
[code]*/1 * * * * root /usr/local/etc/rc.d/vtunclient.sh start[/code]?
у меня так пашет ... а раньше падения были
shark, 2009-06-17 в 0:21:41
t4# /usr/local/etc/rc.d/vtunclient.sh stop
Stopping vtunclient.
Waiting for PIDS: 2215.
t4# /usr/local/etc/rc.d/vtunclient.sh status
vtunclient is not running.
... где-то через минуту
t4# /usr/local/etc/rc.d/vtunclient.sh status
vtunclient is running as pid 3153.
girffe, 2009-07-23 в 8:02:39
Прописал persist yes; на стороне клиента, не помогло.
Версии клиента и сервера разные, в этом может быть косяк?
giraffe, 2009-07-23 в 9:43:33
Посмотрел example
Разобрался в чем косяк
Директивы
compress
encrypt
keepalive
игнорируются на стороне клиента.
Тупо комментируем их и добавляем
persist yes;
И наслаждаемся райской жизнью ))
wao, 2009-11-04 в 17:46:58
Почему MTU выбран 1500 ?
Alexey, 2010-06-17 в 12:19:37
добавляем в крон
ee /etc/crontab
строчку
*/15 * * * * root /bin/ps -ax | /usr/bin/grep -v "grep" | /usr/bin/grep -c "vtun" | /usr/bin/awk '{if ($1=0) print "/usr/local/etc/rc.d/vtunclient start"}' | /bin/sh
Итого раз в 15 минут будет проверятся канал перевожу для тех кто далёк
раз в мин мин | высветить все процессы | убрать из процессов GREP | считаем сколько процессов Vtun | далее (Кол-во строк Vtun =0) то запускаем печатаем /usr/local/etc/rc.d/vtunclient start | Выполнить
После этого канал не падает и скрипта писать не нужно !!!
----
Компьютерная барахолка oldcomp.ru
Егор, 2011-06-16 в 18:58:33
ого, 5 лет статье, а она ешё актуальна.
спасибо за статью, отлично пишите
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
Комментарии пользователей [22 шт.]