Discussion:
como asegurar acceso por telnet
Amir Prync
19 years ago
Permalink
Hace ya varios anos tengo configurado un par de mailservers, pero siempre me
falto asegurar el acceso por telnet al port 25. Basicamente mi problema es
que el mailserver esta ok, ya que no es un open relay porque cuando ingresas
por telnet y queres enviar un email a otros dominios no deja hacerlo, el
problema es que si lo haces a algun dominio local lo deja pasar sin
problemas.
La consulta es como hago para que se tenga que validar el user aun en una
sesion por telnet y mejor aun, si existe alguna forma de prohibir o cancelar
el envio de email por medio de una sesion de telnet al port 25.
Les envio mi cf de postfix:

mx root # postconf -n
alias_database = hash:/etc/mail/aliases
alias_maps = mysql:/etc/postfix/mysql-aliases.cf
broken_sasl_auth_clients = yes
command_directory = /usr/sbin
config_directory = /etc/postfix
content_filter = smtp-amavis:[127.0.0.1]:10024
daemon_directory = /usr/lib/postfix
debug_peer_level = 2
default_destination_concurrency_limit = 2
home_mailbox = .maildir/
inet_interfaces = all
local_destination_concurrency_limit = 2
local_recipient_maps = $alias_maps $virtual_mailbox_maps unix:passwd.byname
local_transport = local
mail_owner = postfix
mailq_path = /usr/bin/mailq
manpage_directory = /usr/share/man
message_size_limit = 31457280
mydestination = $myhostname, localhost.$mydomain
myhostname = mail.xxxxxxxxxxx.com.ar
mynetworks = 127.0.0.0/8
newaliases_path = /usr/bin/newaliases
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.0.19/readme
relocated_maps = mysql:/etc/postfix/mysql-relocated.cf
sample_directory = /usr/share/doc/postfix-2.0.19/sample
sendmail_path = /usr/sbin/sendmail
setgid_group = postdrop
smtpd_recipient_restrictions = permit_sasl_authenticated,
permit_mynetworks, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous
smtpd_tls_CAfile = /etc/ssl/misc/demoCA/cacert.pem
smtpd_tls_cert_file = /etc/ssl/misc/newcert.pem
smtpd_tls_key_file = /etc/ssl/misc/newreq.pem
smtpd_tls_loglevel = 3
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
smtpd_use_tls = yes
tls_random_source = dev:/dev/urandom
transport_maps = mysql:/etc/postfix/mysql-transport.cf
unknown_local_recipient_reject_code = 450
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual.cf
virtual_gid_maps = mysql:/etc/postfix/mysql-virtual-gid.cf
virtual_mailbox_base = /
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-maps.cf
virtual_transport = $transport_maps
virtual_uid_maps = mysql:/etc/postfix/mysql-virtual-uid.cf
Antonio Galicia
19 years ago
Permalink
Post by Amir Prync
La consulta es como hago para que se tenga que validar el user aun en una
sesion por telnet y mejor aun, si existe alguna forma de prohibir o cancelar
el envio de email por medio de una sesion de telnet al port 25.
Respuesta corta: No puedes.
Respuesta larga: No puedes.

El asunto es que cualquiera cosa que haga labores de comunicación via
SMTP tiene por principio que hacer una conexión al pto 25. Esta
conexión es, para todo fin práctico, lo mismo que haces cuando con
ayuda del programa "telnet" haces conexión al pto 25.

Entonces un MUA o MTA es un programa "telnet" sofisticado y
especializado en una tarea específica: envio de correo usando el pto
25 a traves del protocolo SMTP.

Así las cosas, no puedes (o no veo como, si estoy equivocado que me
corrijan) impedir que se conecten.

--
Saludos,
Toño
----
http://agc.com.mx/antoniogc/blog
Amir Prync
19 years ago
Permalink
Estoy casi seguro que se puede hacer, pero no se de que forma. Por ejemplo
el smtp de yahoo, luego de que ingresas el mail from te cierra la sesion y
algun metodo de validacion tambien deberia existir. Alguien tiene idea como
hacerlo ?
...
Antonio Galicia
19 years ago
Permalink
Post by Amir Prync
Estoy casi seguro que se puede hacer, pero no se de que forma. Por ejemplo
el smtp de yahoo, luego de que ingresas el mail from te cierra la sesion y
algun metodo de validacion tambien deberia existir. Alguien tiene idea como
hacerlo ?
Hmmm... a ver ...

$ telnet mx1.mail.yahoo.com 25
Trying 4.79.181.14...
Connected to mx1.mail.yahoo.com.
Escape character is '^]'.
220 mta188.mail.mud.yahoo.com ESMTP YSmtp service ready
helo agc.com.mx
250 mta188.mail.mud.yahoo.com
mail from:<antoniogc-***@public.gmane.org>
250 sender <antoniogc-***@public.gmane.org> ok
rcpt to:<jcgalici-/***@public.gmane.org>
250 recipient <jcgalici-/***@public.gmane.org> ok
data
354 go ahead
Subject: Prueba
From: Prueba

Prueba
.
451 mta188.mail.mud.yahoo.com Resources temporarily unavailable.
Please try again later [#4.16.5].
quit

No me desconectó despues del "From" pero no procesó el correo. En un
rato pruebo de nuevo a ver que gestos hace.

¿Te desconecta sin mediar mensaje de error?

--
Saludos,
Toño
----
http://agc.com.mx/antoniogc/blog
Daniel Solsona Moratiel
19 years ago
Permalink
Post by Amir Prync
Estoy casi seguro que se puede hacer, pero no se de que forma. Por ejemplo
el smtp de yahoo, luego de que ingresas el mail from te cierra la sesion y
algun metodo de validacion tambien deberia existir. Alguien tiene idea como
hacerlo ?
No acabo de entender muy bien que quieres hacer, pero:

- Si quieres que solo ciertos usuarios puedan enviar correos externos por
tu smtp lo puedes implementar con SASL o pop before smtp (no te lo
recomiendo)

- Si quieres cerrar completamente tu smtp.
No le veo mucho sentido a esto, ya que tampoco recibirias correos desde
el exterior.

- Que quieras cerrar tu smtp solo al exterior.
Aquí te toca jugar con las reglas de tu firewall o con las propias
iptables de tu linux.

Así que antes de seguir explica mejor tu situación y que quieres
conseguir. Porque cerrar el smtp completamente no tiene sentido a no ser
que no quieras recibir correos cosa que dudo ya que para eso no te montas
un servidor de correo :)
...
Continúe leyendo en narkive:
Loading...