Servidor Correu: diferència entre les revisions

De FFAWiki
 
(Hi ha 18 revisions intermèdies del mateix usuari que no es mostren)
Línia 2: Línia 2:
=== Preparació ===
=== Preparació ===


* Crear un registres MX  
* Crear un registres MX (DNS)
** [[Fitxer:MX.png|sense marc]]
** [[Fitxer:MX.png|sense marc]]
* Afegir a el domini a '''/etc/hosts'''
* Afegir a el domini a '''/etc/hosts'''
** [[Fitxer:Etc hosts.png|sense marc]]
** [[Fitxer:Etc hosts.png|sense marc]]
* Obrir els ports del router
** SMTP: 25
** SMTPS: 465
** SMTP-AUTH: 587
** IMAPS: 993
** POPS: 995


=== Instal·lació ===
=== Instal·lació ===


* sudo apt-get install postfix postfix-mysql dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd dovecot-mysql roundcube roundcube-core
* sudo apt-get install postfix postfix-mysql dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd dovecot-mysql
** [[Fitxer:Install server correu.png|sense marc|439x439px]]
** [[Fitxer:Install server correu.png|sense marc|439x439px]]
** Seguir les instruccions
** Seguir les instruccions
Línia 20: Línia 26:
===== Crear usuari i BD =====
===== Crear usuari i BD =====


* CREATE DATABASE mailserver;
* CREATE DATABASE ffa_mailserver;
* CREATE USER 'mailuser'@'127.0.0.1' IDENTIFIED BY 'password';
* CREATE USER 'mailuser'@'127.0.0.1' IDENTIFIED BY 'password';
* GRANT SELECT ON mailserver.* TO 'mailuser'@'127.0.0.1';
* GRANT SELECT ON ffa_mailserver.* TO 'mailuser'@'127.0.0.1';
* FLUSH PRIVILEGES;
* FLUSH PRIVILEGES;


===== Crear Taules =====
===== Crear Taules =====


* USE mailserver;
* USE ffa_mailserver;


====== Taula dominis virtuals ======
====== Taula dominis virtuals ======
Línia 34: Línia 40:
====== Taula correus virtuals ======
====== Taula correus virtuals ======


