LINUX.ORG.RU

Сообщения Bain

 

Аутентификация в Zimbra через Outlook

Добрый день. Поставил зимбру, пока что все настройки по- умолчанию. Могу подключиться к своему ящику только по TLS, без шифрования отказывается авторизоваться. В админке повыключал всё, где упоминается TLS и перезагрузил сервер, но не помогло.

Bain ()

Ubuntu флудит.

Добрый день. Заметил, что один сервер стал валить нам локалку и интернеты ( всё стало очень медленным ), методом стуков в бубен обануржил, что это Ubuntu Server 14, tcpdump стреляет очередью запросов вида:

16:11:29.598371 ARP, Request who-has 192.168.0.20 tell 192.168.0.150, leight 28
И т.д. аналогично, если просто замкнуть 2 сетевухи сервера патч- кордом. В гугл сходил, пока не понял, что делать с этим.

Bain ()

Миграция Courier->Dovecot

Добрый день, подскажите, реально ли сконвертировать почтовые ящики из Courier в Dovecot? Если да, то как?

Bain ()

exim+dovecot Адресная книга и автоответчик.

Добрый день, товарищи. Установил на Ubuntu Server 14.04 Exim4 и Dovecot, в качестве админки- Postfixadmin и веб- гуй для пользователей- RainLoop. Возник вопрос, как там реализовать автоответчик, мол пользователь уходит в отпуск, задает сообщение, которое будет отсылаться при отправке почты на его ящик. И как сделать общую адресную книгу? Никак не пойму, ибо новичок в этом деле. Заранее спасибо.

Bain ()

Postfixadmin и минимальная длина пароля

Добрый день. Пользуюсь сабжем на ubuntu server 14.04. Не понятно как изменить минимальную длину пароля, скажем, на 3 ( сейчас 5 ), гугл не особо помогает, в конфиге единственное упоминание длины закомментировано, но янепонимат как сделать правильно и красиво, конфиг прилагаю

<?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://postfixadmin.sf.net
 *
 * @version $Id: config.inc.php 1613 2013-12-26 14:35:02Z christian_boltz $
 * @license GNU GPL v2 or later.
 *
 * File: config.inc.php
 * Contains configuration options.
 */

/*****************************************************************
 *  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 * You have to set $CONF['configured'] = true; before the
 * application will run!
 * Doing this implies you have changed this file as required.
 * i.e. configuring database etc; specifying setup.php password etc.
 */
$CONF['configured'] = true;

// In order to setup Postfixadmin, you MUST specify a hashed password here.
// To create the hash, visit setup.php in a browser and type a password into the field,
// on submission it will be echoed out to you as a hashed value.
$CONF['setup_password'] = '5ccdddf404a6d2f60e14979bf5517578:fc44c3d3197baba09bb2f8409da6d93167fa151e';

// Language config
// Language files are located in './languages', change as required..
$CONF['default_language'] = 'en';

// Hook to override or add translations in $PALANG
// Set to the function name you want to use as hook function (see language_hook example function below)
$CONF['language_hook'] = '';

/*
    language_hook example function

    Called if $CONF['language_hook'] == '<name_of_the_function>'
    Allows to add or override $PALANG interface texts.

    If you add new texts, please always prefix them with 'x_' (for example
    $PALANG['x_mytext'] = 'foo') to avoid they clash with texts that might be
    added to languages/*.lang in future versions of PostfixAdmin.

    Please also make sure that all your added texts are included in all
    sections - that includes all 'case "XY":' sections and the 'default:'
    section (for users that don't have any of the languages specified
    in the 'case "XY":' section).
    Usually the 'default:' section should contain english text.

    If you modify an existing text/translation, please consider to report it
    to the bugtracker on http://sf.net/projects/postfixadmin so that all users
    can benefit from the corrected text/translation.

    Returns: modified $PALANG array
*/
/*
function language_hook($PALANG, $language) {
    switch ($language) {
        case "de":
            $PALANG['x_whatever'] = 'foo';
            break;
        case "fr":
            $PALANG['x_whatever'] = 'bar';
            break;
        default:
            $PALANG['x_whatever'] = 'foobar';
    }

    return $PALANG;
}
*/

// Database Config
// mysql = MySQL 3.23 and 4.0, 4.1 or 5
// mysqli = MySQL 4.1+
// pgsql = PostgreSQL
$CONF['database_type'] = 'mysql';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'root';
$CONF['database_password'] = 'dante';
$CONF['database_name'] = 'mail';
// If you need to specify a different port for a MYSQL database connection, use e.g.
//   $CONF['database_host'] = '172.30.33.66:3308';
// If you need to specify a different port for POSTGRESQL database connection
//   uncomment and change the following
// $CONF['database_port'] = '5432';

// 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',
    'quota' => 'quota',
        'quota2' => 'quota2',
);

// Site Admin
// Define the Site Admin's email address below.
// This will be used to send emails from to create mailboxes and
// from Send Email / Broadcast message pages.
// Leave blank to send email from the logged-in Admin's Email address.
$CONF['admin_email'] = '';

// Mail Server
// Hostname (FQDN) of your mail server.
// This is used to send email to Postfix in order to create mailboxes.
$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!)
// mysql_encrypt = useful for PAM integration
// authlib = support for courier-authlib style passwords
// dovecot:CRYPT-METHOD = use dovecotpw -s 'CRYPT-METHOD'. Example: dovecot:CRAM-MD5
//   (WARNING: don't use dovecot:* methods that include the username in the hash - you won't be able to login to PostfixAdmin in this case)
$CONF['encrypt'] = 'md5crypt';

// In what flavor should courier-authlib style passwords be encrypted?
// md5 = {md5} + base64 encoded md5 hash
// md5raw = {md5raw} + plain encoded md5 hash
// SHA = {SHA} + base64-encoded sha1 hash
// crypt = {crypt} + Standard UNIX DES-encrypted with 2-character salt
$CONF['authlib_default_flavor'] = 'md5raw';

// If you use the dovecot encryption method: where is the dovecotpw binary located?
// for dovecot 1.x
// $CONF['dovecotpw'] = "/usr/sbin/dovecotpw";
// for dovecot 2.x (dovecot 2.0.0 - 2.0.7 is not supported!)
$CONF['dovecotpw'] = "/usr/sbin/doveadm pw";

