Установка VTUN в OpenBSD 4.6
Сегодня нарисовалась задача создать VTUN тунель с одного из удаленных шлюзов в офис. На удаленном шлюзе стоит OpenBSD 4.6. Раз плюнуть, было моей первой мыслью …. но не тут то было!
Засада номер раз! Моему удивлению небыло предела, когда оказалось что ни в портах, ни в пакаджах нету VTUN! Да уж, дает о себе знать розбалованость линуксом, где в репозитариях всякого барахла десятками тысяч лежит 🙂 Ну мы же не из робкого десятка поэтому меня это не остановило! Полез с офсайта качать сырци и компилить … но вот незадача. На ./configure вываливалась ошибка что нету библиотек lzo. Собрал из OpenBSD-шных портов archives/lzo версии 1.08 — таже фигня! Не видит хедеров хоть ты тресни! Пришлось снести с помощью make deinstall установленную из портов версию и играться со скачаной последней версией исходников lzo-2.05 с офсайта и сборкой руцями с помощью make. На удивление они собрались с первого пинка без каких либо проблем.
После этого еще раз пробуем запустить make vtun-a командой:
И в таком варианте configure отработал без ошибок!
Но вторая засада ожидала меня на следующем же шагу!
На команду make install кричит:
gcc -g -O2 -I/usr/include/openssl -I/usr/include/ssl -I/usr/include/ssl -I/usr/include/ssl -c main.c
main.c: In function `main':
main.c:63: error: `VTUN_CONFIG_FILE' undeclared (first use in this function)
main.c:63: error: (Each undeclared identifier is reported only once
main.c:63: error: for each function it appears in.)
main.c: In function `write_pid':
main.c:217: error: `VTUN_PID_FILE' undeclared (first use in this function)
*** Error code 1
Stop in /root/vtun-3.0.2 (line 92 of /usr/share/mk/sys.mk).
root@gw:~/vtun-3.0.2#
Тут уже меня обламало догадываться что ему надо … полез гуглить. Спасибо доброму человеку на этом сайте — вовремя подвернулась под руку заметка и порядочно сократила время на поиски решения 🙂 Все гениальное просто, поэтому собирать vtun в OpenBSD, оказывается, надо командой:
а не make install (как написано в официальной документации программы)
Вобщем, после этого сконфигурил и собрал без проблем — как положено 🙂
Также вылез еще один нюанс с настройкой конфига, такчто хоть я и разобрался с ней довольно быстро, все равно оставлю заметку на будущее … вдруг пригодится! Особенность конфиг файла заключается в ином синтаксисе команд ifconfig и route в OpenBSD, в остальном все тоже самое что и в примерах стандартного конфига. Вот мой рабочий конфиг клиента для OpenBSD:
port 5000; # Listen on this port.
bindaddr { iface lo; }; # Listen only on loopback device.
# Syslog facility
syslog daemon;
# Path to various programs
ppp /usr/sbin/pppd;
ifconfig /sbin/ifconfig;
route /sbin/route;
firewall /sbin/ipchains;
ip /sbin/ip;
}
# Default session options
default {
compress no; # Compression is off by default
speed 0; # By default maximum speed, NO shaping
}
rofficekiev2 {
passwd _my_password_here_;
type tun;
proto tcp;
compress lzo:9;
encrypt yes;
keepalive yes; # Keep connection alive
device tun3; # TUN Device
up {
# Assign IP addresses.
ifconfig "%% 192.168.111.103 192.168.111.1 mtu 1450";
route "add -inet 10.100.100.0/24 192.168.111.103";
};
down {
route "del -inet 10.100.100.0/24";
};
}
В результате всей этой тягамотины сижу вот и думаю … толи я тупой толи че такое? На Debian Squeeze пару недель назад у меня решение такой же задачи заняло минут 10-15 🙂 А тут стока гемора нахлебался 🙂 Короче, сделал для себя вывод, надо либо отказываться от BSD либо изучать его более основательно 🙂
Комментов пока нет