Установка 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 командой:

root@gw:~/vtun-3.0.2# ./configure --with-lzo-headers=/usr/local/include/lzo/ --with-lzo-lib=/usr/local/lib/

И в таком варианте configure отработал без ошибок!

Но вторая засада ожидала меня на следующем же шагу!

На команду make install кричит:

root@gw:~/vtun-3.0.2# 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, оказывается, надо командой:

root@gw:~/vtun-3.0.2# gmake install

а не make install (как написано в официальной документации программы)

Вобщем, после этого сконфигурил и собрал без проблем — как положено 🙂

Также вылез еще один нюанс с настройкой конфига, такчто хоть я и разобрался с ней довольно быстро, все равно оставлю заметку на будущее … вдруг пригодится! Особенность конфиг файла заключается в ином синтаксисе команд ifconfig и route в OpenBSD, в остальном все тоже самое что и в примерах стандартного конфига. Вот мой рабочий конфиг клиента для OpenBSD:

options {
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 либо изучать его более основательно 🙂

  1. Комментов пока нет

  1. Трэкбэков пока нет.

Why ask?