// Password validation
// New/changed passwords will be validated using all regular expressions in the array.
// If a password doesn't match one of the regular expressions, the corresponding
// error message from $PALANG (see languages/*) will be displayed.
// See http://de3.php.net/manual/en/reference.pcre.pattern.syntax.php for details
// about the regular expression syntax.
// If you need custom error messages, you can add them using $CONF['language_hook'].
// If a $PALANG text contains a %s, you can add its value after the $PALANG key
// (separated with a space).
$CONF['password_validation'] = array(
#    '/regular expression/' => '$PALANG key (optional: + parameter)',
    '/.{5}/'                => 'password_too_short 5',      # minimum length 5 characters
    '/([a-zA-Z].*){3}/'     => 'password_no_characters 3',  # must contain at least 3 characters
    '/([0-9].*){2}/'        => 'password_no_digits 2',      # must contain at least 2 digits
);

// Generate Password
// Generate a random password for a mailbox or admin and display it.
// If you want to automagically generate passwords set this to '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'] = '10';

// Default Aliases
// The default aliases that need to be created for all domains.
$CONF['default_aliases'] = array (
    'abuse' => 'abuse@change-this-to-your.domain.tld',
    'hostmaster' => 'hostmaster@change-this-to-your.domain.tld',
    'postmaster' => 'postmaster@change-this-to-your.domain.tld',
    'webmaster' => 'webmaster@change-this-to-your.domain.tld'
);

// 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
$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';
// If you want to define your own function to generate a maildir path set this to the name of the function.
// Notes:
//   - this configuration directive will override both domain_path and domain_in_mailbox
//   - the maildir_name_hook() function example is present below, commented out
//   - if the function does not exist the program will default to the above domain_path and domain_in_mailbox settings
$CONF['maildir_name_hook'] = 'NO';

/*
    maildir_name_hook example function

    Called when creating a mailbox if $CONF['maildir_name_hook'] == '<name_of_the_function>'
    - allows for customized maildir paths determined by a custom function
    - the example below will prepend a single-character directory to the
      beginning of the maildir, splitting domains more or less evenly over
      36 directories for improved filesystem performance with large numbers
      of domains.

    Returns: maildir path
    ie. I/example.com/user/
*/
/*
function maildir_name_hook($domain, $user) {
    $chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";

    $dir_index = hexdec(substr(md5($domain), 28)) % strlen($chars);
    $dir = substr($chars, $dir_index, 1);
    return sprintf("%s/%s/%s/", $dir, $domain, $user);
}
*/

/*
    *_struct_hook - change, add or remove fields

    If you need additional fields or want to change or remove existing fields,
    you can write a hook function to modify $struct in the *Handler classes.

    The edit form will automatically be updated according to the modified
    $struct. The list page is not yet updated automatically.

    You can define one hook function per class, named like the primary database
    table of that class.
    The hook function is called with $struct as parameter and must return the
    modified $struct.

    Note: Adding a field to $struct adds the handling of this field in
    PostfixAdmin, but it does not create it in the database. You have to do
    that yourself.
    Please follow the naming policy for custom database fields and tables on
    http://sourceforge.net/apps/mediawiki/postfixadmin/index.php?title=Custom_fields
    to avoid clashes with future versions of PostfixAdmin.

    See initStruct() in the *Handler class for the default $struct.
    See pacol() in functions.inc.php for the available flags on each column.

    Example:

    function x_struct_admin_modify($struct) {
        $struct['superadmin']['editable'] = 0;          # make the 'superadmin' flag read-only
        $struct['superadmin']['display_in_form'] = 0;   # don't display the 'superadmin' flag in edit form
        $struct['x_newfield'] = pacol( [...] );        # additional field 'x_newfield'
        return $struct; # important!
    }
    $CONF['admin_struct_hook'] = 'x_struct_admin_modify';
*/
$CONF['admin_struct_hook']          = '';
$CONF['domain_struct_hook']         = '';
$CONF['alias_struct_hook']          = '';
$CONF['mailbox_struct_hook']        = '';
$CONF['alias_domain_struct_hook']   = '';

// Default Domain Values
// Specify your default values below. Quota in MB.
$CONF['aliases'] = '10';
$CONF['mailboxes'] = '10';
$CONF['maxquota'] = '10';
$CONF['domain_quota_default'] = '2048';

