вторник, 29 марта 2011 г.

Почта на Debian с доменными пользователими, или как мы подружили postfix, dovecot и Active Directory: Часть 1 - postfix

Доброе время суток, уважаемый Читатель!

Сегодня я расскажу, как мы подружили почту на Linux с Active Directory.

Собственно, как и все в Linux, делать это можно по-разному. В нашем же случае принимает и отправляет, а так же фильтрует почту postfix, по папкам пользователей ее раскладывает dovecot lda, а собственно пользователи забирают ее с сервера по imap, доступ по которому любезно предоставляет нам уже упомянутый dovecot.

А теперь обо всем по порядку:
Начнем с Postfix, но не будем переписывать уже стопицоттысячраз описанный мануал по установке и настройке. Скажу лишь, что postfix фильтрует входящую почту как своими средствами (проверка на различные аспекты соответствия письма и сервера отправителя rfc), а так же прогоняет ее через amavisd, который в свою очередь использует spamassassin для категоризации писем на хорошие и спамные, и проверяет на вирусы. Подробнее тонкости фильтрации писем я опишу в одном из следующих постов.

В этом пункте стоит обратить внимание Читателя на то, как postfix связан c Active Directory, и, главное, зачем.

Как зачем? Конечно же, для доставки почты конечному получателю! В нашей системе есть обычные пользователи, алиасы почтовых ящиков и списки рассылки. И всем этим добром мы командуем через оснастку управления Active Directory Users and computers. А Postfix, использую LDAP, проверяет, есть ли пользователь, которому написано письмо, или же письмо надо отправить кому-то другому, на чей алиас пришла писулька, а может и вовсе эта писулька пришла целой группе юзеров?

Заглянем в наш /etc/postfix/main.cf:
virtual_mailbox_maps = ldap:/etc/postfix/ldap/local_recipients.cf
virtual_alias_maps = ldap:/etc/postfix/ldap/redirect.cf,ldap:/etc/postfix/ldap/aliases.cf,ldap:/etc/postfix/ldap/mailgroups.cf,
 

Вон оно что, Михалыч! А что в этих файлах? В /etc/postfix/ldap/local_recipients.cf postfix смотрит, какому пользователю отправить письмо, в /etc/postfix/ldap/redirect.cf, как можно догадаться, адрес получателя проверяется на соответствие редиректам, в /etc/postfix/ldap/aliases.cf - алиасам, а в /etc/postfix/ldap/mailgroups.cf спискам рассылки.

mail:/etc/postfix/ldap# cat local_recipients.cf
debuglevel = 0
version = 3
server_host = ldap://ldap_server_ip
search_base = ou=Users,dc=domain,dc=local
query_filter = (userPrincipalName=%s)
result_attribute = sAMAccountName
result_format = %u/
bind_dn = ldap-bind@domain.local
bind_pw = p@$$word
cache = no

mail:/etc/postfix/ldap# cat aliases.cf
debuglevel = 0
version = 3
server_host = ldap://ldap_server_ip
search_base = ou=Users,dc=domain,dc=local
timeout = 3
query_filter = (otherMailbox=%s)
result_filter = %s
result_attribute = userPrincipalName
special_result_attribute = member
scope = sub
bind = yes
bind_dn = ldap-bind@domain.local
bind_pw = p@$$word

mail:/etc/postfix/ldap# cat redirect.cf
debuglevel = 0
version = 3
server_host = ldap://ldap_server_ip
search_base = ou=Users,dc=domain,dc=local
timeout = 3
query_filter = (&(userPrincipalName=%s)(sAMAccountType=805306368))
result_filter = %s
result_attribute = mail
special_result_attribute = member
scope = sub
bind = yes
bind_dn = ldap-bind@domain.local
bind_pw = p@$$word

