Zimbra and The Bat!

Есть настроенный для клиента почтовый сервер Zimbra. Есть несколько пользователей клиента, использующих почтовый клиент The Bat!
Получение почты настроено по IMAP/S с самоподписанным сертификатом SSL. The Bat! на эту конструкцию ругается, заявляет, что сертификат устарел (хотя был недавно обновлен), и так далее.

Самое простое решение – импортировать сетификат Zimbra в качестеве ключевого. Если есть деньги и желание купить настоящий сертификат, то лучше так и поступить.

Для экспорта сертификат удобно импортировать из Internet Explorer.
Делаем так, сначала экспорт из IE (при условии, что на сервер заходили по HTTPS  и сертификат импортировали несмотря на предупреждения):
IE -> Tools -> Internet Options -> Content -> Certificates -> Other users (2nd tab) -> Export -> Next -> Next (DER X.509(.CER)) -> Browse -> Save -> OK

Затем импорт в The Bat!:
Address Book (F8) -> View -> Certificate Address Book [x] -> Trusted Root CA -> Import from X.509 -> OK

Ругаться на отсутствие корневого сертификата The Bat! не перестанет, но даст нормально работать с почтой.

Решение подобной проблемы описано на форуме RITLabs.

Share/Bookmark

Узелки на память. Добавление приложения на Unity Desktop Launcher.

Добавить иконку какого-то своего приложения на Launcher:

1. Создать  файл .desktop file дла приложения, например для свежескачанного eclipse:
gedit ~/.local/share/applications/opt_eclipse.desktop
В файл вставить следующее содержимое (не забыть поменять путь к исполняемому файлу и к иконке):
[Desktop Entry] Type=Application Name=Eclipse Comment=Eclipse Integrated Development Environment Icon=полный путь к иконке Exec=полный путь к исполняемому файлу Terminal=false Categories=Development;IDE;Java;
2. После чего открыть nautilus ~/.local/share/applications и перетянуть  мышкой свежесозданный  файл  opt_eclipse.desktop на Launcher

sSMTP aliases

Как-то я уже писал про sSMTP, компактную замену полнофункционального MTA на Linux/UNIX. Но не затронул настройку алиасов.
В каталоге, где xранится конфигурация sSMTP (обычно /etc/ssmtp), есть файл revaliases, где можно указывать модификации для поля “From:”, например:

root:admin@your.domain:mailhub.your.domain

Модификация поля “To:” не столь тривиальна. sSMTP не поддерживает алиасы и при запуске newaliases будет получено такое сообщение:
# newaliases
newaliases: Aliases are not used in sSMTP

Все изменения вносятся в файле /etc/mail.rc:
set ask askcc append dot save crt
ignore Received Message-Id Resent-Message-Id Status Mail-From Return-Path Via Delivered-To
alias postmaster postmaster<postmaster@your.domain>
alias root root<support@your.domain>

После этого все работает как часы. Почта приxодит с вменяемого адреса и на вменяемый же уxодит.

Источник информации: “sSMTP revaliases, aliases and mail.rc”

PPTP VPN сервер на базе Linux

Иногда приходится бывать в странах, где власти слишком уж любят контролировать своих граждан и недолюбливают всякие “твиттеры и фейсбуки”. Да и мало что там они по пути отфильтровывают и проверяют? VPN (Virtual Private Network) в таком случае – самое лучшее решение. В моем случае – до домашней сети.

Из всех протоколов VPN, используемых в настоящее время, PPTP считается самым уязвимым, но уязвим именно к серьезной атаке. Однако, он самый распространенный (клиенты поставляются практически со всеми операционными системами, включая мобильные) и очень легко настраивается.

Кофигурация сети:
1. Аппаратный маршрутизатор + WiFi AP – 10.0.0.1 (in, 10.0.0.0/24), DHCP (ext). В стандартной прошивке VPN нет.
2. PPTP сервер – 10.0.0.2 (eth2, 10.0.0.0/24) – старенький ноутбук с Ubuntu 8.04LTS Server, потоянно включен.
Маршрутизатор раздает IP по DHCP (10.0.0.100-10.0.0.199) во внутреннюю сеть, порт 1723/tcp прокинут внутрь на 10.0.0.2.

Базовая настройка

1. Установим PPTP сервер

$ sudo apt-get update
$ sudo apt-get install pptpd

2. В конфигурацию сервера добавим диапазон выделяемых IP (простой вариант), localip – это внешний адрес интерфейса, в моем случае eth2. Диапазоны 192.168.0.0/24 и 192.168.1.0/24 лучше избегать, так как они чаще всего оказываются на удаленных точках доступа.

$ sudo nano /etc/pptpd.conf
localip 10.0.0.2
remoteip 10.0.0.200-210

3. Пропишем DNS для удаленных компьютеров

