Logo Postfix y DovecotConfigurar un servidor de correo tanto de salida como de entrada con Postfix y Dovecot. Incluyendo cifrado tanto en salida com en entrada en Debian.

Lo explico paso a paso.

 

 

IMPORTANTE: Todos los comandos y configuraciones se realizan en un servidor Debian Jessie  instalando el software Postfix 2.11.3, Dovecot 2.2.13, Mysql 5.5.49, Postfix Admin 2.93

Configurando los DNS

Lo primero para empezar es registrar los DNS de MX hacia el servidor de correo. En nuestro caso vamos a usar smtp.dominio.com para el correo de salida y imap.dominio.com para el correo de entrada. Aparte también enviaremos el dominio.com con el registro MX hacia el servidor de correo, para hacer los comandos y las configuraciones utillizaremos esta ip de ejemplo 1.1.1.1

La configuración quedaría de la siguiente forma:

dominio.com         MX      10      dominio.com
dominio.com         MX      10      1.1.1.1
smpt.dominio.com    MX      10      1.1.1.1
imap.dominio.com    MX       10     1.1.1.1

 

Creando los certificados

Podemos crear certificados autosignados por nosotros o podemos usar Letsencrypt para que nos validen los certificados. Mucho mejor si podemos hacerlo con Letsencrypt.

Aquí explico como poder hacerlo /sistemas/linux/config/software/61-crear-certificado-firmado-por-entidad-certificadora-gratuito-con-letsencrypt

 

instalando paquetes necesarios

Desde root ejecutaremos los siguientes comandos para actualizar y instalar los paquetes necesarios.

apt-get update
apt-get install postfix postfix-mysql dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd dovecot-mysql mysql-server nginx php5-fpm php5 php5-mysqlnd php5-imap libsasl2-modules libsasl2-modules-sql

Nos irá pidiendo información para instalar los paquetes.

1-Introducimos el password para root en mysql. Lo repetimos.

2-Elegir la configuración de POSTFIX, en nuestro caso Internet Site.

3-Introduciremos el dominio de correo, en el caso de ejemplo seria dominio.com.

 

Instalando y Configurando Postfixadmin

1-Lo primero instalamos subversion para poder descargar la última versión de postfixadmin.

 apt-get install subversion 

Y descargamos la web de postfixadmin donde queramos con el siguiente comando:

svn co http://svn.code.sf.net/p/postfixadmin/code/trunk postfixadmin-code 

 

2-Creamos la base de datos y creamos el usuario con los permisos necesarios. Recordad que teneis que cambiar los datos de ejemplo que hay en los comandos.

 mysqladmin -p create postfix
mysql -p postfix
GRANT ALL PRIVILEGES ON postfix.* TO 'postfix_admin'@'localhost' IDENTIFIED BY 'changeme';
FLUSH PRIVILEGES;

3-Configuramos ahora el fichero config.inc.php cambiando los siguientes parámetros:

$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfix_admin';
$CONF['database_password'] = '<dbpassword1>';
$CONF['database_name'] = 'postfix';

 

4-Configuramos el servidor web. En mi caso uso nginx para que funcione por SSL/TLS (HTTPS) y que redireccione siempre hacia la web segura (HTTP->HTTPS) , usando los certificados creados para el mismo correo. La configuración es la siguiente. Modifcala según tus parámetros:

server {
    listen   80;
    server_name postfixadmin.domain.com;
    return         301 https://$server_name$request_uri; 

}

server {
	
	listen 443 ;
        server_name postfixadmin.domain.com;
	root /path/to/web/postfixadmin.domain.com/;
	index index.php index.html index.htm;

        access_log /path/to/log/postfixadmin.domain.com/access.log;
        error_log /path/to/log/postfixadmin.domain.com/error.log;


	ssl on;
        ssl_certificate /path/to/cert/cert.pem;
        ssl_certificate_key /path/to/cert/privkey.pem;

        ssl_session_timeout 5m;

        ssl_protocols SSLv3 TLSv1;
        ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
        ssl_prefer_server_ciphers on;


        location ~ \.php$ {
       		fastcgi_split_path_info ^(.+\.php)(/.+)$;
        	fastcgi_pass unix:/var/run/php5-fpm.sock;
		include fastcgi.conf;
        	fastcgi_param HTTPS on;
	}

	location ~ /\. {
        	deny all;
    	}
	error_page 404 /404.html;
}

 

5-Una vez configurado el servicio web y que funcione correctamente entraremos en el dominio postfixadmin.dominio.com/setup.php y comprobaremos que esté todo OK.

 

