*NIX

Подписаться на эту рубрику по RSS

Контроль переписки в Postfix («большой брат» следит за тобой)

Январь, 31st 2010

Задача - требуется контролировать переписку определенных сотрудников (официальная версия - создать backup почтовой переписки с возможностью последующего просмотра). Другими словами необходимо, чтобы при отправке письма пользователем (например, user@mydomain.ru), доставлял его почту как обычно адресату, а также дублировал это письмо в определенный ящик (например, big_brother@mydomain.ru).

На первый взгляд задача довольно не простая, но как оказалось - всё довольно легко реализуется. Имеем - операционная система FreeBSD и почтовый сервер на базе Postfix. Вот какие возможности для решения этой задачи предоставляет нам Postfix:

  • always_bcc = address
  • Доставляет копии ВСЕХ сообщений (входящих и исходящих) на указанный адрес (поддерживается с Postfix v.2.1). Например, указав в /usr/local/etc/postfix/mail.cf строку always_bcc = backup@mydomain.ru можно сделать полный бэкап всей почты на адрес backup@mydomain.ru, вот только не повезет тому, кто это всё разгребать будет.

  • sender_bcc_maps = type:table и recipient_bcc_maps = type:table
  • Таблицы соответствия отправителя/получателя с адресами доставки копий сообщений (функция доступна в Postfix 2.1 и выше.) То что нам и нужно.

Рассмотрим 2 варианта реализации - на основе файлов (индексированных карт hash) и базы данных MySQL.

читать полностью →

Rejik — блокируем нежелательный контент

Декабрь, 12th 2009

доступ к ресурсу ограничен

Вам надоело бесконтрольно пускать юзеров на любые сайты и позволять им качать что ни попадя? Или раздражают рекламные баннеры? А может и то и другое? В общем, сегодня речь пойдет о высокопроизводительном контент-фильтре для Squid или по-другому редиректоре - Rejik.

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

Squid, наверное самый популярный на сегодня прокси-сервер, позволяет использовать внешнюю программу редиректор для фильтрации запросов клиентов. Принцип действия редиректора таков: любой запрос клиентского браузера поступает на прокси-сервер, где данные о запросе передаются на стандартный вход редиректора. Редиректор анализирует поступившие данные и при соблюдении соответствующих условий перенаправляет на требуемый ресурс.

читать полностью →

Отзыв пользовательских сертификатов OpenVPN

Декабрь, 09th 2009

В предыдущих статьях на тему OpenVPN я рассказывал как настроить openVPN сервер и клиентов для него с использованием личных сертификатов пользователей. Остался не раскрытым вопрос, что делать в случае если требуется отказать какому-либо клиенту в доступе по его сертификату. Причины могут разными - закрытый ключ, связанный с сертификатом скомпрометирован или украден, пользователь забыл пароль на ключ, либо просто хотите прекратить доступ данного человека в вашу сеть. Решением этой задачи является создание списка отзыва сертификатов (Certificate Revocation List - CRL), в котором перечисляются отозванные вами клиентские сертификаты и руководствуясь которым сервер будет отклонять запросы.

В качестве примера, отзовём сертификат пользователя client2. Пример будет для Linux/BSD/Unix.

cd /usr/local/etc/openvpn
. ./vars
./revoke-full client2

читать полностью →

3proxy как альтернатива Squid

Ноябрь, 16th 2009

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

Любой Unix администратор знает о таком замечательном и авторитетном прокси-сервере, как Squid. Да и любители продуктов от Мелкомягких наверняка о нём наслышаны, вот только сегодня поговорим о другом, но не менее интересном продукте отечественного разработчика - свободном сервере 3proxy.

Возможно, первый вопрос, который сразу напрашивается у специалистов - чем меня не устраивает Squid? Всем устраивает, но есть один существенный недостаток - он до сих пор не научился писать логи напрямую в базы данных, например MySQL. А в том проекте, с которым пришлось работать, данное требование было определяющим.