$ sudo nano /etc/ppp/options
# Specify which DNS Servers the incoming Win95 or WinNT Connection should use
# Two Servers can be remotely configured
ms-dns 10.0.0.1 # мой маршрутизатор
ms-dns 8.8.8.8 # Google Open DNS

4. Пропишем логины и пароли (для себя и друзей)

$ sudo nano /etc/ppp/chap-secrets
# client server secret IP addresses
login1 pptpd password1 *
login2 pptpd password2 *
login3 pptpd password3 *
login4 pptpd password4 *

5. Перегружаем сервер PPTP
$ sudo /etc/init.d/pptpd restart

Все должно работать. Если не работает, смотрим в /var/log/messages на сервер и смотрим включена ли у нас маршрутизация в /etc/sysctl.conf (net.ipv4.ip_forward=1).

Монтирование архивов в Linux (Debian Lenny)

Исходная ситуация: на сетевом диске лежит архив backup.tgz размером >50GB, надо внутри найти некие файлы и скопировать на новый сервер. Распаковать все это не представляется возможным, какие файлы из архива необходимы тоже известно достаточно приблизительно. В таком случае лучше архив смонтировать как виртуальную файловую систему и работать уже с ней. Основная система Debian Lenny 5.0 (x64).

Во-первых, нам понадобится AVFS:

$ sudo apt-get update
$ sudo apt-get install avfs

Во-вторых, просто заходим в нужный архив и работаем с ним как с любой файловой системой в режиме [read only].

$ cd /home/rat/.avfs/mnt/backup/server.domain.lv/backup.tgz#

Внутри архива прекрасно работает find, любители могут воспользоваться Midnight Commander.

Вообще, AVFS поддерживает множество типов архивов, подключения по ftp. Есть возможность автоматически запускать AVFS в режиме демона (avfsd) при старте компьютера.

P.S. Если возникает проблема с fuse, например такая:

fuse: failed to open /dev/fuse: Permission denied

Проверьте, что ваш пользователь в группе fuse.

$ groups
rat adm dialout cdrom floppy audio video plugdev

Тогда делаем так:

$ sudo usermod -a -G fuse rat
$ groups
rat adm dialout cdrom floppy audio video fuse plugdev

Док-станция для MacBook

У меня домашняя рабочая машинка – MacBook early 2008. Два года уже он у меня, и до сих пор его хватает для абсолютного большинства решаемых задач: документы, браузинг, Skype, обработка фотографий и видео, удаленное администрирование серверов, даже на некоторые старые игрушки (чудес не бывает, встроенная графика Intel GMA X3100 откровенно слаба). Большую часть времени он проводит на столе с подключенным внешним монитором и периферией. При этом он покрывается пылью, занимает прилично места и постоянно завален каким-то мусором вроде переходников и разъемов.

Некоторое время назад один приятель обмолвился, что увидел в интернете док-станцию для Mac’a. Смотреть времени не было, да и денег на всякие излишества тоже, поэтому новость прошла мимо меня. Теперь у меня была возможность потратить небольшую сумму на всякие железки, да и бардак на столе надоел, так что я вернулся к этой затее и заглянул на сайт hengedocs.com. Мне настолько понравилась идея, дизайн сайта, целеустремленность ребят и то как грамотно они организовали заказ оборудования на сайте, что я заказал один комплект, несмотря на слишком высокую цену для куска пластмассы и пучка проводов. Идея – главное, именно за нее и платил.

Идея проста как 2 байта – Apple не выпускает док-станций для своих ноутбуков, и перетыкать кучу проводов когда нужно подключить компьютер к внешнему монитору, телевизору, сети, клавиатуре и мышке – удовольствие сомнительное. Значит надо сделать док самим. Самое логичное решение – вертикальная стойка с простой репликацией портов, благо на ноутбуках Apple они почти всегда располагаются с одной торцевой стороны (другую занимает SuperDrive).  У каждой модели свое расположение разъемов, но никто не запрещает выпустить базу для каждой модели.

Красиво, удобно, эффективно – “Apple Style”. Вот взяла троица американских студентов идею и не только довела до реализации, а до стадии успешного коммерческого продукта.

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

Теперь пару слов о своих впечатлениях.
Качество изготовления хорошее, снизу у док-станции резиновые ножки, так что скользить по столу и царапать покрытие она не будет.

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

В поставке идет несколько кабелей-удлинителей (к моей модели: 2хUSB, 1xFireWire, 1хUTP, 2xAudio) и пластиковые адаптеры для разных моделей блоков питания. В поставке нет (!) переходников с miniDisplay Port, но если у вас внешний монитор, то такой переходник наверняка есть.

Все еще не понятно зачем это все нужно? Тогда может рекламный ролик прояснит ситуацию.

В общем, я очень доволен.

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

Узелки на память. Linux.

1. Обновление KUbuntu 11.04  на 11.10:

– Если пропал вывод звука, лечится apt-get remove pulseaudio и reboot. После чего всё само запускается через Alsa.
– Тот же рецепт, если проблемы со звуком в Skype (дребезжание, бульканье, пропадание микрофона, отсутствие звука).

