Установка Firebird 1.5.6 на Debian 7

В данный момент актуальная версия Firebird 2.5, но т.к. разработчики не обременяют себя поддержкой обратной совместимости, то периодически для старых неподдерживаемых программ требуется ветка 1.5. Собственно для этих людей и написана эта заметка.

Для начала установим необходимые компоненты:

apt-get install libstdc++5
apt-get install xinetd
apt-get install lib32ncurses5
apt-get install ia32-libs

Далее, т.к. установочного пакета для дебиана нет, то берем тарбол отсюда -http://www.firebirdsql.org/en/firebird-1-5/

Его мы распаковываем и устанавливаем скриптом install.sh

tar xzvf FirebirdCS-1.5.6.5026-0.i686.tar.gz

cd FirebirdCS-1.5.6.5026-0.i686
./install.sh
Казалось бы все… но нет. По команде isql ничего не найдено. Все потому что устанавливается приложение в /opt и нужно добавить путь к исполняемым файлам в PATH. Для этого в /etc/profile в конец добавляем строку:
PATH=$PATH:/opt/firebird/bin
Собственно все. Перелогиниваемся, потом перезапускаем xinetd и все должно заработать. База должна светить портом 3050 tcp. Если это не так нужно искать проблему.
Если вдруг у нас x86_64 ядро и не ставится ia32-libs, то делаем следующее:
dpkg --add-architecture i386
apt-get update
apt-get install ia32-libs
Рубрика: Без рубрики | Метки: , , , | Комментарии отключены

Мышь от A4 Tech и ядро Linux 3.9.x

После обновления до ядра 3.9.4-gentoo столкнулся с тем, что мышка перестала определяться. Путем исключения добрался до того, что ядро видит usb-устройство, но не определяет его как мышку. Несколько дней я не мог понять в чем дело, пока не рассмотрел внимательно новое меню конфигурации для USB HID устройств (а мышка определяется как HID-устройство).

В результате выяснилось, что драйвер мышке A4 Tech вынесен в отдельный модуль:

    Device Drivers  --->
        HID support  --->
            Special HID drivers  --->
                <M> A4 tech mice

После его сборки и перезагрузки я смог пользоваться мышью дальше.

Рубрика: Без рубрики | Метки: , , | Комментарии отключены

ISPmanager. Дефолтная страница.

Здравствуйте читатели.

Сегодня речь пойдет о решении одной из проблем сео-шника средствами ISPmanager (естественно это сработает, только если вы пользуетесь этой панелью на сервере).

Итак. Есть у нас домен mylittledomain.ru, на котором у нас висит сайт. Он работает, все хорошо… но однажды мы обнаружили, что в чужом домене создана А-запись на наш IP-адрес и кто-то чужой присваивает наши труды, наш рейтинг в поисковиках и т.д. К тому же появились странные ссылки вида asdfssd.mylittledomain.ru, которые тоже открывают наш сайт. При этом они размещены в таком количестве и в таких местах, что наш сайт падает в рейтингах буквально на глазах.

Почему так происходит? Apache или nginx в базовой настройке, не найдя требуемый домен выдают верхний в конфигурации для этого ip-адреса.

К счастью существует возможность задать для каждого адреса страницу по умолчанию, которая будет открываться, если затребуют несуществующий на сервере сайт (она также откроется при вызове по ip). Но нам надо исключить левые ссылки из поисковиков совсем, а также проучить негодяя, поэтому мы будем отдавать 403 ошибку (доступ запрещен).

Итак, начнем:

1. Заходим в панель управления и создаем домен test.ru. Он должен принадлежать одному из пользователей, которым доступен нужный нам ip-адрес (если их несколько). Указываем там любую почту и больше ничего не трогаем.

2. Ищем в меню панели раздел «Настройки сервера» и в нем пункт «Список IP-адресов».

3. Нажимаем на нужный адрес двойным щелчком и в появившемся окне, в выпадающем списке выбираем сайт test.ru. После этого по всем лишним именам стала открываться стандартная заглушка ISPmanager, о только что созданном сайте.

4. Заходим в /var/www/имя_пользователя/data/www/test.ru и создаем файл .htaccess следующего содержания:

<Files «*»>
Redirect 403 /
</Files>

Все. Проблема решена. Теперь при открытии ссылки http://наш_ip или какой-то ссылки вида asfdsaf.mylittledomain.ru будет выдаваться предупреждение, что доступ запрещен.

З.Ы. Этот способ работает, только если у доменов не выбран в настройках пункт «использовать автоподдомены».

Рубрика: Программное обеспечение, Работа | Метки: , , , | Комментарии отключены

Монтирование образа гостевой системы в хост-системе.

Иногда возникает ситуация, когда требуется смонтировать раздел из образа потушенной виртуальной машины. В моем случае, образ виртуальной машины содержал раздел с lvm, из которого мне нужно было смонтировать отдельный том. Звучит запутанно, но на деле все не так и сложно.

Для того, чтобы использовать файл в качестве блочного устройства, есть утилита losetup. Обычно она используется для монтирования шифрованных дисков, но можно и обычные образы цеплять.

Для начала ищем доступное loop-устройство командой

loop /dev/loopN

где N — цифра от 0 и выше.

Если мы получаем ответ такого вида:

loop: can't get info on device /dev/loop55: No such device or address

значит устройства такого loop-диска еще нет и мы можем занять это имя.

losetup /dev/loop55  /xen/VPS123.img

Чтобы проверить, что мы сможем работать с диском, выполним такую команду:

fdisk -ul /dev/loop55

Disk /dev/loop55: 257.7 GB, 257698037760 bytes
255 heads, 63 sectors/track, 31330 cylinders, total 503316480 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0007d98c

Device Boot      Start         End      Blocks   Id  System
/dev/loop55p1   *        2048     1026047      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/loop55p2         1026048   503316479   251145216   8e  Linux LVM

Если ответ содержит названия разделов, как в примере, значит мы можем продолжать. Если же нет, возможно образ поврежден или у него какой-то своеобразный формат.

Для того, чтобы с этими разделами работать, нужно создать файлы устройств, которые указывают на нужные области на диске.

kpartx -a /dev/loop55

После этого в директории /dev/mapper появятся файлы устройств loop55p1 и loop55p2

Теперь можно подцеплять LVM-том

# pvscan
PV /dev/dm-1   VG vg_vps2138   lvm2 [239.51 GiB / 0    free]
Total: 1 [239.51 GiB] / in use: 1 [239.51 GiB] / in no VG: 0 [0   ]

# vgchange -a y
3 logical volume(s) in volume group "vg_vps2138" now active 

Вот и все. LVM-подцеплен и разделы доступны для монтирования.

Рубрика: Программное обеспечение, Работа | Метки: , , , , , | Комментарии отключены

Asterisk + GoIP4

Для того, чтобы заставить Asterisk звонить через линии сотовых операторов можно использовать два варианта gsm-модемы фирмы huawei и gsm-voip-шлюзы. В данном случае буду рассматривать одного из представителей последних — дешевый китайский gsm-шлюз GoIP на 4 симки.

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

Рубрика: Программное обеспечение, Работа | Метки: , , , , | Комментарии отключены

L2-туннель через ssh

Уже давно, еще с версии 4.3, у OpenSSH появилась возможность создавать туннели второго уровня. Утилита использует для этого привычные всем tap-интерфейсы, что подразумевает поддержку в ядре соответствующей технологоии.

Для того, чтобы до сервера можно было установить туннель придется пойти на небольшое попустительство по части безопасности. В /etc/ssh/sshd_config нужно добавить/изменить строки, чтобы было вот так:

PermitRootLogin yes
PermitTunnel yes

После того, как мы настроили сервер, можем попробовать создать туннель.

ssh -o Tunnel=ethernet -f -w 3:3 root@our_server

1-я цифра задает номер интерфейса на нашем компьютере, а вторая, на сервере, соответственно. Т.е. по нашему примеру на обоих концах интерфейсы будут tap3.

Дальше можем делать с интерфейсом все что нам хочется — добавлять ip сразу на них, либо же добавить их в мост и соединить этими мостами какие-то сети.

Надо заметить, что туннель будет шифроваться и поэтому при большом трафике и на высоких скоростях нагрузка на процессор будет ощутимой.

 Источник