Ну и mail:/etc/postfix/ldap# cat ./mailgroups.cf
debuglevel = 0
version = 3
server_host = ldap://ldap_server_ip
search_base = ou=Users,dc=domain,dc=local
timeout = 3
query_filter = (&(mail=%s)(sAMAccountType=268435457))
result_filter = %s
result_attribute = userPrincipalName
special_result_attribute = member
scope = sub
bind = yes
bind_dn = ldap-bind@domain.local
bind_pw = p@$$word

Как видно, юзеров мы ищем по заполненному атрибуту mail, алиас по списку адресов в атрибуте otherMailboxes, для редиректа используем userPrincipalName, ну а список рассылки у нас не что иное, как группа распространения в AD, а список получателей - члены данной группы.


Таким образом, если мы для юзера хотим другой е-мейл, в атрибуте mail пишем требуемый адрес. Получается редирект. Если у юзера будет несколько адресов (алиасов), то в otherMailboxes добавляем их все (ADSIedit в помощ), а если нам нужен ящик для группы рассылки, завоним группу распространения, в атрибуте mail для нее пишем адрес группы и включаем необходимых участников. Вуа-ля! Все красиво и управляемо.


Длинный пост получился, прервемся на рекламу ;) В смысле, продолжение в следующем посте! Я расскажу, как я доставляю почту по папкам юзверей.

Нюансы LikeWise Open

Приветствую тебя, уважаемый Читатель!

В одном из постов я рассказал про то, как мы сделали рекламный стенд на Linux и крутили на нем ролики. А для удобства управления мы ввели его в домен при помощи Likewise.

Нет, я не буду подробно описывать, как же мы ставили LikeWise. Хорошо, подробно и в картинках об этом написано тут, да и нехитрое это дело буквально в пару кликов. Но у нас все же возникли некоторые вопросы и ответы на них я и решил изложить.

1. Сразу после введения машинки в домен, возник вопрос, а почему в DNS не появилась соответствующая A-запись? Нехитрый поиск по докам сабжа подсказал, что надо сделать так:
  user@host:PATH$sudo lw-update-dns
2. Доменные пользователи могут включаться в локальные группы прямо посредством правки /etc/group. Добавлять их можно в виде NETBIOSDOMAINNAME\username либо FQDNDOMAINNAME\username, например:
    admin:x:119:DOMAIN.LOCAL\megacooluser

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

Рекламный стенд своими руками, или как мы включали Linux в домен Active Directory и крутили на нем рекламные ролики

LikeWise open + Active Directory = любовь и счастье ленивому сисадмину :-)
Добрый день, уважаемый Читатель!

Придумало как-то раз наше начальство повесить в зоне приемки посетителей нашего авто-салона (а мы - оф.дилер GM и продаем разные хорошие автомобили) большой телевизор и крутить там всякие полезности.


Поначалу мы выгружали из 1С список посетителей, записавшихся к нам "на прием" со своими приболевшими машинками, и показывали его простеньким php-скриптом в браузере, раскинутом на весь экран (F11 рулит!). Но в итоге решили, что главный двигатель торговли никто не отменял, и надо крутить там видео-ролики.


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

Очевидное решение легко и безболезненно научить маркетолога запускать видео на удаленной Linux-машине - это доступ по VNC, домен, ролик из сети. Ну и поехали:

Мы выбрали Ubuntu, потому что очень любим Debian (у нас и почта на debian крутится уже не первый год, но это совсем другая история). Почти все, что нам надо, там уже есть вплоть до проприетарных видео-кодеков. Установка тривиальна, synaptic позволяет легко найти и поставить все, что нужно. А вот как включить машинку в домен, чтобы не придумывать море пользователей, заставлять запоминать второй пароль маркетолога и при этом получить нормальный серфинг в локальной сети? Sabma, winbind, kerberos, LDAP - вариантов куча, а курить маны, вспоминая, как это делается, было лень. В итоге пришло на ум простое в несколько кликов решение - LikeWise Open. Есть GUI для включения в домен в windows way. Несколько кликов и вуа-ля - мы в домене! Перезагрузка, входим под доменным пользователем, легко попадаем в шары на соседних компах, запускаем, крутим ролики. Все счастливы :-)