2. Есть гигабайты картинок и есть сотни XML’ок где эти изображения описаны. Как найти все картинки, которые забыли прописать в XML?

$for i in *.[Tt][Ii][Ff]; do (grep -q $i *.[Xx][Mm][Ll]; test $? -ne 0 && echo $i); done

3. Как сделать выборку по текстовому файлу, в котором поля разделены непечатными (unprintable) символами. Mainframe DB dump.

$cat ~/parts.txt | cut -f 10 -d $'\001'

Использование контейнеров OpenVZ с приватными IP

Понадобилось для одного проекта настроить  Linux-сервер. В качестве системы совместной работы для клиента и почтового сервера была выбрана Zimbra. Zimbra продукт замечательный, хотя и излишне тяжелый. Самое неприятное – это то, что  Zimbra все тащит с собой, включая свою версию apache, mysql, memcached, postfix, clamav, ldap, etc. Выделять мощнейший сервер только под  ZCS  с небольшой нагрузкой неразумно, а пытаться совмещать с другими системами – самоубийственно.

Поэтому было решено “завернуть” Zimbra в контейнер. В качестве системы контейнеров выбрана OpenVZ как достаточно простая и имеющая минимальные накладные расходы на виртуализацию. К тому же у меня есть некоторый опыт работы с этой системой.

Хост-система – Debian Linux 6.0.2 amd64, в контейнерах та же версия Debian.
Хост-система имеет публичный IP, виртуальные контейнеры OpenVZ – приватные из диапазона 192.168.0.0/24 (192.168.0.101, 192.168.0.102).

Установка и базовая настройка OpenVZ не должна вызывать никаких проблем. Хорошая инструкция по установке OpenVZ на Debian 6.0 amd64 есть на сайте Sourceforge: “Installing And Using OpenVZ On Debian Squeeze (AMD64)

После установки OpenVZ и старта контейнеров необходимо прописать им IP и настроить маршрутизацию на хост-системе. Предположим, что контейнер имеет ID 101, интерфейс хост-машины eth0, а Zimbra будет слушать порт 4000:

$ sudo vzctl set 101 --hostname zimbra.example.com --save
$ sudo vzctl set 101 --ipadd 192.168.0.101 --save
$ sudo vzctl set 101 --nameserver 80.232.230.242 --nameserver 8.8.8.8 --save
$ sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to hardware_node_ip
$ sudo iptables -t nat -A PREROUTING -p tcp -d hardware_node_ip --dport 4000 \
-i eth0 -j DNAT --to-destination 192.168.0.101:4000
$ sudo iptables -t nat -A POSTROUTING -s 192.168.0.101 -o eth0 -j SNAT --to hardware_node_ip

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

Как сохранять настройки iptables, а затем восстанавливать их при старте интерфейса, я описывал здесь: “Домашний маршрутизатор и беспроводная точка доступа из старого ноутбука
Подробнее настройка контейнеров OpenVZ за NAT описана на сайте проекта OpenVZ: “Using NAT for container with private IPs

Ubuntu 11.x (Gnome) AutoLogin + VNC: беда с Keyring

Очередной раз упёрся в проблему: нужно чтобы после ребута машина авто-логинила пользователя и запускала некое приложение и чтобы туда потом можно было попасть удалённо.

Авто-логин делается через меню  System -> Administration -> Login Screen. Там всё просто.

Авто-запуск приложения System -> Preferences -> Start-up Applications. Там тоже всё понятно.

Доступ по VNC – тоже не сложно: System -> Preferences -> Remote Desktop и ставим галочку.

Сложности начинаются после перезагрузки. Авто-логин отработает. Авто-старт тоже. VNC запустится, но первая попытка подключиться по VNC выдаст на консоль запрос ввести пароль от Keyring’a. И пока он не будет введён – VNC будет “висеть”. То есть соединение устанавливается но экран не прорисовывается.

Лечится отвязкой VNC от keyring’a. Инструкцию нашёл тут https://bugs.launchpad.net/ubuntu/+source/vino/+bug/562423/comments/11

Содержимое, если вдруг уберут:

1. Open System -> Preferences ->Passwords and Encryption Keys, Right click Passwords:login and unlock it.

2. You should be able to expand the tree and find a listing for vino. Right click and delete it. Close Passwords and Encryption Keys.

3. Open gconf-editor as and navigate to /desktop/gnome/remote_access. Enter in your BASE64 encoded password into the vnc_password key.
Save the config and close the editor.

4. Reboot and you can now use your VNC client to connect to your machine without being first prompted with the keyring.

Пароль закодированный в Base64 можно получить с помощью стандартной утилитки base64.

Узелки на память. Mac.

Как из командной строки посмотреть что за процессор в Mac’е:
$ sysctl -n machdep.cpu.brand_string

Полный отчет по системе:
$ system_profiler