Página 1 de 1

Postfix y restricciones smptd

Publicado: Jue, 25 Sep 2014, 15:09
por rommel
En la lista de Linux de GUTL se trató hace unas semanas el tema del las restricciones de correo en Linux para evitar las open relay y algunas otras cosas mas.
Hugo envío unas posibles configuraciones, las cuales, según mi configuración acá, he ido poniendo o intentando poner, en ni servidor Postfix. Pero cuando habilito algunas de ellas, dejo de recibir correos desde dominios que no son míos o de enviarlos a dominios que no son míos. Las restricciones las he ido habilitando una a una, es decir, habilito y miro trazas, si no hay problemas, pruebo la próxima. Pero tengo problemas en dos de ellas, hasta ahora.

Me pueden dar una mano a saber qué está pasando y si hay soluciones?

Uso CentOS 6. Tengo usuarios locales y además tengo usuarios virtuales (los municipios), que almacenan sus correos en este servidor en cuentas desde donde la recogen luego vía POP3 con sus respectivos servidores de correo y sus dominios. La mensajería que va para fuera de estos municipios (o usuarios virtuales) es enviada a través de mi servidor de correo.
Las opciones para el smtpd_sender_restrictions son: reject_unknown_sender_domain.
La opción para el smtpd_recipient_restrictions es: reject_unknown_recipient_domain.

Cuando habilito el reject_unknown_sender_domain en las restricciones smtpd_sender_restrictions el error que me da Postfix es:

Código: Seleccionar todo

Out: 220 bruji.gtm.onat.gov.cu ESMTP Postfix
 In:  EHLO mx1.onat.gob.cu
 Out: 250-bruji.gtm.onat.gov.cu
 Out: 250-PIPELINING
 Out: 250-SIZE 1013760
 Out: 250-ETRN
 Out: 250-STARTTLS
 Out: 250-AUTH PLAIN LOGIN
 Out: 250-AUTH=PLAIN LOGIN
 Out: 250-ENHANCEDSTATUSCODES
 Out: 250-8BITMIME
 Out: 250 DSN
 In:  MAIL FROM:<aaaa@sertod.cu> SIZE=25183
 Out: 250 2.1.0 Ok
 In:  RCPT TO:<bbbb@gtm.onat.gob.cu> ORCPT=rfc822;bbbb@gtm.onat.gob.cu
 Out: 450 4.1.8 <aaaa@sertod.cu>: Sender address rejected: Domain not found
 In:  DATA
 Out: 554 5.5.1 Error: no valid recipients
 In:  RSET
 Out: 250 2.0.0 Ok
 In:  QUIT
 Out: 221 2.0.0 Bye
Cuando habilito el reject_unknown_recipient_domain en las restricciones de smtpd_recipient_restrictions el error que me da Postfix es:

Código: Seleccionar todo

 Out: 220 bruji.gtm.onat.gov.cu ESMTP Postfix
 In:  EHLO adrian
 Out: 250-bruji.gtm.onat.gov.cu
 Out: 250-PIPELINING
 Out: 250-SIZE 1013760
 Out: 250-ETRN
 Out: 250-STARTTLS
 Out: 250-AUTH PLAIN LOGIN
 Out: 250-AUTH=PLAIN LOGIN
 Out: 250-ENHANCEDSTATUSCODES
 Out: 250-8BITMIME
 Out: 250 DSN
 In:  AUTH LOGIN
 Out: 334 VXNlcm5hbWU6
 In:  YWxpbmFfbG9wZXo=
 Out: 334 UGFzc3dvcmQ6
 In:  YWxpbmFscg==
 Out: 235 2.7.0 Authentication successful
 In:  MAIL FROM: <cccc@gtm.onat.gob.cu>
 Out: 250 2.1.0 Ok
 In:  RCPT TO: <dddd@scu.onat.gob.cu>
 Out: 450 4.1.2 <dddd@scu.onat.gob.cu>: Recipient address rejected: Domain not found
 In:  QUIT
 Out: 221 2.0.0 Bye
