Servidor Correu: diferència entre les revisions
De FFAWiki
(Hi ha 17 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 | * 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 | * 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 | * GRANT SELECT ON ffa_mailserver.* TO 'mailuser'@'127.0.0.1'; | ||
* FLUSH PRIVILEGES; | * FLUSH PRIVILEGES; | ||
===== Crear Taules ===== | ===== Crear Taules ===== | ||
* USE | * USE ffa_mailserver; | ||
====== Taula dominis virtuals ====== | ====== Taula dominis virtuals ====== | ||
Línia 38: | Línia 44: | ||
* 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; | * 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; | ||
====Postfix==== | |||
====Dovecot==== | ===== Emplenar Taules ===== | ||
====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 14:56, 10 set 2022
Postfix, Mysql, Dovecot i Roundcube
Preparació
- Crear un registres MX (DNS)
- Afegir a el domini a /etc/hosts
- 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
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
- sudo nano /etc/postfix/mysql-virtual-mailbox-domains.cf
- sudo nano /etc/postfix/mysql-virtual-mailbox-maps.cf
- sudo nano /etc/postfix/mysql-virtual-alias-maps.cf
- sudo nano /etc/postfix/mysql-virtual-email2email.cf
- 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
- 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
- Editar en fitxer /etc/postfix/master.cf com a la imatge
- 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
- Editar en fitxer /etc/dovecot/conf.d/auth-sql.conf.ext com a la imatge
- Editar en fitxer /etc/dovecot/dovecot-sql.conf.ext com a la imatge
- 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
- Editar en fitxer /etc/dovecot/conf.d/10-ssl.conf com a la imatge
- 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
- Editar en fitxer /etc/roundcube/config.inc.php com a la imatge