6-También cambiaremos en la misma web de setup.php el password por defecto para iniciar el setup. Nos generará un hash y la línea a copiar. Debería ser algo parecido a esto.

 $CONF['setup_password'] = '1bd7ea5c28a25472d0f6e556f2fac844:8ba57bc5062bfc24b86e9e73810cb02bf6d41d9c'; 

 Modificaremos el valor "changeme" para el campo "setup_password" del archivo conf.inc.php. También cambiaremos el valor de "$CONF['configured']" a true.

Con esto ya podremos acceder a la url de login.php.

 

7-Volveremos a entrar en setup.php y crearemos al usuario admin con el password que tenemos guardado del paso anterior.

 

OPCIONAL: 8- En el caso de que esteis migrando de un servidor a otro es posible hacer un backup de la base de datos de la versión antigua de postfix admin y que funcione en la nueva versión. Solo hace falta migrar la base de datos al nuevo Postfixadmin y entrar en el archivo upgrade.php via web. En mi caso funcionó pasando de un a versión 2.3.5 a la versión 2.93.

 

Configuración de Postfix

 1-Creamos una copia de seguridad de la configuración de Postfix por lo que pudiera pasar.

 cp /etc/postfix/main.cf /etc/postfix/main.cf.back 

 

3-Crearemos el usuario vmail para acceder a las carpetas de los correos en /var/mail

groupadd -g 4001 vmail
useradd -d /var/mail -m -u 4001 -g 4001 vmail

4-Añadimos los usuarios postfix y dovecot al grupo de vmail.

 usermod -G vmail postfix
 usermod -G vmail dovecot

5-Cambiaremos los parámetros de la configuración para que nos quede algo así,recordad poner vuestra configuración:

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
#Dominio principal del servicio
myhostname=domain.com
mydestination= $myhostname
#Ips permitidas para las reglas de restricciones 
mynetworks= 1.1.1.1,1.1.1.2,1.1.1.3

#Configuramos el uid y gid del usuario vmail creado anteriormente para poder acceder a 
# los correos. Configuramos también la carpeta donde alojar los correos, hay que pensar que # puede acabar ocupando bastante.
virtual_uid_maps = static:4001
virtual_gid_maps = static:4001
virtual_mailbox_base = /var/mail

#Configuracion de mysql
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_mailbox_domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
relay_domains = mysql:/etc/postfix/mysql_relay_domains.cf

#Configuracion de SSL/TLS con los archivos de certificados
smtpd_tls_cert_file=/etc/dovecot/dovecot.pem
smtpd_tls_key_file=/etc/dovecot/private/dovecot.pem
smtpd_use_tls=yes
smtpd_tls_auth_only = yes

#Configuracion de sasl
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_security_options = noanonymous

#Restricciones para recibir correos
smtpd_recipient_restrictions = 
	permit_mynetworks,
	permit_sasl_authenticated,
	reject_unauth_destination,
	reject_non_fqdn_hostname,
	reject_non_fqdn_sender,
	reject_non_fqdn_recipient,
	reject_unauth_destination,
	reject_unauth_pipelining,
	permit

# El valor debe calcularse en KB pero no de forma exacta.
message_size_limit = 102400000
mailbox_size_limit = 102400000
virtual_mailbox_limit = 102400000
#Forzado de protocolo ipv6 para que gmail no nos de problemas a la hora de enviarles correos
inet_protocols = ipv4
#Ip del servidor de correo por la que se quieran enviar los correos
smtp_bind_address = 1.1.1.1 

El fichero tiene comentarios explicativos, así que considero la configuración explicada.

 

6- Crearemos un usuario de solo lectura para msyql.

 mysql -p postfix
GRANT SELECT ON postfix.* TO 'postfix'@'localhost' IDENTIFIED BY 'changeme';

 

7-Configuraremos el fichero /etc/postfix/mysql_virtual_mailbox_domains.cf

hosts = 127.0.0.1
user = postfix
password = changeme
dbname = postfix
query = SELECT domain FROM domain WHERE domain='%s' and backupmx = 0 and active = 1

 

8-Configuramos el fichero /etc/postfix/mysql_virtual_mailbox_maps.cf

hosts = 127.0.0.1
user = postfixa
password = changeme
dbname = postfix
query = SELECT maildir FROM mailbox WHERE username='%s' AND active = 1

 

9-Configuramos el fichero /etc/postfix/mysql_virtual_alias_maps.cf