La configuración de Postfix que tengo es así:

Código: Seleccionar todo

command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
myhostname = bruji.gtm.onat.gov.cu
mydomain = gtm.onat.gob.cu
myorigin = $mydomain
inet_interfaces = all
inet_protocols = ipv4
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, mail.$mydomain
local_recipient_maps = unix:passwd.byname $alias_maps
unknown_local_recipient_reject_code = 550
mynetworks = hash:/etc/postfix/network_table
relay_domains = $mydestination
relayhost = [xxx.xx.x.xx]
virtual_alias_domains = hash:/etc/postfix/dominio_virtual
virtual_alias_maps = hash:/etc/postfix/virtual
transport_maps = hash:/etc/postfix/transport
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
recipient_delimiter = +
mail_spool_directory = /var/spool/mail
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtpd_tls_session_cache_timeout = 3600s
smtpd_tls_loglevel = 3
smtp_tls_note_starttls_offer = yes
smtp_tls_session_cache_database =
        	btree:/var/lib/postfix/smtp_tls_session_cache
smtp_use_tls = yes
smtpd_tls_CAfile = /etc/postfix/cacert.pem
smtpd_tls_cert_file = /etc/postfix/newcert.pem
smtpd_tls_key_file = /etc/postfix/newreq.pem
smtpd_tls_received_header = yes
smtpd_tls_session_cache_database =
        	btree:/var/lib/postfix/smtpd_tls_session_cache
tls_random_source = dev:/dev/urandom
smtpd_tls_security_level = may
#
#
[color=#FF0000]
smtpd_helo_required = yes
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_authenticated_header = yes
broken_sasl_auth_clients = yes
disable_vrfy_command = yes
smtpd_delay_reject = yes
smtpd_restriction_classes = 
    internacional, nacional
smtpd_helo_restrictions = reject_invalid_helo_hostname
smtpd_sender_restrictions = 
    permit_mynetworks
    reject_non_fqdn_sender
    #reject_unknown_sender_domain
    permit_sasl_authenticated
    reject_non_fqdn_helo_hostname
    #reject_unknown_helo_hostname
    #reject_unknown_client_hostname
    #reject_sender_login_mismatch
smtpd_recipient_restrictions = 
    permit_mynetworks    
    reject_non_fqdn_recipient
    #reject_unknown_recipient_domain
    permit_auth_destination
    permit_sasl_authenticated
    reject_unauth_destination
    check_sender_access
    hash:/etc/postfix/usuarios
    reject
internacional = 
    permit
nacional = 
    check_recipient_access
    regexp:/etc/postfix/filtro
[/color]
#
#
header_checks = regexp:/etc/postfix/header_checks
mime_header_checks = regexp:/etc/postfix/header_checks
smtpd_banner = $myhostname ESMTP $mail_name
local_destination_concurrency_limit = 2
default_destination_concurrency_limit = 10
debug_peer_level = 2
debug_peer_list = 127.0.0.1
debugger_command =
	 PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
	 ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.6.6/samples
readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES
message_size_limit = 1013760
always_bcc = eyes
recipient_bcc_maps = hash:/etc/postfix/eyes_entrantes
sender_bcc_maps = hash:/etc/postfix/eyes_salientes
notify_classes = bounce, delay, policy, protocol, resource, software
allow_percent_hack = no
append_dot_mydomain = no
append_at_myorigin = no
swap_bangpath = no
mailbox_size_limit = 5120000000

Re: Postfix y restricciones smptd

Publicado: Dom, 28 Sep 2014, 13:56
por hugo
Algunas cositas a simple vista:

- En el primer ejemplor, por qué se utiliza mx1.onat.gob.cu como EHLO para enviar correos del dominio sertod.cu cuando este dominio tiene su propio mx (mail.sertod.cu.) que es el que debería usarse como EHLO (y mx)?

- Tu subdominio no tiene un ni registro MX, ni un registro TXT (por tanto no hay entradas SPF), ni tampoco un registro A, y probablemente tampoco un PTR. Cómo validar entonces que tu servidor está autorizado a enviar a nombre de tu dominio? Es mas, cómo pretendes que otros dominios sepan a que equipo entregar los mensajes destinados a tu dominio? Aqui hay problemas graves con el servicio DNS. Si no eres tu quien gestiona tus registros, solicita a tu proveedor de servicios que los cree.

De hecho, si no puedes resolver el nombre de otros dominios, eso significa que además de problemas con los registros en tu servicio DNS, aparentemente también tienes algún problema de resolución.

Intenta hacer esto desde tu servidor de correo para confirmar que te sale:

Código: Seleccionar todo

dig mx sertod.cu.
- Otro detalle: en la instrucción EHLO debe ir el nombre de dominio plenamente cualificado del equipo que inicia la sesión SMTP, usar "adrian" como EHLO es incorrecto.

Re: Postfix y restricciones smptd

Publicado: Lun, 29 Sep 2014, 10:07
por rommel
La configuración de red mía no me permite entregas directas; es decir, todos los correos que envío y recibo de fuera del dominio onat.gov.cu, los tengo que hacer a través del servidor de correo de la oficina nacional. No tengo acceso a Internet, por tanto no SPF.
Tengo configurado mi bind, con vistas y espero (ojala que sea así :-) ) que tengan bien las cosas de los registros MX. Adjunto un extracto de la vista externa, de la parte donde se declaran los registros MX y A de la PC que hace de servidor de correo y además de la zona inversa:

