www.eserv.ru // Eserv4Docs

wikipost /2012-02-29 15:36/ (v37)
Продукты и услуги Скачать Документация Купить Поддержка Форумы Партнёрам Статьи О компании
News
15.05.2012
Eserv504
15.05.2012
ActiveSync
01.04.2012
Eproxy508
25.03.2012
Eserv503
26.02.2012
Eserv502
08.02.2012
UMI.CMS
22.12.2011
Eserv431
20.12.2011
Eproxy507
15.11.2011
Eproxy506
19.09.2011
Eproxy505
08.09.2011
Eserv430
07.09.2011
Lightning
19.07.2011
PoweredBy
16.07.2011
IPv6
08.07.2011
Eproxy5beta1
17.06.2011
IPv6DNS
13.06.2011
IPv6Mail
21.03.2011
Eserv428
22.10.2010
Eserv426
22.10.2010
SSL
22.04.2010
Eserv423
20.04.2010
Eserv4WhatsNew
19.04.2010
EservLDAP
19.04.2010
EservDHCP
19.04.2010
EservRubricator
08.04.2010
EservDNS
08.04.2010
NSСI
08.04.2010
WPAD
27.03.2010
Eserv422
27.03.2010
Eserv4Docs
26.03.2010
Eserv4FAQ
21.03.2010
EservIrc
05.03.2010
Eserv421
05.03.2010
HttpProxy
02.03.2010
EservVideo
02.12.2009
Eserv4Wiki
02.12.2009
Eserv4acWEB
02.12.2009
PopPull
22.11.2009
PigMailPigProxy2/WhatsNew
22.11.2009
PigMail/WhatsNew
23.09.2009
FossilEservHowTo
22.09.2009
SourceCodeManagement
22.09.2009
FossilScm
16.09.2009
SendEmail
08.09.2009
RoundCube
07.05.2009
GitScm
07.05.2009
GitEservHowTo
06.05.2009
SunBird
Страница сейчас редактируется (wiki)

Eserv/4 — руководство



TOC


Назначение Eserv

Eserv предназначен для работы в качестве:
  • почтового сервера предприятия;
  • веб-сервера предприятия;
  • сервера поддержки групповой работы;
  • прокси-сервера предприятия.
Почтовый сервер предоставляет возможность пересылки почты между почтовыми ящиками сотрудников внутри локальной сети, получение почты из Интернета (напрямую по SMTP, или сбором из внешних почтовых ящиков по POP3), отправка почты в Интернет (напрямую на MX получателя по SMTP, либо через сервер провайдера по SMTP). При получении почты Eserv может отфильтровывать из почтового потока спам, вирусы и иное вредоносное содержимое (интегрируется с пятью антивирусами и пятью антиспамами). Пользователи могут получать свою почту с Eserv'а с помощью почтовых клиентов по протоколам POP3 или IMAP, либо работать с ней в веб-браузере через встроенный в Eserv веб-сервер.

На сервере Eserv можно создавать общие почтовые ящики и общие папки. С общими папками можно работать из почтовых клиентов по IMAP (при этом все подключенные к папке пользователи видят изменения, которые производят в этой папке другие пользователи), либо по HTTP из браузера (при этом общие папки отображаются как онлайн-форумы). Общие папки могут содержать почтовые сообщения, сообщения форумов, веб-страницы, документы, календари (списки задач, расписания встреч и т.д.). Программы для работы с календарями используют WebDAV-сервер в Eserv.

На веб-сервере Eserv можно разместить общедоступный сайт предприятия и/или интранет-сайт предприятия, доступный только из локальной сети. При этом Eserv предоставляет встроенные средства управления этим сайтом (редактор страниц, wiki, форумы, ленты новостей и т.п.), а также может работать "обычным" веб-сервером, на котором размещаются другие приложения (поддерживаются CGI, ISAPI и FastCGI интерфейсы, поэтому Eserv совместим с любыми PHP- и Perl-приложениями).

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

Системные требования

  • Процессор 1GHz, RAM 1Gb. Средний объем памяти, занимаемый всеми сервисами Eserv под нагрузкой — около 300 Mb.
  • Операционная система Windows XP и выше (на Windows 2000 работать тоже будет, но не весь функционал). 64-битные ОС поддерживаются.
  • Браузер Internet Explorer минимум версии 6 (Eserv совместим со всеми современными браузерами, но для работы локальной консоли управления требуется именно IE).
  • До 100 Mb на жестком диске для полной установки.

Возможные конфликты

Firewall'ы (например, Outpost), резидентные антивирусы (например, Dr.Web) могут блокировать — обычно из-за ошибок фильтров — сетевую или файловую работу Eserv. Поэтому если сталкиваетесь с "зависанием" соединений (таймауты), ошибками открытия файлов и т.п. странными ошибками, то лучше эти фильтры выключить.

Что нового в Eserv/4

См. отдельную статью http://www.eserv.ru/Eserv4WhatsNew

Планирование установки

Рекомендуется устанавливать Eserv на компьютер, непосредственно подключенный к интернету и имеющий реальный IP-адрес. Иначе часть функций (работа MX-сервером, использование RBL, автоматическая проверка доменов и др.) могут не работать или требовать дополнительной настройки как вашего NAT или прокси, так и Eserv. В идеале Eserv должен быть установлен на шлюзовом компьютере с двумя сетевыми интерфейсами — WAN (интернет) и LAN (локальная сеть).

Если функционал прокси-сервера в Eserv не требуется, а требуется работа почтовым и веб-сервером, то можно ставить Eserv в DMZ в сети предприятия или на выделенном (в т.ч. виртуальном выделенном) сервере хостера.

Для работы почтовым сервером Eserv'у понадобится почтовый домен, т.е. интернет-имя вида "ваша_фирма.ru" или "ваша_фирма.ваш_провайдер.ru". Тогда вы сможете назначить каждому сотруднику собственный почтовый адрес вида "сотрудник@ваша_фирма.ru". Можно использовать произвольный вымышленный домен, но в этом случае электронная почта сможет ходить только внутри вашей ЛС, т.к. внешние почтовые серверы не смогут доставить почту получателям в вымышленном домене (и еще хуже, если этот домен случайно совпадет с реально существующим чужим доменом — в этом случае почта, предназначенная вам, уйдёт на другой сервер). Поэтому для полноценного использования электронной почты вам желательно получить собственный домен — зарегистрировать самостоятельно или с помощью провайдера, или с нашей помощью домен второго уровня вида "ваша_фирма.ru" (это не сложно) или получить субдомен третьего уровня вида "ваша_фирма.ваш_провайдер.ru" у провайдера или у нас (ваша_фирма.snop.ru). При настройке DNS вашего нового домена можно указать в MX-записи, на какой почтовый сервер должна поступать почта вашего домена — на сервер провайдера (в качестве промежуточного) или сразу на ваш сервер (с установленным Eserv).

Обратите внимание, что интернет-домены — это не совсем то же самое, что домен в Windows. Если у вас установлен Windows Server и в его Active Directory настроены домены, то это не означает автоматически, что у вас есть готовые домены для электронной почты или сайтов в интернете. Обычно при настройке доменов Windows используют локальные домены *.local, которые, как и локальные IP-адреса, не могут использоваться в интернете.

Установка

Перед установкой убедитесь, что на жестком диске, куда вы планируете установить Eserv есть 100 Мб свободного места. Лучше устанавливать Eserv не в каталог "Program Files", а, например, в "C:\E4" — это упростит настройку прав доступа к файлам (каталог должен быть доступен на запись как администратору компьютера, так и учетной записи, под которой будут работать службы Eserv — по умолчанию LocalSystem), а также немного отодвинет ограничения на длину путей к папкам (что может иметь значение для поддержки многократно вложенных папок в IMAP).

Программа установки спросит у вас название основного почтового домена. Если на момент установки у вы еще не регистрировали собственных доменов, вы можете указать вымышленный домен, например ваша_фирма.local или ваша_фирма.ru. Второй вариант лучше, т.к. если вы позже зарегистрируете этот домен, вам не потребуется перенастраивать Eserv.

Если вашему интернет-подключению назначен реальный IP-адрес (а не локальный из ЛС за NAT провайдера), и если этому IP-адресу соответствует реальное доменное имя (обычно субдомен в домене провайдера), то при отсутствии собственного домена вы можете использовать это провайдерское доменное имя (доменное имя хоста, соответствующее вашему IP-адресу). Программа установки может попытаться самостоятельно определить ваш внешний IP-адрес и соответствующее имя хоста — для этого на момент установки Eserv ваш сервер должен должен быть подключен к интернету и ваш брандмауэр не должен препятствовать сетевым запросам программы установки.