hosts = 127.0.0.1
user = postfix
password = changeme
dbname = postfix
query = SELECT goto FROM alias WHERE address='%s' AND active = 1

 

10-Configuramos el fichero /etc/postfix/mysql_relay_domains.cf

hosts = 127.0.0.1
user = postfix
password = changeme
dbname = postfix
query = SELECT domain FROM domain WHERE domain='%s' and backupmx = 1

 

11-Añadimos el usuario postfix al  sasl group.

 adduser postfix sasl 

 

12-Creamos una copia de seguridad del fichero /etc/postfix/master.cf

  cp /etc/postfix/master.cf /etc/postfix/master.cf.back

 

13-Modificamos el fichero /etc/postfix/master.cf para que las líneas que coincidan queden iguales.

#
# Postfix master process configuration file.  For details on the format
# of the file, see the master(5) manual page (command: "man 5 master" or
# on-line: http://www.postfix.org/master.5.html).
#
# Do not forget to execute "postfix reload" after editing this file.
#
# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
# ==========================================================================
smtp      inet  n       -       -       -       -       smtpd
#smtp      inet  n       -       -       -       1       postscreen
#smtpd     pass  -       -       -       -       -       smtpd
#dnsblog   unix  -       -       -       -       0       dnsblog
#tlsproxy  unix  -       -       -       -       0       tlsproxy
submission inet  n 	 - 	 - 	 - 	 - 	smtpd 
 -o syslog_name=postfix/submission 
 -o smtpd_tls_security_level=encrypt 
 -o smtpd_sasl_auth_enable=yes 
 -o smtpd_client_restrictions=permit_sasl_authenticated,reject
 -o milter_macro_daemon_name=ORIGINATING
smtps 	   inet  n	 -	 -	 -	 -	 smtpd
 -o syslog_name=postfix/smtps
 -o smtpd_tls_wrappermode=yes
 -o smtpd_sasl_auth_enable=yes
 -o smtpd_client_restrictions=permit_sasl_authenticated,reject
 -o milter_macro_daemon_name=ORIGINATING
#628       inet  n       -       -       -       -       qmqpd
pickup    unix  n       -       -       60      1       pickup
cleanup   unix  n       -       -       -       0       cleanup
qmgr      unix  n       -       n       300     1       qmgr
#qmgr     unix  n       -       n       300     1       oqmgr
tlsmgr    unix  -       -       -       1000?   1       tlsmgr
rewrite   unix  -       -       -       -       -       trivial-rewrite
bounce    unix  -       -       -       -       0       bounce
defer     unix  -       -       -       -       0       bounce
trace     unix  -       -       -       -       0       bounce
verify    unix  -       -       -       -       1       verify
flush     unix  n       -       -       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
proxywrite unix -       -       n       -       1       proxymap
smtp      unix  -       -       -       -       -       smtp
relay     unix  -       -       -       -       -       smtp
#       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq     unix  n       -       -       -       -       showq
error     unix  -       -       -       -       -       error
retry     unix  -       -       -       -       -       error
discard   unix  -       -       -       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       -       -       -       lmtp
anvil     unix  -       -       -       -       1       anvil
scache    unix  -       -       -       -       1       scache
#
# ====================================================================
# Interfaces to non-Postfix software. Be sure to examine the manual
# pages of the non-Postfix software to find out what options it wants.
#
# Many of the following services use the Postfix pipe(8) delivery
# agent.  See the pipe(8) man page for information about ${recipient}
# and other message envelope options.
# ====================================================================
#
# maildrop. See the Postfix MAILDROP_README file for details.
# Also specify in main.cf: maildrop_destination_recipient_limit=1
#
maildrop  unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
#
# ====================================================================
#
# Recent Cyrus versions can use the existing "lmtp" master.cf entry.
#
# Specify in cyrus.conf:
#   lmtp    cmd="lmtpd -a" listen="localhost:lmtp" proto=tcp4
#
# Specify in main.cf one or more of the following:
#  mailbox_transport = lmtp:inet:localhost
#  virtual_transport = lmtp:inet:localhost
#
# ====================================================================
#
# Cyrus 2.1.5 (Amos Gouaux)
# Also specify in main.cf: cyrus_destination_recipient_limit=1
#
#cyrus     unix  -       n       n       -       -       pipe
#  user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
#
# ====================================================================
# Old example of delivery via Cyrus.
#
#old-cyrus unix  -       n       n       -       -       pipe
#  flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}
#
# ====================================================================
#
# See the Postfix UUCP_README file for configuration details.
#
uucp      unix  -       n       n       -       -       pipe
  flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