Рубрика: Программное обеспечение, Работа | Метки: , , , | Комментарии отключены

Заметка про доступ в PostgreSQL

Для того чтобы разрешить доступ к нашей базе через сеть, для определенного хоста, нужно внести изменения в файл /etc/postgresql/$postgress_version/main/pg_hba.conf.

Обычно пример нужной строки есть там же в комментариях.

Рубрика: Программное обеспечение | Метки: , , | Комментарии отключены

Hyper-V и сетевая карта в виртуальной машине

Т.к. по невнимательности потратил лишние 20 минут впустую напишу эту заметку.

Итак… сетевая карта, которую эмулирует hyper-v для виртуалок не работает без специального драйвера. Да что там не работает… ее ОС не видит вообще. Я с этим столкнулся, когда требовалось установить Debian.

Для того, чтобы виртуалка таки получила доступ в сеть, требуется удалить текущую сетевую карту и добавить новую — Legacy Network Card. Эта карточка определяется адекватно и через нее уже можно обновлять систему и качать свежие ядра, содержащие драйвер hyper-v в своем составе =).

Рубрика: Железо, Программное обеспечение, Работа | Метки: | Комментарии отключены

Asterisk за NAT-ом.

По воле случая пришлось вплотную столкнуться с проблемой, когда сервер Asterisk находится за NAT-ом. Проблема заключается в следующем — если маршрутизатор счел RTP-поток от нашего sip-провайдера не принадлежащем текущей сессии, или же RTP к нам приходит с другого ip (не того, с которым мы транк настроили), то мы получаем проблемы со связью. Выглядит это следующим образом: от нас голос слышен хорошо и четко, а от человека, которому мы звоним, не слышно вообще ничего (даже шума).
В данном случае такая проблема возникает при работе с такими sip-провайдерами, как sipnet и mtt. С mtel проблем не наблюдается, т.к. у них 1 ip и маршрутизатор все общение между серверами считает единой сессией и, соответственно, перенаправляет входящий аудиопоток куда нужно.

Итак, что нужно сделать для решения проблемы:

1. Явно указываем Asterisk, что он за NAT-ом. Для этого нужно добавить в sip.conf следующие строки

nat=yes
externip=наш_внешний_ип
localnet=192.168.1.0/255.255.0.0 # подсеть локалки

2. Перенаправляем входящие RTP-потоки на наш сервер. Для этого мы смотрим в rtp.conf какие порты сервер анонсирует для RTP. Должно быть что-то вида:

rtpstart=10000
rtpend=20000

Опции говорящие и в соответствии с ними, в нашем случае нужно открыть порты 10000-20000. Протокол третьего уровня udp.
3. Пускаем все потоки через Asterisk. Дело в том, что некоторые устройства вполне могут пускать аудиопоток напрямую между собой, не загружая при этом voip-сервер. В случае NAT-а думаю понятно, что может случиться.
Итак… открываем sip.conf и добавляем туда:

canreinvite=no

Внимание: Если у вас на входе в сеть стоит устройство, знающее что такое sip и умеющее его обрабатывать… эту функцию нужно выключить.

Рубрика: Программное обеспечение | Метки: , , , , , , | Комментарии отключены

KVM+VNC+неадекватный курсор

Решил я недавно создать себе зоопарк операционок для тренировки, на рабочем ноутубуке. Разобраться с kvm было несложно, но меня смутило, как работает vnc-клиент с kvm-виртуалкой. В разный момент времени синхронизация курсоров была рандомной =(. Я нашел два варианта решения этой задачи. Один свой, а второй из интернета =).

1. Если отключить в windows в свойствах мыши точное позиционирование, а потом подвести курсор по очереди к каждому углу окна виртуалки, то курсор отцентрируется, то до первого закрытия окна =).

2. Если при запуске виртуалки указать параметр -usbdevice tablet, windows обнаружит новое указывающее устройство, поставит драйвера и о чудо! — мышь в окне виртуалки и в хост-системе нашей синхронизируются.

Рубрика: Программное обеспечение, Работа, Увлечения | Метки: , , , | Комментарии отключены