// Quota
// When you want to enforce quota for your mailbox users set this to 'YES'.
$CONF['quota'] = 'NO';
// If you want to enforce domain-level quotas set this to 'YES'.
$CONF['domain_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 Stuff
//
//

// If you want to use virtual vacation for you mailbox users set this to 'YES'.
// NOTE: Make sure that you install the vacation module. (See VIRTUAL-VACATION/)
$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.change-this-to-your.domain.tld';

// Vacation Control
// If you want users to take control of vacation set this to 'YES'.
$CONF['vacation_control'] ='YES';

// Vacation Control for admins
// Set to 'YES' if your domain admins should be able to edit user vacation.
$CONF['vacation_control_admin'] = 'YES';

// ReplyType options
// If you want to define additional reply options put them in array below.
// The array has the format   seconds between replies => $PALANG text
// Special values for seconds are:
// 0 => only reply to the first mail while on vacation
// 1 => reply on every mail
$CONF['vacation_choice_of_reply'] = array (
   0 => 'reply_once',        // Sends only Once the message during Out of Office
   # considered annoying - only send a reply on every mail if you really need it
   # 1 => 'reply_every_mail',       // Reply on every email
   60*60 *24*7 => 'reply_once_per_week'        // Reply if last autoreply was at least a week ago
);

//
// End Vacation Stuff.
//

// Users Control for Domain Admin
// Set to "Yes" if your domain admins schould be able to  edit  field userscontrole in  table domain
// Userscontrol is edited in admin_create-domain.tpl and admin_edit-domain.tpl
// Userscontrol is default set  to  on when creating a domain
$CONF['users_domain_controle'] = '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'.

// Alias control for superadmins
$CONF['alias_control'] = 'YES';

// Alias Control for domain admins
$CONF['alias_control_admin'] = 'YES';

// Special Alias Control
// Set to 'NO' if your domain admins shouldn't be able to edit the default aliases
// as defined in $CONF['default_aliases']
$CONF['special_alias_control'] = 'NO';

// 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';

// Alias Domains
// Alias domains allow to "mirror" aliases and mailboxes to another domain. This makes
// configuration easier if you need the same set of aliases on multiple domains, but
// also requires postfix to do more database queries.
// Note: If you update from 2.2.x or earlier, you will have to update your postfix configuration.
// Set to 'NO' to disable alias domains.
$CONF['alias_domain'] = 'YES';

// Backup
// If you don't want backup tab set this to 'NO';
$CONF['backup'] = 'NO';

// 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';
$CONF['logging'] = 'YES';

// Fetchmail
// If you don't want fetchmail tab set this to 'NO';
$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 ::';

// 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'] = 'Return to vnicsmv.ru';
$CONF['footer_link'] = 'http://192.168.131.52/mail';

// MOTD ("Motto of the day")
// You can display a MOTD below the menu on all pages.
// This can be configured seperately for users, domain admins and superadmins
$CONF['motd_user'] = '';
$CONF['motd_admin'] = '';
$CONF['motd_superadmin'] = '';

// 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.
$CONF['emailcheck_resolve_domain']='YES';


// 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']='YES';
//display a guide to what these colors mean
$CONF['show_status_key']='YES';
// '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']='YES';
$CONF['show_undeliverable_color']='tomato';
// mails to these domains will never be flagged as undeliverable
$CONF['show_undeliverable_exceptions']=array("unixmail.domain.ext","exchangeserver.domain.ext");
$CONF['show_popimap']='YES';
$CONF['show_popimap_color']='darkgrey';
// you can assign special colors to some domains. To do this,
// - add the domain to show_custom_domains
// - add the corresponding color to show_custom_colors
$CONF['show_custom_domains']=array("subdomain.domain.ext","domain2.ext");
$CONF['show_custom_colors']=array("lightgreen","lightblue");
// If you use a recipient_delimiter in your postfix config, you can also honor it when aliases are checked.
// Example: $CONF['recipient_delimiter'] = "+";
// Set to "" to disable this check.
$CONF['recipient_delimiter'] = "";

// 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.
// Parameters: (1) username (2) domain (3) maildir (4) quota
// $CONF['mailbox_postcreation_script']='sudo -u courier /usr/local/bin/postfixadmin-mailbox-postcreation.sh';
$CONF['mailbox_postcreation_script'] = '';

// 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.
// Parameters: (1) username (2) domain (3) maildir (4) quota
// $CONF['mailbox_postedit_script']='sudo -u courier /usr/local/bin/postfixadmin-mailbox-postedit.sh';
$CONF['mailbox_postedit_script'] = '';

// 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.
// Parameters: (1) username (2) domain
// $CONF['mailbox_postdeletion_script']='sudo -u courier /usr/local/bin/postfixadmin-mailbox-postdeletion.sh';
$CONF['mailbox_postdeletion_script'] = '';

// Optional:
// Script to run after creation 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.
// Parameters: (1) domain
//$CONF['domain_postcreation_script']='sudo -u courier /usr/local/bin/postfixadmin-domain-postcreation.sh';
$CONF['domain_postcreation_script'] = '';

// 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.
// Parameters: (1) domain
// $CONF['domain_postdeletion_script']='sudo -u courier /usr/local/bin/postfixadmin-domain-postdeletion.sh';
$CONF['domain_postdeletion_script'] = '';

// 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'] = array();
$CONF['create_mailbox_subdirs_host']='localhost';
//
// Specify '' for Dovecot and 'INBOX.' for Courier.
$CONF['create_mailbox_subdirs_prefix']='INBOX.';

// Optional:
// Show used quotas from Dovecot dictionary backend in virtual
// mailbox listing.
// See: DOCUMENTATION/DOVECOT.txt
//      http://wiki.dovecot.org/Quota/Dict
//
$CONF['used_quotas'] = 'NO';

// if you use dovecot >= 1.2, set this to yes.
// Note about dovecot config: table "quota" is for 1.0 & 1.1, table "quota2" is for dovecot 1.2 and newer
$CONF['new_quota_table'] = 'YES';

//
// 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
$CONF['create_mailbox_subdirs_hostoptions'] = array('');


// 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 customize some styles without editing the $CONF['theme_css'] file,
// you can add a custom CSS file. It will be included after $CONF['theme_css'].
$CONF['theme_custom_css'] = '';

// XMLRPC Interface.
// This should be only of use if you wish to use e.g the
// Postfixadmin-Squirrelmail package
//  change to boolean true to enable xmlrpc
$CONF['xmlrpc_enabled'] = false;

// 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')) {
    include(dirname(__FILE__) . '/config.local.php');
}

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

Bain ()

Exim4+dovecot

Привет, есть проблемка. Использую ubuntu server 14.04 Сначала конфиги:

exim4.conf

# Имя хоста. Используется в EHLO.
# Фигурирует в других пунктах, если они не заданы
# По умолчанию используется то, что вернёт функция uname()
primary_hostname = testdom.com

# Данные для подключения к базе данных
# hide в начале означает, то нерутовые пользователи командой exim -bV не увидят
# этих значений
hide mysql_servers = localhost/mail/postmaster/iwannakillyou

# Задаём список локальных доменов. В данном случае спрашиваем у MySQL

DOMAIN_QUERY    = SELECT domain FROM domain WHERE \
domain='${domain}' AND active='1'
domainlist local_domains = ${lookup mysql{DOMAIN_QUERY}}

# Таким же образом задаём список доменов, с которых разрешён релей.
domainlist relay_to_domains = ${lookup mysql{DOMAIN_QUERY}}

# Список хостов, с которых разрешён релей без авторизации.
hostlist   relay_from_hosts = localhost:127.0.0.1/8:192.168.0.0/24

# Списки ACL для проверки почты
acl_smtp_rcpt = acl_check_rcpt
acl_smtp_data = acl_check_data

# Здесь указываем сокет внешнего антивируса ClamAV. Пока что оставим закомменченным
# Включим его позже
# av_scanner = clamd:/var/run/clamav/clamd.ctl
# Здесь укажем TCP/IP сокет для SpamAssassin
# spamd_address = 127.0.0.1 783

# Порт, на котором SMTP демон будет слушать входящие подключения
daemon_smtp_ports = 25 : 465

# Имя домена добавляемое для локальных отправителей (реальных
# юзеров системы) т.е. почта отправляемая от root, будет от
# root@домен_указанный_здесь. Если пункт незадан, то используется
# имя хоста из primary_hostname.
qualify_domain = testdom.com

# Имя домена добавляемое для локальных получателей
qualify_recipient = testdom.com

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

# Проверяем соответствие прямой и обратной зон для всех хостов.
# При необходимости лучше раскомментировать это позже
#host_lookup = *

# Здесь можно включить запросы ident на входящие SMTP запросы.
# Вещь ненужная и неактуальная. Отключаем
#rfc1413_hosts = *
rfc1413_query_timeout = 0s

# Период повторных попыток доставки сообщений об ошибке
ignore_bounce_errors_after = 1d

# Через пару недель удалим то, что так и не смогли доставить
timeout_frozen_after = 14d

# Выбираем, что мы будем логировать
# + - писать в логи,
# - - Не писать в логи.
# +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

begin acl