На моё счастье, в сети наткнулся на сайт разработчика (Vladimir Dubrovin), известного под ником 3APA3A - http://3proxy.ru. Возможности этого маленького прокси-сервера просто впечатляют - лимиты на пользователей и группы, порт-мапперы, ограничения скорости, SOCKS, различные ACL и конечно же ведение журналов работы через ODBC. Для покорителей окон есть версия под Windows, сам не пробовал, однако на форуме разработчика широко обсуждается этот вариант. Кроме того вы полностью можете изменить формат создаваемых логов, так чтобы их можно было "скармливать" вашему любимому лог-анализатору.

Единственное чего не хватает - кэширования, вот чего нет, того нет... Поэтому пришлось использовать связку 3proxy + Squid, в качестве кеша и подключенного к нему удобного редиректора Rejik, для блокировки нежелательного контента (уже готовится статья на эту тему). Такая связка успешно работает уже более 3-х лет и спокойно "тянет" 300+ пользователей на довольно скромной машине под FreeBSD 6.3.

Данная статья не затрагивала практических вопросов установки и настройки - поэтому отправляю вас прямиком на сайт разработчика в раздел документации.

Обещаю подготовить в скором времени статью по настройке 3proxy под FreeBSD, основанную на собственном опыты внедрения. Но придется немного набраться терпения, т.к. статья будет довольно объемная, а времени свободного катастрофически не хватает...

OpenVPN клиент для Windows

Август, 17th 2009

Как и было обещано в предыдущей статье, сегодня речь пойдет о GUI оболочке для клиентской части OpenVPN на Windows. Запуск OpenVPN в консольном окне для конечных пользователей, работающих в ОС Windows - это нонсенс. Да и выглядит такое решение мягко говоря не законченным.

Для реализации нащей задачи существует open source проект под GPL лицензией - OpenVPN GUI. Последний стабильный выпуск: 1.0.3 с OpenVPN 2.0.9 (2006-10-17) (Русский выпуск еще не выходил) можно скачать здесь.

После установки OpenVPN GUI в системном трее (область на правой стороне панели задач) можно увидеть пиктограммку, похожую на подключение к сети. С её помощью получаем возможность управлять OpenVPN соединениями, запускать/останавливать туннели VPN, выполнять регистрацию, изменять пароль к ключу и массу других полезных вещей.

gui_vpn

читать полностью →

Настройка OpenVPN сервера в режиме моста на FreeBSD 6.x и FreeBSD 7.x

Июль, 08th 2009

Имеем задачу - организовать безопасный доступ из внешнего мира к внутренней корпоративной сети. Данная статья не претендует на исчерпывающее повествование по данной теме. В ней не раскрываются все возможности и опции настройки OpenVPN - это пример из личной практики, где я берусь описать процесс создания OpenVPN сервера на системе FreeBSD, с возможностью подключения к нему удаленных пользователей (с различных операционных систем: Windows, Linux, MacOS etc.).

За более подробной информацией рекомендуется обратится на сайты разработчиков openvpn.net, www.openvpn.se и man-страницы.

Для начала установим сам OpenVPN из портов:

cd /usr/ports/security/openvpn
make install

Во время установки будет предложено включить PW_SAVE? Данная опция дает возможность чтения текущих паролей из файла. Хотите включайте - хотите нет (сам эту опцию не включаю). Это не самый критичный параметр :)

читать полностью →

Сборка ядра в FreeBSD

Июнь, 29th 2009

freebsd_daemon

Зачем нужно пересобирать ядро (kernel)?

При инсталляции FreeBSD мы сразу же имеем вполне работоспособное ядро. Зачем его переделывать? Дело в том, что это ядро (GENERIC конфигурация) предназначено для того, чтобы система успешно развернулась на "железе" любой конфигурации (из поддерживаемых, конечно). В эту конфигурацию встроена поддержка ВСЕХ типов накопителей (HDD и CD) и БОЛЬШИНСТВА сетевых карт, которые на данный момент поддерживаются FreeBSD. Это вполне логично - вы должны иметь возможность поставить свой Unix и дополнительные программы на тот HDD, который имеется у вас в машине и суметь войти в сеть, какой бы сетевой карточкой вы ни пользовались, хотя на новом железе это далеко не всегда так даже на FreeBSD 7.1 (могу привести кучу примеров тому в подтверждение).

Наряду с этим, в ядро не включены полезные опции, которые обязательно вам понадобятся в дальнейшем, если вы хотите использовать вашу машину в качестве сервера. (Например - поддержка firewall, PPP, VPN и т.п.).

