Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  подсчёт трафика
  программы
  почтовые системы
  FreeBSD Mail Howto
  exim & dovecot
  exim & courier-imap
  squirrelmail
  exim + saslauthd + courier-imap
  postfix -> exim
  sendmail -> exim
  imapsync
  Postfix + LDAP
  maildrop & postfix
  DSPAM
  Exim + LDAP
  ISPmanager
  Backup MX
  exim + exchange
  exim + dovecot + win2003 AD
  RoundCube
  qmail-ldap + AD
  spamooborona
  exim&dovecot + fetchmail + SSL
  Postfix + DBMail
  Mailgraph
  smfsav
  Exim+PgSQL
  Postfix + Dovecot + Clamav + SpamAssasin + LDAP vs MYSQL
  Simplemail Admin
  MTA qmail full install
  OpenLDAP адресная книга
  POSTFIX Статистики
  Backup MX (exim)
  Exim + dovecot + PgSQL + web
  Exim+dovecot2+dspam
  Возможности Dovecot 2
  Dovecot2 configfiles RUS
  Почтовый сервер по шагам ч.1
  Почтовый сервер по шагам ч.2
  Почтовый сервер по шагам ч.3
  Шелезяки
  Мелочи
  Файловая система
  WWW
  Security
  system
  Games Servers
  X11
  Programming
Очумелые Ручки
OpenBSD
Cisco


www.lissyara.su —> статьи —> FreeBSD —> почтовые системы —> exim&dovecot + fetchmail + SSL

Установка почтового сервера Exim & Dovecot + Postfixadmin & Roundcube + Fetchmail & smtp_relay + SSL шифрование

Автор: Cancer.


Понадобилось настроить почтовый сервер. Вот первым делом спросил на форуме, какой из MTA лучший, ответ однозначный дали Exim. Конфиги мои по большей части взяты со статей на http://www.lissyara.su/.
Мне поставили такую задачу, у нас был куплен хост на masterhost.ru с почтовым доменом @domain-ak.ru . Далее мне нужно было поставить MTA Exim в локалке и сделать так, чтобы внутренняя почта ходила внутри сети, а внешняя почта приходила сначала на masterhost, а потом masterhost ее редиректил на внутренний сервер. Сделано это было для того чтобы, оставить оплаченную защиту от спама и вирусов, да и немного съэкономить траффик. Ну если наш канал умрет, то те пользователи, ящики которых прописаны только на внешнем почтовом сервере (филиалы и т.п.) отсылали почту друг другу и во внешний мир не через наш канал.

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

1.Отправка почты exim'ом на masterhost.ru для домена "@domain-ak.ru" если пользователя не существует в локальном домене "@domain-ak.ru".

2.Отправка всей не локальной почты т.е на удаленные сервера кроме домена
"@domain-ak.ru", отправка производиться через открытый релей провайдера "smtp.donpac.ru"

3.Если лег сервер провайдера donpac.ru ,то EXIM отправляет напрямую от самого себя.

4.Прием почты с мастерхоста. Все письма на адреса *@domain-ak.ru  мастерхост форвардит на  *@zern.domain-ak.ru. (создаем пересылку, подписываем адрес)

5.Подмена адреса получателя с @zern.domain-ak.ru на @domain-ak.ru. алисы типа pupkin@zern.domain-ak.ru -> pupkin@domain-ak.ru мы прописывать не будем.

6.И ставим Roundcube webmail лучше него я ничего пока еще не видел )(GPL)

7.Ну и прикрутим ко всему этому fetchmail для того что бы тянул письма с удаленных почтовых серваков на локальный.

Да и чуть не забыл, что MTA находиться в DMZ с одной сетевой картой

Сразу пишу статья почти ничем отличается от http://www.lissyara.su/?id=1173 , токо задачи чуть чуть разные, да и написал думаю чуть более полнее, ну конечно кроме конфигов exim и dovecot, их Леха хорошо перевел, так что любому понятно будет.

Перед тем как начать установку обновите порты


Ставим Apache 1.3

/usr/home/cancer/> cd /usr/ports/www/apache13
/usr/ports/www/apache13/> make && make install && make clean

Добавим строку в /etc/rc.conf для автозапуска apache при перезагрузке сервера
/usr/ports/www/apache13/> echo 'apache_enable="YES"' >> /etc/rc.conf

Запускаем сам apache
/usr/> /usr/local/etc/rc.d/apache start

Смотрим запустился ли веб сервер apache
ps axw | grep http

6283 ?? Ss 0:00,05 /usr/local/sbin/httpd
6284 ?? I 0:00,00 /usr/local/sbin/httpd
6285 ?? I 0:00,00 /usr/local/sbin/httpd
6286 ?? I 0:00,00 /usr/local/sbin/httpd
6287 ?? I 0:00,00 /usr/local/sbin/httpd
6288 ?? I 0:00,00 /usr/local/sbin/httpd
6380 p0 R+ 0:00,00 grep http

   



Ставим СУБД MySQL 5.1

/usr/ports/> cd /usr/ports/databases/mysql51-server/
/usr/ports/databases/mysql51-server/> make && make install && make clean

Добавляем в /etc/rc.conf строку для запуска mysql
//> echo 'mysql_enable="YES"' >> /etc/rc.conf

И запускаем сам сервер
//> /usr/local/etc/rc.d/mysql-server start

Проверяем работу Mysql, должно быть что то типа этого.
//> ps axw | grep mysql

6210 p0 RV 0:00,00 grep mysql (csh)
6188 p1- S 0:00,02 /bin/sh /usr/local/bin/mysqld_safe
--defaults-extra-file=/var/db/mysql/my.cnf -- user=mysql --datadir=/var
6206 p1- S 0:00,94 /usr/local/libexec/mysqld
--defaults-extra-file=/var/db/mysql/my.cnf --basedir=/usr/local --datadir=/var/

Далее, задаем пароль для суперпользователя root
//> mysqladmin -u root password 'your_password'
//> mysqladmin -u root -h hostname password 'your_password'

Создаем таблицы в БД:
//> mysql -u root -p

############# БД: `exim`
 
  
USE mysql;
INSERT INTO `user` (`Host`, `User`, `Password`)
VALUES ('localhost','exim',password('exim'));
INSERT INTO `db` (`Host`, `Db`, `User`, `Select_priv`)
VALUES ('localhost','exim','exim','Y');
FLUSH PRIVILEGES;
GRANT USAGE ON exim.* TO exim@localhost;
GRANT SELECT, INSERT, DELETE, UPDATE ON exim.* TO exim@localhost;
CREATE DATABASE `exim`;
USE `exim`;



 
#############Структура таблицы `admin`
 

CREATE TABLE `admin` (
  `username` varchar(255) NOT NULL default '',
  `password` varchar(255) NOT NULL default '',
  `created` datetime NOT NULL default '0000-00-00 00:00:00',
  `modified` datetime NOT NULL default '0000-00-00 00:00:00',
  `active` tinyint(1) NOT NULL default '1',
  PRIMARY KEY  (`username`),
  KEY `username` (`username`)
) TYPE=MyISAM COMMENT='Exim and dovecot Admin - Virtual Admins';



 
#############Структура таблицы `alias`


CREATE TABLE `alias` (
  `address` varchar(255) NOT NULL default '',
  `goto` text NOT NULL,
  `domain` varchar(255) NOT NULL default '',
  `created` datetime NOT NULL default '0000-00-00 00:00:00',
  `modified` datetime NOT NULL default '0000-00-00 00:00:00',
  `active` tinyint(1) NOT NULL default '1',
  PRIMARY KEY  (`address`),
  KEY `address` (`address`)
) TYPE=MyISAM COMMENT='Exim and dovecot Admin - Virtual Aliases';




#############Структура таблицы `domain`


CREATE TABLE `domain` (
  `domain` varchar(255) NOT NULL default '',
  `description` varchar(255) NOT NULL default '',
  `aliases` int(10) NOT NULL default '0',
  `mailboxes` int(10) NOT NULL default '0',
  `maxquota` int(10) NOT NULL default '0',
  `transport` varchar(255) default NULL,
  `backupmx` tinyint(1) NOT NULL default '0',
  `created` datetime NOT NULL default '0000-00-00 00:00:00',
  `modified` datetime NOT NULL default '0000-00-00 00:00:00',
  `active` tinyint(1) NOT NULL default '1',
  PRIMARY KEY  (`domain`),
  KEY `domain` (`domain`)
) TYPE=MyISAM COMMENT='Exim and dovecot Admin - Virtual Domains';



 
#############Структура таблицы `domain_admins`
 

CREATE TABLE `domain_admins` (
  `username` varchar(255) NOT NULL default '',
  `domain` varchar(255) NOT NULL default '',
  `created` datetime NOT NULL default '0000-00-00 00:00:00',
  `active` tinyint(1) NOT NULL default '1',
  KEY `username` (`username`)
) TYPE=MyISAM COMMENT='Exim and dovecot Admin - Domain Admins';



 
#############Структура таблицы `log`
 

CREATE TABLE `log` (
  `timestamp` datetime NOT NULL default '0000-00-00 00:00:00',
  `username` varchar(255) NOT NULL default '',
  `domain` varchar(255) NOT NULL default '',
  `action` varchar(255) NOT NULL default '',
  `data` varchar(255) NOT NULL default '',
  KEY `timestamp` (`timestamp`)
) TYPE=MyISAM COMMENT='Exim and dovecot Admin - Log';




#############Структура таблицы `mailbox`
 

CREATE TABLE `mailbox` (
  `username` varchar(255) NOT NULL default '',
  `password` varchar(255) NOT NULL default '',
  `name` varchar(255) NOT NULL default '',
  `maildir` varchar(255) NOT NULL default '',
  `quota` int(10) NOT NULL default '0',
  `domain` varchar(255) NOT NULL default '',
  `created` datetime NOT NULL default '0000-00-00 00:00:00',
  `modified` datetime NOT NULL default '0000-00-00 00:00:00',
  `active` tinyint(1) NOT NULL default '1',
  PRIMARY KEY  (`username`),
  KEY `username` (`username`)
) TYPE=MyISAM COMMENT='Exim and dovecot Admin - Virtual Mailboxes';



 
#############Структура таблицы `vacation`



CREATE TABLE `vacation` (
  `email` varchar(255) NOT NULL default '',
  `subject` varchar(255) NOT NULL default '',
  `body` text NOT NULL,
  `cache` text NOT NULL,
  `domain` varchar(255) NOT NULL default '',
  `created` datetime NOT NULL default '0000-00-00 00:00:00',
  `active` tinyint(1) NOT NULL default '1',
  PRIMARY KEY  (`email`),
  KEY `email` (`email`)
) TYPE=MyISAM COMMENT='Exim and dovecot Admin - Virtual Vacation';


# И на последок дадим пользователю exim права бога :)

GRANT ALL PRIVILEGES ON *.* TO exim@localhost IDENTIFIED BY \
'exim' WITH GRANT OPTION;




Ставим PHP 5

/usr/> cd /usr/ports/lang/php5
/usr/ports/lang/php5/> make config

     +--------------------------------------------------------------------+
     |                   Options for php5 5.2.8                           |
     | +----------------------------------------------------------------+ |
     | |  [X] CLI        Build CLI version                              | |
     | |  [X] CGI        Build CGI version                              | |
     | |  [X] APACHE     Build Apache module                            | |
     | |  [ ] DEBUG      Enable debug                                   | |
     | |  [X] SUHOSIN    Enable Suhosin protection system (not for jails) |
     | |  [X] MULTIBYTE  Enable zend multibyte support                  | |
     | |  [ ] IPV6       Enable ipv6 support                            | |
     | |  [ ] MAILHEAD   Enable mail header patch                       | |
     | |  [ ] REDIRECT   Enable force-cgi-redirect support (CGI only)   | |
     | |  [ ] DISCARD    Enable discard-path support (CGI only)         | |
     | |  [ ] FASTCGI    Enable fastcgi support (CGI only)              | |
     | |  [ ] PATHINFO   Enable path-info-check support (CGI only)      | |
     +-+------v(+)------------------------------------------------------+-+
     |                       [  OK  ]       Cancel                        |
     +--------------------------------------------------------------------+

Устанавливаем
/usr/ports/lang/php5/> make && make install && make clean

Добавляем следующие строки в /usr/local/etc/apache/httpd.conf #для активации php
//> ee /usr/local/etc/apache/httpd.conf

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

Далее создаем тестовую страничку
//> ee /usr/local/www/data/index.php        #вот с таким содержанием

<?
    phpinfo();
?>

Перезапускаем веб сервер командой
//> /usr/local/etc/rc.d/apache restart

Проверяем работоспособность php заходим с любого
интернет браузера http://ip_tachki/index.php




Ставим PHP5_EXTENSIONS