# Правила для всех получателей. Выше мы включили этот ACL

acl_check_rcpt:

# Сразу принять то, что пришло с локалхоста не по TCP/IP
accept  hosts = :

# Запрещаем письма для локальных доменов, содержащие в локальной части
# символы @; %; !; /; |.
deny    message       = Restricted characters in address
domains       = +local_domains
local_parts   = ^[.] : ^.*[@%!/|]

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

# Принимать почту на постмастера, не проверяя отправителя.
# Может использоваться для спама
accept  local_parts   = postmaster
domains       = +local_domains

# Здесь можно запретить отправку от непроверенных пользователей
# Если нужно отправлять почту от logwatch etc., то лучше убрать

require verify        = sender

accept  hosts         = +relay_from_hosts
control       = submission
require message = relay not permitted
domains = +local_domains : +relay_to_domains
require verify = recipient

# Все, что сюда дошло, пропускаем
accept

# Здесь мы проверяем тело сообщения

acl_check_data:
# Здесь проверка на вирусы
warn    malware    = *
     message    = This message contains a virus ($malware_name).

# А здесь - проверка на спам
warn    spam       = nobody
    add_header = X-Spam-Flag: YES\n\
        X-Spam_score: $spam_score\n\
        X-Spam_score_int: $spam_score_int\n\
        X-Spam_bar: $spam_bar\n\
        X-Spam_report: $spam_report

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

begin routers

# Поиск маршрута к хосту в 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

# смотрим альясы

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}'}}

# Всё что осталось - это локальные адресаты.
# Доставляем почту в 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

begin transports

# На удалённые хосты доставляем по SMTP

remote_smtp:
driver = smtp

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

# Доставка через пайп

address_pipe:
driver = pipe
return_output

# Транспорт для автоответов

address_reply:
driver = autoreply

begin retry

# Правила для повторных попыток доставки
# Сначала попытки раз 15 мин в течение 2 часов, потом, начиная с
# интервала в 1 час, увеличивая его в 1.5 раза, пытаемся доставить 16 часов.
# Потом раз в 6 часов, до истечения 4 суток

# Address or Domain    Error       Retries
# -----------------    -----       -------

*                      *           F,2h,15m; G,16h,1h,1.5; F,4d,6h

# Преобразование адресов нам не нужно

begin rewrite

begin authenticators

# Здесь разные механизмы авторизации для разных клиентов
auth_plain:
driver = plaintext
public_name = PLAIN
server_prompts = Username:: : Password::
server_condition = ${if crypteq{$auth3}{${lookup mysql{SELECT password FROM \
mailbox WHERE username = '${quote_mysql:$auth2}'}}}{yes}{no}}
server_set_id = $auth2

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

# А вот так мы можем передать аутентификацию на Dovecot SASL.
# Впрочем, CRAM-MD5 все равно не прокатит
auth_cram_md5:
driver = dovecot
public_name = CRAM-MD5
server_socket = /var/run/dovecot/auth-client
server_set_id = $auth2

dovecot.conf

# Директория для временных файлов
base_dir = /var/run/dovecot/

# Протоколы, по которым обслуживаем пользователей. Доступны еще imaps и pop3s (SSL).
protocols = imap pop3

# IMAP слушаем на 143-м порту
protocol imap {
    listen = 127.0.0.1:143
    # Если надо открыть доступ снаружи, то надо указать *:143
}
# POP3 слушаем на 110-м порту
protocol pop3 {
    listen = 127.0.0.1:110
    # Если надо открыть доступ снаружи, то надо указать *:110
}

# Здесь можем отключить аутентификаию открытым текстом, если не включён SSL/TLS
# С локалхоста, впрочем, он всё равно будет разрешать такую аутентификацию
disable_plaintext_auth = no

# Убивать все процессы IMAP и POP3 при закрытии родительского процесса dovecot
shutdown_clients = yes

# Логфайл вместо syslog()
log_path = /var/log/dovecot.log

# Сюда пишутся информационные и дебаг-сообщения
info_log_path = /var/log/dovecot.log

# Формат таймстэмпа (strftime()) для записи в лог
log_timestamp = "%Y-%m-%d %H:%M:%S "

# Чем будем логиниться в syslog()
syslog_facility = mail

# Отключаем SSL/TLS. Все равно оно нужно только если используем pop3s и imaps
ssl_disable = yes

# Директория где аутентификационный процесс размещает UNIX сокеты
# которые требуются для процесса логина. Сокеты создаются от суперпользователя,
# поэтому можно не беспокоится насчёт прав. При старте dovecot всё
# содержимое этой директории удаляется.
login_dir = /var/run/dovecot/login

# Делаем chroot для процесса аутентификации dovecot
login_chroot = yes

# Юзер, использующийся в процессе логина
login_user = dovecot

# Каждый логин должен быть обработан своим собственным процессом ('yes'),
# или один процесс может обрабатывать несколько соединений ('no'). 'yes' более
# секьюрно, особенно если включено SSL/TLS. 'no' быстрее работает, ибо нет
# необходимости создавать процесс на каждое соединение
login_process_per_connection = yes

# Число запускаемых процессов логина. Если 'login_process_per_connection'
# равно 'yes', то это число свободных процессов ожидающих подключения
# пользователей.
login_processes_count = 3

# Максимальное число соединений разрешённых в сосоянии 'логина'. Когда
# достигается указанный тут лимит, самые старые связи разрываются
login_max_processes_count = 128

# Приветственное сообщение для клиентов.
login_greeting = Dovecot ready on mydomain.ru.

# Разделённый пробелами лист элементов, которые будут записаны в лог. Непустые
# элементы будут объединены через запятую.
login_log_format_elements = user=<%u> method=%m rip=%r lip=%l %c

# Расположение пользовательских ящиков
mail_location = maildir:/var/vmail/%d/%u

# Группа, которой разрешены некоторые привилегированные операции
mail_privileged_group = mail

# Включаем режим дебага, на первых порах очень полезно
mail_debug = yes

#Разрешённый диапазон UIDов для пользователей.
#Так мы защитимся от подключения демонов или системных пользователей.
#Как root подключиться не получится в любом случае
first_valid_uid = 1150
last_valid_uid = 1150

protocol imap {
    # Месторасположение исполняемого файла авторизации
    login_executable = /usr/lib/dovecot/imap-login
    # Исполняемый файл IMAP
    mail_executable = /usr/lib/dovecot/imap
    imap_max_line_length = 65536
}
protocol pop3 {
    login_executable = /usr/lib/dovecot/pop3-login
    mail_executable = /usr/lib/dovecot/pop3
    pop3_uidl_format = %08Xu%08Xv
}
protocol lda {
    # Куда слать письмо об отказах и превышении квот
    postmaster_address = webmaster@mydomain.ru
    hostname = mydomain.ru
    sendmail_path = /usr/lib/sendmail
    # Путь к сокету для поиска пользователей
    auth_socket_path = /var/run/dovecot/auth-master
}