Итак, первым делом обновим или установим дерево портов и исходные коды операционной системы (если их не ставили во время первичной установки FreeBSD). Для поддержания дерева портов в актуальном состоянии, FreeBSD использует утилиту cvsup. Посредством CVSup можно обновлять не только порты, исходные коды в каталоге /usr/src, но и документацию в каталоге /usr/share/doc.

Устанавливаем CVSup:

# cd /usr/ports/net/cvsup-without-gui
# make install clean

Далее создаем sup-файл, в котором описываем: что обновлять, откуда и какую версию использовать. Пример такого можно посмотреть в директории /usr/share/examples/cvsup

читать полностью →

Защита корпоративной почты от СПАМа и вирусов.

Июнь, 28th 2009

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

Наравне с вирусами, СПАМ снижает производительность труда сотрудников и пропускную способность каналов связи, а также увеличивает общие ИТ-расходы на «обслуживание» электронных писем, не имеющих отношения к рабочей деятельности компании, а их, поверьте, очень не мало.

За прошедшую неделю доля спама в почтовом трафике Рунета в среднем составила 84,9%. Вот статистика одного моего почтового сервера за месяц (количество почтовых ящиков около 300 штук).

Kaspersky Antispam - отчет за месяц

Как видите, статистика подтверждается реальными фактами. И это с учетом того, что многие сообщение не доходят до АнтиСПАМ фильтра - режутся раньше почтовым сервером. Таким образом защита от спама становится важной частью общей стратегии информационной безопасности компании.

читать полностью →

Free-SA, Squid и FreeBSD. Считаем Internet-траффик

Июнь, 22nd 2009

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

Существует сножество анализаторов журналов прокси-серверов как под Windows, так под *NIX. Squid, на сегодняшний день наиболее гибок из свободных прокси-серверов в настройке и богат по возможностям, хотя и у него есть недостатки. Имея большой опыт организации корпоративного доступа в Интернет, и опробовав разные анализаторы, для себя остановился на двух готовых решениях Free-SA и SARG + одном самописном. Используются для различных решений.

В основном ставлю заказчикам Free-SA. Какие же у него преимущества?

  • более внятная архитектура и код (C/HTML/CSS);
  • скорость формирования отчетов в 7-20 раз выше по сравнению с SARG (7х — для файла access.log объемом в 50 Мб, 20x — для 1 Гб);
  • поддержка различных форматов файлов журналов (Squid, CLF, Postfix, QMail, CommuniGate Pro);
  • дополнительные отчеты (в т.ч. для оценки эффективности сервера);
  • изменяемые «на-лету» темы оформления. возможность делать свои, при наличии даже начальных знаний CSS

читать полностью →

SSH — авторизация по ключу

Июнь, 19th 2009

SSH предоставляет 3 способа аутентификации клиента: по ip адресу клиента(небезопасно), по публичному ключу клиента и стандартный парольный метод. В данной статье рассмотрим аутентификацию удалённого пользователя по ключу с полным запретом доступа по паролю на FreeBSD используя OpenSSH. Публичный ключ пользователя хранится на сервере, секретный ключ у клиента.

Для начала, нужно сгенерировать ключи, используя программу ssh-keygen, например:

ssh-keygen -t rsa #создаст пару ключей RSA длиной 1024 бита.
  • -t указывает тип ключа (RSA DSA)
  • -f указывает файл, в котором следует сохранить ключи (по умолчанию используются файлы $HOME/.ssh/id_rsa и $HOME/.ssh/id_dsa для ключей rsa и dsa соответственно)
  • -b указание длины ключа в битах
ssh-keygen -t rsa -b 2048 -f $HOME/.ssh/id_rsa

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

В итоге мы получим пару ключей: один секретный id_rsa (зашифрованный паролем, если уго указывали при создании), а второй публичный с расширением pub(id_rsa.pub).

Публичный ключ необходимо будет скопировать в домашнюю директорию сервера $HOME/.ssh/authorized_keys. только в этом случае сервер будет знать ключ данного пользователя и сможет аутентифицировать его без пароля. Файл authorized_keys может содержать несколько публичных ключей.

читать полностью →