* CREATE TABLE `virtual_users` (
* CREATE TABLE `virtual_users` (`id` INT NOT NULL AUTO_INCREMENT,`domain_id` INT NOT NULL,`password` VARCHAR(106) NOT NULL,`email` VARCHAR(120) NOT NULL,PRIMARY KEY (`id`),UNIQUE KEY `email` (`email`),FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8;
`id` INT NOT NULL AUTO_INCREMENT,
`domain_id` INT NOT NULL,
`password` VARCHAR(106) NOT NULL,
`email` VARCHAR(120) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`),
FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
====== Taula alias virtuals ======
====== Taula alias virtuals ======


* CREATE TABLE `virtual_aliases` (
* CREATE TABLE `virtual_aliases` (`id` INT NOT NULL AUTO_INCREMENT,`domain_id` INT NOT NULL,`source` varchar(100) NOT NULL,`destination` varchar(100) NOT NULL, PRIMARY KEY (`id`),FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8;
`id` INT NOT NULL AUTO_INCREMENT,
`domain_id` INT NOT NULL,
`source` varchar(100) NOT NULL,
`destination` varchar(100) NOT NULL,
PRIMARY KEY (`id`),
FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


====Postfix====
===== Emplenar Taules =====
====Dovecot====
 
====Roundcube====
====== Taula dominis virtuals ======
 
* INSERT INTO `mailserver`.`virtual_domains` (`id` ,`name`) VALUES ('1', 'mydomain1.com');
====== Taula correus virtuals ======
 
* INSERT INTO `mailserver`.`virtual_users` (`id`, `domain_id`, `password` , `email`) VALUES ('1', '1', ENCRYPT('mypassword1', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'email1@mydomain1.com');
====== Taula alias virtuals ======
 
* INSERT INTO `servermail`.`virtual_aliases` (`id`, `domain_id`, `source`, `destination`) VALUES ('1', '1', 'myalias@example.com', 'email1@mydomain1.com');
 
====Postfix (SMTP)====
 
===== '''/etc/postfix/main.cf''' =====
* Fem una copia del arxiu
** sudo cp /etc/postfix/main.cf /etc/postfix/main.cf.bk
* Editar en fitxer '''/etc/postfix/main.cf''' com a la imatge
** [[Fitxer:Postfix.png|sense marc|543x543px]]
 
* sudo nano /etc/postfix/mysql-virtual-mailbox-domains.cf
** [[Fitxer:Virtualdomain.png|sense marc]]
* sudo nano /etc/postfix/mysql-virtual-mailbox-maps.cf
** [[Fitxer:Virtualuser .png|sense marc]]
* sudo nano /etc/postfix/mysql-virtual-alias-maps.cf
** [[Fitxer:Virtualalias.png|sense marc]]
* sudo nano /etc/postfix/mysql-virtual-email2email.cf
** [[Fitxer:Email2email.png|sense marc]]
* sudo service postfix restart
 
* Fem la prova de configuració (TOT ha de retornar algo per que funcioni correctament)
**postmap -q mydomain1.com mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
**postmap -q email1@mydomain1.com mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
**postmap -q mydomain1.com mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
**postmap -q alias@mydomain1.com mysql:/etc/postfix/mysql-virtual-alias-maps.cf
**postmap -q alias@mydomain1.com mysql:/etc/postfix/mysql-virtual-email2email.cf
 
===== '''/etc/postfix/master.cf''' =====
* Fem una copia del arxiu
** sudo cp /etc/postfix/master.cf /etc/postfix/master.cf.bk
* Editar en fitxer '''/etc/postfix/master.cf''' com a la imatge
** [[Fitxer:Postfixmaster.png|sense marc|1178x1178px]]
* sudo systemctl restart postfix
 
====Dovecot (IMAP i POP)====
 
* Fem una copia dels arxius
** sudo cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.bk
** sudo cp /etc/dovecot/conf.d/10-mail.conf /etc/dovecot/conf.d/10-mail.conf.bk
** sudo cp /etc/dovecot/conf.d/10-auth.conf /etc/dovecot/conf.d/10-auth.conf.bk
** sudo cp /etc/dovecot/dovecot-sql.conf.ext /etc/dovecot/dovecot-sql.conf.ext.bk
** sudo cp /etc/dovecot/conf.d/10-master.conf /etc/dovecot/conf.d/10-master.conf.bk
** sudo cp /etc/dovecot/conf.d/10-ssl.conf /etc/dovecot/conf.d/10-ssl.conf.bk
* Editar en fitxer '''/etc/dovecot/dovecot.conf''' com a la imatge
** [[Fitxer:Dovecot1.png|sense marc|411x411px]]
* Editar en fitxer '''/etc/postfix/master.cf''' com a la imatge
** [[Fitxer:Dovecot2.png|sense marc|406x406px]]
* Crear carpeta on es guardaran els correus
** sudo mkdir -p /ffa/mail/vhosts/mydomain.com
* Crear grup i usuari, i donar permis a la carpeta
** sudo groupadd -g 5000 vmail
** sudo useradd -g vmail -u 5000 vmail -d /ffa/mail
** sudo chown -R vmail:vmail /ffa/mail
* Editar en fitxer '''/etc/dovecot/conf.d/10-auth.conf''' com a la imatge
** [[Fitxer:Dovecot3.png|sense marc|404x404px]]
* Editar en fitxer '''/etc/dovecot/conf.d/auth-sql.conf.ext''' com a la imatge
** [[Fitxer:Dovecot4.png|sense marc|408x408px]]
* Editar en fitxer '''/etc/dovecot/dovecot-sql.conf.ext''' com a la imatge
** [[Fitxer:Dovecot5.png|sense marc|427x427px]]
* Canviar permisos carpeta '''/etc/dovecot'''
** sudo chown -R vmail:dovecot /etc/dovecot
** sudo chmod -R o-rwx /etc/dovecot
* Editar en fitxer '''/etc/dovecot/conf.d/10-master.conf''' com a la imatge
** [[Fitxer:Dovecot6.png|sense marc|726x726px]]
* Editar en fitxer '''/etc/dovecot/conf.d/10-ssl.conf''' com a la imatge
** [[Fitxer:Dovecot7.png|sense marc|384x384px]]
* sudo systemctl restart dovecot
 
* Fem la prova de funcionament (TOT ha de retornar algo per que funcioni correctament)
** telnet mydomain.com 25
** telnet mydomain.com 993
** telnet mydomain.com 994
** telnet mydomain.com 465
** telnet mydomain.com 587
 
====Roundcube (Webmail)====
 
* sudo apt-get install roundcube roundcube-core
** [[Fitxer:Roundcube.png|sense marc|509x509px]]
* Editar en fitxer '''/etc/roundcube/config.inc.php''' com a la imatge
** [[Fitxer:Roundcube2.png|sense marc|424x424px]]
**
 
====SPF i DMARC (Opcional)====
 
* Crear un registre SPF i un TXT (DNS)
** [[Fitxer:Dmarc i spf.png|sense marc|505x505px]]
 
* sudo apt install postfix-policyd-spf-python
* Afegir en fitxer '''/etc/postfix/master.cf''' com a la imatge
**[[Fitxer:Spf postfix2.png|sense marc|399x399px]]
*Afegir en fitxer '''/etc/postfix/main.cf''' com a la imatge
**[[Fitxer:Spf postfix.png|sense marc|752x752px]]
*sudo systemctl restart postfix

Revisió de 13:56, 10 set 2022

Postfix, Mysql, Dovecot i Roundcube

Preparació

  • Crear un registres MX (DNS)
    • MX.png
  • Afegir a el domini a /etc/hosts
    • Etc hosts.png
  • Obrir els ports del router
    • SMTP: 25
    • SMTPS: 465
    • SMTP-AUTH: 587
    • IMAPS: 993
    • POPS: 995

Instal·lació

  • sudo apt-get install postfix postfix-mysql dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd dovecot-mysql
    • Install server correu.png
    • Seguir les instruccions

Configuració

Mysql

  • sudo mysql
Crear usuari i BD
  • CREATE DATABASE ffa_mailserver;
  • CREATE USER 'mailuser'@'127.0.0.1' IDENTIFIED BY 'password';
  • GRANT SELECT ON ffa_mailserver.* TO 'mailuser'@'127.0.0.1';
  • FLUSH PRIVILEGES;
Crear Taules
  • USE ffa_mailserver;
Taula dominis virtuals
  • CREATE TABLE `virtual_domains` ( `id` INT NOT NULL AUTO_INCREMENT, `name` VARCHAR(50) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Taula correus virtuals
  • CREATE TABLE `virtual_users` (`id` INT NOT NULL AUTO_INCREMENT,`domain_id` INT NOT NULL,`password` VARCHAR(106) NOT NULL,`email` VARCHAR(120) NOT NULL,PRIMARY KEY (`id`),UNIQUE KEY `email` (`email`),FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Taula alias virtuals
  • CREATE TABLE `virtual_aliases` (`id` INT NOT NULL AUTO_INCREMENT,`domain_id` INT NOT NULL,`source` varchar(100) NOT NULL,`destination` varchar(100) NOT NULL, PRIMARY KEY (`id`),FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Emplenar Taules
Taula dominis virtuals
  • INSERT INTO `mailserver`.`virtual_domains` (`id` ,`name`) VALUES ('1', 'mydomain1.com');
Taula correus virtuals
  • INSERT INTO `mailserver`.`virtual_users` (`id`, `domain_id`, `password` , `email`) VALUES ('1', '1', ENCRYPT('mypassword1', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'email1@mydomain1.com');
Taula alias virtuals
  • INSERT INTO `servermail`.`virtual_aliases` (`id`, `domain_id`, `source`, `destination`) VALUES ('1', '1', 'myalias@example.com', 'email1@mydomain1.com');

Postfix (SMTP)

/etc/postfix/main.cf
  • Fem una copia del arxiu
    • sudo cp /etc/postfix/main.cf /etc/postfix/main.cf.bk
  • Editar en fitxer /etc/postfix/main.cf com a la imatge
    • Postfix.png
  • sudo nano /etc/postfix/mysql-virtual-mailbox-domains.cf
    • Virtualdomain.png
  • sudo nano /etc/postfix/mysql-virtual-mailbox-maps.cf
    • Virtualuser .png
  • sudo nano /etc/postfix/mysql-virtual-alias-maps.cf
    • Virtualalias.png
  • sudo nano /etc/postfix/mysql-virtual-email2email.cf
    • Email2email.png
  • sudo service postfix restart
  • Fem la prova de configuració (TOT ha de retornar algo per que funcioni correctament)
    • postmap -q mydomain1.com mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
    • postmap -q email1@mydomain1.com mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
    • postmap -q mydomain1.com mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
    • postmap -q alias@mydomain1.com mysql:/etc/postfix/mysql-virtual-alias-maps.cf
    • postmap -q alias@mydomain1.com mysql:/etc/postfix/mysql-virtual-email2email.cf
/etc/postfix/master.cf
  • Fem una copia del arxiu
    • sudo cp /etc/postfix/master.cf /etc/postfix/master.cf.bk
  • Editar en fitxer /etc/postfix/master.cf com a la imatge
    • Postfixmaster.png
  • sudo systemctl restart postfix

Dovecot (IMAP i POP)

  • Fem una copia dels arxius
    • sudo cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.bk
    • sudo cp /etc/dovecot/conf.d/10-mail.conf /etc/dovecot/conf.d/10-mail.conf.bk
    • sudo cp /etc/dovecot/conf.d/10-auth.conf /etc/dovecot/conf.d/10-auth.conf.bk
    • sudo cp /etc/dovecot/dovecot-sql.conf.ext /etc/dovecot/dovecot-sql.conf.ext.bk
    • sudo cp /etc/dovecot/conf.d/10-master.conf /etc/dovecot/conf.d/10-master.conf.bk
    • sudo cp /etc/dovecot/conf.d/10-ssl.conf /etc/dovecot/conf.d/10-ssl.conf.bk
  • Editar en fitxer /etc/dovecot/dovecot.conf com a la imatge
    • Dovecot1.png
  • Editar en fitxer /etc/postfix/master.cf com a la imatge
    • Dovecot2.png
  • Crear carpeta on es guardaran els correus
    • sudo mkdir -p /ffa/mail/vhosts/mydomain.com
  • Crear grup i usuari, i donar permis a la carpeta
    • sudo groupadd -g 5000 vmail
    • sudo useradd -g vmail -u 5000 vmail -d /ffa/mail
    • sudo chown -R vmail:vmail /ffa/mail
  • Editar en fitxer /etc/dovecot/conf.d/10-auth.conf com a la imatge
    • Dovecot3.png
  • Editar en fitxer /etc/dovecot/conf.d/auth-sql.conf.ext com a la imatge
    • Dovecot4.png
  • Editar en fitxer /etc/dovecot/dovecot-sql.conf.ext com a la imatge
    • Dovecot5.png
  • Canviar permisos carpeta /etc/dovecot
    • sudo chown -R vmail:dovecot /etc/dovecot
    • sudo chmod -R o-rwx /etc/dovecot
  • Editar en fitxer /etc/dovecot/conf.d/10-master.conf com a la imatge
    • Dovecot6.png
  • Editar en fitxer /etc/dovecot/conf.d/10-ssl.conf com a la imatge
    • Dovecot7.png
  • sudo systemctl restart dovecot
  • Fem la prova de funcionament (TOT ha de retornar algo per que funcioni correctament)
    • telnet mydomain.com 25
    • telnet mydomain.com 993
    • telnet mydomain.com 994
    • telnet mydomain.com 465
    • telnet mydomain.com 587

Roundcube (Webmail)

  • sudo apt-get install roundcube roundcube-core
    • Roundcube.png
  • Editar en fitxer /etc/roundcube/config.inc.php com a la imatge
    • Roundcube2.png

SPF i DMARC (Opcional)

  • Crear un registre SPF i un TXT (DNS)
    • Dmarc i spf.png
  • sudo apt install postfix-policyd-spf-python
  • Afegir en fitxer /etc/postfix/master.cf com a la imatge
    • Spf postfix2.png
  • Afegir en fitxer /etc/postfix/main.cf com a la imatge
    • Spf postfix.png
  • sudo systemctl restart postfix