# Парметры для дебага
auth_verbose = yes
auth_debug = yes
auth_debug_passwords = yes

auth default {
    # Список требуемых механизмов аутентификации, разделённый пробелами
    #   plain login digest-md5 cram-md5 ntlm rpa apop anonymous gssapi
    mechanisms = plain login digest-md5 cram-md5

    passdb sql {
        # Путь к файлу, где у нас прописаны все параметры базы данных
        args = /etc/dovecot/dovecot-sql.conf
    }
    userdb sql {
        # Path for SQL configuration file
        args = /etc/dovecot/dovecot-sql.conf
    }

    # Юзер, от которого будет работать процесс аутентификации
    user = nobody

    socket listen {
        master {
        path = /var/run/dovecot/auth-master
        mode = 0600
        user = vmail
        group = mail
        }
        client {
            # Этот сокет мы будем использовать для аутентификации Exim
            path = /var/run/dovecot/auth-client
            mode = 0660
        }
    }
}
dict {
}
plugin {
}

И dovecot-sql.conf

driver = mysql
connect = host=localhost dbname=mail user=postmaster password=mypassword
# Об этом выше уже говорилось. Здесь указываем механизм шифрования паролей
default_pass_scheme = MD5-CRYPT
password_query = SELECT username as user, password, '/var/vmail/%d/%n' as userdb_home, 'maildir:/var/vmail/%d/%n' as userdb_mail, 1150 as userdb_uid, 8 as userdb_gid FROM mailbox WHERE username = '%u' AND active = '1'
user_query = SELECT '/var/vmail/%d/%n' as home, 'maildir:/var/vmail/%d/%n' as mail, 1150 AS uid, 8 AS gid, concat('dirsize:storage=', quota) AS quota FROM mailbox WHERE username = '%u' AND active = '1'
# Вышеуказанные команды представлены для случая, если в поле username указаны целиком почтовые ящики в виде username@domain. При этом можно устраивать несколько почтовых доменов на одном сервере, но и для аутентификации придётся предоставлять этот username целиком. Если в поле username в базе содержатся только логины, то команды можно переделать так:
# password_query = SELECT username as user, password, concat('/var/vmail/',domain,'/%n') as userdb_home, concat('maildir:/var/vmail/',domain,'/%n') as userdb_mail, 1150 as userdb_uid, 8 as userdb_gid FROM mailbox WHERE username = '%n' AND active = '1'
# user_query = SELECT concat('/var/vmail/',domain,'/%n') as home, concat('maildir:/var/vmail/',domain,'/%n') as mail, 1150 AS uid, 8 AS gid, concat('dirsize:storage=', quota) AS quota FROM mailbox WHERE username = '%n' AND active = '1'

При этом делаю

exim -bt webmaster@mail.ru

webmaster@mail.ru
  router = dnslookup, transport = remote_smtp
  host mxs.mail.ru [217.69.139.150] MX=10
  host mxs.mail.ru [94.100.180.150] MX=10

exim -bt test@testdom.com

test@testdom.com
    <-- test@testdom.com
  router = dovecot_user, transport = dovecot_delivery

Далее делаю echo «» | exim -v test@testdom.com

LOG: MAIN
  <= root@testdom.com U=root P=local S=278
root@pechkin:/etc/dovecot# delivering 1XZfOu-0007WE-6F
LOG: MAIN
  <test@testdom.com>: dovecot_delivery transport output: doveconf: Warning: NOTE: You can get a new clean config file with: doveconf -n > dovecot-new.conf
LOG: MAIN
  == test@testdom.com R=dovecot_user T=dovecot_delivery defer (0): Child process of dovecot_delivery transport returned 75 (could mean temporary error) from command: /usr/lib/dovecot/deliver

Делал по ману: http://agapoff.name/exim-dovecot.html Не понимаю в чем проблема. На всякий случай выложу ещё список прав, но не понимаю норм там всё или нет.

ls -l /var/run/dovecot/

итого 8
srw------- 1 root    root      0 окт.   2 16:17 anvil
srw------- 1 root    root      0 окт.   2 16:17 anvil-auth-penalty
srw-rw---- 1 dovecot root      0 окт.   2 16:17 auth-client
srw------- 1 dovecot root      0 окт.   2 16:17 auth-login
srw------- 1 vmail   mail      0 окт.   2 16:17 auth-master
srw-rw-rw- 1 dovecot root      0 окт.   2 16:17 auth-userdb
srw------- 1 dovecot root      0 окт.   2 16:17 auth-worker
srw------- 1 root    root      0 окт.   2 16:17 config
srw------- 1 root    root      0 окт.   2 16:17 dict
srw------- 1 root    root      0 окт.   2 16:17 director-admin
srw------- 1 root    root      0 окт.   2 13:01 director-userdb
srw-rw-rw- 1 root    root      0 окт.   2 16:17 dns-client
srw------- 1 root    root      0 окт.   2 16:17 doveadm-server
lrwxrwxrwx 1 root    root     25 окт.   2 16:17 dovecot.conf -> /etc/dovecot/dovecot.conf
drwxr-xr-x 2 root    root     40 окт.   2 13:01 empty
srw-rw-rw- 1 root    root      0 окт.   2 16:17 imap-urlauth
srw------- 1 dovecot root      0 окт.   2 16:17 imap-urlauth-worker
srw-rw-rw- 1 root    root      0 окт.   2 16:17 indexer
srw------- 1 dovecot root      0 окт.   2 16:17 indexer-worker
srw------- 1 root    root      0 окт.   2 16:17 ipc
srw------- 1 root    root      0 окт.   2 16:17 log-errors
drwxr-x--- 2 root    dovecot 140 окт.   2 16:17 login
-rw------- 1 root    root      6 окт.   2 16:17 master.pid
-rw-r--r-- 1 root    root      9 окт.   2 16:17 mounts
srw------- 1 root    root      0 окт.   2 16:17 replication-notify
prw------- 1 root    root      0 окт.   2 16:17 replication-notify-fifo
srw------- 1 dovecot root      0 окт.   2 16:17 replicator
srw-rw-rw- 1 root    root      0 окт.   2 16:17 ssl-params
srw------- 1 root    root      0 окт.   2 16:17 stats
prw------- 1 root    root      0 окт.   2 16:17 stats-mail
drwxr-x--- 2 root    dovecot  80 окт.   2 16:17 token-login

