Показаны сообщения с ярлыком Linux. Показать все сообщения
Показаны сообщения с ярлыком Linux. Показать все сообщения

12 апр. 2013 г.

Проблема"Больших" доменов в Адресной книге Mozilla Thunderbird

Многие из нас используют почтовый клиент Mozilla Thunderbird, все знают как подключить в него "адресную книгу" из AD.
В случае если мы подтягиваем адресатов из большого домена, Thunderbird начинает подолгу искать адресатов в этом большом списке, работа становится невозможной.
Для решения данной необходимо настроить фильтр выборки из каталога LDAP. Сделать это можно в меню: Edit -> Preferences -> Composition -> Addressing -> Edit Directories. В окне редактирования свойств сервера калога (Directory Server Properties) на вкладке Advanced в поле "Search filter" установим следующий фильтр: "(&(objectCategory=person)(objectClass=user))". Данный фильтр ограничит выборку из каталога только объектами "Person" с классом "User", что существенно ускоряет работу адресной книги.

25 авг. 2010 г.

AACSource - сорс клиент для IceCast2

Более двух лет назад, работал на местном радио.
Директор поставил задачу транслировать эфир радио в интернет в формате AAC.

После долгих поисков бесплатного свободного сервера транслирующего поток в формате AAC, решено было самостоятельно написать сорс-клиент для IceCast2.

За основу был взят собственный сорс-клиент IceCast в части формата взаимодействия с сервером.
Поскольку на тот момент у меня небыло опыта компилирования Си-кода под линукс, а также опыта написания системных утилит, пришлось писать на Shell.

Итак, по просьбам некоторых коллег, представляю исходники моего "безобразия" по имени AACSource:
Срипт запуска
Конфигурационный файл
Собственно сам AACSource

9 авг. 2010 г.

OpenNHRP

Обнаружил в сети проект OpenNHRP - открытая реализация протокола OpenNHRP.
Заявляют что "It makes it possible to create dynamic multipoint VPN Linux router using NHRP, GRE and IPsec. It aims to be Cisco DMVPN compatible." :)

Нужно найти время на попробовать.

12 мая 2010 г.

Ubuntu: скрещиваем exim с clamav

Установить и настроить совместную работу MTA Exim4 и Clamav очень просто:

#apt-get install exim4-daemon-heavy clamav-daemon

После этого в системе установлены и настроены MTA Exim4, демон Clamav и демон обновления для Clamav - Freshclam. Настройку они имеют базовую, но для совместной работы у них уже почти все есть.

Недостает следующего:

  1. В файле /etc/exim4/conf.d/acl/40_exim4-config_check_data необходимо раскоментировать строки:

    # Deny if the message contains malware. Before enabling this check, you
    # must install a virus scanner and set the av_scanner option in the
    # main configuration.
    #
    # exim4-daemon-heavy must be used for this section to work.
    #
    deny
    malware = *
    message = This message was detected as possible malware ($malware_name).

  2. В файле /etc/exim4/conf.d/main/02_exim4-config_options необходимо указать путь к fifo демона clamav:
    av_scanner = clamd:/var/run/clamav/clamd.ctl

  3. Для доступа clamav к содержимому писем, необходимо добавить пользователя clamav в группу Debian-exim:
    #gpasswd --add clamav Debian-exim
    Если этого не выполнить в логе экзима получим:
    malware acl condition: clamd: ClamAV returned /var/spool/exim4/scan/1OC8Uk-0001pI-N3: lstat() failed: Permission denied. ERROR

  4. перезапустить демоны exim4 и clamav:
    #service exim4 restart
    #service clamav-daemon restart


После всех этих манипуляций в нашей системе Exim проверяет всю почту на вирусы с помощью демона Clamav.

В данной заметке умышленно опущены все тонкие настройки MTA Exim, такие как защита от Спам и др.

4 мая 2010 г.

Xubuntu 10.04 - Продолжение

За время использования полноценной Ubuntu очень привык к Compiz, особенно в части плагина "Negative". В течение рабочего дня глаза очень сильно устают и пялится в белый экран с мелкими серыми буквами уже тяжело - без "Негатива" никуда...

А тут оказалось его нет :)
Пришлось ставить. Поставил на скорую руку по руководству http://wiki.eeeuser.com/ubuntu:eeexubuntu:compiz_on_eeexubunto