#
# Other external delivery methods.
#
ifmail    unix  -       n       n       -       -       pipe
  flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp     unix  -       n       n       -       -       pipe
  flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix	-	n	n	-	2	pipe
  flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
mailman   unix  -       n       n       -       -       pipe
  flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
  ${nexthop} ${user}

 

Configurar Dovecot

1-Creamos el fichero /etc/dovecot/dovecot-mysql.conf.ext

driver = mysql
connect = host=localhost dbname=postixf user=postfix password=changeme
default_pass_scheme = MD5-CRYPT
user_query = SELECT '/var/mail/%d/%n' as home, 4001 AS uid, 4001 AS gid FROM mailbox WHERE username = '%u'
password_query = SELECT password FROM mailbox WHERE username = '%u'

 

2-Creamos una copia de seguridad del fichero /etc/dovecot/conf.d/10-auth.conf

cp /etc/dovecot/conf.d/10-auth.conf /etc/dovecot/conf.d/10-auth.conf.back 

 

3-Modificamos el fichero /etc/dovecot/conf.d/10-auth.conf descomentando y añadiendo los valores que se muestran.

disable_plaintext_auth = no
auth_mechanisms = plain login
#!include auth-system.conf.ext !include auth-sql.conf.ext

 

4-Creamos una copia del fichero /etc/dovecot/conf.d/10-mail.conf

cp /etc/dovecot/conf.d/10-mail.conf /etc/dovecot/conf.d/10-mail.conf.back

 

5-Modificamos el fichero /etc/dovecot/conf.d/10-mail.conf

mail_location = maildir:/var/mail/%d/%n:INDEX=/var/mail/%d/%n/indexes

 

6-Cremos una copia de seguridad del fichero /etc/dovecot/conf.d/10-ssl.conf

cp /etc/dovecot/conf.d/10-ssl.conf /etc/dovecot/conf.d/10-ssl.conf.back

 

7-Editamos el fichero /etc/dovecot/conf.d/10-ssl.conf. Pondremos la ruta hacia los certificados creados.

ssl = yes
ssl_cert = </etc/dovecot/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.pem

 

8-Cremos una copia de seguridad del fichero /etc/dovecot/conf.d/20-imap.conf

cp /etc/dovecot/conf.d/20-imap.conf /etc/dovecot/conf.d/20-imap.conf.back

 

9-Modificamos el fichero /etc/dovecot/conf.d/20-imap.conf

mail_max_userip_connections = 10

 

10-Cremos una coopia del ficheor /etc/dovecot/conf.d/auth-sql.conf.ext

cp /etc/dovecot/conf.d/auth-sql.conf.ext /etc/dovecot/conf.d/auth-sql.conf.ext.back

 

11-Modificamos el fichero /etc/dovecot/conf.d/auth-sql.conf.ext

passdb {
 driver = sql
 # Path for SQL configuration file, see example-config/dovecot-sql.conf.ext
 args = /etc/dovecot/dovecot-mysql.conf.ext
}
userdb {
 driver = sql
 args = /etc/dovecot/dovecot-mysql.conf.ext
}

 

12-Creamos una copia de /etc/dovecot/conf.d/10-master.conf

cp /etc/dovecot/conf.d/10-master.conf /etc/dovecot/conf.d/10-master.conf.back

 

13-Modifcamos el fichero /etc/dovecot/conf.d/auth-sql.conf.ext

service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    mode = 0600
    user = postfix
    group = postfix
  }
}
service auth {
  # Postfix smtp-auth
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
  }
}

 

Comprobando el sistema

1-Reiniciamos los servicios.

service dovecot restart
service postfix restart 

 

 2-Revisamos los logs para comprobar que todo va bien.

/var/log/auth.log
/var/log/mail.log
/var/log/syslog

 

Configuración de spamassassin

1-Instalamos spamassassin y spamc.

apt-get install spamassassin spamc 

 

2-Añadimos las siguientes líneas en el archivo /etc/postfix/master.cf