ls -ld /var/run/dovecot/

drwxr-xr-x 5 root root 660 окт.   2 16:17 /var/run/dovecot/

Bain ()

dev/disk/by-uuid does not exist

Добрый день, господа линуксоиды, случилась такая беда на сервере с 6 Debian.

Выкладываю фото т.к. много текста

http://s018.radikal.ru/i518/1408/c8/0249b8cd9816.jpg

Так же выкладываю вывод blkid:

user@debian:~$ sudo blkid
/dev/sda2: UUID="e98ccba0-3ba5-b0fd-0166-b81bcefdd657" TYPE="ext3" 
/dev/sda5: UUID="fb55aad4-f8cc-d19e-6846-e0a63e7a1e2f" TYPE="swap" 
/dev/sdb2: UUID="6b7b3f2b-a24b-936d-f71c-6e1dabf9c60e" TYPE="linux_raid_member" 
/dev/sdb5: UUID="a2e75b12-3826-a651-f71c-6e1dabf9c60e" TYPE="linux_raid_member" 
/dev/loop0: TYPE="squashfs" 
/dev/sdc1: UUID="24E20090E20067FE" TYPE="ntfs"

Собственно /deb/sda2- раздел, на котором установлена ос, прекрасно монтируется и просматривается через Live CD.

Далее fstab:

# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
/dev/md0		/               ext3    errors=remount-ro 0       1
/dev/sda5	none            swap    sw              0       0
/dev/scd0       /media/cdrom0   udf,iso9660 user,noauto     0       0

Пробовал менять md0 на /dev/sda2 с default- не помогло. Так же Grub.cfg

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  load_env
fi
set default="0"
if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function load_video {
  insmod vbe
  insmod vga
  insmod video_bochs
  insmod video_cirrus
}