Автозапуск компиза пришлось допиливать самому - файлов обозначенных в инструкции у меня не оказалось.
Методом "Научного тыка" обнаружил что теперь эти настройки указываются в файле /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml.
В нем и заменяем xfwm4 на compiz.

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

По времени работы от батареи тоже изменения не ощущаются - eeePC продолжает от батареи работать до 4,5 часов.

2 мая 2010 г.

Xubuntu 10.04

Поставил на своем нетбуке Xubuntu 10.04.

Задумал переезд давно по причине того, что производительность нетбука перестала устраивать. Толи Ubuntu сам по себе слишком прожорлив, толи правда виноват не слишком быстрый SSD в моем ASUS eeePC 900...

Окончательно на переустановку настроился незадолго до выхода 10.04 и ждал момента "Х".

Момент "Х" настал вчера.
Итак мои первые впечатления:
  • система по сравнению с Ubuntu 9.10 работает значительно быстрее;
  • более минималистична по наличию установленных пакетов, но мне пока стандартных компонентов хватило и это радует;
  • приятной неожиданностью для моих глаз стала темная тема оформления.
Поставил как всегда mc, ipcalc, nmap и wavemon.

Появился еще один неоспоримый плюс переезда - я наконец-то поставил на свой usb-hdd загрузчик и настроил загрузку из iso-образов! :) Именно с него и ставил Xubuntu :)

Теперь пополняю список iso "На все случаи жизни" и добавляю их в меню загрузки.

За инструцией по настройке загрузки с iso-образов идем на opennet (http://www.opennet.ru/tips/info/2339.shtml).

12 мар. 2010 г.

Меняем кодировку файлов

Возникла необходимость перекодировать пару десятков файлов из cp1251 в UTF-8.

Погуглив немного, нашел в форумах упоминание утилиты "recode".
Сам я не приветствую установку дополнительных утилит, но если других вариантов нет, пришлось ставить.

Recode оказалась в репозитории Ubuntu, поэтому делаем:

$sudo apt-get install recode
...и пользуемся.

Для быстрого перекодирования группы файлов родился мини-скрипт:

mkdir 1
ls -1 | (
while read file;
do
cat "./$file" | recode CP1251..UTF-8 > "./1/$file";
done;
)

24 февр. 2010 г.

PPTP Connection-tracking в Линукс

Наверное многих администраторов pptp-серверов линукс вводила в замешательство и заставляла долго ходить по форумам в поисках лекарства проблема с подключением windows-клиентов. Так случилось у меня.

Поставил и настроил pptp-сервер, с подключением из линукс нет проблем, но первый же windows-клиент говорит "подключаюсь и авторизуюсь, но сразу же выкидывает"...

На форумах находил или темы без ответа или бредовые идеи что все дело в DNS-сервере...
Когда накопал костыль "поставить правило явно пропускающее весь GRE до всех сonnection-tracking правил" неповерил, но время поджимало и попробовал. Помогло, коллега с виндовым ноутом смог нормально работать.

Такое решение не устраивало. Даже в скрипт файервола прописывать не стал.
Добрый человек Hando на форуме anticisco.ru открыл глаза - Для правильного автоматического трекинга соединений по протоколу PPTP необходимо в загрузку добавить модуль nf_conntrack_pptp.

Итак, прописываем nf_conntrack_pptp в /etc/modules.d и наслаждаемся.

14 янв. 2010 г.

SVN и http-301-error

Возможно для многих не новость, но у меня эта проблема отняла два дня работы и добрую половину мозга :)

Оказалось, что если при выполении, например:
$ svn list http://svn-server/group1/repo

Вы получаете:
svn: Repository moved permanently to 'http://svn-server/group1/repo'; please relocate

А при этом доступ к веб-странице репозитория через браузер есть, то нужно всего-лишь поправить DocumentRoot, как написано тут: http://subversion.tigris.org/faq.html#http-301-error!

Но к этому я пришел только после того как отключил LDAP-аутентификацию.
При включеной - я получал следующее:
#svn import http://svn-server/group1/repo --username="user" --password="pass" --non-interactive
svn: OPTIONS of 'http://svn-server/group1/repo': authorization failed: Could not authenticate to server: rejected Basic challenge (http://svn-server).

27 авг. 2009 г.

Стерео bluetooth гарнитура в Ubuntu 9.04

Наконец-то дошли руки подключить стерео гарнитуру Plantronics Pulsar 260 к компьютеру :)