X.509-сертификаты, необходимые для работы Eserv (в т.ч. SSL/TLS-серверов) создаются при установке автоматически. При этом желательно сразу указать там реальное доменное имя сервера, т.к. клиентские программы при работе с SSL/TLS-серверами сверяют имя сервера, указанное в сертификате с тем именем, по которому они обращаются к серверу. Также очень важно указать правильный (существующий) email-адрес администратора (а не postmaster@ip-адрес), т.к. кроме сертификата этот Email указывается в служебных почтовых сообщениях сервера, а также используется как "последняя инстанция" для почты, которую не удалось ни доставить, ни вернуть отправителю, и, если и административный email тоже не существует, то почта может зациклиться.

Для установки серверов комплекта Eserv/4 системными службами Windows NT можно запустить их (после установки комплекта) с опцией "--install". Например, "acWEB4.exe --install", "acSMTP4.exe --install". Или "... --install имя_службы". Для удаления службы — "--uninstall".

URL для дистанционного управления Eserv/4 через браузер — http://имя_машины_с_eserv:2009/e4i/frame.htm (или через иконку UPnP-устройства Eserv в "Сетевом окружении" Windows). Веб-сервер acWEB4 при этом должен быть запущен.

Терминология

Проекты в Eserv — это верхний уровень логической группировки пользователей и ресурсов сервера. Собственно реализация неких проектов — это та цель, с которой участники объединяются в рабочие группы и выделяют для этих групп какие-то сетевые ресурсы для координации работ по проекту.

Домены в Eserv — это доменные имена, используемые в интернете. Локальные домены — это домены, выделенные вашему предприятию/организации — Eserv по домену будет отличать своих пользователей от чужих и, соответственно, локальные email-адреса от внешних. Если локальных доменов несколько, то по доменам можно не только отличать своих от чужих, но и разделять локальные проекты или локальные рабочие группы, связав с каждым из доменов отдельный проект, и с каждым из проектов список учетных записей. Так локальный веб-сервер из комлекта Eserv может в зависимости от доменного имени, по которому к нему обращается пользователь, выдавать страницы различных сайтов, относящихся к отдельным локальным проектам или подразделениям предприятия.

Учетной записью в Eserv называется представление пользователя в системе в целях авторизации на сервере с получением адреса электронной почты и полномочий доступа. С учетной записью связаны имя (логин), пароль, флаг активности (разрешение на использование этой учетной записи) и опционально другие свойства. Один человек может иметь несколько учетных записей в системе. С каждой из них могут быть связаны свои полномочия в различных проектах и отдельный email в доменах, связанных с проектом. А сам человек представлен на сервере одним Контактом — виртуальной визитной карточкой, в которой записаны его ФИО, фото (или аватар), телефон и другие личные данные.
Учетные записи одного пользователя связываются с его контактом.

Аутентификация — предъявление и проверка подлинности "удостоверения личности", которым в компьютерных протоколах являются имя:пароль (проверяется по совпадению с хранимым хэшем или по криптографической серии запрос-ответ), цифровой сертификат (наличие у субъекта закрытого ключа проверяется проверкой цифровой подписи), и т.п.

Авторизация — проверка прав доступа аутентифицированного субъекта к запрашиваемому ресурсу или действию. Авторизация всегда предусматривает аутентификацию. И аутентификацию не требуется проводить, если не предполагается авторизация. Поэтому авторизация и аутентификация так тесно связаны, что при обсуждении управления доступом удобнее считать это единым процессом и называть одним термином. В Eserv всегда используется термин авторизация, которую всегда можно расшифровывать как "авторизация и аутентификация". В Eserv/4 при аутентификации сразу проводится базовая авторизация, определяются членство и полномочия пользователя в проекте и установка домашнего каталога пользователя. При доступе к другим закрытым ресурсам проводится дополнительная проверка полномочий (авторизация в узком смысле).

Архитектура

Базовые принципы

Все информационные объекты, с которыми пользователи работают в компьютерных сетях или в бумажном/устном/очном общении и делопроизводстве имеют вид сообщений. Все они имеют автора (создателя), дату и место создания, адресатов/получателей/целевую аудиторию/канал, срок действия или срок хранения и собственно информационное наполнение — текст, речь, изображения. С точки зрения компьютерной обработки наиболее важными характеристиками сообщений являются срок доставки (допустимая задержка передачи), размер и срок хранения (ресурсоемкость). Требования к протоколам доставки сообщений и к средствам хранения сообщений задаются именно этими характеристикам, а атрибуты сообщений (автор/дата/область распространения) неизбежно и необходимо поддерживаются всеми протоколами и системами хранения.

Примеры:
  • бумажные публикации и веб-страницы: размер не ограничен (но обычно не больше нескольких сотен Кб), распространение обычно не ограничено, хранить вечно (желательно), допустимый срок доставки широко варьируется. Компьютерные протоколы — HTTP, NNTP.
  • бумажные или электронные письма: средний размер бумажного письма 10Кб, средний размер электронного письма (в 2009м году) 15Кб, распространение — явно указанные получатели (за исключением "открытых писем", которые являются обычными публикациями), срок хранения определяется ценностью информации для получателя (т.е. должна быть возможность хранить вечно), срок доставки по компьютерным сетям в среднем меньше минуты, по "бумажным" сетям — дни или недели. Компьютерные протоколы — SMTP, POP, IMAP, HTTP.
  • деловая корреспонденция (документы, включая бухгалтерские) — то же, что и обычные письма, но средний размер на порядок больше и опция "хранить вечно" становится обязательной.
  • служебные записки — распоряжения, поручения, задачи и т.п. — просто несколько иной формат представления писем, с отметками о выполнении. Все остальные характеристики те же.
  • устные (в т.ч. телефонные) переговоры и компьютерный чат, SMS, twitter: средний размер одного сообщения — одно предложение (часто объединены в серии, но на уровне протоколов каждая реплика все же оформляется отдельным сообщением и может передаваться по разным каналам), распространение — явно указывается отправителем, срок доставки — желательно мгновенно, информационная ценность обычно не велика (ценность этого канала в самой его срочности) и длительное хранение не обязательно (т.е. при вечном хранении оперативность доступа к архиву не принципиальна). Протоколы — IRC, XMPP, ICQ, HTTP.
  • аудиовидеотрансляции, медиа-сообщения, компьютерные программы — размер от сотен килобайт и до десятков гигабайт, остальные свойства как у публикаций или писем. Протоколы — RTP, SIP, MMS, HTTP.
Фактически все виды сообщений "не против" вечного хранения, мгновенной доставки и имеют тенденцию к росту среднего размера. И все различия между ними технически сводятся к различию возможностей протоколов (на какое использование они изначально рассчитывались/проектировались) и возможностям соответствующих серверных и клиентских программ. На самом деле нет технических препятствий, например, к чату по почтовому протоколу IMAP (вместо чатового IRC), просто разработчики IMAP-клиентов не задумывались о таком использовании протокола и не создали интерфейсных функций для быстрой отправки коротких сообщений. А HTTP вобрал в себя вообще почти все способы передачи сообщений благодаря не свойствам самого HTTP (он один из самых простых протоколов), а только благодаря гибкости представления информации в браузерах, возможностей HTML и JavaScript.

Можно предположить, что компьютерная система, которая предоставит для всех видов сообщений единообразное хранилище (атрибуты у всех видов сообщений одни и те же) и полноценного поддержку самого универсального из существующих протоколов, сможет легко адаптироваться к любым способам использования и протоколам (включая еще не изобретенные), рассматривая их как подмножество функций, упрощение, "срез" базового функционала. И заодно даст доступ ко всем сообщениям всех типов всеми существующими протоколами одновременно, что может породить качественно новые более эффективные средства групповой работы, не сковывая пользователей ни узким набором совместимого клиентского программного обеспечения, ни "предпочтительным" способом доступа/использования хранимой информации. Эта масштабная задача была поставлена в "манифесте Eserv/3" в 2000м году, но реально получает своё воплощение в Eserv/4, спустя еще 8 лет работы над проектом.

Планирование и настройка проектов и доменов

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

Обычно на момент внедрения Eserv в организации или на предприятии уже действуют какие-то маршруты передачи сообщений — личные почтовые ящики сотрудников на серверах бесплатной веб-почты, служебные почтовые ящики отделов продаж и техподдержки (всевозможные sales@, info@, help@, webmaster@), размещенные у провайдера или также на внешних системах веб-почты, сайты-визитки с формами обратной связи, онлайновые каталоги продукции, и т.д. Все наверняка создавалось в разное время разными людьми, на разных серверах и с разными процедурами доступа.

