• Сколько параллельных линий имеет SIP аккаунт провайдера?

    merlin-vrn
    @merlin-vrn
    В Сипнет — сколько угодно. По крайней мере, у нас не получилось добраться до ограничения, когда мы это проверяли.
    Каждый разговор будет тарифицироваться независимо.

    А вообще зависит от провайдера и прописывается в договоре.
    Ответ написан
    Комментировать
  • Iptables и подмена ip?

    merlin-vrn
    @merlin-vrn
    Ну что, у меня получилось так сделать. Рассказываю.

    Пусть у нас есть локалка, которая получает в интернет доступ через роутер.
    на роутере два интерфейса:
    • eth0 — интернет, имеет адрес 192.0.2.55/24 (такой адрес выдал провайдер, у провайдера шлюз 192.0.2.1)
    • eth1 — локалка, имеет адрес 192.168.1.1/24 (так было по умолчанию. менять не стали.) — серый


    Роутер делает трансляцию адресов (белый адрес только у него). На нём есть маршруты:
    192.168.1.0/24 dev eth1 src 192.168.1.1
    192.0.2.0/24 dev eth0 src 192.0.2.55
    default via 192.0.2.1
    

    и одно правило трансляции (это всё, что нужно для того, чтобы интернет появился в локалке): либо так
    iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

    либо так
    iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 192.0.2.55


    В локалке есть компьютер, скажем, с адресом
    192.168.1.22/24

    и маршрутами
    192.168.1.0/24 dev eth0 src 192.168.1.22
    default via 192.168.1.1
    

    и на нём работает интернет.

    Мы хотим подключиться к компьютеру с адреса 192.0.2.66 (извне) так, чтобы компьютер думал, будто мы на самом деле подключаемся с 192.168.1.77.

    На роутере добавляем трансляцию назначения:
    iptables -t nat -A PREROUTING -s 192.0.2.66 -i eth0 -j DNAT --to-destination 192.168.1.22

    чтобы все пакеты с нужного адреса завернуть на компьютер (а были они направлены роутеру, которому не нужны)

    iptables -t filter -A FORWARD -s 192.0.2.66 -d 192.168.1.22 -j ACCEPT

    чтобы разрешить прохождение всех таких пакетов

    iptables -t nat -A POSTROUTING -s 192.0.2.66 -j SNAT --to-source 192.168.1.77

    чтобы адрес источника в пакетах заменять на поддельный.

    С точки зрения компьютера, 192.168.1.77 находится в локалке, ему не нужен роутер, чтобы послать туда пакет. Поэтому ответов мы не увидим — всё закончится тем, что компьютер получит приветственный пакет извне с нужными нам адресами и начнёт искать (arp who-has) на какой физический адрес отправлять ответы. Поскольку такого физического адреса нет, то ему никто и не ответит.

    Решить эту проблему можно двумя способами. Либо можно назначить этот адрес роутеру: (на роутере)
    ip addr add 192.168.1.77/24 dev eth1

    теперь у роутера два адреса. Когда компьютер будет искать, кому бы отправить ответ, отзовётся роутер. Пакет подхватится conntrackом, будут сделаны обратные преобразования адресов и ответ пойдёт куда надо.

    Либо можно сказать компьютеру, чтобы он конкретно до этого адреса ходил через роутер: (на компьютере)
    ip route add 192.168.1.77 via 192.168.1.1

    Есть и кардинальное решение. Пусть поддельный адрес будет в другой сети, не в локалке: 192.168.2.77/24; тогда никаких дополнительных проблем решать не придётся, а на роутере просто изменится аргумент в последнем --to-source.
    Ответ написан
    5 комментариев
  • Почему в прошивках роутеров используется kernel 2.6?

    merlin-vrn
    @merlin-vrn
    это ерунда, ещё некоторые используют 2.4, и один раз видел вполне нормальную железку с 2.2

    какой смысл менять, если все функции выполняются хорошо?
    Ответ написан
    1 комментарий
  • Объединение Samba и Active Directory (с установкой прав из Windows)

    merlin-vrn
    @merlin-vrn
    Для этого нужно делать всё по инструкции, но шары должны быть на ФС с поддержкой опции user_xattr. Вообще, по-хорошему, эта опция сегодня уже везде должна быть включена — acl и user_xattr упрощают жизнь.

    Всё.
    Ответ написан
    Комментировать
  • Запрос наружу, с использованием внутреннего адреса

    merlin-vrn
    @merlin-vrn
    Собственно, а серверу-то какое дело? Если у него есть (обратный) маршрут, он смело отправит адрес по этому обратному маршруту и всё. Пакеты с «серыми» адресами — совершенно такие же, как и с «белыми» и работают точно так же. Вся разница происходит оттого, что в глобальных таблицах маршрутизации до них нет (не должно быть) маршрутов.
    Ответ написан
    Комментировать
  • Железо под Asterisk?

    merlin-vrn
    @merlin-vrn
    Есть отличная книга от авторов Астериска, в которой они помимо описания архитектуры и принципов действия, ещё и описывают, какие у него потребности.

    Для ваших потребностей хватит системника на атоме с паршивеньким винтом, общей стоимостью в пределах 10К.
    Ответ написан
    Комментировать
  • Как можно менять цвет от зеленого к красному, имея на входе только число 0-40?

    merlin-vrn
    @merlin-vrn
    Да простая линейная интерполяция каждой из трёх компонент, и делов.
    Ответ написан
    Комментировать
  • LDAP сервер и аутентификация

    merlin-vrn
    @merlin-vrn
    Аутентификацию в системе?

    Общий план такой:
    1. Поднимаете директорию.
    2. В ней создаёте объекты класса posixGroup и posixAccount; к posixAccount приделывайте aux-классы а-ля simpeSecurityObject (содержит поле userPassword)
    3. Ставьте pam_ldap и настраивайте его на аутентификацию по директории. Там нужно будет прописать адрес сервера ldap, а также фильтры для выборки объектов из неё.

    по мере разворачивания придёт понимание того, что компьютерам тоже потребуются подобные записи в директории и соответственно пароли, как настраивать acl и тому подобное.

    Вообще если хотите разобраться как это устроено «с нуля» и до системы уровня MS AD, пара месяцев уйдёт. Директории — технология хорошая, но не очень-то простая для понимания.
    Ответ написан
    Комментировать
  • Графика через ssh?

    merlin-vrn
    @merlin-vrn
    ssh -Y target-machine xterm — и у вас на экране отображается xterm, выполняющийся на target-machine
    Ответ написан
    1 комментарий
  • Единый способ авторизации и аутентификации UNIX

    merlin-vrn
    @merlin-vrn
    Ну ответ дан — используйте директорию. Но сразу хочу предупредить: во-первых нормальных современных мануалов нет, во-вторых — с openldap придётся изобретать всё с нуля: свою структуру директории и тому подобное. Для облегчения процесса возьмите 389 — там всё-таки больше «готового».

    И прежде, чем настраивать на живом, погоняйте виртуальную сеть из четырёх-семи машин, отладьте подход и научитесь пользоваться (а заодно и других научите); иначе потом может быть мучительно больно. Если возьмётесь за openldap, я вам гарантирую, что вы ещё в виртуальной сети пару раз всё переделаете, пока придёте к удобному подходу.

    Если хотите сделать чтоб всё ваще зашибись, то сразу дружите систему с Kerberos. Это даст вам бесплатный SSO, и заодно позволит повысить безопасность сетевой аутентификации (конечно же, только при правильном подходе, а пароли типа 123 безопаснее не станут).
    Ответ написан
    2 комментария
  • dlink DNS-346 в AD 2012

    merlin-vrn
    @merlin-vrn
    Покрутить можно политики безопасности, в частности — алгоритмы шифрования, применяемые в Kerberos.

    support.microsoft.com/kb/961302

    technet.microsoft.com/en-us/library/bb742516.aspx
    Ответ написан
    Комментировать
  • Транспонирование звука?

    merlin-vrn
    @merlin-vrn
    Если не боитесь читать исходники, возьмите libmodplug и посмотрите, как это сделано у них. Принцип вам MTonly уже описал.

    То, что вы делали — «это слишком». Если брать каждый второй сэмпл получается примитивный частный случай (но совершенно правильный с точки зрения теории!) ресемплинга «на октаву выше». Не немного, сразу на октаву, т.к. частота вырастает сразу вдвое.

    Если нужно не вдвое, ресемплинг нужно делать не так. В частности, брать не каждый второй, а допустим при проигрывании каждых очередных 100 отсчётов получать их из 101 исходного отсчёта. Таким образом вы сделаете звук чуть-чуть выше. Примитивный вариант для вас будет — линейная интерполяция: отсчёты расположены равномерно, но «решётки» не совпадают. Вычисляете, с какими весами должны входить два ближайших отсчёта.

    Пример:
    Пусть отсчёты PCM будут 15 123 53 234 54 52 35 151… Мы хотим сыграть их на квинту выше, т.е. для каждых трёх исходных мы должны воспроизвести два.
    тогда на выходе будет:
    15, (125+53)/2, 234, (54+52)/2, 35, и так далее. Я здесь «промежуточные» отсчёты, которые находились в тех точках, в которых в оригинале ничего не было, вычисляю при помощи линейной интерполяции. Поскольку новые отсчёты лежат точно посередине, два «соседних» входят с одинаковыми весами.
    Другой пример с этой же последовательностью: мы хотим сделать из этих восьми отсчётов семь. На выходе:
    15, (123*5+53*1)/6, (53*4+234*2)/6, (234*3+54*3)/6, (54*2+52*4)/6, (52*1+35*5)/6, 151,…
    Или же, сдвиг на a=0.992:
    15, 123*(1-a)+53*a, 53*(1-2a)+234*2a,… — осталось только научиться правильно обрабатывать момент, когда n*a становится больше единицы.
    Стоит нарисовать «временнУю диаграмму» для того и другого количества отсчётов, а потом посмотреть, что и как вычислять.

    Для аккуратной интерполяции есть более продвинутые алгоритмы, в частности, фильтры FIR (finite impulse response, КИХ, конечная импульсная характеристика) — они будут давать меньше «призвуков» при таком изменении тона.
    А потом вы забьёте на реализацию этого самостоятельно и начнёте использовать библиотеку rubberband :)
    Ответ написан
    1 комментарий
  • Дистрибутив с простым локальным веб-сервером «из коробки»?

    merlin-vrn
    @merlin-vrn
    Любой. Например, debian:
    apt-get install apache mysql php
    и у вас сервер, который слушает (в том числе) локально
    Ответ написан
    1 комментарий
  • Как разобрать это вложенное письмо на PHP и сохранить вложенные туда файлы?

    merlin-vrn
    @merlin-vrn
    Это email-сообщение, вложенное как приложение в email-сообщение. Например, когда что-то пересылаешь «как вложение», это вложение получается вот такого типа.

    Если я правильно понял документацию, в Zend есть некий RecursiveIterator, который должен, обходя дерево MIME, вызвать ваш код для каждой части, в том числе и зайти рекурсивно в это вложенное сообщение и обработать его. Данные могут содержаться в текстовой части или во вложениях этого вложенного сообщения.

    Раз уж вы пытаетесь разбирать почтовые сообщения, то для вас обязательно прочитать и понять этот самый RFC 822 (неожиданно, правда?) а лучше — современную инкарнацию этого стандарта, RFC 5322, там детально описан формат. Даже несмотря на то, что за вас разбор по идее должен делать Zend, нужно понимать, что именно он делает.

    Вкратце формат у email-сообщения такой: сначала заголовки (Content-Type, Subject, From, To, ...), разделённые \r\n, потом после \r\n\rn (пустая строка) идёт тело сообщения, которое может состоять из текстового блока, и если сообщение имеет MIME-тип multipart/*, то дальше идут уже вложения, разделённые указанной в Content-Type строкой; структура рекурсивная, то есть каждое вложение выглядит так же точно как сообщение — заголовки и тело, которое может так же состоять из частей.
    Ответ написан
  • Спектр звука в реальном времени

    merlin-vrn
    @merlin-vrn
    не забудьте про meterbridge — это несколько виджетов, подцепляющихся к jack: vu, oscilloscope, jellyfish (монитор стереопанорамы) и т. д.

    кроме того, можно представить себе jamin в режиме только-монитор. Но это «из пушки по воробьям»: так-то он — многополосный компрессор/эквалайзер для мастер-секции.
    Ответ написан
    Комментировать
  • Wi-fi и пароль для входа в windows

    merlin-vrn
    @merlin-vrn
    В Windows очень гибкая система аутентификации, называется GINA. Помимо встроенной msgina.dll, есть и другие проекты, которые реализуют этот интерфейс — например, pGINA позволяет логиниться в винду по табличке в БД MySQL, базе LDAP, проверяя пароль на IMAP-сервере и тому подобное.

    Можно к ней и такой плагин написать, как вы описали. Но готового я не знаю.
    Ответ написан
    Комментировать
  • Чтение дисков Windows Software Raid (Dynamic disks) в Linux

    merlin-vrn
    @merlin-vrn
    Возможно. Видимо, вам нужно будет пересобрать ядро, включив в нём опцию CONFIG_LDM_PARTITION (в kconfig она называется «Windows Logical Disk Manager»)
    Ответ написан
    1 комментарий
  • Как настроить https в апаче имея свой сертификат для домена?

    merlin-vrn
    @merlin-vrn
    Это всё сертификаты в формате PEM.
    То, что между BEGIN CERTIFICATE и END CERTIFICATE в принципе не является секретной информацией — там открытый ключ, информация о нём и подписи удостоверяющего центра, подтверждающие этот открытый ключ и дополнительную информацию. Эту информацию можно проанализировать командой openssl x509 -in domaine_com.crt -noout -text

    Система такая, что в одном файле можно собрать несколько объектов, тогда они будут идти один за другим, по очереди: один закончился, END CERTIFICATE, потом сразу начинается следующий BEGIN что-нибудь. Можно и сертификат соединить с приватным ключом.

    Ни в одном файле нет строки типа -----BEGIN RSA PRIVATE KEY-----, возможно, не в начале файла? Тогда и приватного ключа нет. Без него, очевидно, бессмысленно что-то пытаться делать.

    Если найдёте, берите всё что, что от ----BEGIN… PRIVATE KEY---- (включая эту строку) и заканчивая ----END… PRIVATE KEY---- (включая). копируйте в отдельный файл. Этот файл и нужно указать апачу в директиве SSLCertificateKeyFile
    Ответ написан
    Комментировать
  • Как настроить https в апаче имея свой сертификат для домена?

    merlin-vrn
    @merlin-vrn
    Написано: private key not found

    Это key.txt? Апач имеет право к чему обращаться на чтение? Сам ключ в правильном формате (PEM)?

    Ещё полезно руками посмотреть на каждый сертификат командой openssl x509 -in domaine_com.crt -noout -text
    Ответ написан
  • Удаленный рабочий стол из Linux и драйвер DLL — как возможно?

    merlin-vrn
    @merlin-vrn
    Можно попробовать реверс-инженирить протокол. Для этого поставьте виртуалку с виндой, пробросьте в неё COM-порт и послушайте, как они общаются. Ну или прямо в винде, запущеной на железе, поставьте софт для подслушивания COM-портов и реверсите так.
    Ну а драйвер потом на основании полученных сведений.
    Ответ написан
    1 комментарий