terminal_input console
terminal_output console
set timeout=5
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-686' --class debian --class gnu-linux --class gnu --class os {
	insmod part_msdos
	insmod ext2
	set root='(/dev/sda,msdos2)'
	search --no-floppy --fs-uuid --set e98ccba0-3ba5-b0fd-0166-b81bcefdd657
	echo	'Loading Linux 2.6.32-5-686 ...'
	linux	/boot/vmlinuz-2.6.32-5-686 root=UUID=e98ccba0-3ba5-b0fd-0166-b81bcefdd657 ro  
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-2.6.32-5-686
}
menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-686 (recovery mode)' --class debian --class gnu-linux --class gnu --class os {
	insmod part_msdos
	insmod ext2
	set root='(/dev/sda,msdos2)'
	search --no-floppy --fs-uuid --set e98ccba0-3ba5-b0fd-0166-b81bcefdd657
	echo	'Loading Linux 2.6.32-5-686 ...'
	linux	/boot/vmlinuz-2.6.32-5-686 root=UUID=e98ccba0-3ba5-b0fd-0166-b81bcefdd657 ro single 
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-2.6.32-5-686
}
menuentry 'Debian GNU/Linux, with Linux 2.6.26-1-686' --class debian --class gnu-linux --class gnu --class os {
	insmod part_msdos
	insmod ext2
	set root='(/dev/sda,msdos2)'
	search --no-floppy --fs-uuid --set e98ccba0-3ba5-b0fd-0166-b81bcefdd657
	echo	'Loading Linux 2.6.26-1-686 ...'
	linux	/boot/vmlinuz-2.6.26-1-686 root=UUID=e98ccba0-3ba5-b0fd-0166-b81bcefdd657 ro  
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-2.6.26-1-686
}
menuentry 'Debian GNU/Linux, with Linux 2.6.26-1-686 (recovery mode)' --class debian --class gnu-linux --class gnu --class os {
	insmod part_msdos
	insmod ext2
	set root='(/dev/sda,msdos2)'
	search --no-floppy --fs-uuid --set e98ccba0-3ba5-b0fd-0166-b81bcefdd657
	echo	'Loading Linux 2.6.26-1-686 ...'
	linux	/boot/vmlinuz-2.6.26-1-686 root=UUID=e98ccba0-3ba5-b0fd-0166-b81bcefdd657 ro single 
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-2.6.26-1-686
}
menuentry 'Debian GNU/Linux, with Linux 2.6.26' --class debian --class gnu-linux --class gnu --class os {
	insmod part_msdos
	insmod ext2
	set root='(/dev/sda,msdos2)'
	search --no-floppy --fs-uuid --set e98ccba0-3ba5-b0fd-0166-b81bcefdd657
	echo	'Loading Linux 2.6.26 ...'
	linux	/boot/vmlinuz-2.6.26 root=UUID=e98ccba0-3ba5-b0fd-0166-b81bcefdd657 ro  
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-2.6.26
}
menuentry 'Debian GNU/Linux, with Linux 2.6.26 (recovery mode)' --class debian --class gnu-linux --class gnu --class os {
	insmod part_msdos
	insmod ext2
	set root='(/dev/sda,msdos2)'
	search --no-floppy --fs-uuid --set e98ccba0-3ba5-b0fd-0166-b81bcefdd657
	echo	'Loading Linux 2.6.26 ...'
	linux	/boot/vmlinuz-2.6.26 root=UUID=e98ccba0-3ba5-b0fd-0166-b81bcefdd657 ro single 
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-2.6.26
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
	insmod part_msdos
	insmod ext2
	set root='(/dev/sda,msdos2)'
	search --no-floppy --fs-uuid --set e98ccba0-3ba5-b0fd-0166-b81bcefdd657
	linux16	/boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
	insmod part_msdos
	insmod ext2
	set root='(/dev/sda,msdos2)'
	search --no-floppy --fs-uuid --set e98ccba0-3ba5-b0fd-0166-b81bcefdd657
	linux16	/boot/memtest86+.bin console=ttyS0,115200n8
}
menuentry "Memory test (memtest86+, experimental multiboot)" {
	insmod part_msdos
	insmod ext2
	set root='(/dev/sda,msdos2)'
	search --no-floppy --fs-uuid --set e98ccba0-3ba5-b0fd-0166-b81bcefdd657
	multiboot	/boot/memtest86+_multiboot.bin
}
menuentry "Memory test (memtest86+, serial console 115200, experimental multiboot)" {
	insmod part_msdos
	insmod ext2
	set root='(/dev/sda,msdos2)'
	search --no-floppy --fs-uuid --set e98ccba0-3ba5-b0fd-0166-b81bcefdd657
	multiboot	/boot/memtest86+_multiboot.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

Заранее спасибо. Просьба объяснять всё как нубу

Bain ()

Remastersys

Добрый день, уважаемые. Подскажите, реально ли как- то забекапить систему размером в 340гб в iso- образ?

Bain ()

Посоветуйте почтовый сервер.

Здравствуйте. Есть госконтора, в которой никто ничего не знает, но надо сделать им новый почтовый сервер, текущий работает на связке EXIM4 Courier Spamassassin MySQL PHPmyadmin PHPLdapAdmin Clamav apache2 bind9 fail2ban ganglia nagios roundcube При загрузке адово сыпет ошибками и приводит в ужас, но не в этом суть. Нагуглить что- то можно, но я хотел бы обратиться к вашему опыту, и спросить что лучше сделать в конторе на ~80 чел. при этом с возможностью переноса ящиков, судя по всему из mysql, могу ошибаться, но вроде они щас там хранятся

Bain ()

django+qlproxy

Здравствуйте, поднял прокси по данному мануалу:

http://ubuntuserverguide.com/2013/12/how-to-filter-https-traffic-with-squid-3...

Далее ради эксперимента захотел поставить sams, что и было сделано, далее попытался настроить его, захожу на http://ip_моего_прокси и получаю


Page not found (404)
Request Method: 	GET
Request URL: 	http://192.168.10.1/sams2

Using the URLconf defined in qlproxy.urls, Django tried these URL patterns, in this order:

    ^config/
    ^policies/
    ^dash/
    ^monitor/
    ^report/
    ^$ [name='index']
    ^proxy.pac$ [name='proxy_pac']
    ^accounts/login/$
    ^accounts/logout/$
    ^admin/

The current URL, sams2, didn't match any of these.

You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard 404 page.

Впервые столкнулся с таким, посему не понимаю что делать

Bain ()

Skype+squid+sslbump

Здравствуйте, не обессудьте за глупые вопросы. Играюсь со сквидом, научил его работать с SSL. Перед компиляцией добавил в него

--with-default-user=proxy \
--enable-ssl 

После компиляции и установки в конфиг сквида внес только

http_port 3127
http_port 3128 intercept
https_port 3129 intercept ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/usr/share/ssl-cert/myCA.pem
always_direct allow all
ssl_bump server-first all
sslproxy_cert_error allow all
sslproxy_flags DONT_VERIFY_PEER 

И iptables

iptables -t nat -A POSTROUTING -j MASQUERADE
iptables -t nat -A PREROUTING -s 192.168.10.1 -p tcp --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 127.0.0.1:3128
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 3129
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 443 -j DNAT --to-destination 127.0.0.1:3129

Появился интересный баг, скайп не работает, просто не авторизуется, но если явно прописать в его настройках прокси сервер, причем для HTTPS указать порт HTTP, то всё нормально работает. Казалось бы можно направить порт скайпа на порт HTTP, но в каждом клиенте скайпа указан рандомный порт. Пользователей много и прописывать всем вручную не хочется, писать инструкцию тоже т.к. палить адрес прокси не есть гутЪ.

Bain ()

Украшение для прокси

Добрый день, надо сделать очередную прокси, но использовать самс уже не комильфо т.к. не удается реанимировать парочку очень полезных ф-ций. Отсюда вопрос, есть ли сейчас какая- нибудь удобная и функциональная веб- морда к сквиду?

Bain ()

IPCad+Squid

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

Bain ()

Не работает SSH

Добрый день, имеется Ubuntu Server 12.04, выступает в качестве шлюза, поднят squid в прозрачном режиме, iptables, NAT, до перезагрузки всё было замечательно, после перезагрузки отвалился SSH ( Connection Refused ) при попытке подключения, в логах:

Dec  6 16:31:05 PROXY kernel: [4217480.231733] init: ssh main process (31597) terminated with status 255
Dec  6 16:31:05 PROXY kernel: [4217480.231802] init: ssh respawning too fast, stopped
Перед каждой попыткой подключения сервис ssh поднимался вручную, не понятно только сразу ли он падает или после попытки подключения, соотв. iptables выглядит так:
#! /sbin/iptables-restore
# Generated by iptables-save v1.4.12
*nat
:PREROUTING ACCEPT [1195:92907]
:INPUT ACCEPT [212:14627]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -d [внешнийIP]/32 -p tcp -m tcp --dport 25 -j DNAT --to-destination XXX.XXX.X.43:25
-A PREROUTING -d [внешнийIP]/32 -p tcp -m tcp --dport 3000 -j DNAT --to-destination XXX.XXX.X.130:3389
-A PREROUTING -d [внешнийIP]/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination XXX.XXX.X.43:80
-A PREROUTING -d [внешнийIP]/32 -p tcp -m tcp --dport 5080 -j DNAT --to-destination XXX.XXX.X.146:80
-A PREROUTING -d [внешнийIP]/32 -p udp -m udp --dport 1:65534 -j DNAT --to-destination XXX.XXX.X.146
-A PREROUTING -d [внешнийIP]/32 -p tcp -m tcp --dport 3389 -j DNAT --to-destination XXX.XXX.X.2:3389
-A PREROUTING -d [внешнийIP]/32 -p tcp -m tcp --dport 5437 -j DNAT --to-destination XXX.XXX.X.124:5437
-A PREROUTING -d [внешнийIP]/32 -p tcp -m tcp --dport 5438 -j DNAT --to-destination XXX.XXX.X.237:5438
-A PREROUTING -d [внешнийIP]/32 -p tcp -m tcp --dport 7654 -j DNAT --to-destination XXX.XXX.X.210:3389
-A PREROUTING -d [внешнийIP]/32 -p tcp -m tcp --dport 8234 -j DNAT --to-destination XXX.XXX.X.170:3389
-A POSTROUTING -s XXX.XXX.X.0/24 -o ppp0 -j MASQUERADE
-A POSTROUTING -d XXX.XXX.X.43/32 -p tcp -m tcp --dport 25 -j SNAT --to-source [внешнийIP]
-A POSTROUTING -d XXX.XXX.X.130/32 -p tcp -m tcp --dport 3000 -j SNAT --to-source [внешнийIP]
-A POSTROUTING -d XXX.XXX.X.130/32 -p tcp -m tcp --dport 8839 -j SNAT --to-source [внешнийIP]
-A POSTROUTING -d XXX.XXX.X.43/32 -p tcp -m tcp --dport 80 -j SNAT --to-source [внешнийIP]
-A POSTROUTING -d XXX.XXX.X.146/32 -p udp -m udp --dport 1:65534 -j SNAT --to-source [внешнийIP]
-A POSTROUTING -d XXX.XXX.X.2/32 -p tcp -m tcp --dport 3389 -j SNAT --to-source [внешнийIP]
-A POSTROUTING -d XXX.XXX.X.124/32 -p tcp -m tcp --dport 5437 -j SNAT --to-source [внешнийIP]
-A POSTROUTING -d XXX.XXX.X.238/32 -p tcp -m tcp --dport 5438 -j SNAT --to-source [внешнийIP]
-A POSTROUTING -d XXX.XXX.X.210/32 -p tcp -m tcp --dport 7654 -j SNAT --to-source [внешнийIP]
-A POSTROUTING -d XXX.XXX.X.170/32 -p tcp -m tcp --dport 8234 -j SNAT --to-source [внешнийIP]
COMMIT
# Completed on 
# Generated by iptables-save v1.4.12 
*filter
:INPUT ACCEPT [60286:7057966]
:FORWARD ACCEPT [1453988:710593203]
:OUTPUT ACCEPT [26578:2205577]
COMMIT
# Completed 
# Generated by iptables-save v1.4.12 
*mangle
:PREROUTING ACCEPT [721473:368307169]
:INPUT ACCEPT [15758:1143642]
:FORWARD ACCEPT [705520:367143917]
:OUTPUT ACCEPT [9197:498383]
:POSTROUTING ACCEPT [714708:367641652]
-A FORWARD -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:65495 -j TCPMSS --clamp-mss-to-pmtu
-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
COMMIT
# Completed

Bain ()

Squid3+squidguard.

Добрый день, удалил одну программу пуржем, не глядя в зависимости, вместе с ним удалился и сквид, конфиг тоже, использовался squid3+squidguard, установил заного сквид, прописал в него squidguard вида rewrite_program /etc/squid/ пробовал ещё /etc/squid/squidGuard.conf Но в инет так и не пускает, где я ошибся, или может, что- то забыл? з.ы. на текущий момент конфиг выглядит так: http://paste.ubuntu.com/1374538/

Bain ()

ssh, Connection Refused

Добрый день, есть линуксовый сервер, до перезагрузки прекрасно пользовался shh с форточек посредством Putty, после перезагрузки при попытке зайти на сервер выдает «Connection Refused», попробовал пробросить порт, не помогло, ssh установлен и запущен, куда копать?

Bain ()

Asterisk+pppoe

Добрый день, товарищи, недавно запилили VoIP- телефонию, что имеется: Сервер с установленным trixbox, шлюз на линуксе, порты проброшены через нат в iptables, выхлоп касательно астериска:

Chain PREROUTING (policy ACCEPT)

target     prot opt source               destination
DNAT       udp  --  0.0.0.0/0            113.147.119.131      udp dpts:1:65534 to:192.168.0.146

Chain POSTROUTING (policy ACCEPT)

target     prot opt source               destination
SNAT       udp  --  0.0.0.0/0            192.168.0.146        udp dpts:1:65534 to:113.147.119.131

Беда в том, что интернет получаем по pppoe, который имеет привычку отваливатся 1-2 раза в сутки, примерно на 3 секунды, но этого вполне хватает, что бы астер перестал работать, при этом в статусе всё якобы ок, но помогает только перезапуск сети. Куда копать?

Bain ()

Харды на сервер.

Здрасьте, есть сервер HP ProLiant DL360 G6, но нет денег на брендовые харды для него, поэтому было принято решение о покупке обычных, предположительно: http://market.yandex.ru/model.xml?modelid=7274747&hid=91033&text=ST10...

Но не знаю подойдет ли он, например Intel говорили мне, что их серверы теоретически поддерживают любые сата харды, а те, что указаны к моделям как рекомендованные просто были протестированы с данной моделью и гарантировано работают на 100%, как ситуация с hp не знаю, почему- то кажется, что они даже винты/крепежи прошивают через бубны:)