Руководство нашел здесь: http://forums.overclockers.com.au/showthread.php?t=780054

[UPDATE]
Еще один вариант настройки:
http://ubuntuforums.org/showpost.php?p=8400750&postcount=64

Как мне кажется, этот вариант предпочтительнее - не тянет за собой лишнего и интегрируется напрямую в "Sound Preferences", что само по себе очень удобно!

24 апр. 2009 г.

Exim4 - фильтруем почту для postmastera в ubuntu 8.10

Думаю многих администраторов почтовых серверов, принимающих сообщения на адрес "postmaster@вашдомен", замучал спам поступающий на этот адрес.

Многие либо меняют адрес постмастера, либо вовсе его отключают.
И то и то с точки зрения rfc822 неверно [2].

Чтобы хоть как-то снизить уровень спама в адрес постмастера и повысить вероятность обнаружения у него в ящике легитимных писем было предложено принимать письма только с определенной темой.

В [1] и [2] положений запрещающих какую-либо фильтрацию не нашел (если не прав, поправьте, кто знает;).

Модификация стандартного конфига Exim4 в Ubuntu 8.10.



Исходя из поставленной задачи, нам необходимо проверять в поступающих письмах адрес назначения и если оно адресовано постмастеру, то еще проверить тему письма.

Первая проблема - Exim4 позволяет проверить адрес назначения только в acl_smtp_rcpt, а тему письма мы можем проверить только на этапе acl_smtp_data.

Благодаря механизму пользовательских переменных [3], в MTA Exim4 мы имеем возможность передавать данные между разными этапами обработки письма. Переменные acl_m{цыфра} действительны входе обработки письма, их значение сбрасывается по командам HELO, MAIL и STARTTLS. Переменные acl_с{цыфра} действительны в ходе всего соединения.

В стандартной конфигурации Exim4 все проверки проходят на этапе RCPT.
Одной из первых проверок является проверка на указание адреса назначения "postmaster" или "postmaster@your.domain". Здесь мы и будем "запоминать" что это письмо для постмастера:

set acl_m0 = ${if eq{$local_part}{postmaster}{1}{0}}
set acl_m0 = ${if eq{$local_part}{CHECK_RCPT_POSTMASTER}{1}{0}}

ACL теперь будет выглядеть так:

# Accept mail to postmaster in any local domain, regardless of the source,
# and without verifying the sender.
#
accept
.ifndef CHECK_RCPT_POSTMASTER
set acl_m0 = ${if eq{$local_part}{postmaster}{1}{0}}
local_parts = postmaster
.else
set acl_m0 = ${if eq{$local_part}{CHECK_RCPT_POSTMASTER}{1}{0}}
local_parts = CHECK_RCPT_POSTMASTER
.endif
domains = +local_domains : +relay_to_domains


т.е. присваиваем переменной acl_m0 значение "1" если $local_part равно "postmaster" или равно значению макроса "CHECK_RCPT_POSTMASTER".

Макрос "CHECK_RCPT_POSTMASTER" в стандартной для Ubuntu 8.10 конфигурации позволяет легко изменить адрес постмастра. Но еще раз оговорюсь, это идет в разрез с rfc.

Итак мы "пометили" письмо для постмастера.

Проверим тему


Макрос CHECK_DATA_ACL_FILE позволяет указать файл в котором будут расположены наши собственные ACL для проверки письма на этапе команды DATA.
Присваиваем ему значение, создаем файл и пишем свой ACL:

#
# Check subject in messages for postmaster
#
deny
message = We accept messages for postmaster only with Subject: "trouble". Please retry.
log_message = Not valid subject in message for postmaster - Subject=$h_Subject:
condition = ${if eq{$acl_m0}{1}{${if !eq{$h_Subject:}{trouble}{1}{0}}}{0}}


Перезапустим Exim:
#/etc/init.d/exim4 restart

Проверим работу тестовой сессией:
exim -bh 192.168.0.1
helo nethuman
mail from: <>
rcpt to: postmaster
data
Subject: trouble


Источники:



