Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

emailovy_server_postfix_s_webovou_administraci [2012/01/24 09:23] (aktuální)
fanda vytvořeno
Řádek 1: Řádek 1:
 +====== Emailový server na 4smart s webovou administrací ======
 +
 +
 +I pro poměrně zkušeného uživatele Debianu (natož pro BFU) může být nastavení Postfixu nesnadná záležitost. Sám jsem se marně pokoušel nastavit Postfix z příkazové řádky tak, aby fungoval přesně podle mých představ, až jsem to vzdal a nainstaloval program Postfix Admin, což je webová aplikace pro správu emailových schránek a přesměrování emailů na serveru. Po přečtení tohoto článku a následování instrukcí v něm, budete mít Postfix Admin nainstalovaný na svém serveru a správa emailů pro Vaše domény bude mnohem jednoduší.
 +
 +Pokud ještě nemáte, vytvořte si na 4smart.cz virtuální server s Debianem. Tento návod bude pracovat s nejzákladnější šablonou Debian-6, ale návod by měl být obecný i pro ostatní šablony, kde budou přinejhorším nějaké programy již nainstalované.
 +
 +===== Instalace potřebných programů =====
 +
 +
 +Nejdříve nainstalujeme programy, které jsou pro konfiguraci nezbytné. Jsou to: Php, Mysql (případně PostgreSql),​ Postfix a nějaký IMAP/POP3 server (Dovecot, Courier nebo jiný). Než je však začneme instalovat je vhodné aktualizovat nabídku programů i nainstalované programy.
 +
 +''​apt-get update && apt-get upgrade''​
 +
 +Následně nainstalujeme potřebné programy:
 +
 +''​apt-get install postfix postfix-mysql dovecot-common mysql-client mysql-server php5 php5-mysql php5-imap''​
 +
 +Instalací programu postfix se automaticky odinstaluje sendmail, který je v šabloně jako výchozí program pro odesílání pošty. Webový server Apache už na serveru je, takže se instalovat nemusí.
 +
 +===== Instalace programu Postfix Admin =====
 +
 +
 +Program Postfix Admin ([[http://​postfixadmin.sourceforge.net/​]]) je nejdřív potřeba stáhnout. Na serveru jsme v domovském adresáři uživatele root a není proti ničemu, když program stáhneme sem. Stažení programem wget, rozbalení a přesun do složky s programem uděláme následovně:​
 +
 +  wget http://​downloads.sourceforge.net/​project/​postfixadmin/​postfixadmin/​postfixadmin-2.3.4/​postfixadmin_2.3.4.tar.gz?​ts=1327090636 -O postfixadmin_2.3.4.tar.gz
 +  tar xvfz postfixadmin_2.3.4.tar.gz
 +  cd postfixadmin_2.3.4.tar.gz
 +
 +Teď je potřeba vytvořit databázi v MySQL. Na nově vytvořeném serveru není žádný PhpMyAdmin ani Adminer, takže předvedu, jak se to dá udělat v konzoli. Příkaz
 +
 +''​mysql -u root -p''​
 +
 +nás přihlásí do databáze. Heslo se zadávalo před chvíli u instalace, takže by mělo být živé paměti. Vhodné jméno pro novou databázi je postfix, ale lze použít jakékoliv. Pro přístup k databázi se vytvoří ještě nový uživatel, který bude mít stejné jméno jako databáze, ale není to podmínkou.
 +
 +  mysql> CREATE DATABASE postfix;
 +  mysql> CREATE USER '​postfix'​@'​localhost'​ IDENTIFIED BY '​HESLO';​
 +  mysql> GRANT ALL PRIVILEGES ON `postfix` . * TO '​postfix'​@'​localhost';​
 +
 +Pro ukončení mysql pak //\q//.
 +
 +Přístupové údaje k databázi je pak potřeba dát do souboru //​config.inc.php//​. Nacházejí se za komentářem //# Database Config// a pokud se Vaše databáze i uživatel jmenují postfix, tak stačí změnit pouze heslo. Konfigurační soubor však ještě nezavírejte,​ protože je zde nutno změnit ještě jednu hodnotu a to hned tu první -  ''​$CONF['​configured'​] = false;''​ na  ''​$CONF['​configured'​] = true;'' ​ - pak teprve lze soubor zavřít.
 +
 +Další nastavení se týká již přímo postfixu. Ve složce //​DOCUMENTS//​ jsou anglické návody jak nastavit další programy, aby správně fungovaly s Postfix Adminem. Nás zajímá návod //​POSTFIX_CONF.txt//,​ kde je popsáno nastavení pro tuto verzi Postfix Admina.
 +
 +Tam je napsáno, že máme nejprve příkazem ''​postconf -m''​ zkusit, zda nainstalovaný postfix umí pracovat s databází MySQL. Náš postfix to umí, protože jsme to na začátku instalovali. Dále se tam radí, jak upravit konfigurační soubor //​main.cf//​. Ten musíme vytvořit v ///​etc/​postfix///​
 +
 +__**/​etc/​postfix/​main.cf:​**__
 +  smtpd_banner = $myhostname ESMTP $mail_name (Debian/​GNU)
 +  biff = no
 +  # appending .domain is the MUA's job.
 +  append_dot_mydomain = no
 +  # Uncomment the next line to generate "​delayed mail" warnings
 +  #​delay_warning_time = 4h
 +  readme_directory = no
 +  # TLS parameters
 +  smtpd_tls_cert_file=/​etc/​ssl/​certs/​ssl-cert-snakeoil.pem
 +  smtpd_tls_key_file=/​etc/​ssl/​private/​ssl-cert-snakeoil.key
 +  smtpd_use_tls=yes
 +  smtpd_tls_session_cache_database = btree:​${data_directory}/​smtpd_scache
 +  smtp_tls_session_cache_database = btree:​${data_directory}/​smtp_scache
 +  # See /​usr/​share/​doc/​postfix/​TLS_README.gz in the postfix-doc package for
 +  # information on enabling SSL in the smtp client.
 +  myhostname = localhost.localdomain
 +  alias_maps = hash:/​etc/​aliases
 +  alias_database = hash:/​etc/​aliases
 +  myorigin = /​etc/​mailname
 +  mydestination = smaslem.cz, localhost.localdomain,​ localhost.localdomain,​ localhost
 +  relayhost =
 +  mynetworks = 127.0.0.0/8 [::​ffff:​127.0.0.0]/​104 [::1]/128
 +  mailbox_command = procmail -a "​$EXTENSION"​
 +  mailbox_size_limit = 0
 +  recipient_delimiter = +
 +  inet_interfaces = all
 +  virtual_mailbox_domains = proxy:​mysql:/​etc/​postfix/​mysql_virtual_domains_maps.cf
 +  virtual_alias_maps =
 +    proxy:​mysql:/​etc/​postfix/​mysql_virtual_alias_maps.cf,​
 +    proxy:​mysql:/​etc/​postfix/​mysql_virtual_alias_domain_maps.cf,​
 +    proxy:​mysql:/​etc/​postfix/​mysql_virtual_alias_domain_catchall_maps.cf
 +  virtual_mailbox_maps =
 +    proxy:​mysql:/​etc/​postfix/​mysql_virtual_mailbox_maps.cf,​
 +    proxy:​mysql:/​etc/​postfix/​mysql_virtual_alias_domain_mailbox_maps.cf
 +  virtual_create_maildirsize = yes
 +  virtual_mailbox_extended = yes
 +  virtual_mailbox_limit_maps = mysql:/​etc/​postfix/​mysql_virtual_mailbox_limit_maps.cf
 +  virtual_mailbox_limit_override = yes
 +  virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later.
 +  virtual_overquota_bounce = yes
 +  # konec souboru main.cf
 +
 +
 +Proměnné na konci se jménem virtual_* jsou důležité,​ protože odkazují na soubory s dalším nastavením pro Postfix Admin. Tyto soubory nyní vytvoříme,​ budou vypadat následovně.
 +
 +__**/​etc/​postfix/​mysql_virtual_alias_maps.cf:​**__
 +  user = postfix
 +  password = HESLO
 +  hosts = localhost
 +  dbname = postfix
 +  query = SELECT goto FROM alias WHERE address='​%s'​ AND active = '​1'​
 +
 +__**/​etc/​postfix/​mysql_virtual_alias_domain_maps.cf:​**__
 +  user = postfix
 +  password = HESLO
 +  hosts = localhost
 +  dbname = postfix
 +  query = SELECT goto FROM alias,​alias_domain WHERE alias_domain.alias_domain = '​%d'​ and alias.address = CONCAT('​%u',​ '​@',​ alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active='​1'​
 +
 +
 +__**/​etc/​postfix/​mysql_virtual_alias_domain_catchall_maps.cf:​**__
 +  user = postfix
 +  password = HESLO
 +  hosts = localhost
 +  dbname = postfix
 +  query  = SELECT goto FROM alias,​alias_domain WHERE alias_domain.alias_domain = '​%d'​ and alias.address = CONCAT('​@',​ alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active='​1'​
 +
 +__**mysql_virtual_domains_maps.cf:​**__
 +  user = postfix
 +  password = HESLO
 +  hosts = localhost
 +  dbname = postfix
 +  query          = SELECT domain FROM domain WHERE domain='​%s'​ AND active = '​1'​
 +
 +__**mysql_virtual_mailbox_maps.cf:​**__
 +  user = postfix
 +  password = HESLO
 +  hosts = localhost
 +  dbname = postfix
 +  query           = SELECT maildir FROM mailbox WHERE username='​%s'​ AND active = '​1'​
 +
 +__**mysql_virtual_alias_domain_mailbox_maps.cf:​**__
 +  user = postfix
 +  password = HESLO
 +  hosts = localhost
 +  dbname = postfix
 +  query = SELECT maildir FROM mailbox,​alias_domain WHERE alias_domain.alias_domain = '​%d'​ and mailbox.username = CONCAT('​%u',​ '​@',​ alias_domain.target_domain) AND mailbox.active = 1 AND alias_domain.active='​1'​
 +
 +__**mysql_virtual_mailbox_limit_maps.cf:​**__
 +  user = postfix
 +  password = HESLO
 +  hosts = localhost
 +  dbname = postfix
 +  query = SELECT quota FROM mailbox WHERE username='​%s'​ AND active = '​1'​
 +
 +To je k nastavení postfixu vše. Zbývá poslední krok a tím je nastavení webového serveru. Apache je již na VPS nainstalován,​ takže jej stačí jen nastavit.
 +
 +Program Postfix Admin přesuneme do složky ''/​var/​www''​ a smažeme zdrojový archiv.
 +
 +  mv postfixadmin-2.3.4 /​var/​www/​postfixadmin
 +  rm postfixadmin_2.3.4.tar.gz
 +
 +
 +Nyní už zbývá jen vytvořit konfigurační soubor Apache a jsme téměř hotoví.
 +
 +__**/​etc/​apache2/​sites-available/​postfix:​**__
 +  <​VirtualHost *:80>
 +    ServerAdmin webmaster@localhost
 +    DocumentRoot /​var/​www/​postfixadmin
 +    ServerName ​ postfixadmin.domena.com
 +    <​Directory />
 +      Options FollowSymLinks
 +      AllowOverride None
 +    </​Directory>​
 +    <​Directory /​var/​www/​postfixadmin>​
 +      Options Indexes FollowSymLinks MultiViews
 +      AllowOverride None
 +      Order allow,deny
 +      allow from all
 +    </​Directory>​
 +    ErrorLog ${APACHE_LOG_DIR}/​postfixadmin.error.log
 +    LogLevel warn
 +    CustomLog ${APACHE_LOG_DIR}/​postfixadmin.access.log combined
 +  </​VirtualHost>​
 +
 +Na ten se pak vytvoří symlink a restartuje se webový server Apache.
 +
 +  ln -s /​etc/​apache2/​sites-available/​postfix /​etc/​apache2/​sites-enabled/​postfix
 +  service apache2 restart
 +
 +Na adrese ''​http://​postfixadmin.domena.com''​ nyní běží Postfix Admin.
 +Jděte však nejprve na adresu ''​http://​postfixadmin.domena.com/​setup.php'',​ čímž se vytvoří databázové tabulky. Je tam formulář pro heslo, jehož zadáním se vygeneruje hash, který je potřeba přidat do konfiguračního souboru //​config.inc.php//​. Je to hned druhá proměnná.
 +
 +$CONF['​setup_password'​] = 'VÁŠ HASH';
 +
 +Na této stránce můžete také přidat Supersprávce. Vytvořte jej a vraťte se na úvodní stránku. Instalace je tímto hotova.
  
 
emailovy_server_postfix_s_webovou_administraci.txt · Poslední úprava: 2012/01/24 09:23 autor: fanda