Перемещено Shaman007 из talks

Bain ()

Sams2+squid3

Добрый день, возникла проблема, самс не хочет работать со сквидом, т.е. просто не видит его, исходные данные: -1 нуб ( я :) ) - sams-2.0.0-rc1 -Squid3 Самс собирал из сорсов, патчил исходники, конкретно файл:

--- libtool.old 2012-02-14 17:34:10.363994833 +0400
+++ libtool     2012-02-14 15:55:27.142358890 +0400
@@ -5986,7 +5986,8 @@
        case $dir in
        [\\/]* | [A-Za-z]:[\\/]*) ;;
        *)
-         absdir=`cd "$dir" && pwd`
+#        absdir=`cd "$dir" && pwd`
+         absdir="/usr/lib"
          test -z "$absdir" && \
            func_fatal_error "cannot determine absolute directory name of \`$dir'"
          dir="$absdir" 
Т.к. make ругался на этот libtool, дальше в конфиге самса заметил, что указаны несуществующие пути к сквиду, заменил на реальные ( был указан squid, а стоит squid3 ). После чего запустил вебморду и создал базу, все ф-ции самса вроде работают, тест таблиц базы выдает, что всё ок, однако самс не хочет реконфигурировать сквид выдавая
Команда на реконфигурирование Squid не получена демоном проверьте, запущен ли samsdaemon
Однако
proot@PROXY:/usr$ sudo ps aux | grep samsdaemon
proot     6262  0.0  0.0   4388   812 pts/0    S+   11:26   0:00 grep --color=auto samsdaemon

Нагуглил такое решение проблемы:

В файле samsdaemon.c
ищем строку squid -k reconfigure
и меняем на squid3 -k reconfigure
Кто плохо знаком с консольными редакторами, пользуйтесь mc
или после сборки sams делаем симлинк (но думаю это не правильно…)
ln -s /usr/sbin/squid3 /usr/sbin/squid
иначе демон samsdaemon
будет пытаться при реконфигурировании запустить /usr/sbin/squid вместо squid3

Но нужного файла нет в сорсах и вообще на машине о_О

Bain ()

(sams+squid3+iptables)Подводные камни

Добрый день, поставил линуксовый роутер, пробросил порты в iptables, установил сквид, прописал в нем только прозрачный порт и направил трафик с 80 и 8080 портов на порт сквида в iptables, дальше поставил самс, но не настроил. После этого правила для проброса портов буд- то пропали, в локальной сети используется ip-телефония и стоит почтовый сервер, после заворачивания трафика на сквид они перестают работать, пока не пропишу правила заного, возникла мысль, что это из- за не настроенного самса, но так ли это? И если настраивать самс, то там придется делать доступ для телефонии и почты? Извините, ещё не слишком силен в линуксах, потому покорно прошу вашего ответа

Bain ()

RSS подписка на новые темы