M08 Rec UF3. Servidor de correu + webmail amb Squirrelmail
Contingut
Enunciat
Al servidor instal·leu el servidor de correu (no s'ha de fer servir SSL). Per comprovar el funcionament heu d'utilitzar el webmail Squirrelmail. Les proves es faran des de l'amfitrió.
Procediment
Previ
Per a tenir un servidor de correu electrònic necessitarem tenir 2 servidors: el primer serà un SMTP per a enviar correus. El segon, serà un servidor POP/IMAP que serà el servidor que rebi els correus. L'SMTP el muntarem amb Postfix i el POP/IMAP amb Dovecot.
Per al servidor DNS podrem utilitzar la nostra documentació per a crear un servidor DNS separat o bé instal·lar-lo a la mateixa màquina que servirà de correu electrònic.
També haurem de deshabilitar sendmail com a MTA per a evitar conflictes amb postfix si és que aquest està instal·lat (en versions noves de CentOS ja no ve preinstal·lat i no caldrà fer aquest pas).
systemctl disable sendmail systemctl stop sendmail
Postfix (SMTP)
Instal·lació
Començarem instal·lant el paquet necessari amb yum
en cas que no estigui instal·lat.
yum install postfix -y
Configuració
L'arxiu de configuració principal de Postfix és /etc/postfix/main.cf
. L'haurem d'editar de la següent manera per a quadrar els paràmetres del nostre servidor amb els de la configuració:
- Línia 75: la descomentarem i escriurem el nom de domini corresponent al servidor de correu.
myhostname = mail.boeck.cat
- Línia 83: descomentarem i escriurem només el domini de la nostra xarxa.
mydomain = boeck.cat
- Línia 99: descomentem.
myorigin = $mydomain
- Línia 113: descomentem.
inet_interfaces = all
- Línia 116: comentem
#inet_interfaces = localhost
- Línia 164: comentem
#mydestination = $myhostname, localhost.$mydomain, localhost
- Línia 165: descomentem
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
- Línia 264: descomentem i editem de manera que s'hi reflexin les xarxes del servidor; en aquest cas corresponen a la xarxa vboxnet0, la loopback del servidor i la NAT de VirtualBox, respectivament.
mynetworks = 192.168.56.0/24, 127.0.0.0/8, 10.0.2.0/24, [::1]/128
- Línia 419: descomentem.
home_mailbox = Maildir/
- Línia 572: descomentem i editem.
smtpd_banner = $myhostname ESMTP
- Línia 681-688: afegim.
message_size_limit=10485760 mailbox_size_limit=1073741824 smtpd_sasl_type= dovecot smtpd_sasl_path= private/auth smtpd_sasl_auth_enable= yes smtpd_sasl_security_options= noanonymous smtpd_sasl_local_domain= $myhostname smtpd_recipient_restictions=permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject
També haurem de modificar l'arxiu /etc/postfix/header_checks
i afegir al principi aquestes directives per rebutjar correus que no tinguin adreça de correu al remitent.
/^From:.*<#.*@.*>/ REJECT /^Return-Path:.*<#.*@.*>/ REJECT
A l'arxiu /etc/postfix/body_checks
afegirem una directiva de rebuig si en el cos del correu electrònic s'hi troba el text example.com.
/^(|[^>].*)example.com/ REJECT
Posada en marxa
Com tots els serveis, els habilitarem a l'engegada i els posarem en marxa amb enable
i start
; o bé restart
si aja estava funcionant i volem aplciar els canvis de la configuració.
systemctl enable postfix systemctl start postfix
Dovecot (POP/IMAP)
Dovecot és el servei que permet recuperar els correus electrònics per a llegir-los, ja sigui utilitzant el protocol POP o IMAP.
Instal·lació
L'instal·larem amb yum
.
yum install dovecot -y
Configuració
Haurem de modificar 3 arxius:
- 1. /etc/dovecot/conf.d/10-auth.conf
- Línia 10: descomentar i editar.
disable_plaintext_auth = no
- Línia 100: editar.
auth_mechanisms = plain login
- 2. /etc/dovecot/conf.d/10-mail.conf
- Línia 30: descomentar i editar.
mail_location =maildir:~/Maildir
- 3. /etc/dovecot/conf.d/10-master.conf
- Línia 95-100: descomentar i editar.
# Postfix smtp-auth unix_listener /var/spool/postfix/private/auth { mode = 0666 user = postfix group = postfix }
Posada en marxa
Com qualsevol servei.
systemctl enable dovecot systemctl start dovecot
En aquest punt ja tenim a punt el servidor de correu per enviar i rebre. Falta instal·lar el client de webmail per a poder fer la prova de funcionament.
Squirrelmail
Requeriments
Apache
yum install httpd -y systemctl enable httpd systemctl start httpd
PHP
Des de la pàgina del programari es menciona que es necessiten uns patches en el cas d'utilitzar PHP 5.4. Podem, per tant, recórrer a la instal·lació de PHP 7 per a evitar problemes:
yum install epel-release yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm yum install yum-utils yum-config-manager --enable remi-php72 yum install php php-mcrypt php-cli php-gd php-curl php-mysql php-ldap php-zip php-fileinfo
Podem verificar la versió instal·lada amb la comanda següent:
php -v PHP 7.2.19 (cli) (built: May 29 2019 11:04:13) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
Firewall + SELinux
firewall-cmd --add-service=httpd --permanent firewall-cmd --reload
setenforce 0
Nota: Si ho volem fer permanent, haurem d'editar l'arxiu /etc/selinux/config
Instal·lació
yum install squirrelmail -y
Configuració
cd /usr/share/squirrelmail/config/ ./conf.pl SquirrelMail Configuration : Read: config.php (1.4.0) --------------------------------------------------------- Main Menu -- 1. Organization Preferences 2. Server Settings 3. Folder Defaults 4. General Options 5. Themes 6. Address Books 7. Message of the Day (MOTD) 8. Plugins 9. Database 10. Languages D. Set pre-defined settings for specific IMAP servers C Turn color off S Save data Q Quit Command >>
Des d'aquest menú haurem d'accedir als següents punts i editar-los de manera que corresponguin amb la nostra configuració; en aquest cas:
- 2: Server Settings
- 1: Domain → boeck.cat
- 3: Sendmail or SMTP → SMTP
- 8: Server Software → dovecot
Llavors teclejarem S per a desar les modificacions que hem fet i, una vegada desat, teclejarem Q per a sortir de l'assistent.
Per simplificar, deshabilitarem l'accés forçat per HTTPS al client webmail des de l'arxiu que genera perquè el servidor web Apache serveixi el contingut. Editem l'arxiu /etc/httpd/conf.d/squirrelmail.conf
i editarem la secció des de la línia 19 cap avall per deixar-la de la següent manera:
# this section makes squirrelmail use https connections only, for this you # need to have mod_ssl installed. If you want to use unsecure http # connections, just remove this section: <Directory /usr/share/squirrelmail> # RewriteEngine on # RewriteCond %{HTTPS} !=on # RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} <IfModule mod_authz_core.c> # Apache 2.4 Require all granted </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order allow,deny Allow from all </IfModule> </Directory>
Bàsicament, comentem les directives que fan que es reescrigui la URL com a https:// de manera que es mantingui http://.
Com que hem modificat configuració d'Apache, reiniciem el servei per aplicar els canvis
systemctl restart httpd
Usuari de correu
Afegirem un usuari al sistema que serà el que farem servir per enviar correu
useradd guillem passwd guillem S'està canviant la contrasenya de l'usuari guillem. Nova contrasenya de : CONTRASENYA INCORRECTA: The password is shorter than 8 characters Torneu a escriure la nova contrasenya de : passwd: tots els testimonis d'autenticació s'han actualitzat amb èxit.
Prova de funcionament
Accedirem a l'adreça del servidor amb el subdirectori /webmail http://192.168.56.100/webmail i se'ns presentarà la pàgina de login
Ens autenticarem amb l'usuari i password que hem creat abans
Veurem la nostra bústia d'entrada per a aquell usuari
Amb el botó Compose podem escriure un nou correu electrònic a una adreça de gmail per a provar d'enviar correu a través d'Internet
Una vegada enviat, si anem a la bústia de Gmail on hem enviat el correu veurem que ha arribat (ha aparegut a SPAM perquè Google detecta que prové d'un domini no registrat, entre altres incongruències)