Внедрение Eserv — хороший повод навести порядок и вообще переосмыслить роль потоков сообщений в информационной структуре предприятия. Как говорилось в разделе "Архитектура", нет никаких информационных объектов, которые не являлись бы частными видами универсальной структуры "сообщение" ("со-общение"!). Сообщения всегда имеют отношение к какому-то реальному процессу, при совместном участии в котором людям и необходимо координировать (по-русски "соупорядочивать") свои действия путем отправки друг другу сообщений — устных/очных и письменных. От обоснования необходимости участия в процессе, планирования работ, привлечения сотрудников, до распределения заданий, контроля выполнения, взаимодействия с потребителями результатов процесса, подведения итогов и т.д.

Вот эти рабочие процессы и предлагается отражать в Eserv в виде проектов, а перечисленные стадии процессов могут быть представлены доменами (или субдоменами в основном домене проекта). Основной смысл слова "домен" — это "область" ("часть", "удел", "зона"), структурное подразделение более крупного объекта. В интернете это область (зона) в пространстве имён. В оффлайне домен — это просто "отдельная область" чего либо, в нашем случае "участок работ". В Eserv вместо доменов можно использовать подгруппы в проектах, логически это одно и то же, но в интернете удобнее группировать именно по доменам/субдоменам, т.к. во многих протоколах есть понятие домена (и это вообще центральное понятие в интернете), но редкий протокол использует понятие "группа". Если домен находится под вашим управлением, то вы легко и бесплатно можете создать в нем произвольное количество субдоменов.

Важная характеристика проекта — его открытость (или закрытость). С одной стороны проект — это закрытый процесс, осуществляемый сотрудниками предприятия, и доступ на "кухню" всем остальным закрыт. С другой стороны ни один проект на самом деле не является закрытой системой. С проектом связаны не только сотрудники предприятия, но и внешние субъекты — как минимум присутствуют поставщики исходных составляющих продукции (не обязательно материальных) и оборудования и потребители продукции или услуг. И хорошо, когда поставщики и потребители имеют собственные интерфейсы в этом проекте — они смогут выполнить свою РОЛЬ в проекте лучше, если обладают полной информацией, относящейся к их роли. Часть совместной работы (и контроля) они тогда смогут выполнить самостоятельно, не отвлекая ваших сотрудников для извлечения данных из закрытых частей системы.

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

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

Для создания проекта в консоли управления войдите в раздел "Проекты" и нажмите на иконку "Новый проект" в панели инструментов вверху или контекстном меню справа, введите название и краткое описание, нажмите кнопку "Создать", потом отредактируйте свойства, пользуясь контекстной подсказкой. Для начала лучше оставить все параметры по умолчанию, и, только если они не подойдут, менять. Флаг "Общедоступный" означает, могут ли самостоятельно регистрироваться в проекте любые пользователи, которые попали на сайт проекта, и будет ли проект указан в общем списке проектов, которые пользователи увидят при анонимном подключении к IRC или NNTP. Он не влияет на доступ к веб-серверу проекта: доступ к проекту через веб-сервер по умолчанию закрыт, если у проекта нет доменов, или если у проекта нет учетной записи "web" — в этом случае доступна только веб-почта (самому участнику по собственному логину) и личные блоги участников (если они их создавали).

Создание доменов аналогично в разделе "Домены". Для привязки домена к проекту надо мышью перенести название домена из списка доменов в среднем окне на название проекта в левом.

Добавление учетных записей

Для добавления учетной записи необходимо в консоли управления войти в раздел "Учетные записи" или его подразделы и нажать иконку "Новая учетная запись" в панели инструментов вверху (слева от строки поиска) либо в контекстом в правой части окна.

Либо пользователь может зарегистрироваться через веб самостоятельно, а администратор впоследствии активирует его учетную запись и укажет роль в проекте. В общедоступных проектах (флаг "общедоступный=да" в свойствах проекта) активация администратором не требуется.

Планировщик

Прием почты из внешних ящиков

PopPull — один из протоколов работы заданий планировщика в Eserv/4. Предназначен для получения почты из внешних POP3-ящиков и пересылки её на локальный Eserv/4 по SMTP (внутри используется тот же pop2smtp-plugin, что и в Eserv/3).

Обязательных параметров три — имя сервера, логин и пароль (при переходе с Eserv/2 или Eserv/3 они импортируются). Если указать Email в параметре "локальный ящик", то письма, которые не нашли других существующих локальных получателей, будут переправляться на этот email.

Параметры "командная строка" и "локальная папка" в заданиях этого типа не используются. При импорте из Eserv/2 "ком.строка" заполняется просто к сведению, чтобы легче было узнать задания старого планировщика.

Система обновлений

Обновления в Eserv/4 скачиваются автоматически в фоновом режиме. Этим занимается задание планировщика "Eserv Update", работающее внутри модуля acWEB4.exe. Eserv Update периодически получает с сервера code.eserv.ru список доступных обновлений (сжатый файл размером около 10Кб) и запускает получение файлов, которые в локальной базе обновлений ("почтовый ящик" DATA\domains\system\eserv_updates\INBOX\.messages.db3) отсутствуют.

По умолчанию обновления не устанавливаются автоматически, чтобы не прерывать работу пользователей. Для установки полученных обновлений надо запускать утилиту update.bat в корневом каталоге Eserv'а — вручную или заданием планировщика. acWEB4.exe тоже подлежит обновлению и перезапуску, поэтому обновление не запускается через веб-интерфейс.

Резервные копии заменяемых файлов складываются в каталоге DATA\temp\restore\{YYYY-MM-DD}\{PID}.

На закладке "Обновления"->"Список обновлений" отображается полный список доступных обновлений.

Задание планировщика "Eserv Update" в списке заданий показывается серым цветом, если выполняется в данный момент (другие длительные задания — такие как сбор почты из внешних ящиков — тоже). Отключенные задания показываются зачёркнутыми.

Прием почты по SMTP

SMTP-сервер изначально настроен для работы в трех режимах одновременно:
  • MX-сервером — Mail eXchanger для домена — отвечает за приём почты от внешних отправителей (из интернета) для заданного администратором списка доменов;
  • сервером доставки исходящей почты — от локальных пользователей в интернет;
  • сервером доставки локальной почты — от локальных отправителей в локальные почтовые ящики.
Минимально необходимая настройка для начала работы с почтовым сервером — указать список локальных доменов (т.е. доменов, обслуживаемых этим сервером) и списки почтовых ящиков в каждом из доменов. С одним списком пользователей (проекта) можно связать несколько почтовых доменов.

SMTP-фильтры

SMTP-фильтры в Eserv — это набор правил, вычисляемых во время SMTP-сессий для дополнительной проверки IP-адресов, email-адресов, доменов, заголовков писем и т.д. и выполнения тех или иных действий в зависимости от результатов проверки. Обычно таким действием является отказ в приеме письма, поэтому эти правила и названы фильтрами.

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