//> cd /usr/ports/lang/php5-extensions
/usr/ports/lang/php5-extensions/> make config

     +--------------------------------------------------------------------+
     |                   Options for php5-extensions 1.2                  |
     | +----------------------------------------------------------------+ |
     | |  [ ] BCMATH      bc style precision math functions             | |
     | |  [X] BZ2         bzip2 library support                         | |
     | |  [ ] CALENDAR    calendar conversion support                   | |
     | |  [ ] CTYPE       ctype functions                               | |
     | |  [ ] CURL        CURL support                                  | |
     | |  [ ] DBA         dba support                                   | |
     | |  [ ] DBASE       dBase library support                         | |
     | |  [ ] DOM         DOM support                                   | |
     | |  [ ] EXIF        EXIF support                                  | |
     | |  [ ] FILEINFO    fileinfo support                              | |
     | |  [ ] FILTER      input filter support                          | |
     | |  [ ] FRIBIDI     FriBidi support                               | |
     | |  [ ] FTP         FTP support                                   | |
     | |  [X] GD          GD library support                            | |
     | |  [X] GETTEXT     gettext library support                       | |
     | |  [ ] GMP         GNU MP support                                | |
     | |  [ ] HASH        HASH Message Digest Framework                 | |
     | |  [X] ICONV       iconv support                                 | |
     | |  [X] IMAP        IMAP support                                  | |
     | |  [ ] INTERBASE   Interbase 6 database support (Firebird)       | |
     | |  [ ] JSON        JavaScript Object Serialization support       | |
     | |  [ ] LDAP        OpenLDAP support                              | |
     | |  [X] MBSTRING    multibyte string support                      | |
     | |  [ ] MCRYPT      Encryption support                            | |
     | |  [ ] MHASH       Crypto-hashing support                        | |
     | |  [ ] MING        ming shockwave flash support                  | |
     | |  [ ] MSSQL       MS-SQL database support                       | |
     | |  [X] MYSQL       MySQL database support                        | |
     | |  [X] MYSQLI      MySQLi database support                       | |
     | |  [ ] NCURSES     ncurses support (CLI only)                    | |
     | |  [ ] ODBC        unixODBC support                              | |
     | |  [ ] OPENSSL     OpenSSL support                               | |
     | |  [ ] PCNTL       pcntl support (CLI only)                      | |
     | |  [ ] PDF         PDFlib support (implies GD)                   | |
     | |  [ ] PDO         PHP Data Objects Interface (PDO)              | |
     | |  [ ] PDO_SQLITE  PDO sqlite driver                             | |
     | |  [ ] PGSQL       PostgreSQL database support                   | |
     | |  [ ] POSIX       POSIX-like functions                          | |
     | |  [ ] PSPELL      pspell support                                | |
     | |  [ ] READLINE    readline support (CLI only)                   | |
     | |  [ ] RECODE      recode support                                | |
     | |  [X] SESSION     session support                               | |
     | |  [ ] SHMOP       shmop support                                 | |
     | |  [X] SIMPLEXML   simplexml support                             | |
     | |  [ ] SNMP        SNMP support                                  | |
     | |  [ ] SOAP        SOAP support                                  | |
     | |  [ ] SOCKETS     sockets support                               | |
     | |  [ ] SPL         Standard PHP Library                          | |
     | |  [ ] SQLITE      sqlite support                                | |
     | |  [ ] SYBASE_CT   Sybase database support                       | |
     | |  [ ] SYSVMSG     System V message support                      | |
     | |  [ ] SYSVSEM     System V semaphore support                    | |
     | |  [ ] SYSVSHM     System V shared memory support                | |
     | |  [ ] TIDY        TIDY support                                  | |
     | |  [X] TOKENIZER   tokenizer support                             | |
     | |  [ ] WDDX        WDDX support (implies XML)                    | |
     | |  [X] XML         XML support                                   | |
     | |  [X] XMLREADER   XMLReader support                             | |
     | |  [ ] XMLRPC      XMLRPC-EPI support                            | |
     | |  [X] XMLWRITER   XMLWriter support                             | |
     | |  [ ] XSL         XSL support (Implies DOM)                     | |
     | |  [ ] YAZ         YAZ support (ANSI/NISO Z39.50)                | |
     | |  [ ] ZIP         ZIP support                                   | |
     | |  [X] ZLIB        ZLIB support                                  | |
     +-+------v(+)------------------------------------------------------+-+
     |                       [  OK  ]       Cancel                        |
     +--------------------------------------------------------------------+

Устанавливаем
/usr/ports/lang/php5-extensions/> make && make install && make clean

//> cp /usr/local/etc/php.ini-recommended /usr/local/etc/php.ini

И раскомментируем строку
session.save_path = "/tmp"

Перезагрузим apache
//> /usr/local/etc/rc.d/apache restart

   


   


Ставим Postfixadmin 2.2.1.1

//> cd /usr/ports/mail/postfixadmin/
/usr/ports/mail/postfixadmin/> make config

     +--------------------------------------------------------------------+
     |                   Options for postfixadmin 2.2.1.1                 |
     | +----------------------------------------------------------------+ |
     | |  [X] MYSQL   MySQL back-end (use mysql PHP extension)          | |
     | |  [X] MYSQLI  MySQL 4.1+ back-end (use mysqli PHP extension)    | |
     | |  [ ] PGSQL   PostgreSQL back-end (use pgsql PHP extension)     | |
     | |                                                                | |
     +-+------v(+)------------------------------------------------------+-+
     |                       [  OK  ]       Cancel                        |
     +--------------------------------------------------------------------+

//> make && make install && make clean

Добавляем алиас в httpd.conf
//> ee /usr/local/etc/apache/httpd.conf

# Алиас для "postfixadmin"
Alias /postfixadmin "/usr/local/www/postfixadmin/"
<Directory "/usr/local/www/postfixadmin/">
    Options -Indexes FollowSymLinks MultiViews
    DirectoryIndex index.php
    AllowOverride None
    Order deny,allow
    Allow from all
</Directory>

Правим конфиг postfixadmin
//> ee /usr/local/www/postfixadmin/config.inc.php

<?php
/**
 * Postfix Admin
 *
 * LICENSE
 * This source file is subject to the GPL license that is bundled with
 * this package in the file LICENSE.TXT.
 *
 * Further details on the project are available at :
 *     http://www.postfixadmin.com or http://postfixadmin.sf.net
 *
 * @version $Id: config.inc.php 408 2008-07-21 21:43:06Z GingerDog $
 * @license GNU GPL v2 or later.
 *
 * File: config.inc.php
 * Contains configuration options.
 */

if (ereg ("config.inc.php", $_SERVER['PHP_SELF']))
{
   header ("Location: login.php");
   exit;
}

/*****************************************************************
 *  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 * The following line needs commenting out or removing before the
 * application will run!
 * Doing this implies you have changed this file as required.
 */
// $CONF['configured'] = false;


// Postfix Admin Path
// Set the location of your Postfix Admin installation here.
//Указывает где установлен postfixadmin
// YOU MUST ENTER THE COMPLETE URL e.g. http://domain.tld/postfixadmin
$CONF['postfix_admin_url'] = 'http://mail.zern.domain-ak.ru/postfixadmin/';

// shouldn't need changing.
$CONF['postfix_admin_path'] = '/usr/local/www/postfixadmin/';

// Language config
// Language files are located in './languages', change as required..
// Язык интерфейса. Список всех языков можно посмотреть
// в каталоге './languages'
$CONF['default_language'] = 'ru';

// Database Config
// mysql = MySQL 3.23 and 4.0
// mysqli = MySQL 4.1
// pgsql = PostgreSQL
// Параметры БД. Здесь необходимо указать тип БД
// MySQL или PostgreSQL),
// имя пользователя и пароль, использующиеся при
// подключении, а также имя БД.
$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'exim';
$CONF['database_password'] = 'exim';
$CONF['database_name'] = 'exim';
$CONF['database_prefix'] = '';

// Here, if you need, you can customize table names.
$CONF['database_prefix'] = '';
$CONF['database_tables'] = array (


    'admin' => 'admin',
    'alias' => 'alias',
    'alias_domain' => 'alias_domain',
    'config' => 'config',
    'domain' => 'domain',
    'domain_admins' => 'domain_admins',
    'fetchmail' => 'fetchmail',
    'log' => 'log',
    'mailbox' => 'mailbox',
    'vacation' => 'vacation',
    'vacation_notification' => 'vacation_notification',
);

// Site Admin
// Define the Site Admins email address below.
// This will be used to send emails from to create mailboxes.
// email от имени которго будет приходит письмо пользователю
// при создании почтового ящика
$CONF['admin_email'] = 'postmaster@domain-ak.ru';

// Mail Server
// Hostname (FQDN) of your mail server.
// This is used to send email to Postfix in order
// to create mailboxes.
// Имя хоста в формате FQDN где находится
// почтовый сервер postfix. Эти данные будут
//использоваться при отправке
// email для создания почтовых ящиков
$CONF['smtp_server'] = 'localhost';
$CONF['smtp_port'] = '25';

// Encrypt
// In what way do you want the passwords to be crypted?
// md5crypt = internal postfix admin md5
// md5 = md5 sum of the password
// system = whatever you have set as your PHP system default
// cleartext = clear text passwords (ouch!)
// system - используется метод шифрования
// установленный по умолчанию в php
// cleartext - в чистом виде, т.е. без шифрования.
$CONF['encrypt'] = 'cleartext';

// Minimum length required for passwords. Postfixadmin will not
// allow users to set passwords which are shorter than this value.
// Минимальная длина пароля. Postfixadmin не позволит 
// пользователям сделать пароль
// короче чем эта величина 
$CONF['min_password_length'] = 5;

// Generate Password
// Generate a random password for a mailbox or admin and display it.
// If you want to automagically generate paswords set this to 'YES'.
// Если вы хотите, чтобы postfix admin автоматически 
// генерировал и отображал
// пароль при создании почтового ящика установите значение YES
$CONF['generate_password'] = 'NO';

// Show Password
// Always show password after adding a mailbox or admin.
// If you want to always see what password was set set
//  this to 'YES'.
//  Показывать пароль админа или юзера при
// просмотре списка ящиков 
$CONF['show_password'] = 'NO';
// Page Size
// Set the number of entries that you would like to see
// in one page.
// Количество записей, одновременно отображаемых на странице
$CONF['page_size'] = '25';

// Default Aliases
// The default aliases that need to be created for all domains.
// Алиасы, создаваемые при создании домена
$CONF['default_aliases'] = array (
    'abuse' => 'abuse@domain-ak.ru',
    'hostmaster' => 'hostmaster@domain-ak.ru',
    'postmaster' => 'postmaster@domain-ak.ru',
    'webmaster' => 'webmaster@domain-ak.ru'
);

// Mailboxes
// If you want to store the mailboxes per domain set this to 'YES'.
// Examples:
//   YES: /usr/local/virtual/domain.tld/username@domain.tld
//   NO:  /usr/local/virtual/username@domain.tld
// Использовать имя домена в пути к почтовому ящику 'YES'.
$CONF['domain_path'] = 'YES';
// If you don't want to have the domain in your
// mailbox set this to 'NO'.
// Examples:
//   YES: /usr/local/virtual/domain.tld/username@domain.tld
//   NO:  /usr/local/virtual/domain.tld/username
// Note: If $CONF['domain_path'] is set to NO, this setting
// will be forced to YES.
// Включать имя домена в имя почтового ящика
$CONF['domain_in_mailbox'] = 'NO';

// Default Domain Values
// Specify your default values below. Quota in MB.
// Значения по умолчанию при создании домена. Количество алиасов,
// почтовых ящиков и максимальная квота в Мб.Если стоит 0,
// это без ограничений
$CONF['aliases'] = '0';
$CONF['mailboxes'] = '0';
$CONF['maxquota'] = '0';

// Quota
// When you want to enforce quota for your mailbox
// users set this to 'YES'.
// Позволяет задавать квоты при создании почтового ящика
$CONF['quota'] = 'YES';
// You can either use '1024000' or '1048576'
$CONF['quota_multiplier'] = '1024000';


// Transport
// If you want to define additional transport options for
// a domain set this to 'YES'.
// Read the transport file of the Postfix documentation.
// Позволяет устанавливать дополнительные параметры
// транспорта для домена
$CONF['transport'] = 'NO';
// Transport options
// If you want to define additional transport options
// put them in array below.
// Опции транспорта.
$CONF['transport_options'] = array (
    'virtual',  // for virtual accounts
    'local',    // for system accounts
    'relay'     // for backup mx
);
// Transport default
// You should define default transport. It must be in array above.
// Транспорт по умолчанию
$CONF['transport_default'] = 'virtual';

// Virtual Vacation
// If you want to use virtual vacation for you mailbox
// users set this to 'YES'.
// NOTE: Make sure that you install the vacation module
// Следующих два параметра используются для организации DNS
$CONF['vacation'] = 'NO';
// This is the autoreply domain that you will need to 
// set in your Postfix
// transport maps to handle virtual vacations. It does
// not need to be a
// real domain (i.e. you don't need to setup DNS for it).
$CONF['vacation_domain'] = 'autoreply.domain-ak.ru';

// Vacation Control
// If you want users to take control of vacation set this to 'YES'.
// Управления алиасами, которые создает postfix для каждого ящика
$CONF['vacation_control'] ='YES';

// Vacation Control for admins
// Set to 'YES' if your domain admins should be able to
// edit user vacation.
// Установите "YES", если администраторы имеют
// возможность редактировать 
// ящики (Активный Неактивный)
$CONF['vacation_control_admin'] = 'YES';

// Alias Control
// Postfix Admin inserts an alias in the alias table for
// every mailbox it creates.
// The reason for this is that when you want catch-all and
// normal mailboxes
// to work you need to have the mailbox replicated in the
// alias table.
// If you want to take control of these aliases as well
// set this to 'YES'.
// Если вы хотите взять под контроль алиасы, то установить "YES".
$CONF['alias_control'] = 'YES';

// Alias Control for admins
// Set to 'NO' if your domain admins shouldn't be
// ableto edit user aliases.
// Право на редактирование алисов админами
$CONF['alias_control_admin'] = 'YES';

// Special Alias Control
// Set to 'NO' if your domain admins shouldn't be
// able to edit default aliases.
// Право на редактирование стандартных алиасов админами
$CONF['special_alias_control'] = 'YES';

// Alias Goto Field Limit
// Set the max number of entries that you would like to see
// in one 'goto' field in overview, the rest will be hidden
//  and "[and X more...]"
// will be added.'0' means no limits.
$CONF['alias_goto_limit'] = '0';

// Backup
// If you don't want backup tab set this to 'NO';
// Включить кнопку бэкап "YES" "NO"
$CONF['backup'] = 'YES';

// Send Mail
// If you don't want sendmail tab set this to 'NO';
// Включает закладку "Отправить письмо"
$CONF['sendmail'] = 'YES';

// Logging
// If you don't want logging set this to 'NO';
// Позволяет вести лог действий работы с postfixadmin
$CONF['logging'] = 'YES';
// Fetchmail
// If you don't want fetchmail tab set this to 'NO';
// Включает закладку "Сбор почты" (fetchmail)
$CONF['fetchmail'] = 'YES';

// fetchmail_extra_options allows users to specify 
// any fetchmail options and any MDA
// (it will even accept 'rm -rf /' as MDA!)
// This should be set to NO, except if you *really* trust *all* your users.
$CONF['fetchmail_extra_options'] = 'NO';

// Header
// Отображать текст вверху страницы и его содержимое
$CONF['show_header_text'] = 'NO';
$CONF['header_text'] = ':: Postfix Admin ::';

// link to display under 'Main' menu when logged in as a user.
$CONF['user_footer_link'] = "http://zern.domain-ak.ru/postfixadmin";

// Footer
// Below information will be on all pages.
// If you don't want the footer information to appear set this to 'NO'.
// Аналогично, только текст будет отображаться внизу всех страниц
$CONF['show_footer_text'] = 'YES';
$CONF['footer_text'] = 'Вернуться на главную страницу';
$CONF['footer_link'] = 'http://zern.domain-ak.ru/postfixadmin';



// Welcome Message
// This message is send to every newly created mailbox.
// Change the text between EOM.
// Текст письма привествия. Это письмо будет высылаться на каждый
// создаваемый почтовый ящик
$CONF['welcome_text'] = <<<EOM
Hi,

Welcome to your new account.
EOM;