1. MAILBOX NAMES FOR COMMON SERVICES, ROLES AND FUNCTIONS (http://www.rfc-ignorant.org/rfcs/rfc2142.php)

2. STANDARD FOR THE FORMAT OF ARPA INTERNET TEXT MESSAGES (ftp://ftp.rfc-editor.org/in-notes)/rfc822.txt

3. The Exim Specification - Version 4.6x, p. 119. (http://exim.org/exim-pdf-current/doc/spec.pdf)

22 апр. 2009 г.

Exim4 - включаем обработку почтовых алиасов в ubuntu 8.10

В данной заметке я расскажу как включить обработку системных почтовых алиасов Exim4 стандартной конфигурации Ubuntu 8.10.

Здесь рассматривается конфигурация на основе множества файлов в директории /etc/exim4/conf.d, конфигурация на основе плоского файла рассматриваться не будет.

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

Посмотрим исходное состояние данного файла:

#cat /etc/aliases
# See man 5 aliases for format
postmaster: root
root:

Здесь видим, что для ящика "postmaster" уже задан алиас "root".
Так как данный сервер у меня является только фронтэндом для M$ Exchange 2007, и не имеет собственного почтового хранилища и pop3 сервера, естественным будет указать в качестве алиаса для "root" адрес группы рассылки администраторов на основном внутреннем почтовом сервере. Например:

#cat /etc/aliases
# See man 5 aliases for format
postmaster: root
root: admins@zavod.ru

Далее разрешим в Exim4 обработку файла псевдонимов.
В стандартной конфигурации дистрибутива ubuntu 8.10 (возможно и в Debian, не проверял) Exim4 имеет готовый маршрутизатор - находится в файле /etc/exim4/conf.d/router/400_exim4-config_system_aliases.

По умолчанию все строки данного файла закоментированы.
Нам необходимо разкомментировать все строки начиная с "system_aliases".
В моем случае разкомментированы следующие строки:

#grep -v '#' /etc/exim4/conf.d/router/400_exim4-config_system_aliases
system_aliases:
debug_print = "R: system_aliases for $local_part@$domain"
driver = redirect
domains = +local_domains
allow_fail
allow_defer
data = ${lookup{$local_part}lsearch{/etc/aliases}}

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

делаем
#/etc/init.d/exim4 restart


и проверяем работу
$exim -bh <${some_ipaddr}>


На этом все. - алиасы работают и мы уже получаем отчеты от демона crond о выполнении заданий.

9 апр. 2009 г.

Vnstat - смотрим статистику через веб

Итак, vnstat настроен и собирает статистику.

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

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

Исходим из того что веб-сервер у нас уже установлен и настроен, дело за малым - написать скрипт!

Сервер линуксовый и чтобы не тянуть лишних зависимостей за скриптом, пишем на Shell:


#!/bin/sh

INTERFACES="LAN:eth0 WAN:eth1 DMZ:eth2"

echo "Content-Type: text/html; charset=utf8 \n\n";
echo '<HTML><head><link rel="stylesheet" href="/style.css" type="text/css" /></head>';
echo "<BODY>";

# evalute variables
for int in `echo ${INTERFACES} \
| sed -e 's/ /\n/g'`;
do
int_name=`echo ${int} | cut --delimiter=: --fields=1`
intf=`echo ${int} | cut --delimiter=: --fields=2-2`

echo "<p><h2>${int_name} interface (${intf})</h2>"
echo '<pre class="tab1">'
vnstat -q -d -i ${intf}
echo "</pre></p>"

done;


Переменная INTERFACES определяет пары "Название интерфейса"-интерфейс по которым необходимо выводить статистику.

Размещаем этот скрипт на сервере, где снимаем статистику с интерфейсов, и настраиваем веб-сервер.



15 янв. 2009 г.

Ubuntu Server 8.10 и GRUB на HP Proliant 580G5

Ставим Ubuntu Server 8.10.

Итак, проблема возникла сразу после окончания установки - машина перезагрузилась и упала в Red Screen of Death.

Так как на экране не успевало появится даже приглашение GRUB сделал вывод, что проблема появилась именно в нем (да и в англоязычных источниках об этом писали, правда применительно к серверам предыдущих поколений).

Дальше грузимся например с диска Ubuntu Desktop, монтируем разделы:

#mkdir /media/root
#mount /dev/cciss/c0d0p2 /media/root
#mount /dev/cciss/c0d0p1 /media/root/boot
#mount --bind /dev /media/root/dev

меняем корень
#chroot /media/root

настраиваем GRUB
#grub
#grub> device (hd0) /dev/cciss/c0d0
#grub> root (hd0,0)
#grub> setup (hd0)

Примечание:
/dev/cciss/c0d0p2 - раздел где размещен корень файловой системы
/dev/cciss/c0d0p1 - раздел /boot

2 июл. 2008 г.

Делаем образы дисков с помощью dd и gzip

Многие знают про утилиту dd - очень удобный инструмент.
В частности очень хорошо подходит для клонирования дисковых разделов (или целых дисков).

Недавно в ходе нескольких экспериментов выяснил, что такой образ диска можно сильно сжать с помощью GZip.

Например, заполненный на около 5Гб NTFS-раздел объемом 31Гб в сжатом состоянии занимает всего 1.7Гб. Единственное неудобство в том что на моем AMD Athlon 1700+ создание этого образа заняло 50 минут, а подсчет md5-суммы раздела-оригинала и упакованного образа по 12 минут. На системах с более производительным центральным процессором данный процес займет гораздо меньше времени.

Так как основной объем информации на системных жестких дисках (конечно за исключением медиа-данных) очень хорошо поддается сжатию, и часто многие выделяют несколько разделов под ОС, таким образом можно быть уверенным что образ раздела удастся сжать.

В ходе тестов на различных разделах степень компрессии несколько шокировала. Например, FAT-16 раздел размером 40Гб был сжат до 30МБ (контрольные суммы проверил - они совпали)!!!

Создаем образ:
#dd if=/dev/sda1 bs=8096 | gzip -9cf > sda1.dd-image.gz

Это занимает время. За процессом можно наблюдать на той же консоли с помощью периодической посылки USR1 сигнала процессу dd.
Для этого на другой консоли выполняем:

#ps | grep dd
определяем pid процесса dd и подставляем его в следующую команду
#watch -n 15 "kill -USR1 $pid_of_dd"

Распаковка образа:
#gunzip -c sda1.dd-image.gz | dd of=/dev/sda1 bs=8096

также можно подсчитать md5-сумму для раздела, чтобы после восстановления проверить правильность распаковки образа:
#dd if=/dev/sda1 bs=8096 | md5sum - > sda1.dd-image.md5

Параноики (бывают ситуации когда лучше потратить время на еще одну перепроверку) могут еще и проверить правильность создания образа:
#gunzip -c sda1.dd-image.gz | md5sum

Приятной всем работы ;)

7 февр. 2008 г.

Трансляция спутникового канала в локальную сеть

Полтора месяца назад настроил трансляцию спутникового канала Вести в локальную сеть.

В связи с реорганизацией парка серверов пришлось переносить DVB-S карты и весь софт на другую машину.

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

Решил теперь все такие настройки организовывать в мануалы и оставлять на блоге - и себе и другим :)

Приступим.

Многое взято из статьи http://omsk.lug.ru/SatTVLinux

Однако в моей ситуации все сразу не получилось.

1. Ищем информацию по нашему спутнику.
Мне помог http://www.lyngsat.com
Спутник HotBird.


2. Составляем список каналов и записываем в /etc/channels.conf
У меня пока только:
Vesti:11034:v:0:27500:1020:1030:1710

3. Проверяем наличие сигнала:
#szap -c /etc/channels.conf -x -n 1 -a 2
-a определяет номер адаптера, у меня в машине их 3, выбираю третий.

4. Транслируем каналы мультикастом:
Много экспериментировал с трансляцией всего транспондера, но так и не получилось.
#/usr/local/bin/dvbstream -c 2 -i 224.1.2.10 -r 1234 -f 11034 -p V -s 27500 -ps -v 1020 -a 1030

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

Решение пришло неожиданно.
Оказалось что у машины нет DNS-записи типа А! - вот из-за чего падал dvbstream!!!

[Дополнение]
Необходимость в DNS-записи типа А была вызвана только тем, что в /etc/hosts небыло записи с настоящим именем машины. После добавления/изменения записи в данном файле необходимость в DNS вообще отпадает.

Так что, господа, незабываем сделать запись или лезем в исходники и фиксим...

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

В нашей сети используются интелектуальные коммутаторы hp 2824 и hp 2510-24.
Эти коммутаторы имеют возможности контроллирования распространения multicast-трафика - IGMP .

Описание этого процесса достойно отдельной статьи, либо прочтения руководства по настройке коммутатора ;)