Записи с тегом «unix»

Третья альфа gnusolaris (Nexenta OS)

Недавно прошел анонс сабжа. Руки чешутся пощупать сие творение, но пока есть задачи и поважнее. Очень надеюсь что проект не загнётся! Перспективы очень интересные. Если кто-то пробывал этого зверя, напишите в комменты - очень интересно Ваше впечатление. Если сам выкрою время его пощупать обязательно напишу репорт. Feb 22, 2006 Alpha 3 released! NexentaOS (elatte) Alpha 3 is now available for Download.

Настройка SASL И TLS в Postfix на хостинговом почтовом сервере

Прежде всего хочу отметить очень хороший сайт по настройке postifx. Подобрать себе нужное HOW-TO там можно без проблем. В моём случае пришлось пользоваться несколькими документами по настройке сабжа и немного погуглить. Цель была построить почтовый рилей + POP3/IMAP сервер для клиентов с повышеной безопасностью. А для почтового сервиса это практически означает криптование всего что только можно криптануть :). Не буду писать про настройку связки с базой и прочей приевшейся документации, а просто обращу Ваше внимание на несколько моментов. Также я не буду писать полное HOW-TO для ленивых :) Итак, что мы будем криптовать:
  • пароли в базе;
  • всю авторизацию клиентов (как SMTP так и POP3/IMAP);
  • обмен данными клиент-сервер и сервер-сервер;
Первым делом настроим сам postfix на предмет работы с SSL. Прежде всего он должен был скомпилирован с поддержкой SSL. Для каждой платформы проверять надо по разному. Потом надо сгенерировать ключ, как это сделать тоже много статей и описаний. По быстрому так:

# mkdir /postfix/configs_dir/ssl

# cd /postfix/configs_dir/ssl

# openssl req -new -x509 -nodes -out smtpd.pem -keyout smtpd.pem -days 3650

Следующим шагом будет настройка postfix (добавляем в main.cf):

smtp_use_tls = yes smtpd_use_tls = yes smtp_tls_note_starttls_offer = yes smtpd_tls_key_file = /postfix/configs_dir/ssl/smtpd.pem smtpd_tls_cert_file = /postfix/configs_dir/ssl/smtpd.pem smtpd_tls_CAfile = /postfix/configs_dir/ssl/smtpd.pem smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom После этого получаем криптование при отправки и приёме почты на рилее. Потом ещё добавляем авторизацию через SASL для клиентов, чтоб могли с любого места пользоваться своим рилеем. Подразумевается что SASL тоже стоит в системе и postfix умеет с ним работать. Так как в нашем случае в качестве POP3/IMAP сервера выбран Courier-IMAP, то и авторизовать SMTP нам надо через него. Следовательно используем Courier-authlib, с которой умеет работать SASL. В postfix это выглядит так:

broken_sasl_auth_clients = yes smtpd_sasl_security_options = noanonymous smtpd_sasl_auth_enable = yes В SASL, (lib/sasl2/smtpd.conf)

pwcheck_method: authdaemond log_level: 7 mech_list: PLAIN LOGIN authdaemond_path:/var/run/authdaemond/socket Получаем такую цепочку:

postfix <-> sasl <-> courier-authlib <-> sql-backend

Теперь о граблях... точнее об одной. В postfix есть такая опция smtpd_sasl_local_domain, она мешает ему авторизовать клиента. Глубоко не копал, просто погуглил и нашёл что такая бага есть, а всё остально заработало гладко.

Хостинговый почтовый рилей

Последнюю неделю пришлось немного повозиться с почтовым хостинговым сервером. Наступил как всегда на ряд граблей :). Но благодаря этому появилось несколько тем для заметок. Так что ближайшие дни они появятся. Хочу только заметить, что теперь наш почтовый сервер всё что возможно криптует и хорошо защищён от 100% спама. Если уточнить то это шифрованый pop3/imap и smtp, а также проверку имён хостов отправителей и другие приятные мелочи.

Мониторинг хостингового сервера

Решил поделиться опытом по этой теме. Значит у меня задача звучала примерно так: "не сложный клиент-серверный монитор загрузки сервера с веб-интерфейсом". Если конкретезировать то попросту рисовалка графиков и желательно сделанная на rrdtool. Начал как всегда с гугления и freshmeat.net. В итоге остановился на двух интересных софтинах. Первая cacti (кактус типа). Сделана на rrdtool + php + cactid (написанный на Си даемон-poller, который опрашивает хосты). Использование cactid - опционально. Для хранения конфигурации используется MySQL. Софтина позиционируется автором как комлексное средство монитроинга для сетей локального и глобального масшатаба с размахом до тысячи хостов. Мои запросы оказались поскромнее, поэтому пришлось отказаться от неё. Но в принципе очень стоящая вещь: гибкость на высоком уровне, мониторить может почти всё что угодно (не только стандартные заготовки по параметрам, которые кстати позволяют и так чуть ли не всё мониторить, есть framework для написания своих скриптов). Для сбора статистики по сети с хостов пришлось бы поднимать ещё snmpd - тоже минус. Вторая софтина - symon. На порядок проще. Рисует тоже через rrdtool и веб-интерфейс работает на php. Но своей простотой она меня и привлекла. В комлекте получается три компоненты: symon - локальный даемон для сбора статистики на хосте, symux - серверный даемон для сбора статистики с хостов и syweb - веб-интерфейс. Всё в принципе очень быстро поднялось. Вся конфигурация в текстовых файлах, взаимодействие symon и symux по tcp. Думаю что этот вариант подойдёт и для больших сетей хостов в 100. Главный минус этого варианта - мониторинг только unix-серверов, с устройствами (например switches, cisco routers) он не заработает, SNMP не умеет. Тут как раз выигрывает cacti. Но на данный момент нам как раз и нужно мониторинг только unix-серверов. В итоге мы получили мониторинг загрузки I/O на дисках, процессора, памяти, сетевых интерфейсов, системных буферов (mbuf), кол-ва и состояния процессов Apache, файервола (OpenBSD PF в нашем случае).

Судьба gnusolaris и opensolaris

В своё время я был очень заинтересован появлением сначала opensolaris а позже и gnusolaris. К сожалению пока проекты медленно двигаются. Хотя перспективы достаточно оптимистичные! К примеру в Solaris реализована достаточно серьёзно виртуализация (называется Solaris Zones). Позволяет создавать виртуальные окружения на подобие FreeBSD jail (для тех кто знает), но с гараздо большими возможностями - например, ограничение на использование ресурсов памяти и процессора. Для хостинга такая вещь очень даже нужна. Тот же линуксовый Virtuozzo стоит денег, а тут уже из коробки всё умеет сама система. А если ещё коснутся Java-хостинга, тот тут Solaris однозначно выигрывает т.к. и Java и Solaris поделка одной конторы под названием Sun. Плюс тот же Oracle тоже на Solaris очень комфортно себя чуствует, что немаловажно для сервера приложений на Java (связка Oracle + Java очень часто используется). Linux тоже решение - и компания IBM это успешно доказала, но лично я сторонник true unix, чем и является Solaris. Поэтому очень надеюсь на успех этих проектов. Хочу ещё отметить интересный момент по gnusolaris - проект использует очень удобную и мощную систему пакетов apt-get от Debian. Что позволит ему вполне сойти и за десктопную систему при надлежащей поддержке и коммунити.