// When creating mailboxes or aliases, check that the domain-part of the
// address is legal by performing a name server look-up.
// #Обязательно поменяйте этот параметр на NO
$CONF['emailcheck_resolve_domain']='NO';


// Optional:
// Analyze alias gotos and display a colored block in the first column
// indicating if an alias or mailbox appears to deliver to a non-existent
// account.  Also, display indications, for POP/IMAP mailboxes and
// for custom destinations (such as mailboxes that forward to a UNIX shell
// account or mail that is sent to a MS exchange server, or any other
// domain or subdomain you use)
// See http://www.w3schools.com/html/html_colornames.asp for a list of
// color names available on most browsers

//set to YES to enable this feature
$CONF['show_status']='NO';
//display a guide to what these colors mean
$CONF['show_status_key']='NO';
// 'show_status_text' will be displayed with the background colors
// 'show_status_text' will be displayed with the background colors
// associated with each status, you can customize it here
$CONF['show_status_text']='&nbsp;&nbsp;';
// show_undeliverable is useful if most accounts are delivered to this
// postfix system.  If many aliases and mailboxes are forwarded
// elsewhere, you will probably want to disable this.
$CONF['show_undeliverable']='NO';
$CONF['show_undeliverable_color']='tomato';
//# Уберите обязательно перенос \
$CONF['show_undeliverable_exceptions']=array("unixmail.domain.ext", \
"exchangeserver.domain.ext" 
,"gmail.com");
$CONF['show_popimap']='NO';
$CONF['show_popimap_color']='darkgrey';
// set 'show_custom_count' to 0 to disable custom indicators
$CONF['show_custom_count']=2;
$CONF['show_custom_domains']=array("subdomain.domain.ext","domain2.ext");
$CONF['show_custom_colors']=array("lightgreen","lightblue");


// Optional:
// Script to run after creation of mailboxes.
// Note that this may fail if PHP is run in "safe mode", or if
// operating system features (such as SELinux) or limitations
// prevent the web-server from executing external scripts.
// $CONF['mailbox_postcreation_script']='sudo -u courier \
// /usr/local/bin/postfixadmin-mailbox-postcreation.sh';

// Optional:
// Script to run after alteration of mailboxes.
// Note that this may fail if PHP is run in "safe mode", or if
// operating system features (such as SELinux) or limitations
// prevent the web-server from executing external scripts.
// $CONF['mailbox_postedit_script']='sudo -u courier \
// /usr/local/bin/postfixadmin-mailbox-postedit.sh';

// Optional:
// Script to run after deletion of mailboxes.
// Note that this may fail if PHP is run in "safe mode", or if
// operating system features (such as SELinux) or limitations
// prevent the web-server from executing external scripts.
// $CONF['mailbox_postdeletion_script']='sudo -u courier \
// /usr/local/bin/postfixadmin-mailbox-postdeletion.sh';

// Optional:
// Script to run after deletion of domains.
// Note that this may fail if PHP is run in "safe mode", or if
// operating system features (such as SELinux) or limitations
// prevent the web-server from executing external scripts.
// $CONF['domain_postdeletion_script']='sudo -u courier \
// /usr/local/bin/postfixadmin-domain-postdeletion.sh';

// Optional:
// Sub-folders which should automatically be created for new users.
// The sub-folders will also be subscribed to automatically.
// Will only work with IMAP server which implement sub-folders.
// Will not work with POP3.
// If you define create_mailbox_subdirs, then the
// create_mailbox_subdirs_host must also be defined.

//
// $CONF['create_mailbox_subdirs']=array('Spam');
// $CONF['create_mailbox_subdirs_host']='localhost';
//
// Normally, the TCP port number does not have to be specified.
// $CONF['create_mailbox_subdirs_hostport']=143;
//
// If you have trouble connecting to the IMAP-server, then specify
// a value for $CONF['create_mailbox_subdirs_hostoptions']. These
// are some examples to experiment with:
// $CONF['create_mailbox_subdirs_hostoptions']=array('notls');
// $CONF['create_mailbox_subdirs_hostoptions']= \
// array('novalidate-cert','norsh');
// See also the "Optional flags for names" table at
// http://www.php.net/manual/en/function.imap-open.php


// Theme Config
// Specify your own logo and CSS file
$CONF['theme_logo'] = 'images/logo-default.png';
$CONF['theme_css'] = 'css/default.css';

// If you want to keep most settings at default values
// and/or want to ensure
// that future updates work without problems, you can use
// a separate config
// file (config.local.php) instead of editing this file
// and override some
// settings there.
if (file_exists(dirname(__FILE__) . '/config.local.php')) { # for /
    include(dirname(__FILE__) . '/config.local.php');
}

//
// END OF CONFIG FILE
//
/* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */

Перезагрузим apache
//> /usr/local/etc/rc.d/apache restart

Далее переходим в браузере http://ip/postfixadmin/
там создаем Администратора для того чтобы создавать домены и других админов
Будет что то типа





создаем администратора и нас просят удалить setup.php, но мы его просто переименуем :)
//> mv /usr/local/www/postfixadmin/setup.php \
/usr/local/www/postfixadmin/setup-old.php


Устанавливаем Dovecot 1.1.8

//> cd /usr/ports/mail/dovecot
/usr/ports/mail/dovecot/> make config

     +--------------------------------------------------------------------+
     |                   Options for dovecot 1.1.8                        |
     | +----------------------------------------------------------------+ |
     | |  [X] KQUEUE       kqueue(2) support                            | |
     | |  [X] SSL          SSL support                                  | |
     | |  [X] IPV6         IPv6 support                                 | |
     | |  [X] POP3         POP3 support                                 | |
     | |  [X] LDA          LDA support                                  | |
     | |  [ ] MANAGESIEVE  ManageSieve support                          | |
     | |  [ ] GSSAPI       GSSAPI support                               | |
     | |  [ ] VPOPMAIL     VPopMail support                             | |
     | |  [ ] BDB          BerkleyDB support                            | |
     | |  [ ] LDAP         OpenLDAP support                             | |
     | |  [ ] PGSQL        PostgreSQL support                           | |
     | |  [X] MYSQL        MySQL support                                | |
     | |  [ ] SQLITE       SQLite support                               | |
     | |                                                                | |
     +-+------v(+)------------------------------------------------------+-+
     |                       [  OK  ]       Cancel                        |
     +--------------------------------------------------------------------+

/usr/ports/mail/dovecot/> make && make install && make clean




Создаем сертификаты для того что бы Dovecot мог работать с SSL шифрованием
//> mkdir /etc/dovecot
//> mkdir /etc/dovecot/ssl


Далее генерим ключ и сертификат, в моем случае буду генерить 2048 битный
//> cd /etc/dovecot/ssl
/etc/dovecot/ssl/> openssl req -new -outform PEM -out dovecot.crt \
-newkey rsa:2048 -nodes -keyout dovecot.key -keyform PEM -days 9999 -x509

Generating a 2048 bit RSA private key
..........................................+++
........................................+++
writing new private key to 'dovecot.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:RU
State or Province Name (full name) [Some-State]:Rostov
Locality Name (eg, city) []:Zernograd
Organization Name (eg, company) [Internet Widgits Pty Ltd]:COMPANY
Organizational Unit Name (eg, section) []:IT
Common Name (eg, YOUR name) []:pop.zern.domain-ak.ru
Email Address []:postmaster@domain-ak.ru



Далее пишем конфиг Dovecot'a
/usr/ports/mail/dovecot/> cd /usr/local/etc/
/usr/local/etc/> ee dovecot.conf

base_dir = /var/run/dovecot/
protocols = imap imaps pop3 pop3s
# Renamed ssl_disable = yes to ssl = no
ssl = yes
ssl_cert_file = /etc/dovecot/ssl/dovecot.crt
ssl_key_file = /etc/dovecot/ssl/dovecot.key
protocol imap {
       listen = *:143
       ssl_listen = *:9143
}


protocol pop3 {
        listen = *:110
        ssl_listen = *:9110
}
disable_plaintext_auth = no
shutdown_clients = yes
log_timestamp = "%b %d %H:%M:%S "
syslog_facility = mail
login_dir = /var/run/dovecot/login
login_chroot = yes
login_user = dovecot
login_process_size = 64
login_process_per_connection = yes
login_processes_count = 3
login_max_processes_count = 64
login_greeting = dovecot MUA ready
login_log_format_elements = user=<%u> method=%m rip=%r lip=%l %c
login_log_format = %$: %s
verbose_proctitle = yes
first_valid_uid = 25
first_valid_gid = 0
mail_access_groups = mail
# После отладки убрать mail_debug
mail_debug = yes
mail_location = maildir:/var/mail/exim/%d/%n
# Removed umask. It wasn't really used anywhere anymore
# umask = 0077

protocol imap {
  imap_client_workarounds = delay-newmail outlook-idle \
  netscape-eoh tb-extra-mailbox-sep
}


protocol pop3 {
  pop3_uidl_format = %08Xu%08Xv
  pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
}
protocol lda {
  postmaster_address = postmaster@domain-ak.ru
  auth_socket_path = /var/run/dovecot/auth-master
}
auth default { 
mechanisms = plain
   socket listen {
     master {
       path = /var/run/dovecot/auth-master
       mode = 0600
       user = mailnull
     }
   }
  passdb sql {
    args = /usr/local/etc/dovecot-sql.conf
  }
  userdb sql {
    args = /usr/local/etc/dovecot-sql.conf
}
  user = root
}
plugin {
}

Далее создаём файл dovecot-sql.conf
/usr/local/etc/> ee dovecot-sql.conf

driver = mysql
connect = host=localhost dbname=exim user=exim password=exim
default_pass_scheme = PLAIN
password_query = SELECT `username` as `user`, `password` FROM  \
`mailbox` WHERE `username` = '%n@%d' AND `active`='1'
user_query = SELECT `maildir` AS `home`, 26 AS `uid`, 26 AS `gid` \
FROM `mailbox` WHERE `username` = '%n@%d' AND `active`='1'

Запускаем Dovecot
/usr/local/etc/> echo 'dovecot_enable="YES"' >> /etc/rc.conf
/usr/local/etc/> /usr/local/etc/rc.d/dovecot start
Starting dovecot.
//>


Теперь можно проверить работу сервера с сертификатом
//> openssl s_client -connect mail.zern.domain-ak.ru:imaps -debug

Если все корректно настроили в ответ выйдет куча текста.
В тексте будут присутствовать такие строки
subject=/C=RU/ST=Rostov/L=Zernograd/O=COMPANY/OU=IT
/CN=pop.zern.domain-ak.ru/emailAddress=postmaster@domain-ak.ru
issuer=/C=RU/ST=Rostov/L=Zernograd/O=COMPANY/OU=IT/
CN=pop.zern.domain-ak.ru/emailAddress=postmaster@domain-ak.ru

Устанавливаем Exim 4.69

Пишем вот это для сборки Exim , я его собирал без антивируса т.к masterhost.ru сам проверяет на вирусы, а два раза проверять на вирусы, это слишком (плюс еще к тому же на каждом компе антивирь NOD32)т.е даже трижды.
//> ee /etc/make.conf

PORTSDIR?=      /usr/ports
.if ${.CURDIR} == ${PORTSDIR}/mail/exim
WITH_MYSQL=             yes
LOG_FILE_PATH?=         syslog
WITH_DEFAULT_CHARSET?=  koi8-r
WITHOUT_IPV6=           yes
.endif

//> cd /usr/ports/mail/exim/
/usr/ports/mail/exim/> make && make install && make clean

Отключаем sendmail
/usr/ports/mail/exim/> echo 'sendmail_enable="NONE"' >> /etc/rc.conf
/usr/ports/mail/exim/> ee /etc/mail/mailer.conf

Правим mailer.conf
sendmail        /usr/local/sbin/exim
send-mail       /usr/local/sbin/exim
mailq           /usr/local/sbin/exim -bp
newaliases      /usr/local/sbin/exim -bi
hoststat        /usr/local/sbin/exim
purgestat       /usr/local/sbin/exim


Далее останавливаем Sendmail
//> /etc/rc.d/sendmail forcestop



Теперь пришло время генерить ключ и сертификат для Exim'a
//> mkdir /etc/exim
//> mkdir /etc/exim/ssl

//> cd /etc/exim/ssl

/etc/exim/ssl/> openssl req -new -outform PEM -out exim.crt -newkey rsa:2048 \
-nodes -keyout exim.key -keyform PEM -days 9999 -x509

Generating a 2048 bit RSA private key
..........................................+++
........................................+++
writing new private key to 'exim.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:RU
State or Province Name (full name) [Some-State]:Rostov
Locality Name (eg, city) []:Zernograd
Organization Name (eg, company) [Internet Widgits Pty Ltd]:COMPANY
Organizational Unit Name (eg, section) []:IT
Common Name (eg, YOUR name) []:smtp.zern.domain-ak.ru
Email Address []:postmaster@domain-ak.ru




И приводим конфиг Exim'a вот в такое состояние.(Смотрите внимательнее)

//> ee /usr/local/etc/exim/configure

# Имя хоста. Используется в EHLO.
# Фигурирует в других пунктах, если они не заданы -
# типа qualify_domain и прочих..
# Если тут ничё не установлено (строка закомметрована)
# то используется то, что вернёт функция uname()
primary_hostname = mail.zern.domain-ak.ru

# Вводим данные для подключения к MySQL серверу.
# словечко `hide`, вначале, означает, что при
# вызове проверки конфига командой
# exim -bV config_file эти данные не будут отображаться.
# Если без него - то будут показаны... Формат записи:
# хост/имя_бд/пользователь/пароль
hide mysql_servers = localhost/exim/exim/exim

# Делаем список локальных доменов. Далее этот
# список будет фигурировать в виде +local_domains
# В данном случае домены выбираются из БД MySQL. Также
# можно их просто перечислить через двоеточие. Есть интересная
# возможность, можно указать юзер@[хост] - user@[217.111.ххх.ххх]
domainlist local_domains = ${lookup mysql{SELECT `domain` \
                            FROM `domain` WHERE \
                            `domain`='${domain}' AND \
                            `active`='1'}}

# делаем список доменов с которых разрешены релеи.
# Далее этот список будет в виде +relay_to_domains
# Можно использовать символы подстановки, типа:
# .... = *.my.ddomain-ak.ru : !spam.my.domen.su : first.su
# тогда пропускается всё, что похоже на *.my.domain-ak.ru, но
# от spam.my.domain.ru релеится почта не будет.
domainlist relay_to_domains = ${lookup mysql{SELECT `domain` \
                            FROM `domain` WHERE \
                            `domain`='${domain}' AND \
                            `active`='1'}}