smtp      inet  n       -       -       -       -       smtpd
-o content_filter=spamassassin
submission inet n - - - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING -o content_filter=spamassassin smtps inet n - - - - smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING -o content_filter=spamassassin #628 inet n - - - - qmqpd pickup fifo n - - 60 1 pickup cleanup unix n - - - 0 cleanup qmgr fifo n - n 300 1 qmgr #qmgr fifo n - n 300 1 oqmgr tlsmgr unix - - - 1000? 1 tlsmgr rewrite unix - - - - - trivial-rewrite bounce unix - - - - 0 bounce defer unix - - - - 0 bounce trace unix - - - - 0 bounce verify unix - - - - 1 verify flush unix n - - 1000? 0 flush proxymap unix - - n - - proxymap proxywrite unix - - n - 1 proxymap smtp unix - - - - - smtp relay unix - - - - - smtp # -o smtp_helo_timeout=5 -o smtp_connect_timeout=5 showq unix n - - - - showq error unix - - - - - error retry unix - - - - - error discard unix - - - - - discard local unix - n n - - local virtual unix - n n - - virtual lmtp unix - - - - - lmtp anvil unix - - - - 1 anvil scache unix - - - - 1 scache smtp-ipv4 unix - - - - - smtp -o inet_protocols=ipv4 spamassassin unix - n n - - pipe #user=debian-spamd argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} ${recipient} flags=DROhu user=vmail:vmail argv=/usr/bin/spamc -f -e /usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop}

 

 3-Descomentaremos la siguiente línea en el archivo /etc/spamassassin/local.cf

rewrite_header Subject *****SPAM*****

 

4- (OPCIONAL) Para guardar todos los correos marcados como spam en una carpeta llamada Spam configuraremos Postfix añadiendiando al final del archivo /etc/postfix/main.cf la siguiente línea.

spamassassin_destination_recipient_limit = 1

4.1-Instalaremos también dovecto-sieve.

apt-get install install dovecto-sieve

4.2- Añadireomos las siguientes líneas en el fichero, justo antes de la configuración de Trash /etc/dovecot/conf.d/15-mailboxes.conf

mailbox Junk {
    special_use = \Junk
 }

4.3- Comentaremos la siguiente línea en el fichero /etc/dovecot/conf.d/90-sieve.conf

#sieve = ~/.dovecot.sieve

 

4.4- Añadiremos la siguiente línea en el fichero /etc/dovecot/conf.d/90-plugin.conf

plugin {
    sieve = /etc/dovecot/sieve/default.sieve
}

4.5- Descomentaremos la línea necesaria para que queden de la siguiente forma en el fichero /etc/dovecot/conf.d/15-lda.conf

protocol lda {
  mail_plugins = $mail_plugins sieve
postmaster_address = Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. }

4.6- Descomentaremos de igual forma para el siguiente fichero /etc/dovecot/conf.d/20-lmtp.conf

protocol lmtp {
  mail_plugins = $mail_plugins sieve
}

4.7- Crearemos la carpeta /etc/dovecot/sieve/

mkdir /etc/dovecot/sieve/

4.8- Crearemos el fichero /etc/dovecot/sieve/default.sieve

require "fileinto";
if header :contains "X-Spam-Flag" "YES" {
        fileinto "INBOX.Junk";
} 

4.9- Cambiamos los permisos de la carpeta /etc/dovecot/sieve

chown vmail:vmail /etc/dovecot/sieve/ -R

4.10- Reiniciamos todos los servicios para comprobar que funcionan correctamente.

service postfix restart; service dovecot restart; service spamassassin restart

 

5- Para probar que funciona bien el servicio de spamassassin primero enviaremos un correo legítimo y libre de spam hacia un correo interno. Después enviaremos un correo con el siguiente texto en el apartado de asunto.

XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X

Este correo debería ir a la carpeta Spam.

 

BONUS CONFIG

Configurar Fail2ban

Si queremos hacer un poco más seguro el servidor podemos configurar Fail2ban para las ips de lo que realizan los ataques de fuerza bruta para acceder a cuentas de nuestro servidor sean baneadas y penalizadas.

1-Instalamos fail2ban.

apt-get install fail2ban

2-Configuramos el archivo habilitando el filtro a Posfix como en la siguiente líneas

[postfix]

enabled  = true
port     = smtp,ssmtp,submission
filter   = postfix
logpath  = /var/log/mail.log

 3-Reiniciamos fail2ban.

service fail2ban restart

 

Webgrafia:

 https://wiki.debian.org/DebianSpamAssassin

 http://stackoverflow.com/questions/24256008/how-to-move-spam-to-spam-folder

 

 

  • No se han encontrado comentarios

Deja tus comentarios

Enviar un comentario como invitado

0 / 300 Restricción de Carateres
El texto debe estar entre 2-300 caracteres
Sus comentarios están sujetos a moderación por un administrador.