Не обошлось без нюансов. Подробнее о процессе установки Likewise и подводных камнях в следующем посте!

понедельник, 28 марта 2011 г.

Мое отношение к бэкапам, или как резервное копирование сбережет ваши нервы и время

Доброго здоровья, уважаемый Читатель!

Данный пост вовсе не о бэкапах на предприятии. И козе понятно, что вовремя забэкапленная производственная база данных (от той же 1С, к примеру) в случае краха сервера сбережет нервы сисадмину, его начальнику, начальнику начальника сисадмина, огромному количеству клиентов и владельцу бизнеса, который не потеряет ну пусть 1 миллион рублей в результате однодневного (а то и больше?) простоя в работе. И это надо понимать и повторять как Отче наш. Но что делать с домашними компьютерами?

Вот ярчайший пример того, что и в домашних условиях неплохо периодически убирать ваши ценные данные "подальше". Тут я перефразирую известную поговорку: "Подальше скопируешь, поближе возьмешь".

Хороший человек работает на судне. И вся его жизнь - это долгие плавания в перемешку с перерывами на отдых на суше, т.е. дома. И самый верный его друг по жизни - его ноутбук с 3G модемом со всеми вытекающими (памятные фото, видео и прочее). И если соц.сети (куда без них современному матросу?) от нас в случае краха никуда не денутся, то вот наши фотки, фильмы и музло мы легко можем потерять, просто стукнув или перегрев ноутбук. А если вирус? А если шаловливые ручки? Причин много, а исход всегда один - либо мы теряем данные безвозвратно, либо за огромные деньги отдаем наш винчестер умельцам без гарантий на жизнь после краха.

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

Мораль сей басни такова: даже матросу не мешало бы иметь хотя бы внешний HDD, ибо от сбоев никто не застрахован!

воскресенье, 27 марта 2011 г.

Безопасная работа за домашним компьютером, или 4 простых совета для чайников, как не подцепить гадость из интернета или флэшки!

Приветствую вас, уважаемый Читатель!

Думаю, многим из вас знакома ситуация: вы/ваш друг/родственник/брат/сват и кто угодно еще купили компьютер (или ноутбук)! А за компьютером он только в школе сидел, или в универе, или на работе в 1С или ворде какие-то кнопки нажимал. В общем, типичный Чайник (прошу не оскорбляться, это всего лишь термин).

И вот домой к нему пришел интернет, а с ним и социальные сети, варезники из поисковиков, заманчивые банеры с привлекательными женскими формами на каждой второй странице... В общем, наш Чайник по воле интернет-рекламы пустился "во все тяжкие" и подцепил таки красивый сочный баннер на весь экран! Или, что еще хуже, что-то тихое, отсылающее без его ведома гадкие письма, или вообще погрызшее полезное файло на диске. И вот сидит этот Чайник, опечаленный тем, что его новый компьютер не работает, работает медленно или "как-то не так". И как итог: 1-2-3 т.р. за "переустановку винды" студентом-умельцем из числа знакомых знакомых. А что собственно произошло? Что он сделал не так?

Вот вам золотые правила, следуя которым, вы скорее всего подобных проблем не испытаете:

1. Пользуетесь интернетом, вам носят флэшку или диски? СТАВЬТЕ АНТИВИРУС. Антивирус - обязательное условие безопасной работы за компьютером, хоть и не панацея.

2. Есть антивирус? ОБНОВЛЯЙТЕ АНТИВИРУСНЫЕ БАЗЫ в обязательном порядке. Иначе пользы от него как от козла молока.

3. Не всегда очевидно, но - ОС на компьютере должна быть легальной, ибо ей необходимо иметь возможность получать обновления! ОБНОВЛЯЙТЕ ОС, а не игнорируйте назойливое сообщение, что что-то там надо установить. Без патчей антивирус не всегда может отработать как надо!