# Составляем список хостов с которых разрешён неавторизованый
# релей. Обычно в нём находятся локальные сети, и локалхост...
# ЛокалХост в двух видах был внесён сознательно - пару раз
# сталкивался с кривым файлом /etc/hosts - результатом было
# непонимание `localhost` но пониманием 127.0.0.1/8
hostlist   relay_from_hosts = localhost:127.0.0.0/8

# Вводим названия acl`ов для проверки почты. (В общем-то, это
# необязательно, если вы делаете открытый релей, или хотите
# принимать вообще всю почту с любого хоста для любых
# получателей... Тока потом не жалуйтесь что у Вас спам
# и провайдер выкатывает немеряный счёт :))
acl_smtp_rcpt = acl_check_rcpt
acl_smtp_data = acl_check_data

# Прикручиваем антивирус - при условии, что exim собран
# с его поддержкой. В качестве антивиря юзаем ClamAV,
# ибо - ПО должно быть свободным! :)
# Итак, указываем местоположение сокета clamd.
#av_scanner = clamd:/var/run/clamav/clamd.sock


# Адрес куда слать на проверку спама (SpamAssasin), но я
# это не юзаю. Не так много у меня спама...
# spamd_address = 127.0.0.1 783

# Порты какие будет слушать Exim (25 и 9025)
daemon_smtp_ports = 25 : 9025
# Указываем порт который будет работать с шифрованием SSL TLS
tls_on_connect_ports = 9025
# Указываем где у нас находяться сертификат и ключ
tls_certificate = /etc/exim/ssl/exim.crt
tls_privatekey = /etc/exim/ssl/exim.key

# Имя домена добавляемое для локальных отправителей (реальных
# юзеров системы) т.е. почта отправляемая от root, будет от
# root@домен_указанный_здесь. Если пункт незадан, то используется
# имя хоста из `primary_hostname`. Логичней было бы написать здесь
# lissyara.su, но мне удобней иначе:
qualify_domain = zern.domain-ak.ru

# Имя хоста для ситуации, обратной предыдущей, - это имя домена
# добавляемое к почте для системных юзеров, ну и вообще для почты
# пришедшей на адрес типа `root`, `lissyara`, & etc... Если этот
# пункт незадан то используется значение полученное из
# предыдущего пункта - `qualify_domain`
qualify_recipient = zern.domain-ak.ru

# А это как раз кусок вышеописанного анахронизма - про почту в
# виде user@[222.222.222.222] - принимать её или нет. По дефолту
# (когда строка закомментирована) значение - false. Если захотите
# поставить true то надо будет добавить в список доменов
# комбинацию @[] - она означает `все локальные адреса`
allow_domain_literals = false

# Пользователь от которого работает exim
exim_user = mailnull

# группа в кторой работает exim
exim_group = mail

# запрещаем работу доставки под юзером root - в целях безопасности
never_users = root


# Проверяем соответствие прямой и обратной зон для всех хостов.
# Тока зачем это нужно - даже и незнаю... Спам на этом не режется...

# Зато возможны проблемы - если сервер зоны скажет `сервер файлед`
# то почту от этого хоста Вы не получите :)
#host_lookup = *

# Тоже анахронизм (на самом деле, не такой уж анахронизм, но все давно
# забили на ident и закрыли файрволлом tcp:113...) Это проверка - Ваш
# хост спрашивает у удалённого, с которого было подключение, а кто
# собстно ко мне подключился на такой-то порт? Если на удалённом хосте
# работает identd - он может ответить (а может и не ответить - как
# настроить), скажет UID пользователя от которого установлено
# соединение, тип ОС, и имя пользователя. Теперь, понимаете, почему
# у всех оно зарублено и файрволлами позакрыто? :) Это же палево :)
# Тока на мой взгляд, если на сервере всё настроено правильно -
# то вовсе это и не страшно.
# Короче - если хостс поставить * то будет проверять все. Таймаут -
# если поставить 0 то не будет ждать ответа ни от кого. По
# вышеописанным причинам - отключаем
#rfc1413_hosts = *
rfc1413_query_timeout = 0s

# По дефолту, экзим отфутболивает все `неквалифицированные` адреса,
# состоящие тока из локальной части. Для того чтобы разрешить такие письма
# определённых хостов используются эти директивы:
# для `неквалифицированных` отправителей
sender_unqualified_hosts = +relay_from_hosts
# для `неквалифицированных` получателей
recipient_unqualified_hosts = +relay_from_hosts

# Интересный пункт, тока я не вполне понимаю его логику.
# Позволяет выполнять что-то типа - пришло сообщение на
# локальный ящик user%test.ru@domain-ak.ru и
# переправляет его на user@test.ru. Делается это для
# перечисленного списка доменов (* - все):
# percent_hack_domains = *

# Если сообщение было недоставлено, то генерится соощение
# об ошибке. Если сообщение об ошибке не удалось доставить
# то оно замораживается на указанный в этом пункте срок,
# после чего снова попытка доставить его. При очередной
# неудаче - сообщение удаляется.
ignore_bounce_errors_after = 45m

# Замороженные сообщения, находящиеся в очереди, дольше
# указанного времени удаляются и генерится сообщение
# об ошибке (при условии, что это не было недоставленное
# сообщение об ошибке :))
timeout_frozen_after = 15d

# собсно на этом штатный конфиг кончился, но
# меня-то это не устраивает... Поэтому пошли пункты,
# почёрпнутые из других источников.

# список адресов, через запятую, на которые засылаются
# сообщения о замороженных сообщениях (о замороженых
# уведомлениях о заморозке, сообщения не генерятся. - я
# надеюсь эта строка понятна :))
freeze_tell = postmaster@domain-ak.ru

# Список хостов, почта от которых принимается, несмотря
# на ошибки в HELO/EHLO (тут указана моя подсеть)
helo_accept_junk_hosts = 192.168.1.0/24


# Через какое время повторять попытку доставки
# замороженного сообщения
auto_thaw = 1h

# Приветствие сервера
smtp_banner = "$primary_hostname, ESMTP EXIM $version_number"

# Максимальное число одновременных подключений по
# SMTP. Рассчитывать надо исходя из нагрузки на сервер
smtp_accept_max = 50

# максимальное число сообщений принимаемое за одно соединение
# от удалённого сервера (или пользователя). C числом 25
# я имел проблемы тока один раз - когда у меня три дня лежал
# инет и после его подъёма попёрли мессаги. Но у меня не так
# много почты - всего 30 пользователей.
smtp_accept_max_per_connection = 25


# чё-то про логи и борьбу с флудом - я так понимаю -
# максимальное число сообщений записываемых в логи
smtp_connect_backlog = 30

# максимальное число коннектов с одного хоста
smtp_accept_max_per_host = 20

# Ход ладьёй - для увеличения производительности,
# директория `spool` внутри, разбивается на
# директории - это ускоряет обработку
split_spool_directory = true

# Если у сообщения много адресатов на удалённых хостах,
# то запускатеся до указанного числа максимально число
# параллельных процессов доставки
remote_max_parallel = 15

# при генерации сообщения об ошибке прикладывать
# не всё сообщение, а кусок (от начала) указанного
# размера (иногда полезно и целиком - в таком случае
# просто закомментируйте эту строку)
return_size_limit = 70k

# размер сообщения. У меня стоит относительно большой
# размер (`относительно` - потому, что на большинстве
# хостов оно ограничено 2-5-10мб, либо стоит анлим.)
message_size_limit = 10M

# разрешаем неположенные символы в HELO (столкнулся
# с этим случайно - имя фирмы состояло из двух слов
# и какой-то раздолбай домен обозвал my_firme_name
# прям с подчёркиваниями... Виндовые клиенты при
# соединении радостно рапортовали о себе
# `vasya.my_firme_name` ну а экзим их футболил :))
helo_allow_chars = _

# Принудительная синхронизация. Если отправитель
# торопится подавать команды, не дождавшись ответа,
# то он посылается далеко и надолго :) Немного,
# спам режется. вкл = true / выкл = false
smtp_enforce_sync = false


# Выбираем, что мы будем логировать
# + - писать в логи,
# - - Не писать в логи.
# +all_parents - все входящие?
# +connection_reject - разорваные соединения
# +incoming_interface - интерфейс (реально - IP)
# +lost_incoming_connections - потеряные входящие
# соединения
# +received_sender - отправитель
# +received_recipients - получатель
# +smtp_confirmation - подтверждения SMTP?
# +smtp_syntax_error - ошибки синтаксиса SMTP
# +smtp_protocol_error - ошибки протокола SMTP
# -queue_run - работа очереди (замороженные мессаги)
log_selector = \
    +all_parents \
    +connection_reject \
    +incoming_interface \
    +lost_incoming_connection \
    +received_sender \
    +received_recipients \
    +smtp_confirmation \
    +smtp_syntax_error \
    +smtp_protocol_error \
    -queue_run

# Убираем собственную временную метку exim`a из логов, её ставит
# сам syslogd - нефига дублировать
syslog_timestamp = no



### конфигурация ACL для входящей почты
begin acl

# Эти правила срабатывают для каждого получателя
acl_check_rcpt:


  # принимать сообщения которые пришли с локалхоста,
  # не по TCP/IP
  accept  hosts = :


  # Запрещаем письма содержащие в локальной части
  # символы @; %; !; /; |. Учтите, если у вас было
  # `percent_hack_domains` то % надо убрать.
  # Проверяются локальные домены
  deny    message       = "incorrect symbol in address"
          domains       = +local_domains
          local_parts   = ^[.] : ^.*[@%!/|]

  # Проверяем недопустимые символы для
  # нелокальных получателей:
  deny    message       = "incorrect symbol in address"
          domains       = !+local_domains
          local_parts   = ^[./|] : ^.*[@%!] : ^.*/\\.\\./

  # Принимаем почту для постмастеров локальных доменов без
  # проверки отправителя (я закомментировал, т.к. это -
  # основной источник спама с мой ящик).
#
#  accept  local_parts   = postmaster
#          domains       = +local_domains
#
  # Запрещщаем, если невозможно проверить отправителя
  # (отсутствует в списке локальных пользователей)
  # У себя я это закоментил, по причине, что некоторые
  # железяки (принтеры, & etc) и программы (Касперский, DrWEB)
  # умеют слать почту, в случае проблем но не умеют ставить
  # нужного отправителя. Такие письма эта проверка не пускает.
#  require verify        = sender

  # Запрещщаем тех, кто не обменивается приветственными
  # сообщениями (HELO/EHLO)
  deny    message       = "HELO/EHLO require by SMTP RFC"
          condition     = ${if eq{$sender_helo_name}{}{yes}{no}}

  # Принимаем сообщения от тех, кто аутентифицировался:
  # Вообще, большинство конфигов в рунете - это один и тот же
  # конфиг написанный Ginger, в котором этот пункт расположен
  # внизу. Но при таком расположении рубятся клиенты с adsl,
  # ppp, и прочие зарезанные на последующих проверках. Но это
  # жа неправильно! Этом мои пользователи из дома! Потому
  # я это правило расположил до проверок.
  accept  authenticated = *

# Рубаем нах, тех, кто подставляет свой IP в HELO
  deny    message       = "Your IP in HELO - access denied!"
          hosts         =  * : !+relay_from_hosts : !81-196.domain-ak.ru
          condition     = ${if eq{$sender_helo_name}\
    {$sender_host_address}{true}{false}}


# Рубаем тех, кто в HELO пихает мой IP (2500 мудаков за месяц!)
  deny    condition     = ${if eq{$sender_helo_name}\
    {$interface_address}{yes}{no}}
          hosts         = !127.0.0.1 : !localhost : *
          message       = "main IP in your HELO! Access denied!"

# Рубаем тех, кто в HELO пихает только цифры
# (не бывает хостов ТОЛЬКО из цифр)
  deny    condition     = ${if match{$sender_helo_name}\
    {\N^\d+$\N}{yes}{no}}
          hosts         = !127.0.0.1 : !localhost : *
          message       = "can not be only number in HELO!"


## Рубаем тех, кто не пишет отправителя (пробел)
#  deny    condition     = ${if match{$sender_address}{\N^\s+$\N}{yes}{no}}
#          hosts         = !127.0.0.1 : !localhost : *
#          message       = "Sender address contains spaces?! not for RFC..."


# Рубаем тех, кто не пишет отправителя
  deny    condition     = ${if eq{$sender_address}{}{yes}{no}}
          hosts         = !127.0.0.1 : !localhost : *
          message       = "Sender address is empty?! not for RFC..."


# Рубаем всех, если адрес отправителя нет в алиасах, кроме локальной сети
  deny   condition = ${lookup mysql{SELECT `goto` FROM \
        `alias` WHERE \
        `address`='${quote_mysql:$local_part@domain-ak.ru}'}{no}{yes}}
        hosts         = !127.0.0.1 : !localhost : !192.168.1.0/24 : *
        message       = "No such user!"


# Рубаем всех, кроме нашего внешнего пересыльщика masterhost.ru и localhost
# (мастерхостость)Было сделано что бы никто кроме masterhost.ru
# не мог слать письма на @zern.domain-ak.ru
  deny   condition     = ${if match{$sender_helo_name}{masterhost.ru}{no}{yes}}
         hosts         = !127.0.0.1 : !localhost : *
         message       = "Access deny!"




  # Рубаем хосты типа *adsl*; *dialup*; *pool*;....
  # Нормальные люди с таких не пишут. Если будут
  # проблемы - уберёте проблемный пункт (у меня клиенты
  # имеют запись типа asdl-1233.zone.su - я ADSL убрал...)
#  deny    message       = "your hostname is bad (adsl, poll, ppp & etc)."
#          condition     = ${if match{$sender_host_name} \
#                               {adsl|dialup|pool|peer|dhcp} \
#                               {yes}{no}}
#
  # Задержка. (это такой метод борьбы со спамом,
  # основанный на принципе его рассылки) На этом рубается
  # почти весь спам. Единственно - метод неприменим на
  # реально загруженных MTA - т.к. в результате ему
  # приходится держать много открытых соединений.
  # но на офисе в сотню-две человек - шикарный метод.
  #
  # более сложный вариант, смотрите в статье по exim и
  # курьер имап. Т.к. там метод боле умный (просто правил
  # больше :), то можно и на более загруженные сервера ставить)
  warn
        # ставим дефолтовую задержку в 30 секунд
        set acl_m0 = 30s
  warn
        # ставим задержку в 0 секунд своим хостам и
        # дружественным сетям (соседняя контора :))
        hosts = +relay_from_hosts : 127.0.0.1/8 : 192.168.1.0/24 \
                                  : 83.222.25.0/24
        set acl_m0 = 0s
  warn
        # пишем в логи задержку (если оно вам надо)
        logwrite = Delay $acl_m0 for $sender_host_name \
