Como lo prometido es deuda, aquí van mis configs, con aclaraciones. Esto no es un tutorial para principiantes, es una configuración de ejemplo para que los que ya conocen Postfix mejoren o ajusten las suyas.
Detalles de la configuración: 1-. Server de un nodo, con usuarios locales y varios subdominios 2-. Recibe todo el correo entrante de una cuenta multipop, con fetchmail. El correo saliente se entrega al server del ISP, de manera que es una config tipo smarthost 3-. Los usuarios son del sistema, y se crean con un script que les pone como shell /bin/false, entre otras cuestiones. Todos los usuarios *tienen que autenticarse*, al igual que las pasarelas con SMTP AUTH. El TLS está soportado, pero es opcional. 4-. Todos los usuarios tienen, por defecto, salida nacional. Los usuarios que se pongan en _usuarios_tx pueden enviar internacional, y los que se pongan en _usuarios_rx pueden recibir internacional. Todos los usuarios de los subdominios son nacionales, a menos que se incluyan en estos dos listados. 5-. Deben existir, aunque estén vacios, los ficheros siguientes: /etc/postfix/_copy_recipient_maps /etc/postfix/_copy_sender_maps /etc/postfix/_usuarios_rx /etc/postfix/_usuarios_tx /etc/postfix/_virtual_domains /etc/postfix/_sender_login.pcre El _ delante es una marca para saber que ahí se debe puede meter la mano. 6-. RECUERDEN hacer postmap nombredelfichero a todo lo que empiece con _, excepto _sender_login.pcre (aunque no pasa nada si lo hacen). Solamente pido que los comentarios y vulnerabilidades que se encuentren a esta configuración sean públicos, para mejorarla y tener un ejemplo para guiarnos todos. /////////////////// /etc/postfix/main.cf /////////////////// ########################################################################### # # BANNER DE BIENVENIDA Y CONFIGURACIONES GENERALES # ########################################################################### smtpd_banner = $myhostname ESMTP $mail_name MIENTIDAD (Debian/GNU) biff = no # appending .domain is the MUA's job. append_dot_mydomain = no readme_directory = no # Debug debug_peer_level = 4 debug_peer_list = $mynetworks ########################################################################### # # PARAMETROS DE SEGURIDAD GENERAL Y TLS # ########################################################################### smtp_use_tls = yes #smtpd_tls_auth_only = yes smtp_tls_note_starttls_offer = yes smtpd_use_tls = yes smtpd_tls_key_file = /etc/ssl/post.pem smtpd_tls_cert_file = /etc/ssl/post.pem smtpd_tls_CAfile = /etc/ssl/post.pem smtpd_tls_loglevel = 3 smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache tls_random_source = dev:/dev/urandom ########################################################################### # # PARAMETROS DEL BUZON, LOS MENSAJES Y LA COLA # ########################################################################### # Limite del tamanho del mensaje message_size_limit = 2097152 # Limite del tamanno del buzon mailbox_size_limit = 20971520 # Cantidad maxima de destinatarios para un mensaje smtpd_recipient_limit = 50 # Tiempo maximo de vida en la cola maximal_queue_lifetime = 3d # Enviar alertas sobre correo demorado delay_warning_time = 4h smtpd_error_sleep_time = 1s # Limite de entrega simultanea a un mismo usuario local local_destination_concurrency_limit = 5 bounce_queue_lifetime = 3d ########################################################################### # # CONFIGURACION DE RED # ########################################################################### # Interfaces de red donde escuchar inet_interfaces = all # Protocolo ipv4 o ipv6 inet_protocols = ipv4 mynetworks_style = host mynetworks = 127.0.0.0/8 ########################################################################### # # CONFIGURACIONES DE DOMINIO # ########################################################################### myhostname = mail.midominio.cu mydomain = midominio.cu myorigin = /etc/mailname mydestination = midominio.cu, mail.midominio.cu, localhost.midominio.cu, localhost masquerade_domain = midominio.cu disable_dns_lookup = yes ########################################################################### # # CONFIGURACIONES DE ALIAS # ########################################################################### alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases ########################################################################### # # CONFIGURACION DE RELAY (SMARTHOST) # ########################################################################### relayhost = [IP DEL SERVER DE MI ISP] ########################################################################### # # CONFIGURACION DE SMTP # ########################################################################### smtp_mx_address_limit = 0 smtp_connect_timeout = 30 smtp_helo_timeout = 60s smtp_rcpt_timeout = 240s smtp_quit_timeout = 240s smtp_rset_timeout = 20s smtp_skip_4xx_greeting = yes smtp_skip_5xx_greeting = yes ########################################################################### # # CONFIGURACION DE SASL (AUTENTICACION SMTP) # ########################################################################### smtp_sasl_auth_enable = no smtpd_helo_required = yes smtpd_sasl_auth_enable = yes smtpd_sasl_authenticated_header = yes smtpd_sasl_security_options = noanonymous broken_sasl_auth_clients = yes disable_vrfy_command = yes # Demorar el rechazo de los clientes no autenticados hasta el RCPT TO smtpd_delay_reject = yes ########################################################################### # # CONFIGURACION DEL MDA # ########################################################################### mailbox_command = procmail -a "$EXTENSION" mailbox_size_limit = 0 recipient_delimiter = + ########################################################################### # # DOMINIOS VIRTUALES # ########################################################################### virtual_alias_domains = subdominio1.midominio.cu subdominio2.subdominio.cu virtual_alias_maps = hash:/etc/postfix/_virtual_domains ########################################################################### # # EVITAR SUPLANTACION DE IDENTIDAD AL ENVIAR # ########################################################################### smtpd_sender_login_maps = pcre:/etc/postfix/_sender_login.pcre ########################################################################### # # COPIAS DE CORREOS RECIBIDOS Y ENVIADOS # ########################################################################### sender_bcc_maps = hash:/etc/postfix/_copy_sender_maps recipient_bcc_maps = hash:/etc/postfix/_copy_recipient_maps ########################################################################### # # FILTROS Y REGLAS # ########################################################################### # Filtrado de adjuntos: mime_header_checks = pcre:/etc/postfix/_filtro_adjuntos smtpd_restriction_classes = internac_tx internac_rx internac_tx = check_recipient_access regexp:/etc/postfix/_filtro_internac permit_sasl_authenticated reject internac_rx = check_sender_access regexp:/etc/postfix/_filtro_internac permit smtpd_sender_restrictions = check_recipient_access hash:/etc/postfix/_usuarios_rx check_sender_access regexp:/etc/postfix/_filtro_nac permit_sasl_authenticated reject smtpd_recipient_restrictions = reject_sender_login_mismatch check_sender_access hash:/etc/postfix/_usuarios_tx check_recipient_access regexp:/etc/postfix/_filtro_nac permit_sasl_authenticated reject /////////////////// FIN main.cf /////////////////// /////////////////// /etc/postfix/sasl/smtpd.conf /////////////// pwcheck_method: saslauthd mech_list: plain login /////////////////// FIN smtpd.conf /////////////// /////////////////// /etc/postfix/sasl/_filtro_adjuntos /////////////// /filename=\".*\.(rar|rar\?=|tar.gz|tar.gz\?=|bz2|bz2\?=|kgb|kgb\?=|zip| zip\?=|7z|7z\?=)\"$/ OK /filename=.*\.(rar|rar\?=|tar.gz|tar.gz\?=|bz2|bz2\?=|kgb|kgb\?=|zip|zip \?=|7z|7z\?=)$/ OK /filename=\".*\.(xls|xls\?=|rtf|rtf\?|doc|docx|doc\?=|docx\?=|mdb|mdb \?=|pdf|pdf\?=|rpm|rpm\?=|deb|deb\?=|odt|odt\?=|ods|ods\?=|asc|dat\?=| dat|eml\?=|eml)\"$/ OK /filename=.*\.(xls|xls\?=|rtf|rtf\?|doc|doc\?=|docx|docx\?=|mdb|mdb\?=| pdf|pdf\?=|rpm|rpm\?=|deb|deb\?=|odt|odt\?=|ods|ods\?=|asc|dat\?=|dat| eml\?=|eml)$/ OK /filename=.*\.(txt|txt\?=|snp|snp \?=|[0-9][0-9][0-9]|[0-9][0-9][0-9]\?=)$/ OK /filename=\".*\.(txt|txt\?=|snp|snp \?=|[0-9][0-9][0-9]|[0-9][0-9][0-9]\?=)\"$/ OK /filename=.*\.*/ REJECT Tipo de adjunto no permitido, por favor comprima el archivo antes de enviarlo /////////////////// FIN _filtro_adjuntos /////////////// /////////////////// /etc/postfix/sasl/_filtro_internac /////////////// /^\@/ REJECT 550 El formato de la direccion no es valido. /[!%\@].*\@/ REJECT 550 Este servidor desaprueba las sintaxis raras. /////////////////// FIN _filtro_internac /////////////// /////////////////// /etc/postfix/sasl/_filtro_nac /////////////// /\@*\.cu$/ RELAY /^\@/ REJECT 550 El formato de la direccion no es valido. /[!%\@].*\@/ REJECT 550 Este servidor desaprueba las sintaxis raras. /\@*/ REJECT Esta cuenta no puede enviar ni recibir correo internacional. /////////////////// _filtro_nac /////////////// /////////////////// /etc/postfix/_sender_login.pcre /////////////// /^(.*)@midominio\.cu$/ $1 /^(.*)@subdominio1\.midominio\.cu$/ subdominio1 /^(.*)@subdominio2\.midominio\.cu$/ subdominio2 /////////////////// _sender_login.pcre /////////////// /////////////////// /etc/postfix/_usuarios_rx /////////////// usuarioconentradainternacion...@midominio.cu internac_rx usuarioconentradainternacion...@midominio.cu internac_rx /////////////////// FIN _usuarios_rx /////////////// /////////////////// /etc/postfix/_usuarios_tx /////////////// usuarioconsalidainternacion...@midominio.cu internac_tx usuarioconsalidainternacion...@midominio.cu internac_tx /////////////////// FIN _usuarios_tx /////////////// /////////////////// /etc/postfix/_virtual_domains /////////////// @subdominio1.midominio.cu subdominio1 @subdominio2.midominio.cu subdominio2 /////////////////// FIN _virtual_domains /////////////// Mi recomendación es que sigan el tutorial de SASL de la wiki, y luego apliquen todo lo demás, una funcionalidad a la vez hasta que lo tengan todo funcionando. TLS es especialmente enredado para configurar, pero para eso recomiendo dejarlo para el final, y seguir cualquiera de los tutoriales para este tema que hay en Internet. Si alguien necesita los cambios que hay que hacer en los postixs "hijos", se los envío aparte. Saludos fraternales, nat ______________________________________________________________________ Lista de correos del Grupo de Usuarios de Tecnologías Libres de Cuba. Gutl-l@jovenclub.cu https://listas.jovenclub.cu/cgi-bin/mailman/listinfo/gutl-l