4. Не работайте под аккаунтом с правами администратора! Что это значит? Уверен, вы любите ставить, сносить и снова ставить всякое полезное ПО. И конечно пользователь, под которым вы работаете за компьютером, имеет все права это делать. Удобно, НО! Вирусу так же удобно установить себя в самые защищенные дебри вашей ОС и оттуда проводить свои гадкие манипуляции с компьютером без вашего ведома. И антивирус тут не всегда вас спаситель. А что делать? Ищем панель управления, заводим нового пользователя без прав администратора и всю работу делаем под ним. А уж если надо что установить на компьютер - ставьте под администратором и снова за работу под простым пользователем!

И да прибудет чистота и порядок за вашим компьютером! Да, можно советовать использовать файерволы, защищенные браузеры, отключать апплеты, флэш и много других страшых слов. Но всего 4 совета помогут вам избежать напрасную потерю времени и траты денег на "переустановку винды" соседом-компьютерщиком.

вторник, 1 марта 2011 г.

Как не надо делать IT

Да и не только IT!

Приветствую Вас, о уважаемый Читатель!

Накипело.

Что бывает, когда начальник IT-отдела не понимает разницы между L2 и L3 коммутаторами, между канальным и транспортным уровнями модели OSI? Когда он не понимает ничего из того, что касается принципов функционирования сети, да и IT-инфраструктуры предприятия в целом?

А получается вот что:
Он нанимает неграмотного системного администратора, который не в состоянии выполнять и базовые задачи, например, организовать сеть в удаленных филиалах и собрать эти сети-кусочки воедино, не в состоянии настроить маршрутизатор, он не имеет понятия о все том же пресловутом стеке протоколов TCP/IP. Да, этот парень смышлен не по годам, но вся его работа - это шаманство. Ему впору пользоватья не wareshark'ом, а бубном. Он научился методом тыка соединять проводочки в сети, ставить "винду", переустанавливать ее в случае сбоев и еще по мелочи. Как это работает, ему даже не интересно.

И вот все это работает на костылях и пендалях, валится с завидной периодичностью, админ бегает в мыле - РАБОТАЕТ. И все со стороны как будто так и надо, как будто так у всех и так должно быть, иначе и быть не может. А ведь и правда, не у всех, но у многих именно так...

А когда надо все же что-то сделать, нанимается специалист со стороны, ему платятся деньги, которые уже получил в виде зарплаты наш смышленый сисадмин. Бюджет-то резиновый, главное убедить самого главного босса, что нам это нужно.

И особенно забавно наблюдать за этим зоопарком, когда он (зоопарк) пытается "внедрить проект". Начинается веселая "болтовня" с подрядчиками. Одна сторона не может грамотно объяснить, что же ей нужно, а вторая продает то, что подороже. И так, например, покупаются дорогущщщие железки без всякого смысла. Как, например, можно купить Cisco ASA с модулем AIP SSM за хренову тучу денег и не купить подписку на обновление сигнатур этого модуля? И было бы для чего - 10 раб.станций в одноранговой сети... Как, например, можно купить дисковую полку HP с хреновой кучей терабайт на борту на фибре, и не собрать на ней кластер, а держать лишь как файл-шару? Как от сисадмина, работающего в гор.думе, слышать: "Я хочу, чтобы было как в локальной сети" вместо "Мне нужен L2 VPN"? И еще много-много таких примеров...

Начальника казнить, сисадмина отправить в школу... А вы говорите: инновации, информатизация, Сколково... А ведь речь выше шла про гос.структуры, организации ЖКХ, высшие учебные заведения. Что нам откаты? Мы и как-будто правильно и честно потраченные деньги на самом деле тратим на фантики, на видимость того, что все круто и современно. А ведь ничего не работает.