[$sender_host_address] with HELO=$sender_helo_name. Mail \
from $sender_address to $local_part@$domain.

        delay = $acl_m0



  # Проверка получателя в локальных доменах.
  # Если не проходит, то проверяется следующий ACL,
  # и если непрошёл и там - deny
  accept  domains       = +local_domains
          endpass
          message       = "In my mailserver not stored this user"
          verify        = recipient

  # Проверяем получателя в релейных доменах
  # Опять-таки если не проходит -> следующий ACL,
  # и если непрошёл и там - deny
  accept  domains       = +relay_to_domains
          endpass
          message       = "main server not know how relay to this address"
          verify        = recipient

  # Рубаем тех, кто в блэк-листах. Серваки перебираются
  # сверху вниз, если не хост не найден на первом, то
  # запрашивается второй, и т.д. Если не найден ни в одном
  # из списка - то почта пропускается.

 deny  message  = "you in blacklist - $dnslist_domain \n $dnslist_text"
       dnslists = opm.blitzed.org : \
                  cbl.abuseat.org : \
                  bl.csma.biz : \
                  dynablock.njabl.org

  # Разрешаем почту от доменов в списке relay_from_hosts
  accept  hosts         = +relay_from_hosts

  # Если неподошло ни одно правило - чувак явно ищет
  # открытый релей. Пшёл прочь. :)
  deny    message       = "Homo hominus lupus est"




# Тут идут ACL проверяющие содержимое (тело) письма.
# Без них будут пропускаться все сообщения.

acl_check_data:


# Тут мы проверяем письма на ***SPAM***(ну если кому это нужно)
#.include_if_exists /usr/local/etc/exim/includes/antispam.conf



  # Проверяем письмо на вирусы
#  deny malware = *
#  message = "In e-mail found VIRUS - $malware_name"

  # Если есть необходимость - тут проверки на спам

  # Пропускаем остальное
  accept



# чё делаем с почтой
############################################################################
#                               #Секция роутеров
############################################################################
begin routers

# Все адреса *@zern.domain-ak.ru отправляем на 
# *@domain-ak.ru все пользователи у нас в 
# @domain-ak.ru, чтобы алиасы не прописывать
# Не юзаем потому что стоит подмена заголовков begin rewrite
# aliases_mysql_nnov:
#  driver = redirect
#  condition = ${if eq{zern.domain-ak.ru}{$domain}{yes}{no}}
#  allow_fail
#  allow_defer
#  data = ${quote:$local_part}@domain-ak.ru

# Копируем всю входящую и исходящую почту на audit@domain-ak.ru
# Нужно было начальству для контроля.(если вам такое нужно то раскомментите)
#copy_message:
#   driver = redirect
#   unseen
#   domains = *
#   data = audit@domain-ak.ru



# 1.Смотрим системные Алиасы
system_aliases:
    driver = redirect
    allow_fail
    allow_defer
    data = ${lookup mysql{SELECT `goto` FROM `alias` WHERE \
            `address`='${quote_mysql:$local_part@$domain}' OR \
                `address`='${quote_mysql:@$domain}'}}

# 2.Доставляем почты в dovecot
dovecot_user:
  driver = accept
  condition = ${lookup mysql{SELECT `goto` FROM \
  `alias` WHERE \
  `address`='${quote_mysql:$local_part@$domain}' OR \
  `address`='${quote_mysql:@$domain}'}{yes}{no}}
  transport = dovecot_delivery

# 3.Отправка почты на "masterhost @adomain-ak.ru" 
# для локального домена "@domain-ak.ru"
# если пользователя несуществует в локальном домене @domain-ak.ru
masterhost_router:
        driver = manualroute
        transport = masterhost_transport
        route_list = domain-ak.ru smtp.masterhost.ru

# 4.Отправка всей не локальной почты т.е 
# на удаленные сервера кроме "masterhost.ru
# домен @domain-ak.ru", отправка производить
donpac_router:
    driver = manualroute
    transport = donpac_transport
    route_list = * smtp.donpac.ru

# 5.Если лег сервак провайдера donpac.ru то EXIM отправляет напрямую 
# т.е как "mail.zern.domain-ak.ru"
# Поиск маршрута к хосту в DNS. Если маршрут не найден в DNS -
# то это `унроутабле аддресс`. Не проверяются локальные
# домены, 0.0.0.0 и 127.0.0.0/8
dnslookup:
  driver = dnslookup
  domains = ! +local_domains
  transport = remote_smtp
  ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
  no_more


# начинаются транспорты - как доставляем почту
##########################################################################
#                             #Секция транспортов
##########################################################################
begin transports

# Доставка на удалённые хосты - по SMTP
remote_smtp:
driver = smtp

# Доставка локальным адресатам - в dovecot
# Надо заметить что тут использовалась ранее прямая доставка
# в директорию, но щас с портами стал-таки устанавливаться deliver
# программа dovecot занимающаяся доставкой мессаг.
# Соответственно юзаем его.
dovecot_delivery:
  driver = pipe
  command = /usr/local/libexec/dovecot/deliver -d $local_part@$domain
  message_prefix =
  message_suffix =
  delivery_date_add
  envelope_to_add
  return_path_add
  log_output
  user = mailnull


# Имя программы
address_pipe:
  driver = pipe
  return_output

# Транспорт для автоответов
address_reply:
  driver = autoreply

# Транспорт на smtp.masterhost.ru
masterhost_transport:
        driver = smtp
        hosts = smtp.masterhost.ru

# Транспорт на smtp.donpac.ru
donpac_transport:
    driver = smtp
    hosts = smtp.donpac.ru

# Начинаются повторы недоставленных писем.
#########################################################################
#                                     # Секция повторов
#########################################################################

begin retry


# Address or Domain  Error   Retries
# -----------------  -----   -------
*                    *       F,2h,15m; G,16h,1h,1.5; F,4d,6h



##########################################################################
#                                   # Секция преобразование адресов
##########################################################################
begin rewrite

#Подмена заголовка @zern.domain-ak.ru на @domain-ak.ru
*@zern.domain-ak.ru     $local_part@domain-ak.ru        Eh

#########################################
# Флаги                                 #
#########################################
# E ----> все поля конверта             #
# F ----> поле "From" в конверте        #
# T ----> поле "To" в конверте          #
# b ----> заголовок "Bcc:"              #
# c ----> заголовок "Cc:"               #
# f ----> заголовок "From:"             #
# h ----> все заголовки                 #
# r ----> заголовок "Reply-To:"         #
# s ----> заголовок "Sender:"           #
# t ----> заголовок "To:"               #
#########################################


# Секция авторизации при отправке писем. Ввиду того,
# что почтовых клиентов много, и все всё делают
# по-своему, то и механизмов авторизации три...
#####################################################################
#                                    # Секция аутентификаторов
#####################################################################

begin authenticators


auth_plain:
  driver = plaintext
  public_name = PLAIN
  server_condition = ${lookup mysql{SELECT `username` FROM \
                     `mailbox` WHERE `username` = \
                     '${quote_mysql:$auth2}' AND `password` = \
                     '${quote_mysql:$auth3}'}{yes}{no}}
  server_prompts = :
  server_set_id = $auth2


auth_login:
  driver = plaintext
  public_name = LOGIN
  server_condition = ${lookup mysql{SELECT `username` FROM \
                     `mailbox` WHERE `username` = \
                     '${quote_mysql:$auth1}' AND `password` = \
                     '${quote_mysql:$auth2}'}{yes}{no}}
  server_prompts = Username:: : Password::
  server_set_id = $auth1


auth_cram_md5:
  driver = cram_md5
  public_name = CRAM-MD5
  server_secret = ${lookup mysql{SELECT `password` FROM \
                        `mailbox` WHERE `username` \
                        = '${quote_mysql:$auth1}'}{$value}fail}
  server_set_id = $auth2


Да и у кого в логах вот такая фигня
Oct 1 15:52:54 mail deliver(user1@domain-ak.ru): auth input: user1@domain-ak.ru
Oct 1 15:52:54 mail deliver(user1@domain-ak.ru): auth input: home=domain-ak.ru/user1/
Oct 1 15:52:54 mail deliver(user1@domain-ak.ru): auth input: uid=26
Oct 1 15:52:54 mail deliver(user1@domain-ak.ru): auth input: gid=26
Oct 1 15:52:54 mail deliver(user1@domain-ak.ru): Home dir not found: domain-ak.ru/user1/


Нужно поправить файл добавив "/var/mail/exim/"
Выглядет это будет вот так!
//> ee /usr/local/www/postfixadmin/create-mailbox.php

