Toto je starší verze dokumentu!


Jak nainstalovat základní mail server za použití postgresql (drží data o doménách a uživatelích), postfix (smtp, přijímání/odesílání emailů) a dovecot (zajišťuje připojení přes pop3/imap pro uživatele).

apt-get install postfix postfix-pgsql dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd dovecot-pgsql

Co je potřeba mít všechno připravené dopředu:

  • nainstalovanou Postgresql
  • nastaven hostname na serveru
  • vlastnit doménu se správně nastavenými DNS záznamy
  • nastaven reverzní DNS záznam

Nastavení Postgresql

  1. Je potřeba nastavit uživatele do souboru /etc/postgresql/vers.ion/main/pg_ident.conf
    mailmap         dovecot                 mailuser
    mailmap         postfix                 mailuser
    mailmap         root                    mailuser
    
  2. Je potřeba vytvořit nového uživatele v databázi
    su postgres
    CREATE USER mailuser;
    REVOKE CREATE ON SCHEMA public FROM PUBLIC;
    REVOKE USAGE ON SCHEMA public FROM PUBLIC;
    GRANT CREATE ON SCHEMA public TO postgres;
    GRANT USAGE ON SCHEMA public TO postgres;
    CREATE DATABASE mailserver WITH OWNER mailuser;
    
    ještě je potřeba nastavit uživateli mailuser heslo
    \password mailuser
    přihásíme se pod nového uživatele a vytvoříme databázi
    psql -U mailuser -d mailserver
    CREATE SEQUENCE seq_mail_domain_id START 1;
    CREATE SEQUENCE seq_mail_user_id START 1;
    CREATE SEQUENCE seq_mail_alias_id START 1;
     
    CREATE TABLE virtual_domains (
      domain_id INT2 NOT NULL DEFAULT nextval('seq_mail_domain_id'),
      domain_name varchar(50) NOT NULL,
      PRIMARY KEY (domain_id)
    );
    
    CREATE TABLE virtual_users (
      user_id INT2 NOT NULL DEFAULT nextval('seq_mail_user_id'),
      domain_id INT2 NOT NULL,
      password varchar(106) NOT NULL,
      email varchar(100) NOT NULL,
      PRIMARY KEY (user_id),
      FOREIGN KEY (domain_id) REFERENCES virtual_domains(domain_id) ON DELETE CASCADE
    );
     
    CREATE TABLE virtual_aliases (
      alias_id INT2 NOT NULL DEFAULT nextval('seq_mail_alias_id'),
      domain_id INT2 NOT NULL,
      source varchar(100) NOT NULL,
      destination varchar(100) NOT NULL,
      PRIMARY KEY (alias_id),
      FOREIGN KEY (domain_id) REFERENCES virtual_domains(domain_id) ON DELETE CASCADE
    );
    
  3. nyní je potřeba naplnit databázi nějakými základními daty, nejprve si ukážeme, jak tvořit hesla pro emaily
    # doveadm pw -s sha512 -r 100
    Enter new password: ...
    Retype new password: ...
    {SHA512}.............................................................==
    
    a vložíme do databáze základní data
    INSERT INTO virtual_domains (domain_name)
    VALUES
      ('example.com'),
      ('hostname.example.com'),
      ('hostname'),
      ('localhost.example.com');
      
    INSERT INTO virtual_users ( domain_id, password , email)
    VALUES
      ( '1', '{SHA512}.............................................................==', 'info@example.com');
    

Nastavení postfixu

  • it/linux/mail_server.1454745103.txt.gz
  • Poslední úprava: 2016/02/06 08:51
  • autor: kourim