Configuración de Servidor · 3 min read · Dec 31, 2025

Servidor de Groupware Con Group-Office, Postfix, Dovecot Y SpamAssassin En Debian Lenny (5.0) - Página 2

Configurar Postfix

Postfix debe ser configurado para usar MySQL:

Las siguientes variables en main.cf. Comience llenando información básica:

# postconf -e 'myhostname = mx-1.example.com'  
# postconf -e 'smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)'  
# postconf -e 'biff = no'  
# postconf -e 'append_dot_mydomain = no'  
# postconf -e 'myorigin = example.com'  
# postconf -e 'mydestination = $myhostname, localhost, locahost.localdomain'  
# postconf -e 'mynetworks = 127.0.0.0/8'  
# postconf -e 'recipient_delimiter = +'  
# postconf -e 'inet_interfaces = all'  
# postconf -e 'proxy_read_maps = $local_recipient_maps $mydestination \  
    $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps \  
    $virtual_mailbox_domains $relay_recipient_maps $relay_domains \  
    $canonical_maps $sender_canonical_maps $recipient_canonical_maps \  
    $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps'   
  
# postconf -e 'smtpd_recipient_restrictions = \  
    permit_mynetworks, \  
    reject_unauth_destination, \  
    reject_rbl_client zen.spamhaus.org, \  
    reject_rbl_client list.dsbl.org, \  
    permit'  
# postconf -e 'message_size_limit=52428800'  
# postconf -e 'mailbox_size_limit=0'

Ahora configúrelo para usuarios virtuales en MySQL:

# postconf -e 'virtual_alias_domains ='  
# postconf -e 'virtual_alias_maps = proxy:mysql:$config_directory/mysql_virtual_alias_maps.cf'  
# postconf -e 'virtual_mailbox_domains = proxy:mysql:$config_directory/mysql_virtual_domains_maps.cf'  
# postconf -e 'virtual_mailbox_maps = proxy:mysql:$config_directory/mysql_virtual_mailbox_maps.cf'  
# postconf -e 'virtual_mailbox_base = /vmail'  
# postconf -e 'virtual_minimum_uid = 150'  
# postconf -e 'virtual_uid_maps = static:150'  
# postconf -e 'virtual_gid_maps = static:8'  
# postconf -e 'virtual_create_maildirsize = yes'  
# postconf -e 'virtual_mailbox_extended = yes'  
# postconf -e 'virtual_mailbox_limit_maps = proxy:mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf'  
# postconf -e 'virtual_mailbox_limit_override = yes'  
# postconf -e 'virtual_maildir_limit_message = "El usuario que intenta alcanzar ha superado su cuota."'  
# postconf -e 'virtual_overquota_bounce = yes'  
# postconf -e 'transport_maps = proxy:mysql:/etc/postfix/mysql_virtual_transports.cf'  
# postconf -e 'relay_domains = proxy:mysql:/etc/postfix/mysql_relay_domains_maps.cf'

Usaremos la entrega de Dovecot:

# postconf -e 'virtual_transport=dovecot'  
# postconf -e 'dovecot_destination_recipient_limit=1'  
# postconf -e 'transport_maps = hash:/etc/postfix/transport'  
# postconf -e 'smtpd_data_restrictions = reject_unauth_pipelining, reject_multi_recipient_bounce, permit'  
# postconf -e 'vacation_destination_recipient_limit = 1'

Cree la base de datos de transporte:

# cd /etc/postfix  
# postmap transport

Postfix fue instalado con soporte para MySQL, pero eso no significa que ya sepa cómo usar nuestra base de datos. Necesita ser provisto con varias consultas SQL para cada tipo de tabla en nuestra base de datos. Esta información se almacena en los archivos de MySQL definidos en el archivo main.cf:

/etc/postfix/mysql_virtual_alias_maps.cf:

user = vmail_user
password = vmail_user_password
hosts = localhost
dbname = groupoffice
table = pa_aliases
select_field = goto
where_field = address
additional_conditions = and active = '1'

/etc/postfix/mysql_virtual_domains_maps.cf:

user = vmail_user
password = vmail_user_password
hosts = localhost
dbname = groupoffice
table = pa_domains
select_field = domain
where_field = domain
additional_conditions = and backupmx = '0' and active = '1'

/etc/postfix/mysql_virtual_mailbox_limit_maps.cf:

user = vmail_user
password = vmail_user_password
hosts = localhost
dbname = groupoffice
table = pa_mailboxes
select_field = quota
where_field = username
additional_conditions = and active = '1'

/etc/postfix/mysql_virtual_mailbox_maps.cf:

user = vmail_user
password = vmail_user_password
hosts = localhost
dbname = groupoffice
table = pa_mailboxes
select_field = maildir
where_field = username
additional_conditions = and active = '1'

/etc/postfix/mysql_virtual_transports.cf:

user = vmail_user
password = vmail_user_password
hosts = localhost
dbname = groupoffice
table = pa_domains
select_field = transport
where_field = domain
additional_conditions = and active = '1'

/etc/postfix/mysql_relay_domains_maps.cf:

user = vmail_user
password = vmail_user_password
hosts = localhost
dbname = groupoffice
table = pa_domains
select_field = domain
where_field = domain
additional_conditions = and backupmx = '1' and active = '1'

Agregue el usuario de correo:

# useradd -r -u 150 -g mail -d /var/vmail -s /sbin/nologin -c "Buzón Virtual" vmail  
# mkdir /vmail  
# chmod 770 /vmail/  
# chown vmail:mail /vmail/

Edite master.cf de Postfix:

Alterar la primera línea con el servicio smtp:

smtp      inet  n       -       -       -       -       smtpd
    -o content_filter=spamassassin

Después de esa línea agregue:

spamassassin unix -     n       n       -       -       pipe
    user=spamd argv=/usr/bin/spamc -f -e
    /usr/sbin/sendmail -oi -f ${sender} ${recipient}
dovecot   unix  -       n       n       -       -       pipe
    flags=DRhu user=vmail:mail argv=/usr/lib/dovecot/deliver -d ${recipient}

En las interfaces a software no Postfix agregue:

vacation    unix  -       n       n       -       -       pipe
  flags=Rq user=vacation argv=/var/spool/vacation/vacation.pl -f ${sender} -- ${recipient}
Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.