if ($error != 1)
{
$password = pacrypt ($fPassword);

if ($CONF['domain_path'] == "YES")
{
if ($CONF['domain_in_mailbox'] == "YES")
{
 $maildir = "/var/mail/exim/" . $fDomain . "/" . $fUsername . "/";
}
else
{
 $maildir = "/var/mail/exim/" . $fDomain . "/" . 
escape_string ($_POST['fUsername']) . "/";
}
}
else
{
 $maildir = "/var/mail/exim/" . $fUsername . "/";

И добавляем в /etc/rc.conf
//> echo 'exim_enable="YES"' >> /etc/rc.conf

Ну и запускаем Exim
//> /usr/local/etc/rc.d/exim start




Ставим Roundcube

Ну и вот время пришло устанавливать Roundcube

//> cd /usr/ports/mail/roundcube

     +--------------------------------------------------------------------+
     |                   Options for roundcube 0.2,1                      |
     | +----------------------------------------------------------------+ |
     | |  [X] MYSQL       Use MySQL backend                             | |
     | |  [ ] PGSQL       Use PostgreSQL backend                        | |
     | |  [ ] SQLITE      Use SQLite backend                            | |
     | |  [X] SSL         Enable SSL support (imaps or google spellcheck) |
     | |  [X] LOCALCHECK  Install internal spellchecker                 | |
     | |                                                                | |
     | |                                                                | |
     | |                                                                | |
     +-+------v(+)------------------------------------------------------+-+
     |                       [  OK  ]       Cancel                        |
     +--------------------------------------------------------------------+

/usr/ports/mail/roundcube/> make && make install && make clean

Далее создаем базу в mysql для roundcube
//> mysql -u root -p
password:******
> CREATE DATABASE roundcubemail DEFAULT CHARACTER SET utf8 \
    -> COLLATE utf8_general_ci;
> GRANT ALL PRIVILEGES ON roundcubemail.* TO urcube@localhost \
    -> IDENTIFIED BY 'PWD';
> use roundcubemail;
> GRANT ALL PRIVILEGES ON *.* TO urcube@localhost \
    -> IDENTIFIED BY 'PWD' WITH GRANT OPTION;
>\q

Далее нужно создать все таблицы.
//> cd /usr/local/www/roundcube/SQL/
/usr/local/www/roundcube/SQL/> mysql -u root -p roundcubemail \
< mysql5.initial.sql
password:******

Примечание у кого mysql-server менее 4.1 нужно запускать mysql.initial.sql
Далее правим конфиги roundcube
//> ee /usr/local/www/roundcube/config/db.inc.php

// PEAR database DSN for read/write operations
// format is db_provider://user:password@host/database
// currently supported db_providers: mysql, mysqli, pgsql, sqlite, mssql

$rcmail_config['db_dsnw'] = 'mysql://urcube:PWD@localhost/roundcubemail';



Так же юзаем Roundcube с SSL
//> ee /usr/local/www/roundcube/config/main.inc.php

// the mail host chosen to perform the log-in
// leave blank to show a textbox at login, give a list of hosts
// to display a pulldown menu or set one host as string.
// To use SSL connection, enter ssl://hostname:993
$rcmail_config['default_host'] = 'ssl://pop.domain-ak.ru:9143';

// TCP port used for IMAP connections
$rcmail_config['default_port'] = 9143;

// Automatically add this domain to user names for login
// Only for IMAP servers that require full e-mail addresses for login
// Specify an array with 'host' => 'domain' values to 
// support multiple hosts
$rcmail_config['username_domain'] = 'domain-ak.ru';

// This domain will be used to form e-mail addresses of new users
// Specify an array with 'host' => 'domain' values to support
//  multiple hosts
$rcmail_config['mail_domain'] = 'domain-ak.ru';

// use this host for sending mails.
// to use SSL connection, set ssl://smtp.host.com
// if left blank, the PHP mail() function is used
$rcmail_config['smtp_server'] = 'ssl://smtp.domain-ak.ru';

// SMTP port (default is 25; 465 for SSL)
$rcmail_config['smtp_port'] = 9025;

// SMTP username (if required) if you use %u as the username RoundCube
// will use the current username for login
$rcmail_config['smtp_user'] = '%u';

// SMTP password (if required) if you use %p as the password RoundCube
// will use the current user's password for login
$rcmail_config['smtp_pass'] = '%p';

// SMTP AUTH type (DIGEST-MD5, CRAM-MD5, LOGIN, PLAIN or empty to use
// best server supported one)
$rcmail_config['smtp_auth_type'] = 'PLAIN';

// Use this charset as fallback for message decoding
$rcmail_config['default_charset'] = 'UTF-8';

И добавляем алиас в конфиг apache
//> ee /usr/local/etc/apache/httpd.conf

# For Roundcube
Alias /wmail "/usr/local/www/roundcube/"
<Directory "/usr/local/www/roundcube/">
    Options -Indexes FollowSymLinks MultiViews
    DirectoryIndex index.php
    AllowOverride None
    Order deny,allow
    Allow from all
</Directory>


//> /usr/local/etc/rc.d/apache restart

И переходим в браузере  http://ip_tachki/wmail
 






Установка Fetchmail 6.3.8

Ну и для полного счастья дополнил статью fetchmail
Нужен он для того что бы забирать почту с удаленных почтовых серверов на локальный
Поехали....
//> cd /usr/ports/mail/fetchmail
//> make config

     +--------------------------------------------------------------------+
     |                   Options for fetchmail 6.3.9                      |
     | +----------------------------------------------------------------+ |
     | |  [ ] X11     Python/Tkinter dependencies for fetchmailconf     | |
     | |  [X] NLS     National language support (NLS).                  | |
     | |  [ ] NTLM    Build in support for NTLM/MSN authentication.     | |
     | |  [ ] POP2    Build pop2 support (obsolete).                    | |
     | |  [ ] GSSAPI  Build GSSAPI support (requires KRB5_HOME to be set) |
     | |                                                                | |
     | |                                                                | |
     | |                                                                | |
     +-+------v(+)------------------------------------------------------+-+
     |                       [  OK  ]       Cancel                        |
     +--------------------------------------------------------------------+

//> make && make install && make clean

Даем права на конфиг fetchmail поскольку файл конфигурации (fetchmailrc) содержит пароли, доступ к нему должен иметь только его владелец (в противном случае fetchmail даже не запустится)
//> chmod 0710 /usr/local/etc/fetchmailrc

//> echo 'fetchmail_enable="YES"' >> /etc/rc.conf

//> ee /usr/local/etc/fetchmailrc

# Your fetchmail configuration goes here.
#
# See fetchmail(1), and/or use fetchmailconf (must not build the port
# WITHOUT_X11).

# Забираем почту c cancer@mail.ru кладем в cancer@domain-ak.ru
poll pop.mail.ru with protocol POP3:
    no dns, user cancer@mail.ru password Пароль is cancer@domain-ak.ru here;

# Забираем почту c chel@mail.ru кладем в chel@domain-ak.ru
poll pop.mail.ru with protocol POP3:
    no dns, user chel@mail.ru password Пароль is chel@domain-ak.ru here;

//> /usr/local/etc/rc.d/fetchmail start

//> cat /var/log/maillog

Oct 9 12:01:59 mail fetchmail[22460]: запускается демон fetchmail 6.3.8
Oct 9 22:37:33 mail fetchmail[23835]: разбужен на четверг, 9 октября 2008 г. 22:37:33
Oct 9 22:37:33 mail fetchmail[23835]: в спящем режиме в четверг, 9 октября 2008 г. 22:37:33 на 1800 секунд

Тут меняется время подключения fetchmail к серверам в секундах (т.е fetchmail будет подключатся 1 раз в 900 секунд=15 мин) у меня стоит 1800сек=30мин  =)
//> ee /etc/rc.conf

fetchmail_polling_interval="900"


Документация

http://www.exim.org/
http://www.dovecot.org/
http://www.postfixadmin.org
http://fetchmail.berlios.de/
http://www.roundcube.net/



Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?t=11605.

размещено: 2008-10-10,
последнее обновление: 2009-11-23,
автор: Cancer

оценить статью:

abigor, 2008-09-22 в 12:22:09

# Максимальное число одновременных подключений по
# SMTP. Рассчитывать надо исходя из нагрузки на сервер
smtp_accept_max = 50

на это exim ругается вот так
[root@bender exim]# /usr/local/etc/rc.d/exim restart
Stopping exim.
Starting exim.
2008-09-22 17:23:38 Exim configuration error in line 175 of /usr/local/etc/exim/configure:
 "smtp_accept_max" option set for the second time

Andrew, 2008-09-23 в 12:04:04

Странно, сколько конфигов видел, где exim работает с разными БД, нигде не видел где задается имя и пассводр для коннекта к БД...

Oloremo, 2008-09-23 в 12:11:35

MySQl:
hide mysql_servers = DBhost/DBname/DBuser/DBuserpass

У LDAP это приезжает в запросе.
Типа:
LDAP_AUTH = user="cn=root,dc=CAS" pass="secret"

ldap_aliases:
 driver = redirect
 allow_fail
 allow_defer
 data = ${lookup ldapm{LDAP_AUTH ldap:///dc=CAS?maildrop?sub?(&(objectClass=mailAlias)(mail=${local_part}@${domain}))}}

Cancer, 2008-09-23 в 12:17:56

А это что по твоему
configure
# хост/имя_бд/пользователь/пароль
hide mysql_servers = localhost/exim/exim/exim

Andrew, 2008-09-23 в 12:20:40

Спасибо камрады! Не заметил, плохо смотрел.

Oloremo, 2008-10-10 в 11:20:35

Всё же крайне странно видеть для боевого сервера такие вещи как MySQL 5.1 IMHO. Странно ставивть все экстеншены для PHP. И ещё более странно ставить при всём этом apache 1.3.

Это вроде как - два Биг Мака + Диетическая Кола...

lissyara, 2008-10-10 в 11:41:43

Почему? Я вообще слабо понимаю всю эту попсу c новыми апачами.
Если 1.3 работает и выполянет возложенные функции - зачем там второй?
Да и рассказ о почте. А какой апач - личное дело каждого.
======
а вот что не привязали фетчмайл к базе которая есть в новом постфиксадмине - это да, упущение. мона было бы сборкой почтs через веб инетерфейс рулить...

Oloremo, 2008-10-10 в 12:18:48

Я имел ввиду что ставить MySQL 5.1, который вообще только недавно из беты вышел и совершенно в данной конфигурации не нужен + все экстеншены к PHP - это не безопасно.

И при этом ставить апач 1.3 вроде как для безопасности?
И вообще - какую попсу? Имхо - апач 2.0 настолько уже стабилен, насколько это возможно. 67 багфиксов, как никак.

Cancer, 2008-10-16 в 14:05:12

Аутентификация exim`a как клиента

   begin routers

   # Отправка почты в МИР через smtp.masterhost.ru
   masterhost_router:
           driver = manualroute
           transport = masterhost_transport
           route_list = * smtp.masterhost.ru


   begin transports

   # Транспорт на smtp.masterhost.ru
   masterhost_transport:
           driver = smtp
           hosts = smtp.masterhost.ru
           hosts_require_auth = smtp.masterhost.ru


   begin authenticators

   # Аутентификатор для Мастерхоста (masterhost_transport) LOGIN
   # И плюс аутентификацию что лисяра придумал server_condition итд это она
   auth_login:
     driver = plaintext
     public_name = LOGIN
     client_send = : user@domain-ak.ru : masterhost_user_password
     server_condition = ${lookup mysql{SELECT `username` FROM \
                        `mailbox` WHERE `username` = \
                        '${quote_mysql:$auth1}' AND `password` = \
                        '${quote_mysql:$auth2}'}{yes}{no}}
     server_prompts = Username:: : Password::
     server_set_id = $auth1

ононим, 2008-10-17 в 1:36:52

я вот чего не пойму: зачем в dovecot активировать imap, если fetchmail все равно все распихивает в простые pop-ящики.
может кто подсказать?

Cancer, 2008-10-17 в 9:01:56

Так а как по твоему будет работать Roundcube????

staskur, 2009-01-02 в 18:22:01

Тут меняется время подключения fetchmail к серверам в секундах (т.е fetchmail будет подключатся 1 раз в 900 секунд=15 мин) у меня стоит 1800сек=30мин  =)

//> ee /usr/local/etc/rc.d/fetchmail

: ${fetchmail_polling_interval="900"}

мне кажется что правильнее не исправлять файлы, а использовать штатную возможность задания интервала опроса в rc.conf...

fetchmail_enable="YES"
fetchmail_polling_interval="900"

staskur, 2009-01-10 в 14:21:31

http://forum.lissyara.su/viewtopic.php?t=11605
тема на форуме почему то закрыта... поэтому пишу здесь.

pashtet писал  2008-10-10 15:37:53  про некорректное отображение вложений на кириллице.
http://forum.lissyara.su/viewtopic.php?t=11605#p104698


на roundcube-0.2,1   вложения на кириллице отображаются правильно и приходят к получателю в корректном виде.

Grishin_U_S, 2009-02-08 в 12:13:16

Классная статья! Люблю статьи со скринами (=

Grishin_U_S, 2009-02-10 в 7:50:15

А зачем в конце мы дали пользователю экзима права на все и вся? Если вместо прав

GRANT SELECT, INSERT, DELETE, UPDATE ON exim.* TO exim@localhost;

дать :

(добавил CREATE и ALTER)
GRANT SELECT, CREATE, ALTER, INSERT, DELETE, UPDATE ON exim.* TO 'exim'@'localhost';

то этому юзеру не потребуются права суперпользователя MySQL, что + к безопасности (=

Grishin_U_S, 2009-02-17 в 12:30:54

Зачем в /usr/local/etc/dovecot.conf
--
>>>>#!/bin/sh<<<<<
base_dir = /var/run/dovecot/
protocols = imap imaps pop3 pop3s
--
это что скрипт?

staskur, 2009-02-17 в 13:31:37

не вкурил.... о чем речь ?

Cancer, 2009-02-17 в 13:56:19

2 Grishun_U_S

исправлено!

Ive, 2009-02-18 в 14:13:53

Уберите этот acl, он зарубает bounce-ы с удаленных серверов, что как раз есть не по rfc. Сервер обязан принимать отправителей вида:
MAIL FROM:<>

# Рубаем тех, кто не пишет отправителя
 deny    condition     = ${if eq{$sender_address}{}{yes}{no}}
         hosts         = !127.0.0.1 : !localhost : *
         message       = "Sender address is empty?! not for RFC..."

Eugen, 2009-02-20 в 13:48:03

Касательно DNSBL:
opm.blitzed.org мертв - http://wiki.blitzed.org/OPM_status
dynablock.njabl.org мертв - http://www.njabl.org/dynablock.html

Предлагаю следующий список:
zen.spamhaus.org
dnsbl.sorbs.net
psbl.surriel.com
bl.spamcop.net
cbl.abuseat.org
bl.csma.biz

Kolesya, 2009-02-20 в 18:33:49

>Перезагрузим сервак так как я незнаю как сразу
>отключить sendmail :) потом исправлю ))

Примерно так :)
/etc/rc.d/sendmail forcestop

MarvinFS, 2009-07-09 в 15:20:55

для того чтобы SA не проверял почту идущую со внутренних почтовых серверов:

в sa-exim.conf изменить кондишн, где я прописал свои внутренние адреса почтовых серверов которые шлют почту через этот релэй.

SAEximRunCond: ${if and {{def:sender_host_address} {!eq {$sender_host_address}{127.0.0.1}} {!eq {$h_X-SA-Do-Not-Run:}{Yes}} {!eq {$sender_host_address}{10.11.12.220}} {!eq {$sender_host_address}{10.11.26.200}} } {1}{0}}

lexx, 2009-09-15 в 16:28:01

Господа прошу прощения за ламерский вопрос. В установке roundcube сказано:

Далее нужно создать все таблицы.
//> cd /usr/local/www/roundcube/SQL/
/usr/local/www/roundcube/SQL/> mysql -u root -p roundcubemail < mysql5.initial.sql
password:******
Какие именной таблицы?

zloe, 2009-09-25 в 19:36:23

нет таблицы alias_domain, без нее backup в postfix не работает
зы. 2lexx: а что ты только что сделал этой командой? смотри что внутри mysql5.initial.sql

Seltsam, 2009-10-22 в 14:50:08

ПРИМЕЧАНИЕ для RoundCube
Имеем траблу – пользователь может в своём аккаунте в RoundCube создать новый профиль, где ввести любой другой адрес отправителя и др. информацию. Единственное – такой адрес отправителя должен существовать на сервере. В итоге – юзер может отправлять письма от имени других пользователей! – что есть ахтунг =(
Вылечить можно несколькими способами:
1.    запретить создавать новые профили – т.е. убрать со страницы кнопку Новый профиль – пока не нашёл как и где;
2.    не отображать новые профили, что исключит выбор оных даже если они были созданы – это и реализовал =)

Способ 2.
Идём в program/include/ и редактируем файлик rcube_user.php – находим функцию function list_identities($sql_add = '') и правим SQL запрос нужным образом, чтобы вернулся только один identities. У меня получилось так:
// get contacts from DB
   $sql_result = $this->db->query(
     "SELECT * FROM ".get_table_name('identities')."
      WHERE  del<>1
      AND    user_id=?
      $sql_add
      ORDER BY ".$this->db->quoteIdentifier('standard')." DESC, name ASC, identity_id ASC LIMIT 1",
     $this->ID);

Т.е. добавил LIMIT 1, что возвратит только одну первую запись при чём которая по умолчанию (поле standart=1 а сортировка результатов именно по этому полю).

Можно конечно в WHERE прописать это условие - standart=1. Тогда никакой LIMIT не надо =)

Dystopian, 2009-10-22 в 16:42:31

Seltsam,
в main.inc.php
$rcmail_config['identities_level'] = 3;

Seltsam, 2009-10-22 в 16:50:15

2 Dystopian - сорри, пропустил... =)
спасибо!

Cancer, 2009-11-12 в 19:44:30

Upgrading Dovecot v1.1 to v1.2

http://wiki.dovecot.org/Upgrading/1.2

v_d_v, 2010-01-12 в 0:26:52

Для Exim 4.71 нашелся такой баг: при отправке наружу с SMTP авторизацией уходят письма со следующими заголовками: MAIL FROM:"mailbox@domain.tld"@hostname.com.
Если отправлять письма с локальных сетей без SMTP авторизации, то заголовки правильные.

v_d_v, 2010-01-12 в 0:56:42

Упустил, в новом конфиге Exima
#control = submission

Pendolf, 2010-05-01 в 21:52:41

много букв но за статтю респект а укоротить нельзя для профи и уменьшить оффтоп ?

Jackal, 2010-09-03 в 14:43:48

Сделал по этой статье и проблема в том что меня некоторые сервера отшибают  RCPT TO: 550 "Sender address is empty?! not for RFC...
Подскажите плиз в чем трабла

Cancer, 2010-09-03 в 14:50:07

С вопросами на форум!

386, 2011-12-22 в 20:03:09

нашел про fetchmail
http://www.sergeysl.ru/freebsd-postfixadmin/


Оставьте свой комментарий:
Ваше имя:   *
e-mail:  
жирный
наклонный
подчёркнутый
ссылка
цвет
Нынешний год:   *
 


Хостинг HOST-FOOD

2014-07-27, lissyara
gmirror

Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9

Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту

Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis

Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS

Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT

В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat

Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp

Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration

Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster

HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS

История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire

Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной

Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server

Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs

Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec

Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash

Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT

Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3

Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
2010-08-31, Cancer
Установка и настройка OpenVPN

На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
2010-08-25, manefesto
freebsd lvm

Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
2010-04-30, gonzo111
proftpd file auth&quota

Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
2010-04-22, lissyara
tw_cli

Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
2010-04-14, fox
MySQL Master+Master

MySQL (Master Master) and (Master Slave) Как настроить репликацию…
2010-03-09, terminus
DNS zones

Краткий ликбез про управление DNS зонами. Примеры проведения делегирования прямых и обратных DNS зон.
2010-03-09, aspera
Squid+AD (group access)

Настройка прокси сервера SQUID с автроризацией пользователей в AD. Разделение пользователей на группы
2010-03-02, BlackCat
Шлюз: Часть 4

Настройка дополнительных сервисов: синхронизация времени (OpenNTPD), клиент DynDNS.org.
2010-03-01, BlackCat
Шлюз: Часть 3

Настройка DHCP и DNS серверов для работы внутри частной сети, c поддержкой внутренних (частных зон) DNS, а так же интеграция DHCP и DNS сервисов.
2010-03-01, BlackCat
Шлюз: Часть 2

Конфигурация МСЭ pf для проброса портов с изменением порта назначения и без, а так же поддержки активного режима FTP и ограничения максимального размера сегмента
2010-03-01, BlackCat
Шлюз: Часть 1

Быстрая настройка шлюза/маршрутизатора с установлением PPPoE-соединения, поддержкой NAT и DNS-forwarding.
2010-02-23, Morty
darkstat

Простая считалка траффика, со встроенным веб-сервером. Очень маленькая, может делать отчеты трафика по хостам, портам, протоколам, а также строить графики
2010-01-23, gonzo111
squid+sams+sqstat

Пилим squid и sams - примеры конфигов с объяснениями. Установка SqStat.
2009-12-19, schizoid
mpd5 + radius + ng_car + Abills

Настройка pppoe-сервера с биллинговой системой Abills и шейпером ng_car
2009-11-16, lissyara
UFS->ZFS

Удалённая миграция с UFS на ZFS. Загрузка с раздела zfs. Настройка для работы с малым количеством памяти под архитектурой i386.
2009-11-13, gx_ua
fusefs-ntfs

Установка, настройка и использование fusefs-ntfs, драйвер NTFS, предназанченного для монтирования NTFS разделов под FreeBSD
2009-11-12, Morty
LiveCD

Создание собственного LiveCD с необходимыми вам изменениями, автоматизирование данного процесса, а так же вариант скоростной сборки СД.
2009-09-27, lissyara
Samba как PDC

Контроллер домена - аналог M$ NT4 домена под самбой, без использования LDAP и прочей хиромантии. Просто и быстро =)
2009-08-30, terminus
ipfw nat

Подробное руководство по ipfw nat, сложные случаи конфигурации.
2009-08-24, levantuev
HotSpot

Установка Hotspot системы в общественное заведение.
2009-08-18, lissyara
diskless

Создание бездисковых терминалов под управлением FreeBSD - с загрузкой по сети. Используются для старта rdesktop и подключения к виндовому серверу терминалов.
2009-07-29, BAV_Lug
Видеонаблюдение

Настройка бюджетного варианта видеонаблюдения на удаленном объекте
2009-07-22, Cancer
OpenLDAP адресная книга

Настройка и создание адресной книги на базе OpenLDAP + phpLDAPadmin
2009-06-30, SergeySL
AimSniff

Руководство по созданию системы мониторинга ICQ-переписки на базе AimSniff, использующей базу данных MySQL для хранения и Web-интерфейс WAS (Web Aim Sniff) для просмотра перехваченных сообщений
2009-06-25, atrium
Управление правами доступа

Полномочия пользователей и файлов, принадлежащих им, формирует концепцию ОС UNIX.
2009-06-16, DNK
Exim+PgSQL

Установка почтовой системы exim+pgsql на FreeBSD 7.1
2009-05-30, mvalery
HDD(mbr) -> HDD(gpt)

Как разбить диск размером более 2TB на разделы, сделать загрузочным, а затем перенести на него информацию с рабочей системы — донора.
2009-05-22, Cancer
SendXMPP

Отправка сообщений на Джаббер сервер по средствам SendXMPP
2009-05-11, Raven2000
Network UPS Tools

Network UPS Tools представляет собой набор программ, которые обеспечивают общий интерфейс для мониторинга и администрирование UPS оборудования.
2009-04-29, m0ps
IPSEC over GRE with RIP

Пример IPSEC over GRE и динамическим роутингом (RIP), с ADSL в качестве последней мили на оборудовании Cisco.
2009-04-24, WhiteBear777
qemu network

Появилась необходимость поставить на БСД эмулятор(qemu) и настроить в качестве гостевой ОС Windows XP, предоставив ей выход в локалку и в сеть internet...
2009-04-22, vp
freebsd + huawei 162 gsm modem

В статье описывается простой способ подключения модема huawei 162 к freebsd + первичная настройка smstools
2009-04-12, mvalery
Мониторинг RAID

Мониторинг из командной строки RAID компаний AMCC 3ware, HighPoint, Dell (Perc 5/i и PERC 6/i) и LSI (MegaRAID SAS 8408E и SAS1078)
2009-04-09, texnotronic
RAID1 via LAN

Функциональности DRBD во FreeBSD можно добиться примонтировав блочное устройство по сети при помощи GEOM Gate (ggate) и добавив его в зеркало с локальным диском средствами gmirror.
2009-04-03, Raven2000
Оптимизация хоста для CMS

В последнее время на старый и не очень быстрый ПК (Celeron 800 RAM 256) мною было навешано с десяток сайтов и некоторые были из серии тяжелых CMS. И так нам дано FreeBSD 7.1 и ~10 сайтов/CMS.
2009-04-01, atrium
VSFTPD + AD && MySQL

Настройка самого безопасного сервера FTP - vsftpd.
2009-03-31, Dron
Peoplenet + C-motech (3G)

Описание подключения к сети Peoplenet посредством 3G модема С-motech CCu-650U на FreeBSD
2009-03-25, lissyara
mod_auth_external

mod_auth_external - авторизация пользователей в apache c помощью внешней программы - например, системных пользователей.
2009-03-24, gx_ua
Lightsquid

Частично lightsquid может заменить sams: быстрая и простая инсталляция, быстрый парсер, cgi скрипт для динамической генерации отчета, нет привязки к БД, различные графические отчеты, мультиязычный инт
2009-03-18, LHC
Установка Zabbix-1.6

Установка и первоначальная настройка системы мониторинга Zabbix (версия 1.6)
2009-03-16, Cancer
Принт-Сервер Samba+LPD & AD

Простейшая настройка Принт-Сервера на FreeBSD используя Samba+LPD & AD
2009-03-04, Mad_caterpillar
ipsec_vpnc

Настройка VPN IPSec концентратора на FreeBSD 6.2 для клиента cisco с использованием ipsec-tools и авторизацией в активной директории
2009-02-18, Andy
Free-SA

Программа анализирует log файлы Squid'а и формирует по ним отчет.
2009-02-02, Cancer
Openfire Jabber Server

Установка Jabber сервера на примере Openfire
2009-01-28, Cancer
mpd5 + сжатие и шифрование

Установка VPN сервера mpd5 + сжатие и шифрование
2009-01-26, vp
freebsd + webcamera

Подключение и настройка вебмкамеры для работы с freebsd на примере Logitech QCam STX
2009-01-10, Grishun_U_S
конфиг для офисов

В статье разбирается конфиг для офиса, пользователи которого имеют строгие ограничения по портам. Заворачиваем www трафик на транспарентный прокси, а остальное NAT'им. Эффективно делим канал интернет
2008-12-27, Storoge
sftp+chroot

Возникла необходимость дать возможность нескольким пользователям заливать на сервер контент для своих сайтов через sftp, чтобы при этом не страдала безопасность.
2008-12-13, Morty
PurefFTPd

Администрирование pureftpd-сервера с помощью вэб интерфейса Usermanager
2008-12-11, lissyara
termlog

Небольшая простая утилита, использующаяся для записи в файл всего что происходит на терминалах системы. Полезно, когда есть доступ по ssh у тех, кому не очень доверяете. Паранойя - это не плохо =)
2008-11-26, Cancer
SQUID+SAMS +Rejik-(ADLDAP)

Установка Прокси сервера SQUID с красивой мордой SAMS и редиректором REJIK,для учета кто куда ходил + графики в pdf,РЕЖИК собственно рубит банеры и запрещает пользователям ходить на запрещенные сайты,
2008-11-22, dvg_lab
php5-oci8

Решение проблем segmentation fault (core dumped) при работе с oracle8-client и php5-oci8
2008-11-21, m0ps
NTP

Пример настройки NTP сервера для локальной сети и клиента, для синхронизации времени с локальный NTP сервером. Обновление ntpd из портов.
2008-11-20, Cancer
SQUID+SAMS +Rejik-(NTLM)

Установка Прокси сервера SQUID с аутентификацией по NTL с красивой мордой SAMS и редиректором REJIK,для учета кто куда ходил + графики в pdf, РЕЖИК собственно рубит банеры и запрещает пользователям хо
2008-11-20, UA
Hotspot

Настройка безпроводной точки доступа (WiFi) на freebsd
2008-11-12, Shaman
Enemy Territory

Появилась у меня такое желание поднять сервер Enemy Territory. Поискал погуглил, ничего толкового не нашел пришлось все самому делать. И вот решил поделиться опытом. Начинаем......
2008-11-11, lissyara
Samba+ NT ACL

Использование vfs самбы - модули full_audit и recycle. Настройка для использования в качестве файлопомойки с 500+ одновременно работающих юзеров. Раздача прав через нативный виндовый интерфейс.
2008-11-11, Raven2000
Upgrading OpenBSD

Сегодня мы будем обновлять OpenBSD. Систему необходимо поддерживать в актуальном виде и следить, чтобы все работало, как часы и все дырки были залатаны до прихода врага =)
2008-11-10, lexy
SMSTools 3

Как автоматизировать отправку и обработку входящих сообщений при помощи мобильного телефона, датакабеля и компа
2008-11-06, Cancer
Asterisk IP PBX

Установка VoiP сервера Asterisk IP PBX для соединения двух шлюзов и АТС
2008-10-30, atrium
Samba & CUPS & AD & ACL

Настройка Samba в роли доменного файл-сервера, и CUPS в роли принт-сервера для Windows клиентов
2008-10-17, Raven2000
src & ports

Конечно, в OpenBSD система портов никогда не сможет быть полной сравнение с той же системой во FreeBSD. Связано это с тем, что разработчики включают в порты лишь те приложение которые протестированн
2008-10-13, Morty
Mysql - базовое описание

Базовое описание и принципы работы с MySQL
2008-10-10, Cancer
exim&dovecot + fetchmail + SSL

Exim & Dovecot + Postfixadmin & Roundcube + Fetchmail & smtp_relay С возможностью отправлять письма через смтп релей провайдера. С использование SSL шифрование: POP3s IMAPs sSMTP
2008-10-09, m0ps
Дополнительные порты для роутера

Увеличение количества Ethernet портов маршрутизатора за счет свободных портов коммутатора пробросив vlan с сабинтерфейса роутера на интерфейс коммутатора.
2008-10-06, princeps
Bacula

Настройка сервера системы резервного копирования Bacula на FreeBSD для бэкапов FreeBSD и Windows машин
2008-10-02, zheromo
Postfix + DBMail

Создание почтовой системы на основе Postfix + DBMail + SASL2 + TLS + DSpam + ClamAV + RoundCubeWebMail
2008-10-02, Cancer
SugarForge CRM

SugarForge CRM предоставляет подавляющее большинство функциональных возможностей CRM систем
2008-09-12, arksu
ng_ipacct + squid

Подсчет трафика с помощью ng_ipacct. Связка ng_ipacct + squid + парсер логов + авторизатор + nginx + mysql и куча служебных скриптов для работы всей системы.
2008-09-03, Raven2000
GLPI

Мне надо было найти замену существующей программы инвентаризации, чтобы за компьютерами, принтерами, картриджами, лицензиями и тп был учет. Желательно с дополнительными бонусами типа системы подачи...
2008-09-03, salimk
POWERDNS

Статья о том как мигрировать с DNS сетвера ISC Bind на POWERDNS
2008-09-03, DNK
Rinetd

Редирект TCP портов с помощью утилиты rinetd - просто до безобразия - само прилодение простое, конфиг в одну строчку - что ещё надо для счастья? =)
2008-09-03, L!Ner
eGroupWare

Это сервер групповой работы. Он укомплектован собственным веб-интерфейсом, который обеспечивает доступ к вашим данным с любой платформы по всей планете.
2008-08-30, jafff
MAC адрес

У девайса VoIP Planet VIP-000 слетел MAC адрес и стал FF-FF-FF-FF-FF-FF, как я его востанавливал
2008-08-30, Morty
clonehdd

Перенесение, бэкапирование HDD,легко и просто
2008-07-31, Raven2000
Proxy Auto Configuration

Возникла необходимость автоматически настраивать прокси для всех компов и не бегать например если поменялось что-то на сервере прокси. Для этого давно существует технология Proxy Auto Configuration.
2008-07-29, f0s
NNTP сервер

Конфигурирование собственного NNTP-сервера.
2008-07-28, Al
spamooborona

настройка yandex spamooborona в качестве smtp-proxy для работы с exim
2008-07-28, Cancer
SQUID+SAMS +Rejik-(NCSA)

Установка Прокси сервера SQUID с красивой мордой SAMS и редиректором REJIK,для учета кто куда ходил + графики в pdf,РЕЖИК собственно рубит банеры и запрещает пользователям ходить на запрещенные сайты,
2008-07-20, Raven2000
Pax

Эта замечательная утилита поставляется с FreeBSD по умолчанию, и она имеет неплохой потенциал. Можно создавать архивы модифицировать их, а так же живьем переносить всю операционную систему с данными
2008-07-16, Andy2k
BIND & AD

Настройка BIND для обслуживания запросов контроллеров Active Directory. Альтернатива поднятию DNS от Microsoft.
2008-07-16, aleksey.kravchenko
Samba (PDC+BDC)

Поднять главный (офис) и резервный (филиал) контроллер домена на базе Samba и OpenLDAP, организовать синхронизацию и репликацию между ними. Запись в LDAP должена выполняться только на PDC.
2008-07-14, aleksey.kravchenko
OpenVPN + LDAP

Статья о том, как настроить OpenVPN с авторизацией пользователей в OpenLDAP.
2008-07-14, aleksey.kravchenko
ProFTPd + LDAP

ProFTPd с авторизацией пользователей в OpenLDAP
2008-07-13, lissyara
Asus Eee PC

Дали на несколько дней поиграться Asus Eee PC - мелкий ноутбок по смешной цене. Ну, первым делом ставим правильный ОС и смотрим - что из этого получиться.
2008-07-09, terminus
DNS сервер Unbound

Установка и настройка кеширующего DNS сервера Unbound под управлением FreeBSD 7.0
2008-07-08, f0s
mozilla autoconfig

Автонастройка браузера и почты Mozilla Seamonkey пользователям
2008-07-05, lissyara
iftop

Утилита предназначена для мониторинга загрузки канала в режиме реального времени - позволяет видеть кто именно занял полосу. Полезно для организаций с FreeBSD на шлюзовой машине.
2008-07-02, manefesto
snd_hda

Патчим snd_hda для корректной работы с наушниками
2008-06-27, Grishun_U_S
dd : бэкапируем windows

Клонирование разделов windows с помощью загрузочного диска FreeBSD
2008-06-25, terminus
DNS сервер NSD

Установка и настройка авторитарного DNS сервера NSD под управлением FreeBSD 7.0
2008-06-17, Al
NetXtreme BCM5722

Драйвер для сетевой карты NetXtreme BCM5722 Gigabit Ethernet
2008-06-15, tango
Amanda

Установка и настройка сервера резервного копирования Amanda на FreeBSD.
2008-06-12, LMik
Виртуальный свитч

Статья описывает создание виртуального коммутатора для соединения удаленных физических ethernet сетей.
2008-06-08, littlesavage
SiS*Mirage*1 на D201GLY2

Как заставить работать видеоrарту SiS*Mirage*1 на материнской D201GLY2
2008-06-06, nsand
Рыбалка на FreeBSD

Стьатья о том как настроить рыбалку со спутника под FreeBSD
2008-06-06, nsand
TT budget S-1401

Настройка драйвера ttbudget (SkyStar3) под FreeBSD
2008-05-30, Andy2k
NOD32 mirror

Скрипт для создания зеркала обновлений для антивируса NOD. Автоматически ищет нужные логин-пароль для получения обновлений. В теории не требует обслуживания.
2008-05-25, Romzes
метаданные exif

Пример сортировки фотографий сделаных разными фотоаппаратами, с разными названиями, датами создания/модификации. Из под консоли, конечно.
2008-05-23, FenX
svn+apache+trac

Установка связки Apache2.2 + Subversion + Trac (Установка и настройка SVN сервера с доступом к репозиториям по http протоколу)
2008-05-22, Grishun_U_S
простой конфиг PF

В статье разбирается простой конфигурационный файл pf "изнутри можно все"
2008-05-20, KrivoSoft
HAVP

HAVP(HTTP AntiVirus proxy)- работает как http прокси, проверяющий файлики используя LibClamav. В заметке описан процес прикручивания антивируса к уже работающему прокси серверу squid.
2008-05-20, Covax
ALTQ в IPFW

Исполльзование ALTQ вместе с IPFW
2008-05-19, nonalog2007
pppoe

Настройка ADSL-модема для подключения к Интернет.
2008-05-04, Abigor
php + mssql

Настройка php на freebsd для работы с базами в mssql по доменной авторизации.
2008-04-28, serge
i386=>amd64

Рассматриваеться способ удаленной миграции с архитектуры i386 на amd64 на рабочем сервере.
2008-04-24, Mr.Y
Lan over Bluetooth

Статья описывает как используя Bluetooth, объединить две FreeBSD машины в сеть.
2008-04-19, lissyara
WiFi WPA

Подключение FreeBSD к беспроводной WiFi сети с использованием шифрования WPA.
2008-04-18, nikll
nginx+php-fpm+mysql

Статья о настройке мощного веб сервера который не ляжет от хорошей нагрузки.
2008-04-16, nikll
qmail-ldap + AD

Статья о том как я прикрутил qmail к АД win2003 (с упровлением почтовыми аккаунтами через консоль mmc из под винды)
2008-04-14, SHPAk
Приглашение csh/tcsh

Приглашение csh/tcsh не всегда удобно. Здесь описано как помянять оное...
2008-04-07, inspirra
deltup, xdelta, bdelta

Некоторые тонкости создания бинарных патчей. И использование "The dynamic deltup server network" для экономии на обновлениях исходников программ устанавливаемых из портов.
2008-04-02, fr33man
exim + cyrus-imapd

Руководство по настройке почтовой системы на базе OpenBSD-4.2: exim + cyrus-imapd + mysql
2008-03-30, Morty
LiveCD (+restore)

LiveCD, который развернет мне на жёсткий диск готовую настроенную систему
2008-03-25, lissyara
BlueTooth mouse

Краткое повествование о том, как привернуть BlueTooth мышь к FreeBSD. Краткое - потому как делается это с полпинка...
2008-03-21, moonug
ProFTPD+iconv

Порт позволяющий включить перекодировку имён файлов в proftpd. Раньше для этого был патч, а щас всё поломали =))
2008-03-11, helloworld
vsftpd + mysql

Настройка фтп сервера vsftpd с пользователями из mysql
2008-03-06, Raven2000
Call of Duty 4

Call of Duty 4: Modern Warfare — компьютерная игра, продолжение серии COD, разработанное студией Infinity Ward. Это первая игра в серии, действие которой происходит не во время мировой войны.
2008-03-04, schizoid
NeTAMS 2

Netams, статистика, биллинг, огрнаичение и подсчет трафика
2008-03-04, schizoid
NeTAMS

Программа для учета и управления сетевым трафиком
2008-03-01, Le1
EA Battlefield 2 server

Установка игрового сервера EA Battlefield 2 под ОС FreeBSD
2008-02-25, dikens3
Dynamic DNS

Свой сервер с динамическим IP-Адресом.
2008-02-23, fr33man
squid ntlm

Настройка Squid с аутентификацией ntlm, под OpenBSD. Решение проблем сборки с поддержкой АД.
2008-02-18, lissyara
BlueTooth

Встала задача залить на Нокию гиг музыки через BlueTooth. ОС - правильный - FreeBSD, вот про то как это сделать из под неё - и рассказ. Также немного про нынешнее состояние дел с голубыми зубами =)
2008-02-17, Raven2000
NFS & Win2k3

При работе с UNIX системами на предприятиях часто приходится организовывать совместную работу с Windows. Необходимо обеспечить взаимодействие UNIX<>WIN бывает, что доступ по FTP или др не устраивает.
2008-02-14, Morty
Lightsquid

Снятие статистики с OOPS, SQUID с помощью lightsquid - нечто на подобии SARGa, и выполняет туже задачу, подбивает статистику пользования прокси сервером
2008-02-14, Morty
OOPS

Краткое описание установки и настройки прозрачного прокси-сервера OOPS
2008-02-12, fr33man
Apache

Настройка web-сервера apache, на базе OpenBSD. Нужен был web сервер. Стандартно нужно было ставить apache. Но я помнил, когда раньше работал с OpenBSD, что апач поставляется вместе с системой. Так
2008-02-11, Raven2000
Установка OpenBSD

OpenBSD — свободная многоплатформенная операционная система, основанная на 4.4BSD — BSD-реализации UNIX системы. Основным отличием OpenBSD от других свободных операционных систем, базирующихся на
2008-01-31, serge
ApacheStats

Сбор статистики с веб-сервера Apache в Cacti с использованием модулей mod_status и mod_info. Отображается число хитов в секунду, загрузка чилдренов и прочая полезная инфа.
2008-01-30, Raven2000
CVSUP и софт через Proxy

При работе за прокси люди испытывают неудобство при обновление портов и установки портов. Хотя, наверное, догадываются, что FreeBSD может элегантно обходить эти камни, но не знают как.
2008-01-25, nikll
kde и smb

статья о том как фрю сделать членом win2003 домена и о том как в кде 3.5 ходить по доменным шарам с нормальной русской кодировкой
2008-01-21, Fastman
Создание программ на QT4/С++

Установка и настройка QT4. Пример создание приложения с GUI.
2008-01-17, Morty
stunnel для pop3,smtp

Создание защищенного подключения для сервисов POP3, SMTP, Imap , www с помощью stunnel
2008-01-09, lissyara
Atheros AR5007EG

Прикручивание карточки Atheros AR5007EG (в ноутбуке Toshiba L40-139) под FreeBSD.
2008-01-04, LMik
growfs

Статья наглядно описывает изменение размера раздела диска в FreeBSD при помощи growfs, без потери данных находящихся на диске.
2007-12-23, serge
FreeBSD на VDS

Рассматривается настройка FreeBSD6.2 на VDS с чистой ОС.
2007-12-22, serge
OTRS на Apache1

Рассматривается установка Open Ticket Request System для работы на хостинг сервере в связке apache1.3 + mod_perl + mysql50.
2007-12-11, INFected
SkyStar-2+SlonAx

Встала задача организовать прием трафика от спутникового провайдера. Естественно на раздающем сервере должна быть FreeBSD. А как же иначе?
2007-12-08, netcat
GEOM-ELI

Шифрование файловых систем посредством класса GEOM-ELI
2007-12-07, helloworld
PVPGN

Настройка сервера Battle.net в небольшой локальной сети.
2007-12-06, seacon
ESET NOD32

Описание настройки антивирусной системы NOD32 ESET File Security
2007-11-23, azu
Bluetooth proximity monitor

Описание и скрипты для отслеживания удаленности bluetooth устройства.
2007-11-19, catdog_
verlihub (p2p)

описывается, как установить, настроить p2p-сервер и как им управлять
2007-11-14, UA
OpenVPN

руководство по настройке openvpn между FreeBSD и Windows
2007-11-11, AlkoGekS
atacontrol

Проверка работы raid-1 с помощью штатной утилиты atacontrol на freebsd 6.2
2007-11-08, Raven2000
Transport Tycoon Deluxe

Transport Tycoon Deluxe (сокращенно - TTD) - экономическая транспортная стратегия, в которой целью игрока является создание максимально доходной транспортной империи.
2007-11-06, lissyara
squid+AD

Инструкция - как авторизовать пользователей в домене, разделив доступ к ресурсам по виндовым группам - кому куда можно, а кому нельзя, с использованием squid2.6. Ну и объяснение - почему пока не 3.0.
2007-11-03, schizoid
icecast2

Вещание интернет радио в локальной сети с помощью icecast2
2007-11-02, AlkoGekS
RoundCube

Возникла необходимость перевести пользователей с squirrelmail на roundcube, завязать все это хотелось на postgresql, чтобы и в ней разобратьс заодно.
2007-10-30, SniZ
queues

Краткая заметка по использованию очередей В IPFW
2007-10-29, s@sh@
LACP и VLAN

Описание настройки LACP отдельно и совместно с VLAN во FreeBSD 7.0
2007-10-26, Al
portaudit

Эти приложение используется для контроля уязвимостей и обновления приложений, установленных из портов.
2007-10-24, -cat-
Заметки об IPFW

Заметки о настройке IPFW, подключение IPFW и NATD, принцип взаимодействия, принципы построения правил IPFW.
2007-10-23, Raven2000
X-Bomber

Представляю вниманию отличную аркаду которая скрасит наш быт и существование в офисном пространстве именуемая как "работа" И так прошу любить и жаловать X-Bomber
2007-10-22, Raven2000
TeamSpeak

Teamspeak (тимспик) — семейство программ, предназначенных для общения голосом в сети. От классического телефона отличается практически неограниченным количеством абонентов, разговаривающих одноврем
2007-10-22, RageLT
Nginx+php+fcgi

"Nginx + PHP + Spawn-fcgi" - установка nginx под FreeBSD и настройка для выполнения PHP скриптов.
2007-10-20, dikens3
UFS2

Как устроена UFS2. Небольшой взгляд изнутри.
2007-10-19, Al
Nagios - мониторинг сети

настройка мониторинга сети с использованием Nagios
2007-10-19, BlackCat
FFS из-под WinXP

Описание програмки для чтения BSD разделов под Windows. К сожалению, диск подключается в режиме только чтения - но и это уже неплохо.
2007-10-14, dikens3
recovery files

Восстановление файлов на FreeBSD с использованием foremost, sleuthkit, photorec. Немного теории о хранении файлов на диске.
2007-10-05, lissyara
ClamAV mirror

Понадобилось создать внутри локальной сети зеркало обновлений ClamAV, c учётом того, что разработчики это не привтствуют - пришлось изобретать подпорки и велосипеды.
2007-10-04, SeeD
irc + services

Установка irc сервера (unreailircd) + сервисов (anope) на FreeBSD 6.0. Приведён тот необходимый минимум, который вполне подойдет для одиночных серверов.
2007-10-04, lissyara
установка по сети

Столкнувшись с невозможностью поставить FreeBSD на старенький ноут с CD-ROM (толи диск царапаный, толи чё), пришлось изгаляться с установкой по сети - благо на нём был PXE у встроенной сетевухи.
2007-10-04, Al
cups-samba на samba+AD

Пример настройки сервера печати с использованием CUPS, Samba и AD. Пример установки и настройки клиентских (для винды) драйверов принтера на сервер с использованием порта cups-samba.
2007-10-03, schizoid
ipcalc

Скрипт для вычисления широковещательного адреса, диапазон хостов, шаблон сетевой маски по полученному IP и сетевой маске. Может использоваться для конструирования сетей и подсетей, а также в обучающих
2007-09-26, lissyara
немного о ssh

Краткое описание как пробросить порты с удалённой локальной сети на локальную машину при помощи ssh. Может быть полезным, когда нет VPN в удалённую сеть, а есть ssh, и нужен доступ к какому-то сервису
2007-09-26, SniZ
mod_ntlm2

mod_ntlm2 - модуль для apache22, позволяющий прозрачно авторизовать пользователя использую его доменную учетную запись. Удобно, если необходимо сделать ограниченный доступ к содержимому корпоротивного
2007-09-18, lissyara
klaptopdaemon

даемон KDE для мониторинга состояния батареи ноутбука. Наверное, самое удобное и функциональное из того, что я перебрал.
2007-09-17, bisyarin
Удаленное разбиение HDD

В статье рассмотрен пример удаленной доразбивки винчестера. Показан путь решения задачи как с использованием sysinstall, так и с помощью утилит fdisk, bsdlabel и newfs.
2007-09-14, freeman_tnu
DSL-G804V и FreeBSD 6.2

Настройка VPN-туннеля между D-Link DSL-G804V и FreeBSD 6.2
2007-09-13, lissyara
KNemo

Служба KDE отображающая в трее значка сетевого подключения, с богатым функционалом - позволяет собирать статистику, строить графики, выполнять скрипты при изменении статуса сетевого подключения.
2007-09-12, lissyara
desktopbsd-tools

Набор утилит для упрощения жизни под KDE. Включают в себя утилиты трея для слежения за сетью, монтирования/ демонтирования, информацию о заряде батереи. Также несколько апплетов для контрольной панели
2007-09-06, lissyara
nettop

Приложение позволяющее отслеживать сетевую активность по портам-протоколам, и отображать скорость передачи данных по этим портам и протоколам. Весьма удобно для наблюдения - что происходит на сервере.
2007-09-04, squid
sshd & AD

Использование одной учетной записи на FreeBSD и Windows - используя AD для авторизации пользователей по ssh
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 2 чел.
За последние 30 мин было: 15 человек
За сегодня было
721 показов,
89 уникальных IP
 

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

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.1642 секунд
Из них PHP: 81%; SQL: 19%; Число SQL-запросов: 83 шт.
Исходный размер: 441335; Сжатая: 78681