Zona directa:

Código: Seleccionar todo

;Fichero de configuracion del DNS para la zona gtm.onat.gov.cu
$ORIGIN gtm.onat.gov.cu.
;
$TTL	86400
@	IN	SOA	bruji.gtm.onat.gov.cu. root.gtm.onat.gov.cu. (
			2013122301
			604800
			86400
			2419200
			604800 )
;
; PC(s) servidor(es) de nombre de dominio
	IN	NS	bruji.gtm.onat.gov.cu.
;	
; PC encargada de los servicio de mensajeria electronica
	IN	MX  10	bruji.gtm.onat.gov.cu.
;
; nombre de las estaciones de trabajo y sus respectivas direcciones IP
bruji		IN	A	172.16.120.5
;
; PC con alias y sus respectivas direcciones IP
;
mail		IN	CNAME	bruji.gtm.onat.gov.cu.
Zona inversa:

Código: Seleccionar todo

;Fichero de configuracion del DNS para la zona gtm.onat.gov.cu
;
$TTL	86400
@	IN	SOA	bruji.gtm.onat.gov.cu.	root.gtm.onat.gov.cu.	(
				2013122301	;Serial
				604800		;Refresh
				86400		;Retry
				2419200		;Expire
				604800		;Defaul TTL
				)
; PC(s) servidor(es) de nombre de dominio
	IN	NS	bruji.gtm.onat.gov.cu.
;
; Registros PRT de las maquinas
5	IN	PTR	mail.gtm.onat.gov.cu.
5	IN	PTR	bruji.gtm.onat.gov.cu.
Cuando ejecuto el comando que me recomiendas:

Código: Seleccionar todo

[root@bruji ~]# dig mx sertod.cu

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6 <<>> mx sertod.cu
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 37433
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;sertod.cu.                     IN      MX

;; AUTHORITY SECTION:
.                       86400   IN      SOA     bruji.gtm.onat.gov.cu. root.gtm.onat.gov.cu. 2013110401 604800 86400 2419200 604800

;; Query time: 5 msec
;; SERVER: 192.168.41.12#53(192.168.41.12)
;; WHEN: Mon Sep 29 09:58:55 2014
;; MSG SIZE  rcvd: 86

Re: Postfix y restricciones smptd

Publicado: Jue, 02 Oct 2014, 18:45
por hugo
rommel escribió:Cuando ejecuto el comando que me recomiendas:

Código: Seleccionar todo

[root@bruji ~]# dig mx sertod.cu

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6 <<>> mx sertod.cu
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 37433
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;sertod.cu.                     IN      MX

