Destio

Установка umurmur на маршрутизатор c dd-wrt

umurmur — минималистичная реализация murmur — серверной части, идущей в комплекте поставки Mumble (ufkbvfnmz rfrfz!), программы-голосового-чятика. umurmur лишен таких ненужных, бессмысленных и беспощадных вещей как администрирование сервера из клиента, хранение клиентской базы и прочей ненужной бешеной дребедени. Всё что он умеет — это передача звуков между клиентами, чем бы они ни были (дада, и звуки и клиенты) и чтение своих конфигов.

Как следует из названия статьи, здесь мы собираемся заниматься ни чем иным как устанавливать серверную часть голосового чятика на маршрутизатор под управлением прошивки dd-wrt.

Для всего действа нам скорее всего понадобится девайс с хитрым заморским названием «USB Flash drive», поскольку на маршрутизаторах обычно не так уж много энергонезависимой памяти. Отформатируем его в EXT3 (я не уверен что в dd-wrt есть поддержка EXT4), ntfs или fat32. Для последних двух может потребоваться оперативное вмешательство в тело маршрутизатора, но мы сможем более-менее спокойно перемещать файлы между маршрутизатором и Windows-компьютером (крайне необходимое занятие, не так ли?).

Умельцы могут скомпилировать необходимые пакеты самостоятельно. Стоит отметить, что в umurmur могут быть интегрированы разные криптографические библиотеки: OpenSSL или PolarSSL. Итак, список необходимых пакетов:

  • umurmur-polarssl
  • libpolarssl
  • libconfig
  • libprotobuf-с

или

  • umurmur-openssl
  • libopenssl
  • libconfig
  • libprotobuf-с.

Тащемта остальные могут попробовать поискать готовые *.ipk на сайте OpenWRT, например.

Следующие действия нам нужно буде произвести для того чтоб заставить эту штуку работать:

  1. Включить поддержку USB и jffs2. В новых экспериментальных билдах от eko нужно только поставить галки в вебгуе и перезагрузить маршрутизатор.
  2. Включить управление роутером через ssh и подключиться: ssh root@router -p port
  3. Смонтировать флешку. Можно установить автомонтирование по UUID, опять же через вебгуй, или сохранить в Administration > Commands такой Startup-скрипт: mount /dev/sda /jffs
  4. Cкопировать на флешку пакеты. Для операций с файлами можно использовать sshfs или scp.
    Можно просто сделать так:

    # mkdir /jffs/downloads
    # cd /jffs/downloads
    # wget http://downloads.openwrt.org/attitude_adjustment/12.09-rc2/atheros/generic/packages/umurmur-openssl_0.2.10-1_atheros.ipk 
    # wget http://downloads.openwrt.org/attitude_adjustment/12.09-rc2/atheros/generic/packages/libopenssl_1.0.1h-1_atheros.ipk  
    # wget http://downloads.openwrt.org/attitude_adjustment/12.09-rc2/atheros/generic/packages/libprotobuf-c_0.15-1_atheros.ipk 
    # wget http://downloads.openwrt.org/attitude_adjustment/12.09-rc2/atheros/generic/packages/libconfig_1.4.8-2_atheros.ipk

    К слову: можно найти более подходящие к ситуации версии пакетов где-то в дебрях сайта OpenWRT

  5. Установка пакетов:
    # ipkg -d /jffs install ./*.ipk
  6. Сгенерить и скопировать на роутер сертификаты. Нам понадобится компьютер с OpenSSL:
    openssl genrsa 1024 > my_key.key 
    openssl req -new -x509 -nodes -sha1 -days 365 -key my_key.key > my_selfsigned_cert.crt
  7. Конфиг-файл скорей всего будет называться /jffs/etc/umurmur.conf. Там можно перебиндить порты и адреса, описать структуру сервера и указать на файлы сертификатов.
  8. Для автоматического запуска umurmurd в Administration > Commands можно дописать в наш Startup-скрипт следующие строки:
    kill $(cat "/var/run/umurmurd.pid")
    /jffs/usr/bin/umurmurd -c /jffs/etc/umurmur.conf  -r -p /var/run/umurmurd.pid

    Стоит обратить внимание на то, что там можно сохранять разные «типы» скриптов. Shutdown-скрипт:

    kill $(cat "/var/run/umurmurd.pid")
    umount /dev/sda

    И наконец Firewall-скрипт, без которого у нас будут проблемы с подключением к umurmur через WAN и loopback:

    iptables -I INPUT -p udp --dport PORT -j ACCEPT
    iptables -I INPUT -p tcp --dport PORT -j ACCEPT

    Здесь должны быть указаны порты, которые мы вписали в /jffs/etc/umurmur.conf

  9. ???
  10. PROFIT

Если на девятом шаге Вы решили перезагрузить маршрутизатор, то сервер должен стабильно работать до ближайшего обновления прошивки. Если же всё таки не решили, то команда /jffs/usr/bin/umurmurd -c /jffs/etc/umurmur.conf -r -p /var/run/umurmurd.pid должна стартовать сервер, который опять же при удачном расположении звезд проработает еще долго 🙂

//Я видел билды, которые ставят бинарники в /jffs/opt и кладут конфиг куда-то в /jffs/opt/etc. Для таких небось надо буде немного подкорректировать стартап-скрипты.

Ярлыки: , ,


Ближайшие сообщения:

Похожие сообщения:

Комментарии к этой записи отключены.

коттеджный поселок шелестово