Eserv поставляется с набором предопределенных фильтров, заданных в acSMTP\conf\OnStartup.rules.txt (RBL,YDK,SPF, базовые проверки валидности Email'ов, доменных и IP-политик, антиспам- и антивирус- проверки), которые менять не рекомендуется. А в этом разделе задаются дополнительные фильтры, если вам недостаточно встроенных. Помните, что неправильная настройка фильтров может привести к отказу в приёме легитимной корреспонденции, поэтому используйте эти дополнительные фильтры только если точно знаете, как работает протокол SMTP.

Стадии протокола SMTP

  1. Приём соединения — почтовый клиент или MTA (далее "отправитель") подключается к вашему серверу.
  2. HELO или EHLO — отправитель выдает команду "HELO его.домен" или "EHLO его.домен".
  3. Авторизация (опционально) — отправитель аутентифицируется с использованием имени и пароля.
  4. MAIL FROM — отправитель указывает свой Email-адрес.
  5. RCPT TO — отправитель указывает Email-адреса получателей (каждый адрес в отдельной команде RCPT TO).
  6. Письмо принято — завершение SMTP-команды DATA по отправке заголовков и тела письма. До стадии приёма письма сессия доходит только в случае, если сессия не была отвергнута сервером на стадиях 1-5 (например, если сервер отверг всех получателей, то и команду DATA отвергнет, т.к. некому отправлять такое письмо). Либо, наоборот, на этой стадии администратор может по каким-то признакам предоставить дополнительные "преференции" письму — например избавить его от проверок байесовыми спам-фильтрами ("белый список").
  7. После классификации — здесь можно проверить результат классификации письма спам-фильтрами и антивирусами и в зависимости от этого выполнить какие-то дополнительные действия — например, добавить дополнительных получателей. По умолчанию на этой стадии для спам-писем сервер выдает отправителю негативный ответ 5xx, объяснение причины отказа в доставке и http-ссылку на "проталкивание" письма.
  8. Доставка — сервер раскладывает почту по ящикам получателей и в очереди исходящей почты (если письмо из ЛС или авторизованного отправителя внешнему получателю наружу — исходящее). Правила на этой стадии вычисляются для каждого получателя из списка, сформированного командами RCPT TO (и возможно модифицированного выполнением фильтров на предыдущих этапах). Действие на этой стадии может модифицировать или отменять доставку.
  9. Завершение сессии — отправитель отключается. На этой стадии можно выполнить какую-нибудь пост-обработку полученной почты, которая не требует уже взаимодействия с отправителем. Например, индексацию почты для поиска.

"Черные списки"

"Черный список" — это список признаков почтовой сессии или самого письма, при обнаружении которых почтовый сервер должен отказаться принимать письмо. Блокирующие признаки могут быть найдены в следующих параметрах сессии или письма:
  • IP-адрес отправителя
  • указанные отправителем домены в SMTP-командах HELO или EHLO
  • указанные отправителем параметры аутентификации
  • проект и роль отправителя (если авторизован)
  • адреса отправителя и получателей
  • результат проверки политик домена отправителя (SPF,*DK)
  • результат классификации спам-фильтрами
  • заголовки письма
  • произвольное правило, написанное на встроенном языке

Пример реализации "черных списков"

Если с какого-то IP-адреса вам регулярно присылают ненужную вам корреспонденцию, отписаться от рассылки невозможно, а в RBL этот IP не появляется (т.е. не будет заблокирован автоматически как минимум до стадии байесовой классификации принятого письма), то вероятно вы захотите блокировать почту с этого IP самодельным фильтром. Так как IP отправителя известен на любой стадии протокола SMTP (если отправитель отправляет вам почту напрямую по SMTP), то анализировать этот IP в поле "IP" в настройке параметров фильтра вы можете на любой стадии, и прервать сессию выдачей ответа 5xx соответственно. Но ради уменьшения нагрузки на сервер байесовыми и антиспам-проверками, экономии трафика и дискового пространства вы захотите завершать сессии с этим отправителем как можно быстрее.

Предположим IP спамера — "8.8.8.8", тогда включение его в черный список можно оформить таким фильтром:
  • Стадия протокола = "Приём соединения" или "HELO/EHLO"
  • IP = "8.8.8.8"
  • Выполнить = "Ответить SMTP-клиенту" с параметрами "550 5.7.1 {CLIENT}, your IP is in my BlackList." или Выполнить = "Отказаться выполнять команду".
Можно перенести этот фильтр на стадию "RCPT TO" — в этом случае письмо по-прежнему принято не будет, но у сервера будет информация о том, кому именно изначально предназначалось письмо, т.е. у вас останется более подробный лог этого отказа.

Если спам поступает не только с 8.8.8.8, а допустим со всей /24-подсети, можно в поле "IP" указывать маску "8.8.8.*". Кроме того в этом поле можно указывать имя текстового файла со списком IP-адресов или масок IP-адресов. Это удобно, если этот список автоматизировано формируется какой-то внешней программой (анализатором лога, например) — программе не надо будет заполнять базу фильтров, а достаточно заполнить файл простой структуры. Формат файла использует соглашения E3 — это должен быть CSV-файл с разделителями ";", первая строка содержит имена полей (какие именно имена — не важно), во второй и последующих строках первое поле содержит IP или маску. Можно таким способом подключать старые черные списки из E3, если по каким-то причинам они не были импортированы (преобразованы в фильтры) при переходе на E4.

Пример маршрутизации почты

Предположим, один из ваших сотрудников перешел работать из вашего (первого) филиала в другой (второй) филиал, в котором другой субдомен и отдельный почтовый сервер, где ему завели новый Email для удобства локальной переписки. При этом в адресных книгах сотрудников, а возможно и клиентов остался старый Email с субдоменом первого филиала. Чтобы почта от них пересылалась на новый Email вы можете воспользоваться алиасами (псевдонимами). Но если например требуется пересылать на новый адрес только почту от сотрудников первого филиала, а всю остальную (от клиентов, локальные списки рассылки и т.д.) оставлять на сервере первого филиала, то здесь без анализа дополнительных признаков сессии не обойтись, в этом случае вместо псевдонима поможет фильтр:

  • Стадия протокола = "RCPT TO".
  • MAIL FROM = "*@филиал1.фирма.ru"
  • RCPT TO = "этот_сотрудник@филиал1.фирма.ru"
  • Выполнить = "заменить получателей" с параметром "сотрудник@филиал2.фирма.ru"

Списки рассылки

Все проекты и группы в Eserv/4 являются списками рассылки. Т.е. можно написать письмо по адресу "проект@домен.проекта" и письмо поступит в ящики всех участников проекта (с учетом разрешений на отправку сообщений, указанных в свойствах проекта).

Можно также использовать более привычные списки рассылки с явно указанными получателями либо с указанием имени файла со списком получателей. Небольшой список получателей (несколько человек) можно указать в поле получателя алиаса или фильтра (в Eserv/4, как и в Eserv/3 везде, где используется адрес получателя, можно указывать список адресов через запятую). Список получателей из файла также можно подключать вместо конкретного email'а получателя. Пример фильтра приведён на странице http://www.eserv.ru/Eserv4MailLists . В текущей версии указывать команду "MaillistFile:" в поле параметров необязательно, достаточно указать имя файла.

Антиспам и антивирус

При приёме почты Eserv использует несколько антиспам техник, анализирующих почтовую сессию и сами письма на разных стадиях передачи:

  • IP-адрес отправителя проверяется по RBL-системам (по умолчанию — CBL и BRBL);
  • существование доменов проверяется по DNS;
  • политики доменов проверяются по SPF/SenderID-записям в DNS;
  • после приёма письма проверяются доменные подписи DomainKeys и проводится анализ письма байесовыми фильтрами и антивирусами.
Если IP-адрес отправителя заблокирован в RBL, то Eserv сообщает об этом отправляющему агенту (MTA отправителя) кодом SMTP-ответа "5xx ваш адрес заблокирован такой-то RBL, разблокироваться можно по такому-то URL". Если это был настоящий MTA, а не спамерский, то он вернет письмо с соответствующей диагностикой отправителю, и отправитель сможет принять меры и отправить письмо повторно.

Результаты проверок SPF и DK не приводят к отказу в сессии даже в случае негативных результатов проверки, т.к. это может быть результатом различных причин, не обязательно попыткой подделки письма спамером (если промежуточный шлюз не поддерживал SRS, то это может нарушить SPF; если промежуточный сервер менял заголовки, то это может нарушить доменную подпись; и т.п.) Но результаты этих проверок добавляются в заголовок письма и могут быть далее проанализированы байесовыми фильтрами либо почтовым клиентом у пользователя.

Eserv умеет работать с различными байесовыми антиспам-фильтрами (PopFile, SpamProtexx, LibSD, SpamAssassin) и различными антивирусными фильтрами (KAV, Dr.WEB, ClamAV). Поддержка API этих фильтров реализована в виде отдельного серверного процесса acFilter, который скрывает от acSMTP детали реализации каждого из фильтров, и работает с ним по протоколу, совместимому с PopFile. Все перечисленные антиспамы и антивирусы могут работать в acFilter все вместе, либо в любой комбинации.

Антивирусные проверки проводятся каждым из установленных антивирусов последовательно — если хотя бы один из антивирусов обнаружил в письме вирус, то письмо получателю не доставляется (помещается в папку infected на сервере), а MTA отправителя получает код ответа "5xx письмо заражено вирусом" и этот MTA возвращает этот ответ отправителю.

После этого письмо классифицируется каждым из установленных антиспамов, но результат используется иначе, чем с антивирусами: результаты антиспамов объединяются в режиме голосования — только если все антиспамы посчитали письмо спамом, оно будет признано спамом (попадет в папку 'spam' получателя или в inbox с пометкой 'spam' в зависимости от настроек учетной записи). Если у какого-то антиспама были сомнения, то результат классификации неоднозначный — 'ambiguous'. Такое письмо попадет получателю в inbox, а также будет скопировано в архив почты "спорной классификации" (настраивается в "Почтовый сервер/SMTP/Архивы") — для дообучения байесов администратором на примере этих спорных писем (обучение производится по IMAP путем переноса писем в папки, имена которых соответствуют классам писем — spam и not_spam, а также любым другим дополнительным классам в случае PopFile). Система голосования используется для исключения ложных срабатываний антиспамов и для выявления лучших кандидатов на дообучение.

Если письмо было единогласно всеми байесами признано спамом, MTA отправителя получит SMTP-ответ "5xx ваше письмо похоже на спам, для проталкивания письма посетите такой-то URL" и (если это не спамерский MTA) вернет письмо с этой диагностикой отправителю. В URL указывается адрес веб-сервера Eserv, в каталоге MailClassify/ которого размещена программа "проталкивания" — при посещении указанного в 5xx-ответе URL будет произведена доставка задержанного как spam письма. Благодаря этому пользователям не обязательно читать свои папки 'spam', т.к. отправитель, зная, что его письмо не доставлено (ошибочно посчитано спамом), может сам его протолкнуть. Спамерские MTA в отличие от людей указанных ссылок не посещают, поэтому их почта так в спаме и останется.

Работа в режиме фильтрующего SMTP-шлюза

SMTP-сервер в Eserv может работать в режиме пересылки без локальных почтовых ящиков, пересылая поступающую почту на другой SMTP-сервер. При этом он может выполнять дополнительную обработку почтового потока — очищать почту от спама и вирусов, применять другие фильтры, выполнять архивирование проходящей через него почты. Например, он может работать на внешнем периметре локальной сети (на MX) и пересылать очищенную почту на внутренний почтовый сервер (например, Exchange, Lotus).

Режим работы задается опцией LocalBoxes в разделе [Delivery] в E4.ini. При LocalBoxes=1 (по умолчанию) Eserv работает в своем обычном режиме с локальными почтовыми ящиками. При LocalBoxes=0 почта будет пересылаться на сервер, указанный в разделе [Relay] (Host и Port).

Eserv может самостоятельно вести список доменов и ящиков (чтобы знать, какую почту принимать для пересылки на внутренний сервер, а какую отвергать), либо прямо во время входящих сессий спрашивать у внутреннего сервера (по SMTP), как поступать с тем или иным адресом получателя. Это управляется опцией ProxyMode в разделе [Relay]. При ProxyMode=0 Eserv сверяется с локальным списком, при ProxyMode=1 спрашивает у внутреннего сервера. Важно настроить внутренний сервер так, чтобы он не считал IP-адрес, с которого к нему будет подключаться Eserv, доверенным адресом. Он должен считать Eserv внешним отправителем, т.к. иначе внутренний сервер будет принимать любой адрес получателя, как при работе с локальным отправителем, и тогда связка Eserv + внутренний сервер превратится в открытый релей.

Архивное копирование почты на адреса, указанные в разделе "Почтовый сервер/SMTP/Архивы" производится независимо от режима шлюза (т.е. при любом значении опции LocalBoxes), поэтому можно централизовано обучать антиспам-фильтры Eserv, работая с архивными ящиками по IMAP (на IMAP-сервере Eserv), как и в не-шлюзовом режиме Eserv.

Доставка исходящей почты

Eserv доставляет исходящую почту напрямую на MX-серверы получателей (т.е. на серверы, имена которых указаны в MX-записях в DNS-зонах соответствующих доменов получателей). Непосредственно доставкой занимается MTA-агент smtpsend4.exe, запускаемый встроенным в Eserv планировщиком. Основная очередь исходящей почты расположена в каталоге "DATA\mail\out", очередь повторов — в "DATA\mail\retry_outbound".

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

Извне ЛС

Самый простой способ сделать сетевую службу недоступной извне — настроить список сетевых интерфейсов, к которым привязана служба. Если в списке интерфейсов нет внешнего интерфейса, то сервер "невидим" снаружи.

Права доступа к ресурсам

Глобальный (для всех серверов) список управления доступом к ресурсам настраивается в консоли управления в разделе "Пользователи/Учетные записи/Права доступа".

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

Имя проверяемого ресурса (файла, папки, страницы, хоста, внешнего url, и т.д.) сравнивается с указанными в этом списке масками ресурсов и для каждого совпавшего элемента списка проверяются совпадения других указанных в нем признаков со свойствами контекста пользователя — IP и MAC-адресов, проекта/группы и роли пользователя, протокола, времени и любого произвольного выражения на встроенном языке. Пустые поля не участвуют в сравнении, считаются совпавшими. Если все непустые признаки совпали, то указанные в элементе ACL-списка права добавляются в текущий набор прав.

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

Для работы через HTTP-прокси требуется наличие полномочий "чтение" и "запись" для тех URL, к которым производится обращение. По умолчанию эти права есть у всех авторизованных пользователей (если в прокси не включена авторизация, то права есть у всех, кто имеет доступ к прокси — в зависимости от настроек сетевых интерфейсов и черных списков). Если к какому-то сайту, списку сайтов или категории сайтов (по рубрикаторам) доступ требуется ограничить, то эти ресурсы следует включить в список "Пользователи/Учетные записи/Права доступа" и отключить права "чтение" и "запись".

Аутентификация

Аутентификация пользователей по имени:паролю выполняется по локальному списку учетных записей, который настраивается администратором (с возможностью саморегистрации пользователей в проектах, которые были сделаны общедоступными).
__Внимание:__ не используйте в паролях символы, котрые в http-post'ах зарезервированы для url-кодирования и разделения полей. Это [b]=[/b], [b]%[/b] и [b]&[/b].

Если при проведении аутентификации пользователя заданные имя:пароль не подходят к сохраненным реквизитам, но совпадает с именем:паролем пользователя NT ActiveDirectory, Eserv меняет локальный (в базе Eserv) пароль у соответствующего пользователя в NT-проекте и меняет его роль в этом проекте на NT-imported-pw (по умолчанию роли у импортированных пользователей в этом проекте не назначены). Если такого пользователя в NT-проекте вообще нет, то считается, что он был добавлен уже после первоначального импорта (установки E4), и этот пользователь автоматически добавляется в NT-проект с ролью NT-imported. Таким образом администратор может отслеживать использование/смену паролей через NT (вместо локальных) и синхронизацию списков учетных записей с NT. Эта автосинхронизация с ActiveDirectory затрагивает только NT-проект, никак не влияя на пользователей других проектов (т.е. смена пароля при случайном совпадении имени пользователя другого проекта с именем NT-пользователя исключена). Под "NT-проектом" имеется в виду проект, имя которого совпадает с именем компьютера — при установке Eserv/4 в него импортируются учетные записи Windows. Если при установке Eserv/4 импортировалась конфигурация Eserv/3, то имя NT-проекта может быть иным (будет совпадать с именем "источника авторизации", который в Eserv/3 был связан со способом авторизации auth_nt).

Саморегистрация пользователей

На всех сайтах, работающих под управлением Eserv/4, возможна самостоятельная регистрация пользователями учетных записей — для работы на форумах, в веб-почте, wiki, и т.д. В зависимости от настроек домена такие учетные записи создаются с различными правами по умолчанию.

Если опция "регистрация разрешена" у домена отключена, то регистрируемые учетные записи создаются, но изначально отключенны, т.е. зарегистрировавший учетную запись пользователь не может её использовать, пока администратор проекта, к которому относится домен, не активирует (включит) эту учетную запись.

Если опция "регистрация разрешена" включена, то новую учетную запись сразу можно использовать, не дожидаясь включения администратором (это полезно для общедоступных форумов, например). Если при регистрации пользователь указывал свой другой Email, то по этому Email-адресу высылается письмо для подтверждения владения этим адресом, и, пока email не подтвержден, сообщения от этой учетной записи будут создаваться в режиме премодерации.

Режим премодерации

Если пользователь, создающий страницу или отправляющий комментарий, не является зарегистрированным пользователем проекта, к которому относится сайт, или если этому пользователю проекта не назначена роль, то его сообщение будет записано со специальными флагами \Draft и Junk. Оно не будет отображаться в общем списке сообщений/комментариев/страниц, но будет доступно администраторам/модераторам проекта, которые могут отключить блокирующие флаги для публикации сообщения.

Размещение сайтов на веб-сервере Eserv

Все домены, A-записи в DNS которых указывают на веб-сервер под управлением Eserv, автоматически получают готовую к использованию систему групповой работы, включающую и управление содержимым сайта (см. следующий раздел), основой которой являются wiki и общие папки. Но можно продолжать использовать Eserv и для сайтов "старого типа" (статические страницы, различные CMS, форумы, магазины на PHP и Perl, и т.д.), если того требуют обстоятельства.

До того как дойти до встроенной wiki, acWEB будет искать файлы в таких каталогах:
{Dirs[Root]}/{L2HOST}/{HOST}/wwwroot {Dirs[Root]}/{L2HOST}/{HOST} {Dirs[Root]}/{L2HOST}/wwwroot {Dirs[Root]}/{HOST} {Dirs[Data]}/web/{HOST} {Dirs[Data]}/wwwroot wwwroot/{HOST} wwwroot

Где Dirs[Root] и Dirs[Data] — соответствующие параметры ini, HOST — имя сервера в запросе, L2HOST — домен второго уровня (т.е. если браузер обращается к forum.eserv.ru, то HOST=forum.eserv.ru, а L2HOST=eserv.ru).

Путь к Php для CGI-режима указывается в параметре ini HTTP[PhpBin]. Если используется FastCGI (режим управляется параметром HTTP[PhpInterface]), то порт FastCGI для PHP задается в параметре ini HTTP[PhpFastCgiPort].

FTP- и TFTP-серверы

FTP- и TFTP-серверы реализованы в Eserv/4 в виде внутренних модулей процесса acWEB4, т.е. запускаются вместе с веб-сервером и прокси-сервером.

FTP-сервер по умолчанию работает на порту 2121, чтобы при установке не конфликтовать с FTP-сервером Windows (порт 21). Корневым каталогом FTP-сервера является по умолчанию "wwwroot\~{User}", где {User} заменяется на имя авторизованного пользователя.

TFTP-сервер работает на стандартном UDP-порту 69 и запускается только в случае, если разрешен запуск встроенного DHCP-сервера. TFTP совместно с DHCP используется для сетевой загрузки бездисковых рабочих станций или тонких клиентов. По умолчанию DHCP предлагает таким клиентам начать загрузку с файла "pxelinux.0". Корневым каталогом TFTP-сервера является "DATA\tftproot\" (никаких файлов, включая pxelinux.0, там по умолчанию нет, т.е. сетевая загрузка тонких клиентов будет работать только в случае размещения там необходимых файлов администратором).

Совместная работа

Проекты

Проекты в Eserv — это верхний уровень логической группировки пользователей и ресурсов сервера. Собственно реализация неких проектов — это та цель, с которой участники объединяются в рабочие группы и выделяют для этих групп какие-то сетевые ресурсы (домены, сайты, почтовые ящики, файловые серверы) для координации работ по проекту.

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

Если сотрудников много, то в проекте создаются подгруппы — например в соответствии с подразделениями или отделами. В этом случае управление учетными записями, ролями и ресурсами группы можно передать руководителю отдела.

Разделение на проекты и группы удобно еще и тем, что в почтовом сервере каждый проект и группа могут быть списками рассылки (доступ по SMTP, POP3/IMAP и HTTP), группами новостей (доступ по NNTP и HTTP), общими папками (доступ по IMAP и HTTP) и чат-конференциями (доступ по IRC, XMPP/Jabber). В этом случае область распространения ограничивается участниками проекта/группы, не смешиваясь с общим потоком сообщений сервера.

Сообщения проектов и подгрупп могут отображаться в одноименных папках/каталогах в соответствии с возможностями того или иного протокола доступа и клиентской программы. К одним и тем же сообщениям может производиться одновременный доступ многих пользователей различными программами по разным сетевым протоколам. На "нижнем уровне" всё является сообщениями единого универсального формата.

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

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

Общие папки

Общие папки — это списки сообщений, доступные (одновременно) более чем одному пользователю. В Eserv они реализованы как каталоги файловой системы, содержащие индексированные БД сообщений (сами сообщения могут быть либо в той же БД, либо в виде отдельных файлов в других каталогах). При доступе с помощью IMAP-клиента каталоги доступны в виде IMAP-папок. При просмотре из браузера — как форумы. При доступе по NNTP как группы новостей. При доступе из чат-клиента как каналы. Также содержимое папок доступно для синдикации по RSS и Atom и объявляется для поисковых машин через SiteMap.

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

По умолчанию общими (по способу использования) и общедоступными (публичными) являются все папки учетных записей web@ во всех проектах. Папка INBOX доступна через веб как корневая общая папка сайта, а все остальные папки как подкаталоги веб-сервера. Создавать папки и выполнять прочие административные задачи удобнее всего по IMAP. IMAP в отличие от HTTP не предполагает анонимной работы (по умолчанию), поэтому не прошедшие авторизацию пользователи могут работать с папками из браузера (по HTTP) как с форумами, а для входа по IMAP в ту же иерархию папок им нужно либо знать пароль пользователя web@, либо автоматически авторизоваться по IP как web@, либо иметь доступ в тот же каталог со своим собственным логином (это можно обеспечить разными способами, см. раздел управления доступом).

Wiki

В новую версию веб-сервера acWEB встроена вики-система E4Wiki, совместимая по разметке страниц с WackoWiki. Уникальная возможность E4Wiki — полная и "родная" интеграция с почтовым сервером Eserv/4. Все веб страницы одновременно являются почтовыми сообщениями, доступными также по POP3/IMAP/NNTP/Webmail. И наоборот — все сообщения, в т.ч. с не-wiki разметкой могут быть представлены в виде страниц, все почтовые дискуссии могут быть представлены в виде форумов. Особенно тесная интеграция с IMAP — папки IMAP являются каталогами веб-сервера, флаги сообщений IMAP являются тэгами (метками) страниц, и т.д. То есть это просто разные интерфейсы к одной и той же базе сообщений (бывшей почтовой базе).

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

Как в большинстве wiki-систем, в E4Wiki поддерживается управление версиями страниц. Эта функция важна при разработке больших документов для контроля изменений, а также для совместной работы с документами и для противодействия wiki-вандалам (лёгкая отмена изменений) на сайтах со свободным редактированием (таких как Wikipedia). Управление версиями страниц также доступно и через IMAP.

Внешний вид сайта под управлением E4Wiki свободно настраивается: css-cтили, шаблоны раскладки страниц, описания проектов, логотипы — все может меняться в зависимости от текущего домена, проекта, авторизованного пользователя, типов сообщений, позволяя на одном сервере и на одной копии E4Wiki размещать любое число сайтов разного назначения.

E4Wiki написана на SP-Forth'е (как и все версии Eserv с 1996 года), поэтому быстрее работает и удобнее расширяется, чем wiki, написанные на PHP. В базовом комплекте Eserv/4 вся вики-система находится внутри acWEB4.exe , не требуя для начала работы никаких дополнительных файлов или дополнительных программ.

Для создания новой страницы достаточно набрать её желаемый адрес в виде http://имя.вашего.сайта/имя_новой_страницы. Если такой страницы нет, то сервер предложит её создать.

На вновь созданной странице будут доступны кнопки для её изменения или удаления

page delete
При удалении страницы она сразу не удаляется, а только помечается к удалению — также, как в IMAP. Администратор или вебмастер имеет возможность отменить удаление или выполнить реальное удаление всех помеченных к удалению страниц (они видны в IMAP-интерфейсе к той же папке пользователя web@).

page edit
При изменении страницы создается новая её версия, которая становится текущей. Все предыдущие версии не удаляются, поэтому при удалении страницы с неправильными правками автоматически становится активной предыдущая её версия.

Если пользователь создает новую страницу или новую версию старой страницы, не являясь авторизованным участником проекта, к которому относится сайт, то страница создается с флагом черновик/спам. Она не видна посетителям сайта, но видна (с соответствующими флагами) администратору и вебмастеру сайта — на сайте и по IMAP. Если администратор считает, что страница соответствует тематике сайта и должна быть опубликована, он может снять пометку черновика, и страница/версия станет автоматически доступна на сайте.

Форумы

Форумы в Eserv — это веб-интерфейс к общим папкам. Если в ящике web@ общедоступного проекта созданы (по IMAP, например) папки, то они становятся доступны по URL http://сайт.проекта/папка/, и сообщения этой папки показываются в виде тем форума. Название темы совпадает с темой письма (если смотреть форум по IMAP). Ответы в теме форума являются сообщениями того же типа, как первое сообщение темы, но содержат ссылку на первое сообщение темы. При доступе к форуму по почтовым протоколам эта ссылка попадает в поле References, поэтому в почтовых и новостных клиентах обсуждения форума также можно просматривать именно как нити обсуждений, если почтовый клиент поддерживает эту возможность (Thunderbird, Outlook и многие другие — поддерживают).

Для пользователя работа с форумом через браузер подобна работе с другими веб-форумами. Возможности форматирования сообщений также близки, по разметке форум Eserv совместим с PhpBB (разметка BBcode). Но есть несколько возможностей, которых в других форумах нет: каждое сообщение (как первое сообщение темы, так и ответы) является одновременно и вики-страницей, т.е. может использоваться и wiki-разметка, и автоматические wiki-ссылки, и wiki-макросы, и управление версиями. Кроме того каждое сообщение форума является и собственно почтовым сообщением, проходящим обработку в встроенном почтовом сервере Eserv, т.е. может маршрутизироваться, дополнительно обрабатываться, архивироваться, синхронизироваться. Обычные почтовые сообщения, приходящие в ящик web@ сайта или перемещенные (по IMAP) из других ящиков в общие папки становятся сообщениями форума, как если бы создавались прямо на форуме через веб-интерфейс.

Прямое соответствие веб- в почтового интерфейса к общим папкам радикально упрощает и ускоряет и задачу администрирования форума. Новые сообщения форума сразу видны всем, кто подключен по IMAP к соответствующим общим папкам (без задержки и необходимости нажимать "проверить почту", т.к. в IMAP есть механизм "push-извещений" в режиме idle). Все действия по изменению флагов сообщений, которые производятся IMAP-клиентом при чтении/удалении/перемещении/пометках сообщений автоматически отражаются и в форуме — меняют внешний вид в зависимости от флагов или удаляются или перемещаются в другие форумы при удалении или перемещении в IMAP-клиенте.

При пометке сообщения звездочкой (в Thunderbird) или флажком (в Outlook, TheBat и др.) это сообщение получает флаг "\Flagged" в IMAP, а в веб-интерфейсе форума отображается как "прилепленное" или как "анонс" — ссылка на эту тему помещается в левой колонке "Новости".

Чат-каналы (IRC)

IRC-сервер по умолчанию работает на порту 6668. Соответственно подключаться к своему IRC-серверу вы можете любым IRC-клиентом по ссылке irc://ваш_eserv:6668/. Набор каналов сервера соответствует списку публичных проектов (с флагом "общедоступный=да"). Поддерживается авторизация по спискам пользователей Eserv. При подключении с административным логином доступен дополнительный канал с живой трансляцией логов Eserv.

На нашем сервере проверить работу Eserv IRC можно по этому адресу: irc://www.eserv.ru:7373/

Общие календари и задачи

Eserv/4 поддерживает возможность публикации календарей (событий), задач, заметок по протоколу WebDAV / CalDAV. Сами элементы при этом имеют формат iCalendar (расширение .ics). Для работы с такими календарями можно использовать программы Mozilla SunBird, Lightning (расширение для ThunderBird), WindowsCalendar (встроен в Windows Vista), Windows Live Mail, Outlook и др.

Для публикации своего календаря на веб-сервере Eserv пользователь указывает путь к своей папке (http://ваш.сайт/~user/) — права доступа на запись по WebDAV там настроены по умолчанию. Другие пользователи проекта могут подписываться на календари интересующих их пользователей. Календарная программа (из списка выше) объединяет события всех календарей, на которые подписан пользователь, в общем списке.

Общая адресная книга

Если в Eserv/4 разрешен запуск встроенного LDAP-сервера, то пользователям становится доступной общая адресная книга. Примеры настройки популярных почтовых клиентов для работы с общей адресной книгой приведены на странице http://www.eserv.ru/EservLDAP .

Веб-почта

У каждого зарегистрированного в Eserv пользователя есть собственная веб-страница http://ваш.домен/~логин/ (например, http://www.eserv.ru/~ac/ или http://forum.eserv.ru/~ваш_логин_на_нашем_форуме/ ), на которой он может читать свою почту, отправлять сообщения, работать с общими папками, вести свой блог. Доступ к почте через эту страницу имеет только владелец ящика, а читать блог пользователя могут все, кому доступен сайт на этом домене.

Если почтовый домен и имя хоста сайта не совпадают, то Eserv будет сопоставлять по домену второго уровня. Если и такого ящика нет (почтовый домен может вообще не иметь A-записи в DNS, либо получать почту с ящиков провайдера по PopPull), то можно явно указывать Email в URL, например: http://ваш.сайт/~логин@почтовый.домен/

Изменение внешнего вида сайтов

Стили страниц

Самый простой способ изменения оформления страниц — редактирование файла CSS-стилей. По умолчанию для всех сайтов на базе Eserv используется встроенный набор стилей http://ваш.сайт/e4a/default.css. Вы можете, скопировать этот файл в каталог DATA\domains\ваш.сайт\e4a\, изменить его, как вам необходимо, и Eserv будет использовать его вместо встроенных стилей.

Раскладка страниц (шаблоны)

Если редактирования стилей недостаточно, можно изменить всю структуру страниц сайта. HTML-шаблон, используемый по умолчанию — http://ваш.сайт/e4a/PageTemplate.e, его можно заменить для любого домена также, как список стилей default.css (описано выше в разделе "Стили страниц").

Прокси-сервер Eproxy

Прокси-серверы реализованы в Eproxy/4 в виде внутренних модулей процесса acWEB4, т.е. запускаются вместе с веб-сервером.

Назначение прокси-сервера

Прокси позволяет пользователям из локальной сети работать с ресурсами глобальной сети (интернета), совместно используя общее подключение к интернету. При этом прокси-сервер может решать все задачи по обеспечению безопасности работы в интернете и более эффективного использования Сети: ограничивать доступ к нежелательным интернет-ресурсам в соответствии с заданной администратором политикой, собирать статистику использования интернета пользователями, экономить трафик за счет кэширования, и т.д. Подробно о назначении и видах прокси-серверов можно прочесть в нашей статье Что такое прокси-сервер, и зачем он нужен.

Возможности прокси-сервера Eproxy

Eproxy представляет собой комплект специализированных прокси-серверов для всех распространенных сетевых протоколов, обеспечивая работу через прокси любых прикладных программ и сетевых служб.
  • HTTP-, HTTPS- и FTP-прокси — для браузеров, а также для программ обновления и любых иных программ, получающих данных с веб-серверов или с ftp-серверов через http.
  • FTP-gate — для специализированных FTP-клиентов (FileZilla, CuteFTP, FAR и др.) — в этом режиме обеспечивается не только получение файлов с серверов, но и передача на сервер.
  • Socks4 и Socks5-прокси — универсальный прокси для любых TCP- и UDP-протоколов. Обычно через Socks работают чат-клиенты (например, ICQ, MSN Messenger), VoIP-программы (например, Skype), BitTorrent-клиенты (например, uTorrent).
  • Отображение портов (tcpmap и udpmap) — создание локально-доступных "копий" внешних TCP- или UDP- серверов для случая, если старая клиентская программа не может работать через прокси. Также с помощью этого вида прокси можно осуществить публикацию локальных серверов для доступа к ним из интернета (т.е. прокси "в обратную сторону"), если эти серверы расположены не на шлюзовом компьютере, а внутри ЛС или DMZ.
  • DNS-прокси — DNS-прокси можно реализовать с помощью UDPMAP (отображение провайдерского DNS-сервера на локальный 53й порт), но удобнее работать со специализированным DNS-сервером из комплекта Eserv/Eproxy, который для локальных клиентов работает в режиме кэширующего DNS-прокси.
Eproxy ведет статистику работы пользователей через прокси. Это позволяет получать обобщающие и детальные отчеты расхода трафика пользователями в разрезе по протоколам, IP или конкретным пользователям (если используется режим работы с аутентификацией пользователей или IP-авторизация). Кроме этого та же статистика, собираемая в реальном времени, дает возможность назначать пользователям тарифные планы, в которых задаются квоты на суммарный трафик или ограничение пропускной способности (скорости).

Для индивидуального учета прав доступа и для суммирования трафика по пользователям могут использоваться несколько способов аутентификации пользователя на прокси-сервере:
  • Автоматическая аутентификация по IP или MAC-адресу клиента.
  • Прозрачная NTLM-аутентификация по учетным записям ActiveDirectory или локальной NT SAM.
  • Явная basic-аутентификация с использованием имени и пароля.
Рубрикатор сайтов и списки прав доступа (ACL) служат для ограничения доступа ко внешним ресурсам по заданным правилам.

Интегрируемые антивирусы (KAV и Dr.WEB) обеспечивают дополнительный уровень безопасности, фильтруя проходящий через прокси трафик.

Встроенные DHCP-, DNS-, и UPnP-серверы обеспечивают автоматическую настройку сетевых параметров в компьютерах локальной сети (независимо от используемой ОС) и автоматическую настройку клиентских программ на работу через прокси-сервер.

Автоматическая настройка локальной сети

Встроенный DHCP-сервер

При использовании встроенного в Eproxy DHCP-сервера (вместо ручной настройки IP или вместо DHCP в роутерах) компьютеры в локальной сети автоматически получают локальные IP-адреса в диапазоне 192.168/16, а в качестве DNS-сервера им указывается IP-адрес машины с Eserv (может использоваться как встроенный в Eserv DNS-сервер, так и любой другой DNS-сервер, установленный на том же компьютере). При использовании встроенного DNS-сервера автонастройка ЛС упрощается, т.к. все необходимые DNS-записи Eserv добавляет сам. Также DHCP-сервер указывает компьютерам в ЛС доменное имя сети и URL автоматической настройки прокси-сервера (размещение PAC-файла wpad.dat) на встроенном в Eserv веб-сервере.

WPAD — автоматическая настройка клиентского ПО на прокси

При использовании встроенного в Eserv DHCP-сервера сетевые компоненты Windows, браузеры Internet Explorer, Google Chrome и Safari в ЛС автоматически настраиваются на использование прокси-сервера Eproxy через 252ю опцию DHCP — WPAD (Web Proxy Auto-Discovery), в которой указывается URL PAC-файла wpad.dat на встроенном веб-сервере. Ручная настройка этой опции не требуется, достаточно включить использование встроенного DHCP-сервера в консоли управления Eserv на сервере и выбрать "автоматическое назначение IP" в свойствах сетевых адаптеров на компьютерах в ЛС (обычно они так настроены по умолчанию, поэтому тоже ничего перенастраивать не потребуется).

Браузеры Firefox, Opera, а также почтовый клиент Mozilla Thunderbird вместо DHCP для поиска прокси-сервера используют возможности DNS-сервера — запрашивают хост "wpad.{локальный_домен}" и в случае успеха пытаются получить файл "wpad.dat" на этом хосте. При использовании встроенного в Eserv DNS-сервера администратору не требуется настраивать wpad-хосты в нем — сервер "догадается" сам, что ответить клиенту, чтобы он гарантированно находил локальный веб-сервер с файлом wpad.dat. Файл wpad.dat на встроенном веб-сервере создавать не требуется — он уже есть, и содержит скрипт настройки для любых браузеров и для почтового клиента Thunderbird (другие почтовые клиенты не поддерживают wpad).

Аутентификация пользователей прокси

По умолчанию прокси настраивается таким образом, чтобы пользователи с локальными IP могли работать через прокси без авторизации. Этот режим самый удобный для пользователей, т.к. не требует ни ввода паролей, ни дополнительной настройки программ. Если IP-адреса в ЛС назначаются встроенным в Eserv DHCP-сервером, или если IP назначаются статически, то определить (в статистике и в ACL) конкретного пользователя можно по IP-адресу его компьютера, т.к. даже в случае DHCP компьютеру всегда назначается один и тот же IP-адрес в диапазоне 192.168/16.

Но такая настройка может быть неудобна для администратора локальной сети по нескольким причинам. Во-первых, работать с числами вместо имён пользователей неудобно (также, как неудобно работать с IP-адресами сайтов вместо их DNS-имён). Во-вторых, с каждым IP-адресом может быть связано более одного пользователя — если это компьютер общего пользования или терминальный сервер — и статистика получится не по пользователям, а по компьютерам. Поэтому обычно удобнее настроить тот или иной способ идентификации пользователя.

Для личных компьютеров (включая смартфоны, подключающиеся к ЛС через Wi-Fi) рекомендуется использовать "IP-авторизацию" — автоматическое назначение имени пользователя по IP-адресу или MAC-адресу его компьютера или мобильного устройства. Для этого надо создать в Eproxy учетную запись этого пользователя, и в свойствах учетной записи заполнить поле "Привязка к IP", указав там IP, который назначается его компьютеру. При подключении пользователя с таким IP к любому прокси или серверу комплекта Eserv/Eproxy будет автоматически назначаться имя пользователя для этого соединения, и на это имя будет записываться статистика, это имя будет участвовать в выборе правил ACL и тарифных планов.

Для совместно используемых компьютеров для различения пользователей можно использовать прозрачную NTLM-аутентификацию или явную (по имени:паролю) Basic-аутентификацию, или их комбинацию. В случае NTLM браузер или сетевая служба передает в прокси информацию об учетной записи NT-пользователя, от имени которого работает эта программа (в каждом соединении клиентской программы и прокси используется серия криптографических запросов-ответов для аутентификации без передачи пароля по сети). Браузеры Internet Explorer, Google Chrome и Apple Safari (при работе под Windows) выполняют NTLM-аутентификацию прозрачно, не спрашивая у пользователя его реквизитов, а браузеры Firefox и Opera, а также браузеры на других ОС, могут вывести окно с запросом имени:пароля, в котором пользователь должен указать его имя:пароль на сервере ActiveDirectory в ЛС, либо его имя:пароль на сервере с Eproxy. При Basic-авторизации имя и пароль спрашиваются в любом случае (однократно; потом браузер запоминает эти данные и самостоятельно отправляет на прокси всякий раз, когда тот требует аутентификацию, выдавая HTTP-код 407). Прокси сначала пытается авторизоваться по собственному списку пользователей, а при неудаче — в ActiveDirectory или локальном NT SAM, автоматически добавляя NT-пользователя в собственный список, если AD/NT-аутентификация была успешной. Таким образом список пользователей синхронизируется с AD, а последующая авторизация будет выполняться через этот локальный кэш — намного быстрее, чем напрямую в AD.

Права доступа к сайтам, фильтрация сайтов

Eproxy позволяет ограничить доступ пользователей через прокси к внешним хостам и веб-сайтам на основе любых признаков сайтов и пользователей — имен хостов, протокола, URL веб-ресурсов, IP/MAC или роли/проекта/группы пользователя, текущего времени, рубрики сайта, а также произвольных вычисляемых правил на встроенном языке. При обращениях к внешним ресурсам Eproxy анализирует список "Пользователи/Права доступа" и суммирует права доступа пользователя по всем подошедшим под текущие признаки/условия записям. Если запрашиваемый ресурс есть в списке, а вычисленных прав доступа у пользователя недостаточно, то доступ блокируется. Способ блокировки зависит от назначенных прав — либо вместо указанного ресурса выдается локальный "заменитель" (пустая прозрачная картинка вместо изображений (удобно при блокировке рекламы), страница "Доступ заблокирован по такой-то причине" вместо страниц (с возможностью заказать администратору разблокировку)), либо пользователю предлагается повысить полномочия — браузер в этом случае выведет окно с запросом имени и пароля, где пользователь может [пере]авторизоваться.

Подробнее о настройке прав доступа и назначении раличных полей и флагов доступа можно прочесть в контекстной подсказке в консоли управления Eproxy в разделе "Пользователи/Права доступа".

Рубрикатор сайтов в Eproxy

Если в настройке прокси включена опция "Использовать рубрикатор", то перед вычислением прав доступа к ресурсам Eproxy выясняет "рубрику" (или "категорию", "тематику") сайта, обращаясь к онлайновым службам (миллионы сайтов и тысячи рубрик — российских и зарубежных). Название рубрики можно использовать при анализе прав доступа к сайту, как описано в предыдущем разделе. Результаты поиска кэшируются, поэтому использование рубрикатора практически не замедляет работу пользователей.

Пример настройки прав доступа с анализом рубрик см. на странице
http://www.eserv.ru/EservRubricator

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

Еще один специальный случай — отсутствие доменного имени у сайта, обращение к нему по IP. В этом случае Eproxy ставит рубрику "ip_addr", которую администратор может запретить: IP-адреса вместо имен хостов часто используются вредоносными сайтами.

Антивирусная проверка трафика

При использовании KAV или Dr.WEB Eproxy может на лету проверять получаемые пользователем страницы и файлы этими антивирусами. При обнаружении вредоносного кода Eproxy прерывает передачу этого файла, выдавая клиенту имя вируса вместо исходного фрагмента.

Тарифные планы, квоты, шейпинг

По умолчанию никаких ограничений по трафику на пользователей не накладывается. Если в разделе "Прокси/Тарифные планы" пользователю назначается тарифный план (по пользовательскому IP, логину или роли), то применяются указанные в этом плане ограничения по скорости и/или суммарному трафику.

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

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

В поле "Исключая хосты" можно указать через запятую список хостов (имён серверов), при работе с которыми ограничения данного тарифного плана не применяются.

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

Настройка пользовательских программ для работы с Eserv / Eproxy

Настройка почтовых программ для работы с Eserv

В примерах предполагается, что локальное сетевое имя компьютера с установленным Eserv — "RAINBOW", логин пользователя "postmaster" (соответственно email пользователя postmaster@основной.домен; если у вас несколько доменов, то в качестве логина используйте полный email). Настройку общей адресной книги см. на отдельной странице EservLDAP.

Настройка Почты Windows (Windows Mail 6.0)

Меню "Сервис / Учетные записи"
windowsmail eserv

Настройка Thunderbird 3.1

Меню "Инструменты / Параметры учетной записи / Параметры сервера" (см. также страницу ThunderBird).
thunderbird eserv imap
thunderbird eserv smtp

Настройка The Bat! 4.2

thebat eserv

Настройка Outlook 2010

См. страницу Outlook.

Диагностика и решение проблем

Работает на Eserv/7.0.beta1/Linux/arm64 (Dec 25 2023)