;; AUTHORITY SECTION:
.                       86400   IN      SOA     bruji.gtm.onat.gov.cu. root.gtm.onat.gov.cu. 2013110401 604800 86400 2419200 604800

;; Query time: 5 msec
;; SERVER: 192.168.41.12#53(192.168.41.12)
;; WHEN: Mon Sep 29 09:58:55 2014
;; MSG SIZE  rcvd: 86
Exacto. No tienes una ANSWER SECTION, es decir, no consigues resolver. Mira lo que me sale a mi:

Código: Seleccionar todo

dig mx sertod.cu.

; <<>> DiG 9.7.0-P1 <<>> mx sertod.cu.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50692
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0

;; QUESTION SECTION:
;sertod.cu.                     IN      MX

;; ANSWER SECTION:
sertod.cu.              86400   IN      MX      10 mail.sertod.cu.

;; AUTHORITY SECTION:
sertod.cu.              3600    IN      NS      ns2.sertod.cu.
sertod.cu.              3600    IN      NS      mail.sertod.cu.

;; Query time: 554 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Oct  2 18:04:50 2014
;; MSG SIZE  rcvd: 80
En cuanto a tu servidor, si realmente no tienes salida directa a internet sino mediante el relay de la Onat, me extraña mucho que te permitan recibir directamente, lo normal es que los mensajes los descargues tu mediante fetchmail o algo así de un buzón que gestionan ellos, en cuyo caso sería raro que te hayan delegado el subdominio. En otras palabras, no necesitarías montar un nameserver público, ni tampoco necesitarías abrir el puerto 25 al exterior.

Ahora, asumiendo que realmente te hayan delegado tus zonas (directa e inversa), mis sugerencias:

Para tu zona directa, no necesitas el CNAME, y en mi opinión puedes ajustar los valores del SOA:

Código: Seleccionar todo

$ORIGIN gtm.onat.gov.cu.
$TTL 1d ; TTL mínimo por defecto para los registros
;
@  IN  SOA  bruji.gtm.onat.gov.cu.  root.gtm.onat.gov.cu.  (
  2014100200 ; número de serie YYMMDDNN
  6h         ; plazo para que los esclavos refresquen la información de zonas
  1h         ; plazo para que los esclavos reintenten en caso de problemas
  3w         ; plazo para que la información de los esclavos expire
  1h         ; plazo para cachear las respuestas negativas
  )
;
  IN   NS      bruji
  IN   MX  10  bruji
;
bruji  IN  A   172.16.120.5
La zona inversa está mal. Si realmente la tienes delegada y solo te han dado una IP (algo un poco raro), deberías tener algo como esto:

Código: Seleccionar todo

$ORIGIN 5/32.120.16.172.in-addr.arpa.
$TTL 1d ; TTL mínimo por defecto para los registros
;
@  IN  SOA  bruji.gtm.onat.gov.cu.  root.gtm.onat.gov.cu.  (
  2014100200 ; número de serie YYMMDDNN
  6h         ; plazo para que los esclavos refresquen la información de zonas
  1h         ; plazo para que los esclavos reintenten en caso de problemas
  3w         ; plazo para que la información de los esclavos expire
  1h         ; plazo para cachear las respuestas negativas
  )
;
  IN  NS  bruji.gtm.onat.gov.cu.
;
5  PTR  bruji.gtm.onat.gov.cu.
Por cierto, nota que las direcciones en el rango 172.16.x.y son direcciones de redes privadas, es decir, a menos que en la Onat tengan hecho un NAT para que desde el exterior puedan acceder a tu servidor, nadie va a verlo.

Re: Postfix y restricciones smptd

Publicado: Dom, 24 Dic 2017, 12:15
por drlicea
Buenas tardes, tengo tambien un servidor de correo con Postfix, a mi el problema que me esta dando es a la hora de limitar a un grupo de usuarios a enviar correos nacionales, no me clasifica alos usuarios, dime que pusiste en el archivo /etc/postfix/filtro..


Salu2