Hosting Per

Sistema Centos

Cryptsetup / tmp / canje y / home en LVM

 

Esta guía le ayudará a configurar el archivo / tmp, / swap y / home a cifrar utilizando cryptsetup LUKS. Voy a suponer que usted ya tiene un sistema instalado, y necesita agregar el cifrado para / tmp, / swap y / home. Voy a suponer que usted tiene datos en / home, así que mucho cuidado para backup / home antes de continuar. Hay una guía en el wiki de CentOS , pero es para el cifrado de archivos, no particiones, así que quería una guía más específica para / tmp, / swap y / home. Esta guía asume que desea enteras las particiones cifradas, así que se borrará los datos sobre ellos.

 

Sistema:

CentOS 5.x

 

Referencias:

Cifrado del sistema de archivos 
cifrados / tmp y / swaps

 

Configuración del sistema

A menos que la base sin control durante la instalación, y decide instalar prácticamente nada, entonces usted ya debe tener las herramientas necesarias para hacer el cifrado. Verifique primero, y luego proceder.

 

# Rpm-q cryptsetup mapeador de dispositivos util-linux
# Modprobe dm_crypt
# Lsmod | grep dm_crypt

 

Copia de seguridad / Casa

Yo no debería tener que decirte más, pero asegúrese de backup / home en una fuente externa antes de continuar! Incluso si usted tiene el espacio en su disco duro, obtener una copia de seguridad de su disco actual ya que va a ensuciar con el sistema de archivos local.

 

# Cp-ARFP / home / algunos / external / almacenamiento

 

Cifrar / swaps

Vamos a empezar con encriptación / intercambio primero, verificar que esto funciona, y luego pasar a / tmp. Yo sugeriría apagar su anfitrión hacia abajo, pero no absolutamente que hacerlo si no quieres. Desde canje no será tocado de nuevo hasta el próximo arranque, puede hacer esto en vivo. Vamos a crear un archivo / etc / crypttab y agregue los parámetros de intercambio.

 

# Vim / etc / crypttab
swap / dev/vg0/swap / dev / urandom swap, cipher = aes-cbc-essiv: sha256

Dependiendo de sus nombres de los grupos de volumen y el diseño, cambiar la ruta de acceso para satisfacer sus necesidades. Esto especifica que el sistema de encriptación a usar AES y encriptación SHA256 poco durante el inicio, con una clave aleatoria.Cada arranque, se generará una nueva clave para su uso, mientras que el sistema está funcionando. Cuando se apaga, la clave no estará vivo, y por lo tanto / swap es protegida.

A continuación, edite el archivo / etc / fstab para reflejar los cambios.

 

/ dev / mapper / swap defaults ninguno de swap 0 0

Eso es todo para la encriptación de swap. Puede reiniciar ahora y ver que de intercambio se vuelve a encender, o puede continuar y hacer / tmp al mismo tiempo.

 

Cifrar / tmp

Cifrar / tmp es ligeramente diferente a hacerlo con / swap. Tendrá que utilizar un script para montar / tmp después de / etc / fstab que se ha leído. Crédito para el guión va a clasohm.com donde lo encontré. Se crea el volumen cifrado después de / etc / fstab ha procesado, y hacer a las necesidades camino / tmp accedido (supongo), / tmp tiene ser manejado de forma especial.

Primero, añada las líneas necesarias en / etc / crypttab y también tomar las líneas necesarias en / etc / fstab que normalmente se monta en / tmp.

 

# Vim / etc / crypttab
tmp / dev/vg0/tmp / dev / urandom tmp, cipher = aes-cbc-essiv: sha256

# Vim / etc / fstab
# Asegúrese de comentar esto más abajo.
# / Dev/vg0/tmp / tmp ext3 defaults 1 2

Copia y pega el script desde clasohm.com y colóquela en / etc / init.d.

 

# Vim / etc / init.d / cryptotmp

#! / Bin / bash
#
Setup # cryptotmp encriptado partición tmp
#
# Chkconfig: 2345 01 90
# Descripción: añade partición tmp encriptado.

. / etc / init.d / functions

# Mira cómo nos llamábamos.
case "$ 1"
    comenzar)
        mount / dev / mapper / tmp / tmp
        restorecon / tmp

        acción "Agregar tmp cifrado"

        touch / var / lock / subsistemas / cryptotmp
        ;;
    parar)
        rm-f / var / lock / subsistemas / cryptotmp
        ;;
    *)
        echo $ "Uso: $ 0 {start | stop}"
        salida 1
esac

exit 0

Haga el script ejecutable y chkconfig en.

 

# chmod + x / etc / init.d / cryptotmp
# Chkconfig - add cryptotmp

Esto hace lo mismo que la grabación / intercambio ahora. Cuando el sistema arranca, se genera una clave y se utilizan para cifrar / tmp. Cuando el sistema se apaga, la clave se pierde y por lo tanto / tmp está protegida. Si tiene scripts que escriben en / tmp para algo, sin embargo, tener en cuenta que el contenido de / swap y / tmp serán borrados cuando el sistema se apaga. También, clasohm.com estados que suspenden en el disco fallará después de cifrar / swap y / tmp, comprensible tan. Para verificar las cosas están funcionando antes de cifrar la partición / home, reinicie el sistema y asegúrese de que vuelve a estar conectado con / swap y / tmp.

 

Cifrar / Casa

A continuación, vamos a cifrar / home. Una vez más, usted puede hacer esto en vivo, pero si usted está conectado a su equipo, tendrá que salir de su perfil y de una línea de comandos de root. Vas a tener que desmontar / home para que pueda cifrar la partición y volver a crear un sistema de ficheros en él. Para la tercera advertencia, copia de seguridad de su partición / home de su disco local!

Si no lo ha hecho ya, y luego hacerlo. Luego desmontar / home.

 

# Cp-ARFP / home / algunos / external / almacenamiento
# Umount / home

Configuración de la contraseña de LUKS en el envase. Asegúrese de elegir una buena frase de contraseña fuerte. Significado, algo con mayúsculas, minúsculas, símbolos y números en la contraseña. Usted es el cifrado está custodiada por esto, así que no tenga miedo de hacer una buena frase de contraseña largo.

 

# Cryptsetup luksFormat / dev/vg0/home

ADVERTENCIA!
========
Esto sobrescribir datos / dev/vg0/home irrevocablemente.

¿Está seguro? (Escriba en mayúsculas, sí): SI
Enter LUKS passphrase:
Verifique frase de contraseña:
Dirige con éxito.

A continuación, abra la partición cifrada con la clave que ha creado.

 

# Cryptsetup luksOpen / dev/vg0/home casa
Enter LUKS passphrase:

Complete el dispositivo con datos aleatorios, por lo que cualquiera que los exámenes que el disco no se puede determinar la cantidad de datos está en la unidad. Si usted tiene una gran partición, esto podría tomar un tiempo, por lo que ir a tomar un café, refresco o cerveza, y volver más tarde. Puede saltarse este paso, pero que fortalecerá su cifrado en gran medida por tomarse el tiempo para hacerlo.

 

# dd if = / dev / urandom of = / dev / mapper / home

Desde dd no tiene ninguna indicación de estado, aquí hay un truco para ver el tiempo que el proceso se está llevando. En primer lugar, busque el identificador del proceso de su comando dd de arriba, a continuación, utilizar el reloj y matar a mostrar algo de información de estado.

 

# Ps UXA | grep dd
# Watch-n 20 kill-USR1 PID

Ahora tiene que crear el sistema de ficheros en la partición.

 

# mke2fs-j-O dir_index / dev / mapper / home
# tune2fs-l / dev / mapper / home

Por último, cierre la partición cifrada copia de seguridad.

 

LuksClose # crypsetup casa

Al igual que con la partición / swap, tendrá que editar el archivo / etc / fstab y añadir la ruta correcta.

 

# Vim / etc / fstab

Ext3 defaults # / dev/vg0/home / Casa 1 2
Ext3 defaults / dev / mapper / home / home 1 2

Por último, agregue la ruta de acceso a la ruta / etc / crypttab. Si sólo se especifica la partición y directorio de inicio como los dos primeros parámetros, a continuación, en el arranque se le pedirá la contraseña de frase LUKS la protección de sus datos. Usted puede entrar en algunas cosas de lujo, como el almacenamiento de su clave en una llave USB, y tener que monta automáticamente y que arranque, pero yo no vi la necesidad de eso.

 

# Vim / etc / crypttab

casa / dev/vg0/home

Seguir adelante y reiniciar ahora. Debe venir y pedir la contraseña LUKS. Entrar en ella, y se montará el directorio / home. A continuación, puede sincronizar de nuevo todos los datos antiguos, y listo, usted está ahora protegido por el cifrado con / tmp, / swap y / home está todo encriptado. Si alguien le roba su hardware, usted debe ser seguro. Obviamente, si usted quiere otras particiones cifradas, cambiando / a casa con algo más. Por ejemplo, un directorio de copia de seguridad que se utiliza en el hogar para las máquinas de copia de seguridad. Voy a estar replicando esta configuración en mi escritorio en casa, pero también voy a cifrar / srv donde se almacenan mis copias de seguridad de portátiles. También, si usted todavía no está seguro acerca de estas cosas cifrado, arrancar un CD livd como Knoppix y meter todo el sistema de archivos para ver si usted puede conseguir / home montado.

CONSEJO Acerca de Knoppix y LVM. Después de arrancar hacia arriba, asegúrese de ejecutar los dos comandos para forzar Knoppix para ver los grupos de volúmenes.

 

# Vgscan
# Vgchange-ay

Usted será capaz de ver ahora / dev/vg0/home partición como estar allí, sin embargo, usted no podrá realmente montarlo directamente solo usando el monte. Habría que utilizar cryptsetup luksOpen y luksClose para acceder a la partición. Para ello, no hay prueba de que la partición es seguro. Como siempre, por favor, corregir nada malo, dejar comentarios para mejoras, y todo lo habitual. También, gracias a clasohm.net por la ayuda en conseguir / tmp y / swap encriptado, así como la secuencia de comandos para montar / tmp en el arranque.

 

Adición LUKS Keys

Usted puede agregar hasta cuatro o cinco claves para un dispositivo cifrado, así que si usted necesita para permitir que alguien más acceso a la unidad, que lo hagan así.

 

# Cryptsetup luksAddKey / dev/vg0/home

 

Aviso sobre el cambio de tamaño LVM

He aquí una pequeña nota sobre el cambio de tamaño de LVM en un futuro, ya que ha añadido cifrado. Puede utilizar los comandos normales, pero hay que recordar una cosa. Después de extender el volumen lógico, necesitará usar dispositivo mapper cifrado para cambiar el tamaño, no el camino LVM típico.

 

# Lvextend-L 512 M / dev/vg0/home
# resize2fs / dev / mapper / home

 

Amavisd-new, ClamAV y SpamAssassin

Amavisd-new, ClamAV y SpamAssassin

 

1. Introducción

Amavisd-new es una interfaz fiable de alto rendimiento entre un servidor de correo (MTA) y las damas de contenido, como programas antivirus (ClamAV), y / o SpamAssassin. Protocolos de amavisd-new soportes ambos (E) SMTP y LMTP así como sockets UNIX para la comunicación con el MTA y las damas de contenido. Además, también puede utilizar programas de ayuda dedicados, tales como el módulo de Mail :: SpamAssassin Perl.

Amavisd-new soporta un número de MTA. A medida que los nuevos estados-Amavisd documentación, Amavisd-nuevas obras “mejor con Postfix, bien con la configuración de doble sendmail y Exim v4, trabaja con sendmail / milter, o con cualquier MTA como un relé SMTP” . Esta guía se ha escrito y probado en Postfix y se puede utilizar para complementar la guía básica de Postfix aquí . Otro MTA puede obtener añadido más tarde.

Vamos a configurar de nuevo Amavisd-daemon, amavisd, para aceptar correo de nuestra MTA, pasarlo a ClamAV y SpamAssassin para comprobar, y luego regresar de nuevo a la MTA para la entrega. Amavisd utilizarán lmtp escuchando en el puerto TCP 10024 para aceptar correo de nuestra MTA y luego pasarlo a ClamAV utilizando un socket UNIX local y SpamAssassin utilizando el módulo Mail :: SpamAssassin Perl. Electrónico escaneada será regresada a nuestra MTA utilizando SMTP en TCP puerto 10025 para la entrega.

-Amavisd nueva no tiene que residir en el mismo servidor físico que el MTA, y en entornos de alta carga, no es raro tener Amavisd-nueva, ClamAV y SpamAssassin en el servidor físicamente separada de la MTA.

 

2. Instalación

Amavisd-new y ClamAV se han instalado desde el repositorio RPMForge. Para habilitar el repositorio RPMForge, por favor vea los RPMForge instrucciones.

SpamAssassin es parte del repositorio de base de CentOS, pero RPMForge lleva una versión más actual de la misma. Usted debe considerar el uso de la versión de RPMForge. Para ello (especialmente si utiliza las prioridades para el plugin de yum ), agregue lo siguiente a la [base] y los [updates] secciones de su yum.repos.d / etc / / CentOS-Base.repo archivo:

 

[Base]
exclude = spamassass *
...
[Actualizaciones]
exclude = spamassass *
...

En primer lugar, instalar nuevos amavisd-, paquetes clamav y spamassassin:

 

mmm - enablerepo = rpmforge, rpmforge-extras instalar amavisd-new clamav-clamav desarrollo clamd spamassassin

Esto probablemente también instalar un montón de dependencias que incluyen varios módulos de perl y paquetes de archivos. Si todo ha ido bien, dos nuevos usuarios, amavis y clamav deberían haber sido instalados en el sistema:

 

# Cat / etc / passwd | grep "amavis \ | clamav"
clamav: x: 101:102: Almeja Antivirus Checker :/ var / clamav :/ sbin / nologin
amavis: x: 102:103: Amavis correo electrónico del usuario exploración :/ var / amavis :/ bin / sh

Además, el usuario debe clamav automáticamente se han añadido al grupo amavis:

 

# grupos ClamAV
clamav amavis: clamav

Si no, usted puede agregar manualmente clamav al grupo amavis:

 

gpasswd-a clamav amavis

Por último, tres nuevos servicios deberían haber sido añadido al sistema

 

# Chkconfig - list | grep "amavisd \ | clamd \ | spamassassin"
amavisd 0: desactivado 1: off 2: el día 3: el 4: on 5: on 6: off
clamd 0: desactivado 1: off 2: el día 3: el 4: on 5: on 6: off
spamassassin 0: desactivado 1: off 2: off 3: en el terreno 4: off 5: off 6: off

El servicio spamassassin, que comienza spamd, puede ser desactivado como Amavisd nuevo no utiliza realmente el demonio de spamassassin (spamd) sino cargas spamassassin como módulo.

 

3. Configuración

SpamAssassin en realidad no requiere ninguna configuración especial para trabajar con Amavisd-nuevo y va a trabajar fuera de la caja. Esto no significa que usted no puede configurarlo a través de / etc / mail / spamassassin / local.cf , o sus propias cf-archivos en ese directorio.

 

3.1. ClamAV

Configuración de ClamAV se almacena en / etc / clamd.conf. Tenemos que editar el archivo / etc / clamd.conf para decirle que ClamAV-Amavisd nueva se comunicará mediante un socket UNIX local en lugar de un socket TCP, y dónde encontrar ese socket. Edite la configuración LocalSocket y comente la TCPSocket de este modo:

 

# # # / Etc / clamd.conf
#
# Establezca el LocalSocket de almeja
# Tenga en cuenta este * DEBE * partido que puso en / etc / amavisd.conf
#
LocalSocket / var / run / clamav / clamd.sock
#
# Comente la configuración TCPSocket:
# TCPSocket 3310

 

3.2. Amavisd-new

Amavisd-new mantiene su configuración de configuración en / etc / amavisd.conf.

Debido a la potencia y flexibilidad de Amavisd-nueva, en realidad hay mucho que ver, así que vamos a cubrir algunos de los ajustes más importantes unos pocos a la vez.

En primer lugar, podemos desactivar cualquiera de los virus o de cheques de spam eliminando el comentario de las siguientes líneas (por defecto, tanto el virus y el spam se habilita la comprobación de que las líneas están comentadas):

 

# # # / Etc / amavisd.conf:
#
# Para desactivar los controles de virus o spam, descomentar la siguiente:
#
# @ Bypass_virus_checks_maps = (1); controles # ejecutan de código anti-virus
# @ Bypass_spam_checks_maps = (1); controles # ejecutan de código anti-spam
# $ Bypass_decode_parts = 1; controles # ejecutan de decodificadores y dearchivers

A continuación, tenga en cuenta que las siguientes líneas, aunque no se requiere un cambio:

 

$ max_servers = 2; # num de los niños pre-bifurcadas (2 .. 30 es común),-m
$ Daemon_user = "amavis"; # (sin defecto; habitual: vscan o amavis),-u
$ Daemon_group = "amavis"; # (sin defecto; habitual: vscan o amavis),-g
...
$ Inet_socket_port = 10024; # escuchan en este puerto TCP local (s)
...
# $ Notify_method = 'smtp: [127.0.0.1]: 10025';
# $ Forward_method = 'smtp: [127.0.0.1]: 10025'; # establece en UNDEF con milter!

$ Max_servers define el número de procesos de amavisd-new concurrentes y debe coincidir con el número configurado en / / postfix / master.cf columna etc “maxproc” para el servicio amavisfeed (ver configuración de Postfix más abajo).

$ Daemon_user y $ daemon_group deben coincidir con el usuario y grupo, respectivamente, en virtud del cual Amavisd recién se ejecutará.

$ Inet_socket_port define el puerto TCP a través de la cual-Amavisd nueva aceptará conexiones de Postfix.

$ Notify_method y $ forward_method definen la trayectoria de reinyección de correo de Amavisd nuevo de nuevo en Postfix.

Los siguientes ajustes deben ser editados (en el caso de $ mydomain y $ myhostname) y sin comentarios (quite el líder #):

 

$ Mydomain = 'example.com'; # Editar: un defecto conveniente para otros ajustes
$ MYHOME = '/ var / amavis'; # Quitar: un defecto conveniente para otros entornos,-H
$ Helpers_home = "$ MYHOME / var"; # Quitar: directorio de trabajo para SpamAssassin,-S
$ Lock_file = "$ MYHOME / var / amavisd.lock"; # Quitar, L-
$ Pid_file = "$ MYHOME / var / amavisd.pid"; # Quitar,-P
$ Myhostname = 'mail.example.com'; # Quitar y Editar: debe ser un nombre de dominio completo!

Lo siguiente son algunos ajustes de SpamAssassin que invalidan la configuración de SpamAssassin por defecto:

 

$ Sa_tag_level_deflt = 2,0; # añade cabeceras de información de spam si en, o por encima de ese nivel
$ Sa_tag2_level_deflt = 6,2; # add 'de spam detectado' cabeceras de ese nivel
$ Sa_kill_level_deflt = 6,9; # desencadena acciones evasivas de spam (por ejemplo, bloques de correo)
Nivel de spam # más allá del cual un DSN no se envía, $ sa_dsn_cutoff_level = 10
# $ Sa_quarantine_cutoff_level = 25, el nivel de spam # más allá del cual la cuarentena está apagado
$ Penpals_bonus_score = 8; # (sin efecto, sin una base de datos @ storage_sql_dsn)
$ Penpals_threshold_high = $ sa_kill_level_deflt; # no pierden tiempo en hi correo no deseado
$ Sa_mail_body_size_limit = 400 * 1024; # no pierdas el tiempo en SA si el correo es más grande
$ Sa_local_tests_only = 0; # únicas pruebas que no requieren acceso a Internet?

Ninguno de ellos necesita ser cambiado, pero vale la pena ser conscientes de ellos, ya que es el lugar más conveniente para ajustar los umbrales de spam.

$ Sa_tag_level_deflt es el nivel en el que Amavisd nuevo escribirá Spam Información de encabezados tales como X-Spam-Flag, X-Spam-Score y X-Spam-Status. Si usted desea siempre como información de cabecera que se escriben en todos los mensajes, establezca este valor a -999.

$ Sa_tag2_level_deflt establece el nivel en el que el spam se etiqueta en la línea de asunto del mensaje.

$ Sa_kill_level_deflt ajusta el nivel en el que Amavisd nuevo bloqueará el mensaje y ponerlo en cuarentena. Esto es útil como SpamAssassin no hace esto por defecto.

$ Sa_dsn_cutoff_level es el nivel en el que los avisos de fallo de suministro ya no se envían al remitente. Como la mayoría de las direcciones de remitentes de spam se forjan todos modos, tiene sentido de no enviar los avisos de fallo en respuesta al spam obvio, ya que sólo está contribuyendo al problema de retrodispersión.

$ Sa_quarantine_cutoff_level es el nivel en el que el spam ni siquiera está en cuarentena. Por defecto está comentada que significa todo el spam será puesto en cuarentena.

Lo siguiente son algunas direcciones de correo electrónico para las notificaciones que se enviarán:

 

$ Virus_admin = "virusalert \ @ $ mydomain"; # notificaciones recip.
$ Mailfrom_notify_admin = "virusalert \ @ $ mydomain"; # notificaciones remitente
$ Mailfrom_notify_recip = "virusalert \ @ $ mydomain"; # notificaciones remitente
$ Mailfrom_notify_spamadmin = "spam.police \ @ $ mydomain"; # notificaciones remitente

Es probable que desee para configurar estos para “postmaster \ @ $ mydomain” o alguna otra dirección que prefiere recibir notificaciones de mensajes basura.

Por último, tenemos que descomentar la sección de ClamAV, así:

 

# # # Http://www.clamav.net/
['ClamAV-clamd',
  \ & Ask_daemon, ["CONTSCAN {} \ n", "/ var / run / clamav / clamd.sock"],
  qr / \ bOK $ /, qr / \ bFOUND $ /,
  qr / ^ *:.? (. *) (?! Infected Archivo) $ ENCONTRADOS /],
# # NOTA: ejecutar clamd bajo el mismo usuario que amavisd, o bien puede hacerlo por su propio
# # UID como clamav, añadir clamav usuario al grupo amavis y agregue
# # AllowSupplementaryGroups a clamd.conf;
# # NOTA: match nombre de socket (LocalSocket) en clamav.conf al nombre de socket en
# # Esta entrada; cuando se ejecuta un chroot puede preferir socket "$ MYHOME / clamd".

Tenga en cuenta que el ajuste “/ var / run / clamav / clamd.sock” debe coincidir con el “LocalSocket / var / run / clamav / clamd.sock” hicimos antes en / etc / clamd.conf.

 

3.3. Sufijo

Lo siguiente que necesitamos para configurar los servicios de Postfix (/ etc / postfix / master.cf) para permitir que el correo que se pasa a Amavisd nuevo para el filtrado y luego reinyectada de nuevo en Postfix.

Primero vamos a configurar el servicio de amavisd-new para aceptar correo de Postfix. Soportes amavisd-new tanto lmtp y smtp, y en este caso hemos optado por utilizar el protocolo lmtp. (FIXME: No estoy al tanto de las razones para la elección de un protocolo sobre el otro de modo seleccionado para usar lmtp sobre la base de que tener entrega local a Amavisd-nuevo espectáculo en los registros como “lmtp” hace que los archivos de registro de algo más fácil de leer).

Abrir / etc / postfix / master.cf y añada el siguiente servicio llamado “amavisfeed”:

 

# ================================================= =========================
# Tipo de servicio unpriv privado chroot comando maxproc wakeup + args
# (Sí) (Sí) (Sí) (nunca) (100)
# ================================================= =========================
amavisfeed unix - n - 2 lmtp
    -O lmtp_data_done_timeout = 1200
    -O lmtp_send_xforward_command = sí
    -O disable_dns_lookups = sí
    -O max_use = 20

Tenga en cuenta que el número (2) en la columna “maxproc” debe coincidir con los $ max_servers configuración en / etc / amavisd.conf. Para una descripción detallada de las opciones, consulte la Amavisd-nueva documentación (/ usr/share/doc/amavisd-new-2.5.4/README.postfix.html).

Entonces tenemos que definir un servicio dedicado a reinyectar correo nuevo en Postfix. Para ello se le suma un servicio smtp que escucha en localhost (127.0.0.1) 10025 puerto tcp (la configuración en / etc / amavisd.conf predeterminado) a / etc / postfix / master.cf:

 

# ================================================= =========================
# Tipo de servicio unpriv privado chroot comando maxproc wakeup + args
# (Sí) (Sí) (Sí) (nunca) (100)
# ================================================= =========================
127.0.0.1:10025 inet n - n - smtpd
    -O content_filter =
    -O smtpd_delay_reject = sin
    -O smtpd_client_restrictions = permit_mynetworks, rechazar
    -O smtpd_helo_restrictions =
    -O smtpd_sender_restrictions =
    -O smtpd_recipient_restrictions = permit_mynetworks, rechazar
    -O smtpd_data_restrictions = reject_unauth_pipelining
    -O smtpd_end_of_data_restrictions =
    -O smtpd_restriction_classes =
    -O mynetworks = 127.0.0.0 / 8
    -O smtpd_error_sleep_time = 0
    -O smtpd_soft_error_limit = 1,001
    -O smtpd_hard_error_limit = 1,000
    -O smtpd_client_connection_count_limit = 0
    -O smtpd_client_connection_rate_limit = 0
    -O receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_milters,no_address_mappings
    -O local_header_rewrite_clients =
    -O smtpd_milters =
    -O local_recipient_maps =
    -O relay_recipient_maps =

Para una descripción detallada de las opciones, consulte la Amavisd-nueva documentación (/ usr/share/doc/amavisd-new-2.5.4/README.postfix.html).

Después de realizar cambios en / etc / postfix / master.cf, debemos postfix reload para que los cambios surtan efecto:

 

Postfix reload

En este punto podría ser prudente para probar los Amavisd-nuevos y Postfix demonios están escuchando correctamente (consulte la sección Pruebas de abajo).

Una vez que todo está en su lugar y funcionando, el paso final es permitir el filtrado de mensajes en Postfix, añadiendo la siguiente configuración a / etc / postfix / main.cf:

 

content_filter = amavisfeed: [127.0.0.1]: 10024

y postfix reload para que los cambios surtan efecto:

 

Postfix reload

y ver sus registros de los correos.

 

tail-f / var / log / maillog

 

3.4. Otro de MTA

-Amavisd nuevo se puede configurar con otros MTA además Postfix. Docs README para otro MTA se pueden encontrar aquí:

https://www.ijs.si/software/amavisd/ # doc

Si alguien desea contribuir sección acerca de la configuración de otros MTA que no vean la de cómo contribuir página aquí:

https://wiki.centos.org/HowToContribute

 

4. Pruebas

Ahora sería un buen momento para probar que los servicios que hemos definido están funcionando como se esperaba.

En primer lugar, iniciar los servicios clamd y amavisd:

 

# Service inicio clamd
A partir Clam AntiVirus Daemon: [OK]
# Service inicio amavisd
A partir del escáner de virus de correo (amavisd): [OK]

Ahora compruebe que el servicio amavisd está escuchando en 127.0.0.1:10024 mediante Telnet:

 

$ Telnet localhost 10024
Tratando 127.0.0.1 ...
Conectado a localhost.localdomain (127.0.0.1).
Carácter de escape es '^]'.
220 [127.0.0.1] ESMTP servicio amavisd-new listo
ehlo localhost
250 - [127.0.0.1]
250-VRFY
250-PIPELINING
250 TAMAÑO
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250 XFORWARD NOMBRE DIRECCIÓN PROTO HELO
dejar de
221 2.0.0 [127.0.0.1] canal de transmisión de cierre amavisd-new
Conexión cerrada por el host externo.

Si todo funciona, entonces usted debe ver una conexión con éxito similar al anterior.

Siguiente para probar la smtpd Postfix está escuchando en 127.0.0.1:10025:

 

$ Telnet localhost 10025
Tratando 127.0.0.1 ...
Conectado a localhost.localdomain (127.0.0.1).
Carácter de escape es '^]'.
220 mail.example.com ESMTP Postfix
ehlo localhost
250-mail.example.com
250-PIPELINING
250 TAMAÑO 20.480.000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
dejar de
221 2.0.0 Adiós
Conexión cerrada por el host externo.

Una vez más hay que ver una conexión correcta, como se muestra arriba. Ahora podemos probar si todo funciona mediante el envío de cadenas especiales para probar el escaneo.

GTUBE (prueba genérica de email no solicitado masivo) de cadena para las pruebas de SpamAssassin .

EICAR cadena para probar ClamAV.

Cambie el directorio a / usr/share/doc/amavisd-new-2.5.4/test-messages, y ejecute:

 

perl-pe '. s / / chr (ord ($ &) ^ 255) / sge' <sample.tar.gz.compl | zcat | tar xvf -

para extraer los mensajes de prueba de muestra. Utilice estos dos comandos para enviar un mensaje de spam y virus muestra a través de:

 

$ Sendmail-i your-address@example.com <sample-virus-simple.txt
$ Sendmail-i your-address@example.com <muestra-Spam GTUBE-junk.txt

Sustituya ” your-address@example.com “con su dirección actual. Revise su registro de correo (por ejemplo, / var / log / maillog) para el resultado de la exploración de amavis y usted debería ver algo como “spam Aprobado” o “Bloqueado INFECTADOS (EICAR-Test-firma)”. Ahora puede comprobar la configuración coinciden con las expectativas de entrega.

 

5. SELinux

/! \Hay una solución a los problemas de SELinux es utilizar temporalmente permisiva en vez de hacer cumplir el modo en  / etc / selinux / config  . Este enfoque tiene la ventaja añadida de la colocación de la información necesaria en los registros de auditoría de SELinux, que se pueden encontrar en / var / log / audit / . Para obtener más información, consulte este artículo acerca de SELinux

Cuando SELinux está habilitado y en modalidad de imposición, se requieren algunas políticas adicionales para amavisd y ClamAV. Los siguientes módulos de políticas de SELinux se determinaron mediante la ejecución del / ClamAV / amavisd SpamAssassinconfiguración descrita en este documento en CentOS 5 (totalmente actualizado) con SELinux en modo permisivo y corriendo a través de los registros de errores AVC audit2allow como se describe en el HowTo SELinux .

Vamos a crear dos módulos personalizados SELinux políticas, amavisdlocal y clamlocal para amavisd y ClamAV, respectivamente ( SpamAssassin no requiere una política SELinux personalizado). Corte y pegue el siguiente código y guardar en amavisdlocal.te y clamlocal.te, respectivamente:

 

 
módulo de amavisdlocal 1,0;

requerir {
        escriba traceroute_port_t;
        escriba pgpkeyserver_port_t;
        escriba amavis_var_lib_t;
        escriba amavis_t;
        escriba clockspeed_port_t;
        name_bind clase udp_socket;
        clase lnk_file {lea crear getattr unlink};
}

# ============= Amavis_t ==============
permitir amavis_t clockspeed_port_t: udp_socket name_bind;
permitir amavis_t pgpkeyserver_port_t: udp_socket name_bind;
permitir amavis_t traceroute_port_t: udp_socket name_bind;
permitir amavis_var_lib_t amavis_t: lnk_file {lea crear getattr unlink};

 

 
módulo clamlocal 1,0;

requerir {
        escriba proc_t;
        escriba var_t;
        escriba sysctl_kernel_t;
        escriba clamd_t;
        archivo de clase {leer getattr};
        clase dir {lea búsqueda};
}

# ============= Clamd_t ==============
permitir proc_t clamd_t: Archivo {leer getattr};
permitir clamd_t sysctl_kernel_t: buscar dir;
permite sysctl_kernel_t clamd_t: file leer;
permitir var_t clamd_t: dir leer;
permitir var_t clamd_t: Archivo {leer getattr};

Ahora construir y cargar el módulo amavisdlocal:

 

# Checkmodule-M-m-o amavisdlocal.mod amavisdlocal.te
checkmodule: configuración de la política de carga de amavisdlocal.te
checkmodule: configuración de política cargado
checkmodule: escritura representación binaria (versión 6) para amavisdlocal.mod
# Semodule_package-O-amavisdlocal.pp m amavisdlocal.mod
# Semodule-i amavisdlocal.pp

y repita para clamlocal:

 

# Checkmodule-M-m-o clamlocal.mod clamlocal.te
checkmodule: configuración de la política de carga de clamlocal.te
checkmodule: configuración de política cargado
checkmodule: escritura representación binaria (versión 6) para clamlocal.mod
# Semodule_package-O-clamlocal.pp m clamlocal.mod
#-Semodule i clamlocal.pp

Por último, comprobar que nuestros módulos de políticas de SELinux costumbre locales se cargan:

 

# Semodule-L
amavis 1.1.0
amavisdlocal 1.0
ccs 1.0.0
1.1.0 clamav
clamlocal 1.0
dcc 1.1.0
evolución 1.1.0
iscsid 1.0.0
mozilla 1.1.0
mplayer 1.1.0
Nagios 1.1.0
Oddjob 1.0.1
pcscd 1.0.0
postgrey 1.0
pyzor 1.1.0
1.1.0 afeitar
1.0.0 ricci
SmartMon 1.1.0

 

5.1. CentOS 6

Para CentOS 6, se requieren pasos adicionales. Gracias a Harald Oehlmann en https://lists.centos.org/pipermail/centos-docs/2012-October/004994.html

Amavis está almacenando el cuerpo del mensaje y todos los archivos adjuntos (subcarpeta “partes”) en una subcarpeta de “/ var / amavis / tmp”. El escáner de virus esel escaneo de los archivos y escribe su resultado en los archivos de esta carpeta.

Acción escáner de virus en esta carpeta es detenido por SELinux, lo que resulta en errores como “(!) run_av (ClamAV-clamscan) falló” en “/ var / log / mail”.

Haga lo siguiente para permitir que esta interfaz con clam-av:

 

- Se_clamav_amavis te. -
# *** Hao 2012-09-30: añadir regla para permitir clamav para acceder AMaViS archivos
# Y escribe de nuevo ok file y puede crear la carpeta temp
módulo de clamscanamavis 1,0;
requerir {
        escriba clamscan_t;
        escriba amavis_var_lib_t;
        archivo de clase {getattr leer escritura abierta crear unlink};
        escritura clase dir {búsqueda leer getattr abierta add_name crear
setattr remove_name rmdir};
}
permitir clamscan_t amavis_var_lib_t: Archivo {getattr leer escritura abierta crear
desvincular};
permiten clamscan_t amavis_var_lib_t: dir {búsqueda leyó escritura getattr abierta
add_name crear setattr remove_name rmdir};

Y luego

checkmodule-M-m-o se_clamav_amavis.mod se_clamav_amavis.te
semodule_package-O-se_clamav_amavis.pp m se_clamav_amavis.mod
semodule-i se_clamav_amavis.pp

 

 

6. Actualización

 

6.1. SpamAssassin

El spam está cambiando rápidamente, y las nuevas reglas se escriben a menudo en respuesta. Con sa-update, esas reglas pueden rápidamente (potencialmente en cuestión de minutos) se distribuirán y el nuevo spam atrapados. Por favor, lea sobre sa-actualización antes de continuar. Para activar las actualizaciones automáticas, abra el archivo / etc / cron.d / sa-actualización en su editor favorito y descomentar la línea cron para que se vea así:

 

10 4 *** root / usr / share / spamassassin / sa-update.cron 2> & 1 | tee-a / var / log / sa-update.log

Guardar y salir. Este trabajo cron se ejecutará a las 4:10 AM todos los días.

 

6.2. ClamAV

ClamAV utiliza freshclam para actualizar las definiciones de virus. Se actualizan automáticamente con el archivo etc / cron.daily / freshclam script / cron. No hay acciones necesitan ser tomadas. Usted puede verificar que las actualizaciones se están completando al mirar en su archivo / var / log / clamav / freshclam.log registro.

Postfix SASL relayhost

Postfix SASL relayhost

 

1. Introducción

Esta guía está diseñada para complementar la base guía de postfix . Está escrito para CentOS 5. Configuración diferirá para CentOS 6.

 

2. ¿Qué es SASL y qué lo necesito?

SASL (Capa de autenticación y seguridad) proporciona un mecanismo de autenticación de los usuarios usando su nombre de usuario y contraseña. Probablemente la aplicación más conocida de SASL es proporcionado por la biblioteca SASL de Cyrus.

Si su ISP bloquea el puerto 25 conexiones y requiere que autenticarse para enviar correo electrónico, tendrá que configurar SASL.

 

3. ¿Qué pasa con SSL / TLS?

Así SASL es capaz de proporcionar un mecanismo para autenticar usuarios remotos por nombre de usuario y la contraseña que deseen enviar correo a través del servidor de correo. Tenemos el problema de que estos mecanismos están enviando los nombres de usuario y contraseñas en texto plano a través de Internet (SASL soporta varios métodos de autenticación cifrados como DIGEST-MD5, pero estos no siempre son universalmente compatible con el software cliente de correo electrónico). Esto plantea un riesgo para la seguridad como cualquiera potencialmente puede interceptar esta información y robar datos de acceso por lo que necesitamos para cifrar la conexión. SSL (Secure Sockets Layer), y más recientemente TLS (Transport Layer Security), ofrecen un mecanismo para cifrar las comunicaciones entre dos hosts, en nuestro caso, nuestro servidor de correo y nuestro cliente remoto. SSL ha sido renombrado como TLS por la IETF partir de la versión 3.1.

 

4. Configuración stunnel para conexiones SSL

Lo primero es instalar y configurar stunnel. En este ejemplo vamos a utilizar outbound.att.net y el puerto 465. Sustituya estos valores por los valores de su ISP.

 

yum-y install telnet stunnel
cat >> / etc / stunnel / stunnel.conf << EoT
[Smtps]
accept = 10465
client = sí
connect = outbound.att.net: 465
EoT
wget-O / etc / init.d / stunnel https://bugzilla.redhat.com/attachment.cgi?id=325164
chmod 755 / etc / init.d / stunnel
chkconfig stunnel sucesivamente; servicio de inicio stunnel

Prueba de que la conexión stunnel está trabajando con una conexión telnet.

 

$ Telnet localhost 10465
Tratando 127.0.0.1 ...
Conectado a localhost.localdomain (127.0.0.1).
Carácter de escape es '^]'.
220 outbound.att.net ESMTP listo
$ Renunciar
221 2.0.0 Adiós
Conexión cerrada por el host externo.

 

5. Configuración de SASL en Postfix

El primer paso es crear los archivos con sus credenciales para el ISP.

 

echo "[127.0.0.1]: 10465 MyUserName@att.net: secretpassword" >> / etc / postfix / relay_creds
postmap / etc / postfix / relay_creds
chmod go-rwx / etc / postfix / relay_creds *

El segundo paso consiste en agregar nuevo valor al archivo main.cf de postfix.

cat >> / etc / postfix / main.cf << EoT

# Añade a habilitar el soporte SASL para relayhost
relayhost = [127.0.0.1]: 10465
smtp_sasl_type = cyrus
smtp_sasl_auth_enable = sí
smtp_sasl_password_maps = picadillo :/ etc / postfix / relay_creds
smtp_sasl_security_options = noanonymous
smtp_use_tls = sí
smtp_cname_overrides_servername = no
smtp_sasl_mechanism_filter = normal, inicio de sesión
EoT
servicio postfix reload

 

6. Prueba de entrega

SASL está configurado y correo electrónico debe ser enrutado a través de la relayhost. Compruebe / var / log / maillog si hay errores. Si es necesario actualizar las credenciales, asegúrese de ejecutar “postmap / etc / postfix / relay_creds” y “postfix reload servicio”.

Si usted recibe un error acerca de correo electrónico que se envía desde un usuario desconocido, puede que tenga que enviar todo el correo electrónico de la dirección de correo electrónico de la cuenta de su ISP. En este ejemplo, reemplace la dirección de correo electrónico con la proporcionada por su ISP.

 

echo '/. * / MyUserName@att.net' >> / etc / postfix / sender_canonical
postmap / etc / postfix / sender_canonical
echo 'sender_canonical_maps = regexp :/ etc / postfix / sender_canonical' >> / etc / postfix / main.cf
servicio postfix reload

Postfix SASL relayhost

Postfix SASL relayhost

 

1. Introduction

This guide is designed to compliment the basic postfix guide. It is written for CentOS 5. Configuration will differ for CentOS 6.

 

2. What is SASL and do I need it?

SASL (Simple Authentication and Security Layer) provides a mechanism of authenticating users using their username and password. Probably the most well known implementation of SASL is provided by the Cyrus SASL library.

If your ISP blocks port 25 connections and requires you to authenticate to send email, you will need to configure SASL.

 

3. What about SSL/TLS?

So SASL is able to provide a mechanism to authenticate remote users by username and password who wish to send mail through the mail server. We have a problem in that these mechanisms are sending usernames and passwords in plain text across the Internet (SASL does support various encrypted authentication methods such as DIGEST-MD5 but these aren’t always universally supported by email client software). This poses a security risk as anyone can potentially intercept this information and steal login details so we need to encrypt the connection. SSL (Secure Sockets Layer), and more recently TLS (Transport Layer Security), offer a mechanism to encrypt communications between two hosts, in our case our mail server and our remote client. SSL was renamed TLS by the IETF as of version 3.1.

 

4. Configuring stunnel for SSL connections

Start by installing and configuring stunnel. In this example we will use outbound.att.net and port 465. Replace these values with your ISP’s values.

 

yum -y install stunnel telnet
cat >> /etc/stunnel/stunnel.conf <<EoT
[smtps]
accept  = 10465
client = yes
connect = outbound.att.net:465
EoT
wget -O /etc/init.d/stunnel https://bugzilla.redhat.com/attachment.cgi?id=325164
chmod 755 /etc/init.d/stunnel
chkconfig stunnel on; service stunnel start

Test that the stunnel connection is working with a telnet connection.

 

$ telnet localhost 10465
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 outbound.att.net ESMTP ready
$ quit
221 2.0.0 Bye
Connection closed by foreign host.

 

5. Configuring SASL in postfix

The first step is to create the files with your credentials for the ISP.

 

echo "[127.0.0.1]:10465  MyUserName@att.net:SecretPassword" >> /etc/postfix/relay_creds
postmap /etc/postfix/relay_creds
chmod go-rwx /etc/postfix/relay_creds*

The second step is to add new setting to the postfix main.cf file.

cat >> /etc/postfix/main.cf <<EoT

#added to enable SASL support for relayhost
relayhost = [127.0.0.1]:10465
smtp_sasl_type = cyrus
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/relay_creds
smtp_sasl_security_options = noanonymous
smtp_use_tls = yes
smtp_cname_overrides_servername = no
smtp_sasl_mechanism_filter = plain, login
EoT
service postfix reload

 

6. Test for Delivery

SASL is configured and email should be routed through the relayhost. Check /var/log/maillog if there are errors. If you need to update the credentials, be sure to run “postmap /etc/postfix/relay_creds” and “service postfix reload”.

If you get an error about email being sent from an unknown user, you may need to send all email from the email address of your ISP’s account. In this example, replace the email address with the one provided by your ISP.

 

echo '/.*/ MyUserName@att.net' >> /etc/postfix/sender_canonical
postmap /etc/postfix/sender_canonical
echo 'sender_canonical_maps = regexp:/etc/postfix/sender_canonical' >> /etc/postfix/main.cf
service postfix reload

Greylisting HOWTO

Greylisting HOWTO

1. Introducción

NOTA: Esta guía ha sido escrita para complementar la base guía Postfix y restricciones postfix guía , pero desde entonces se ha ampliado para su uso con otro MTA.

Postgrey es un servidor de la aplicación de políticas de listas grises para filtrar el spam en servidores de correo Postfix. El principio de la lista gris funciona sobre la base de que la cantidad de spam es enviado por spam y otros MTA no compatibles con RFC.Postgrey rechazará temporalmente el nuevo correo con el error 450 “intentarlo más tarde” por un período determinado de tiempo y registrará el triplete CLIENT_IP / remitente / destinatario en su base de datos. Si el servidor de envío es compatible con RFC, entonces debe volver a enviar el mensaje en ese momento Postgrey comprobará su base de datos para un partido y aceptar el mensaje. El retraso es configurable y Postgrey mantiene una base de datos de tripletes conocidos, de modo electrónico de un remitente dado sólo debe retrasarse la primera vez.

Sin embargo, un anuncio publicitario típico robot de spam es probable que reciba una gran cantidad de correo rebotado o rechazado hasta spammers normalmente no vuelven a enviar los mensajes cuando se rechazan de forma temporal. Por lo tanto, todo el correo recibido de esas fuentes simplemente es eliminado por el servidor de correo. Esto tiene la ventaja adicional de reducir el filtrado y la sobrecarga de procesamiento en el servidor de correo como un gran porcentaje de mensajes simplemente se dejó caer antes de entrar en el MTA y no tendrá que ser filtrado o procesado de otro modo.

 

2. Configuración

Greylisting puede ser configurado para trabajar con un número de diferentes de MTS. Por favor, consulte la sección correspondiente a continuación para el MTA que está utilizando.

 

2.1. Sufijo

Postgrey se instaló desde RPMForge en CentOS 5.1 completamente actualizado, aunque debe aplicarse por igual en otras versiones. Para habilitar el repositorio RPMForge, por favor vea los RPMForge instrucciones. En primer lugar, instale postgrey:

 

# Yum install postgrey

Postgrey está escrito en Perl, por lo que Perl es necesario junto con algunos módulos Perl adicionales. Yum debería resolver automáticamente las dependencias que faltan para usted y usted puede comprobar los requisitos en la página web Postgrey.

Primero necesitamos configurar Postfix para usar Postgrey. Editar / etc / postfix / main.cf para incluir lo siguiente check_policy_service línea dentro del smtpd_recipient_restrictions sección como se muestra a continuación (si usted no tiene un smtpd_recipient_restrictions sección, a continuación, el siguiente ejemplo funciona bien):

 

smtpd_recipient_restrictions =
   permit_mynetworks,
   reject_unauth_destination,
   check_policy_service unix: postgrey / socket,
   permiso

Por defecto, la cantidad de tiempo por el cual Postgrey rechazará los mensajes nuevos se establece en 5 minutos, pero podemos cambiar esto usando el - Retardo de conmutación. No es una solución de compromiso en que el más largo es el tiempo, más posibilidades de rechazar el spam, sino también el correo legítimo ya se retrasará por primera vez. Valdría la pena establecer inicialmente este valor en 1 minuto (60 segundos) y, posteriormente, aumentar el valor de una vez Postgrey ha construido una base de datos de contactos de correo ordinario para su servidor. Configuración de la demora a valores mayores de 300 segundos (5 minutos) en realidad no es recomendable. Para configurar manualmente el retardo (en segundos), lo que necesitamos para crear el archivo de configuración Postgrey en / etc / sysconfig / postgrey y anexar el - Retardo interruptor como se muestra a continuación (ver ‘man postgrey’ para obtener una lista completa de opciones):

 

OPTIONS = "- unix = / var / spool / postfix / postgrey / hembra - delay = 60"

Por último, tenemos que iniciar el servicio Postgrey y vuelva a cargar la configuración de Postfix:

 

# / Sbin / service inicio postgrey
# / Sbin / servicio postfix reload

Asegurar postgrey inicia automáticamente al arrancar la máquina:

 

# / Sbin / chkconfig - levels 345 postgrey sobre

Ahora podemos comprobar nuestros registros del correo y ver postgrey en acción. He aquí un (ofuscado) extracto de mi / var / log / maillog:

 

#
# postgrey cargas:
#
17 de diciembre 21:44:58 jessie postgrey [6844]: proceso en segundo plano
17 de diciembre 21:44:58 jessie postgrey [6844]: 2007/12/17-21: 44:58 postgrey (tipo Net :: Server :: Multiplex) partida! PID (6844)
17 de diciembre 21:44:58 jessie postgrey [6844]: La unión a fichero socket UNIX / var / spool / postfix / postgrey / socket usando SOCK_STREAM
17 de diciembre 21:44:58 jessie postgrey [6844]: Ajuste gid a "101 101"
17 de diciembre 21:44:58 jessie postgrey [6844]: Ajuste el uid para "100"
#
# Postgrey greylisting un mensaje:
#
17 de diciembre 21:23:49 jessie postfix / smtpd [6714]: connect from mk-outboundfilter-4-a-1.mail.uk.tiscali.com [212.74.114.8]
17 de diciembre 21:23:49 jessie postfix / smtpd [6714]: NOQUEUE: rechazar: RCPT de mk-outboundfilter-4-a-1.mail.uk.tiscali.com [212.74.114.8]:
        450 4.2.0 <ned@example.com>: Dirección receptora rechazada: Greylisted, ver https://postgrey.schweikert.ch/help/example.com.html;
        from = to = <bob@example.com> <ned@example.com> proto = ESMTP helo = <mk-outboundfilter-4-a-1.mail.uk.tiscali.com>
17 de diciembre 21:23:54 jessie postfix / smtpd [6714]: desconexión de mk-outboundfilter-4-a-1.mail.uk.tiscali.com [212.74.114.8]
#
# Postgrey aceptar un mensaje:
#
17 de diciembre 22:23:45 jessie postgrey [2218]: action = pasar, razón = triplete encontrado, client_name = mk-outboundfilter-3-a-1.mail.uk.tiscali.com,
        dirección_cliente = 212.74.114.7, sender = bob@example.com, destinatario = ned@example.com

Si ve un mensaje como el siguiente:

 

18 de noviembre 09:39:03 jessie postfix / smtpd [26006]: aviso: conectarse a postgrey / socket: Permiso denegado

no se frustre, que es un problema de SELinux y la solución se discute en la siguiente página wiki: HowTos / SELinux # head-faa96b3fdd922004cdb988c1989e56191c257c01 .

 

2.2. Greylisting en Sendmail

Sendmail utiliza milter-lista gris, que está disponible en RPMForge. Para habilitar el repositorio RPMForge, por favor vea los RPMForge instrucciones. En primer lugar, instale milter-lista gris:

 

# Yum install milter-lista gris

Milter-greylist está escrito en C, por lo que hay pocos, si alguno, dependencias. Yum debería resolver automáticamente las dependencias que faltan para usted y usted puede comprobar los requisitos en la lista gris-milter sitio web .

Agregue lo siguiente al final de la secuencia de comandos sendmail.mc:

 

INPUT_MAIL_FILTER (`lista gris ',` S = local :/ var /-milter lista gris / milter-greylist.sock') dnl
define (`confMILTER_MACROS_CONNECT ',` j, {if_addr}') dnl
define (`confMILTER_MACROS_HELO ',` {verificar}, {cert_subject}') dnl
define (`confMILTER_MACROS_ENVFROM ',` i, {auth_authen}') dnl
define (`confMILTER_MACROS_ENVRCPT ',` {} lista gris') dnl

También puede especificar los tiempos de espera si se quiere, el siguiente ejemplo tiene un tiempo de espera de un minuto al envío de información a la milter y lo mismo espera de una respuesta, los valores predeterminados son sólo 10 segundos cada uno y puede no ser suficiente cuando se utiliza DNSRBL y / o SPF . Lea más en la instalación milter de Sendmail instrucciones .

 

INPUT_MAIL_FILTER (`lista gris ',` S = local :/ var /-milter lista gris / milter-greylist.sock, F =, T = S: 1m; R: 1m') dnl

Hacer que el archivo sendmail.cf de los autos m4. Muchos sistemas tienen un Makefile que hará esto automágicamente.

 

/ Usr/bin/m4 / usr/share/sendmail/cf/m4/cf.m4 sendmail.mc> sendmail

y reinicie sendmail

 

servicio sendmail restart

 

2.3. Exim

Configuración de Exim para ir aquí. Por favor, siéntase libre de ser voluntario si utiliza listas grises con exim (o cualquier otro MTA)

 

3. Informes

Postgrey incluye un postgreyreport llamada herramienta de informes. Su instala por defecto al instalar el rpm postgrey. Postgreyreport analizará una maillog (leer de STDIN), compararlo con el db postgrey y detalles de salida en todas las entradas de la lista gris ‘mortales’. Un anfitrión es considerado como “fatalmente” lista gris cuando no vuelve a intentar dentro de los 300 segundos después de su primer intento de entrega de correo electrónico de un destino específico. Postgreyreport utiliza la completa el triple como candidato. Puede sintonizar este retraso de 300 segundos utilizando la opción de línea de comandos – delay, sin embargo 300 es un buen punto de referencia. La mayoría de los servidores de correo se vuelva a intentar dentro de los 300 segundos.

Uso básico:

 

cat / var / log / maillog | / usr / sbin / postgreyreport - delay = 300

Dependiendo de lo ocupado que su servidor es, el informe puede llegar a ser muy grande. Para obtener sólo los 20 principales fuentes de conseguir Greylisted – usted puede usar algo como esto:

 

cat / var / log / maillog | postgreyreport | awk '{print $ 1}' | sort | uniq-c | sort-nr | head-n20

Para obtener una lista de los 20 primeros dirección de correo electrónico que las fuentes Greylisted están enviando correo electrónico a:

 

cat / var / log / maillog | postgreyreport | awk '{print $ 4}' | sort | uniq-c | sort-nr | head-n20

Para obtener una lista de todas las opciones que postgreyreport soportes y sus funciones:

 

postgreyreport-h

 

4. Consideraciones MX Múltiples

Si su dominio tiene más de un servidor de correo (MX), asegúrese de habilitar la lista gris en todos los servidores o los spammers apuntarán a la copia de seguridad de máquinas MX y enrutar el correo electrónico desde allí. Y puede ser que valga listas blancas las máquinas entre sí. Revise la siguiente sección sobre cómo hacer listas blancas en postgrey.

Para la lista gris a trabajar en las máquinas de copia de seguridad MX, es importante que la comprobación de la lista gris que sucede antes de que el correo acepta! Si bien esto suena como sentido común, es el problema que causa la mayoría de la gente un montón de confusión cuando la configuración de la lista gris de las máquinas de copia de seguridad MX. Como ejemplo, si usted está usando permit_mx_backup en postfix tus smtpd_recipient_restrictions en la copia de seguridad MX debería tener este aspecto:

 

smtpd_recipient_restrictions =
    reject_unauth_destination,
    check_policy_service unix :/ var / spool / postfix / postgrey / socket,
    permit_mx_backup,
    permiso

 

5. Whitelisting

En postgrey su posible lista blanca de remitentes y los receptores. Todo lo que necesita hacer para la lista blanca un anfitrión es añadir el nombre de dominio completo o la dirección IP en el archivo / etc / postfix / postgrey_whitelist_clients.local. por ejemplo:

 

192.168.1.10
mydesktop.office.mydomain.com

Ahora todo el correo electrónico recibido, ya sea 192.168.1.10 o mydesktop.office.mydomain.com no estará lista gris, que será aceptada de inmediato (siempre y cuando su validez, y pasa todas las reglas de sufijo). Por otro lado, si usted quiere la lista blanca un destinatario puede añadir su nombre de usuario parte de la dirección de correo electrónico en el archivo / etc / postfix / postgrey_whitelist_recipients. por ejemplo:

 

postmaster @
abuse @
theboss @

Ahora todos los correos electrónicos que se reciben para cualquiera de estas direcciones de correo electrónico “no será Greylisted, y todos los correos electrónicos serán aceptados de inmediato. Tenga en cuenta que postgrey ya viene con la configuración de lista blanca para postmaster y el abuso.

 

6. Resumen

Lista gris es una forma muy eficaz de lucha contra el spam enviado desde RFC contra spambots no conformes. Postgrey es una herramienta fácil de implementar el servidor de políticas de listas grises que puede ser instalado y configurado en cuestión de minutos en un servidor de correo en funcionamiento en CentOS.

Restricciones de Postfix

Restricciones de Postfix

1. Introducción

Si ha seguido la básica de postfix guía tendrá una sencilla sufijo de correo electrónico del servidor en funcionamiento que es capaz de enviar y recibir correo electrónico. Sin embargo, es probable que haya notado que su servidor de correo Postfix recibe todo el correo electrónico, sin restricciones, incluyendo spam. Correo no deseado, también conocido como email masivo no solicitado (UBE) o mensajes comerciales no solicitados (UCE) se estima que constituyen más del 80% de todo el correo electrónico enviado a través de Internet y, como tal, representa un desafío importante para cualquier administrador de correo electrónico. Esta guía se examinarán algunas de las restricciones disponibles en Postfix para combatir el correo no deseado y está diseñado para ser de tipo modular de tal manera que se puede implementar, además de la básica guía sufijo si el lector lo desea.

 

2. Postfix y spam

La Internet se basa en gran medida en una política de confianza y UBE abusos que confían para permitir la entrega de grandes cantidades de spam. Al colocar ningún tipo de restricciones a los correos electrónicos que se están evitando de la política de confianza y, como tal, también corren el riesgo de restringir o bloquear el correo electrónico legítimo. Por lo tanto debemos ser conservadores en las restricciones que aplicamos y debemos probar y monitorear a fondo. Sus usuarios se lo agradecerán para limitar la cantidad de spam que ven pero no se lo agradecerán para bloquear el correo electrónico legítimo.

Vamos a usar 3 clases de restricción sufijo diferentes para examinar la información proporcionada a nuestro servidor de correo electrónico por cualquier cliente que se conecta:

  • smtpd_helo_restrictions
  • smtpd_sender_restrictions
  • smtpd_recipient_restrictions

Por suerte para nosotros, muchos spammers no se molestan en seguir de cerca las directrices RFC y podemos utilizar estas clases de restricción para identificar el spam obvia sobre esa base y rechazar antes de que ingrese a nuestro servidor de correo electrónico. Rechazando el spam obvio antes de que entre nuestro servidor de correo electrónico tiene las ventajas de ahorro de ancho de banda, así como la reducción de los gastos generales de procesamiento adicionales para nuestro servidor de correo electrónico.

Restricciones de trabajo mediante la tramitación de una serie de reglas que determina la acción que se llevará a Postfix para ese mensaje. Posibles resultados están bien, rechazar o DUNNO. Restricciones se procesan o evalúan en el orden en el que aparecen.Si una regla devuelve un valor de RECHAZAR entonces el mensaje es rechazado de inmediato sin más transformación. Si una regla devuelve un valor del bien, entonces el tratamiento posterior de esa clase de restricciones se detiene y la próxima clase de restricciones se evalúan hasta que el mensaje tiene o ha superado con éxito todas las clases de restricción o posteriormente es rechazado por una norma posterior. Así, por ejemplo, un mensaje puede recibir un valor del bien de un smtpd_sender_restriction pero todavía puede ser rechazada por una regla smtpd_recipient_restriction posterior. Por lo tanto, tenemos que considerar cuidadosamente el orden de nuestras reglas de restricción. Si el mensaje no es rechazada explícitamente por ninguna regla, entonces la política por defecto es aceptar el mensaje.

Para comprender mejor las diferentes clases de restricciones y cómo se aplican, permite echar un vistazo al proceso smtp con más detalle, ya que telnet en nuestro servidor de correo electrónico y enviar un mensaje de prueba simple para nosotros mismos:

 

telnet 192.168.0.2 25 # Comentarios
Tratando 192.168.0.2 ...
Conectado a 192.168.0.2 (192.168.0.2).
Carácter de escape es '^]'.
220 mail.example.com ESMTP Postfix # <-smtp_client_restrictions
HELO mail.example.com # <-smtp_helo_restrictions
250 mail.example.com #
MAIL FROM: <ned@example.com> # <-smtp_sender_restrictions
250 2.1.0 Ok #
RCPT TO: <ned@example.com> # <-smtp_recipient_restrictions
250 2.1.5 Ok #
DATOS # <-smtp_data_restrictions
354 datos finales con <CR> <LF>. <CR> <LF> #
A: <ned@example.com> # <-header_checks
De: <ned@example.com> #
Asunto: SMTP Prueba #
Este es un mensaje de prueba # <-body_checks
. #
250 2.0.0 Ok: en cola como 301AE20034
SALIR
221 2.0.0 Adiós
Conexión cerrada por el host externo.

Una de las principales ventajas de las restricciones helo smtpd, remitente y destinatario son que se evalúan y actuar en consecuencia antes de que el cuerpo del correo electrónico se ha enviado nunca / recibidos hasta el spam potencial puede ser rechazada al principio del proceso smtp sin consumir ancho de banda adicional y / o recursos de procesamiento. Es probablemente el mejor que podemos ver algunas restricciones en la acción para entender mejor lo que hace cada uno. Se añaden todas las restricciones al archivo de configuración de postfix ubicado en / etc / postfix / main.cf

 

3. Restricciones Helo

Cuando un sistema cliente se conecta primero a nuestro servidor de correo electrónico, es necesario que la propia identidad con el comando HELO smtp. Muchos spammers bien tratan de saltarse este paso por completo, se enviará información imposiblemente válido o se tratan deliberadamente de confundir su identidad para obtener acceso. De cualquier manera, podemos rechazar con seguridad las conexiones de los clientes que están severamente mal configurado o que se ofuscar deliberadamente su identidad.

 

# / Etc / postfix / main.cf
# restricciones HELO:
smtpd_delay_reject = sí
smtpd_helo_required = sí
smtpd_helo_restrictions =
    permit_mynetworks,
    reject_non_fqdn_helo_hostname,
    reject_invalid_helo_hostname,
    permiso

Nota: Postfix 2.2 (CentOS 4) utiliza reject_non_fqdn_hostname y reject_invalid_hostname, respectivamente.

La primera línea (smtpd_delay_reject) permite la conversación SMTP para continuar hasta el punto de llegar a recibir el mensaje antes de que sea rechazada, y es útil porque permite que toda la información del remitente y el destinatario que estar conectado.También es un requisito para helo_restrictions. La segunda línea (smtpd_helo_required) rechaza correo electrónico desde cualquier sistema que no identifica a sí mismo.

Nuestros smtpd_helo_restrictions comienzan en la línea 3. permit_mynetworks dice Postfix para que acepte conexiones de máquinas de confianza definidos en mynetworks modo de correo electrónico de nuestros clientes de confianza, no se someterá a controles adicionales de restricción helo. reject_non_fqdn_helo_hostname rechazarán las conexiones si el nombre de host suministrado con el comando HELO no es un nombre de dominio completo como lo exigen las normas RFC. Debe ser perfectamente seguro para rechazar los intentos de conexión de los clientes que no hacen ningún esfuerzo para identificar correctamente a sí mismos. Del mismo modo, reject_invalid_helo_hostname rechazarán los intentos de conexión cuando la sintaxis hostname HELO es válida.Finalmente nos permitimos mensajes para pasar a la siguiente etapa de filtrado.

Una opción, además, que de vez en cuando se especifica es reject_unknown_helo_hostname que rechacen los mensajes si el nombre de host suministrado con el comando helo no tiene ya sea un DNS A válida o registro MX. Sin embargo, este ajuste se debe utilizar con precaución, ya que rechazará correo electrónico de sistemas legítimos con problemas de DNS temporales y puede dar lugar a falsos positivos.

 

4. Restricciones de remitente

El siguiente paso es filtrar los remitentes válidos con algunas restricciones del remitente:

 

# / Etc / postfix / main.cf
# restricciones del remitente:
smtpd_sender_restrictions =
    permit_mynetworks,
    reject_non_fqdn_sender,
    reject_unknown_sender_domain,
    permiso

Una vez más, en primer lugar nos permitimos correo electrónico de los remitentes en nuestra propia red (permit_mynetworks). Las siguientes dos líneas rechazan los mensajes si la dirección de correo electrónico de remitentes es incorrecto o no existe ya que no hay ninguna razón real para aceptar correo de ellos. reject_non_fqdn_sender rechazará email cuando MAIL FROM dirección no se encuentra en forma de dominio completo como lo requiere el RFC. reject_unknown_sender_domain rechazarán correo electrónico cuando el dirección de MAIL FROM tiene ni DNS ni un registro MX, o cuando se tiene un registro MX malformaciones tales como un registro con una longitud cero MX nombre de host. El código de respuesta para reject_unknown_sender_domain es 450 (a intentarlo más tarde) en caso de un error temporal de DNS. Además, como la dirección de MAIL FROM es la dirección que rebotan notificaciones deberán ser enviadas a, no tiene sentido para recibir correo de un dominio desconocido. La última línea permite a cualquier otro mensaje para pasar a la siguiente fase de la filtración.

 

5. Las restricciones de destinatario

Por este tiempo, está claro que el equipo cliente no está completamente mal configurado y que el remitente se encuentra al menos una oportunidad de ser legítimo. El último paso es ver que el cliente tiene permiso para enviar al destinatario dado y aplicar algunos controles no postfix externos al pequeño número de mensajes que hacen que sea tan lejos.

 

# / Etc / postfix / main.cf
# restricciones de destinatarios:
smtpd_recipient_restrictions =
   reject_unauth_pipelining,
   reject_non_fqdn_recipient,
   reject_unknown_recipient_domain,
   permit_mynetworks,
   reject_unauth_destination,
   check_sender_access
         de hash :/ etc / postfix / sender_access,
   reject_rbl_client zen.spamhaus.org,
   reject_rbl_client bl.spamcop.net,
   check_policy_service unix: postgrey / socket,
   permiso

Postfix soporta una técnica conocida como la canalización que acelera las entregas a granel de correo electrónico mediante el envío de múltiples comandos SMTP a la vez. El protocolo requiere que los clientes primero verifique que el servidor soporta la canalización. Muchos spammers enviar una serie de comandos sin esperar la autorización, a fin de entregar sus mensajes lo más rápidamente posible. reject_unauth_pipelining detiene el correo de software de correo masivo que utiliza indebidamente la segmentación con el fin de agilizar las entregas.

Las siguientes líneas deben ser algo familiar ya y rechazar el correo a los dominios que no existen o no pueden existir. En primer lugar, rechazamos correo electrónico cuando el RCPT TO abordar no está en forma de dominio completo (reject_non_fqdn_recipient) exigidos por RFC y luego rechazamos email cuando nuestro servidor de correo electrónico no es destino final de la dirección del destinatario, cuando el RCPT TO abordar no tiene DNS A o un registro MX, o cuando se tiene un registro MX con formato incorrecto. El código de respuesta para reject_unknown_recipient_domain es 450 (a intentarlo más tarde) en caso de un error temporal de DNS. Una vez más, le dice a Postfix permit_mynetworks para aceptar conexiones de usuarios locales en nuestra red.

La siguiente línea, reject_unauth_destination, es de vital importancia , ya que le dice a Postfix no aceptar los mensajes con destinatarios en dominios que no están alojados localmente o que servimos como un servidor de copia de seguridad para. Sin esta línea, nuestro servidor sería una retransmisión abierta.

El siguiente ajuste, check_sender_access, nos permite implementar listas blancas y listas negras de direcciones y dominios de correo electrónico completas o parciales como se especifica en el campo MAIL FROM contra una tabla de acceso especificada con un objetivo de Aceptar o Rechazar. En primer lugar debemos crear nuestra tabla de consulta, que en este caso es el archivo de texto sin formato / etc / postfix / sender_access:

 

# / Etc / postfix / sender_access
#
# Negro / lista blanca de remitentes que coinciden con el 'CORREO DE' campo. Ejemplos ...
#
myfriend@example.com Aceptar
junk@spam.com REJECT
comercialización @ RECHAZO
theboss @ OK
deals.marketing.com REJECT
somedomain.com Aceptar

En el ejemplo anterior podemos ver que podemos lista de correo negro o blanco de direcciones completos de correo electrónico, nombres de usuario en cualquier dominio o dominios y nombres de dominio parciales contenidos en el campo MAIL FROM. Tenga en cuenta que estos son sólo ejemplos y, en general usted no debe la lista blanca de su propio dominio como spammers suelen falsificar la dirección del remitente sea la de tu propio dominio. Una vez que haya creado su archivo sender_access debe ejecutar el comando postmap contra ella para crear la versión indexada que Postfix utilizará (también se debe repetir este cada vez que cambie el archivo):

 

postmap / etc / postfix / sender_access

Es el último de nuestros cheques postfix internos. El resto de los controles, bien consultar fuentes externas o aplicaciones de ayuda.

Realizaremos alguna lista negra en tiempo real (RBL) cheques. RBL del, también conocido como listas negras de DNS (DNSBL) son servicios de 3 ª parte que mantienen una lista de direcciones IP que se sabe están involucrados en algún tipo de actividad ilícita, tales como la distribución de spam u otro contenido no deseado, como los virus. La línea reject_rbl_client causa de postfix para realizar una comprobación contra la base de datos de la lista y rechazará el mensaje si se trata de una mala fuente conocida. Debido a que estos controles implican una búsqueda de DNS que son relativamente “caro” en términos de recursos y por lo tanto son los mejor situados hacia el final de nuestros cheques para que tanto el spam como sea posible ya ha sido eliminado para reducir al mínimo el número que se producen. Del mismo modo, también tiene sentido colocar las listas de los más eficaces en primer lugar, de nuevo minimizando el número de búsquedas que se necesitan para rechazar un mensaje (spam).

Hay muchos de disposición DNSBL, cuántos y qué usted elige utilizar depende de usted, pero usted debe controlar sus registros de forma regular para revisar su efectividad (pista: instalar el paquete postfix-Pflogsumm y utilizar el Pflogsumm comando para analizar su registros postfix). También debemos reconocer que el uso de las aperturas de DNSBL para introducir la posibilidad de falsos positivos, ya que confiamos en la política de la lista mantenedor para agregar direcciones sin escrúpulos. Algunos son muy eficaces, algunos bloques prácticamente nada, y otros bloqueará tanto correo genuino como lo hacen spam. Para más información y estadísticas en tiempo real sobre DNSBL del lector se refiere a: https://stats.dnsbl.com/

El control final, check_policy_service, se utiliza para llamar a un complemento de la aplicación o el script, en este caso postgrey unido a un socket unix. Postgrey puede ser muy eficaz cuando se trata de eliminar el spam y hay una guía separada dedicada exclusivamente a la instalación de postgrey en el servidor de correo electrónico de postfix. El lector se anima encarecidamente leer que guía siguiente.

 

6. Resumen

En esta guía hemos visto cómo podemos utilizar las restricciones de sufijo para rechazar el correo de los clientes, obviamente, mal configurado o los que de otra manera no tienen negocios el envío de correo electrónico a nuestro servidor. Las restricciones aplicadas son deliberadamente conservadora con la intención de no causar falsos positivos y deberían funcionar bien en cualquier instalación de postfix. Restricciones de Postfix, particularmente rechazando nombres de host helo en forma de nombres de dominio que no estén totalmente cualificados, pueden bloquear hasta el 30% del spam y el uso de 1 o 2 buenos DNSBLs puede bloquear el 90% o más del resto. En combinación con otras técnicas de filtrado tales como la lista gris , debería ser posible para filtrar la gran mayoría de correo no deseado (~ 99%) antes de que entre en el servidor de correo electrónico con el consiguiente ahorro en los recursos de ancho de banda y de procesamiento. Esta guía está diseñada para complementar la base guía de postfix .

 

7. Agradecimientos

Este artículo fue inspirado por y en estrecha colaboración basada en la excelente guía de Kirk Strauser publicado bajo el “Reconocimiento-Compartir Igual” Creative Commons License 2.5 en: https://www.freesoftwaremagazine.com/articles/focus_spam_postfix

Postfix HOWTO

Postfix HOWTO

 

1. Introducción

Este artículo está dirigido a principiantes que desean configurar un servidor de correo electrónico básico. Conocimientos básicos de administración del sistema sería una ventaja y la posibilidad de instalar el software y los archivos de configuración de edición es esencial. El artículo fue escrito para CentOS 5 , pero debe ser igualmente aplicable a las versiones anteriores. Las versiones posteriores pueden diferir.

Hay muchos escenarios y combinaciones que se pueden utilizar al configurar un servidor de correo electrónico (de lejos a muchos a cubrir aquí) diferentes, así que este artículo hace que algunas opciones básicas para que usted, como el software que utilizaremos (Postfix y Dovecot). Se requieren otras opciones para ser alterada por el usuario, como las direcciones de red y nombres de dominio. Más opciones avanzadas, tales como dominios virtuales y usuarios se encuentran fuera del alcance de este artículo y no serán cubiertas en este documento.

Este artículo utiliza Postfix como el agente de transporte de correo (MTA), en lugar de sendmail, el MTA predeterminado para CentOS 5 (sufijo es el valor predeterminado en CentOS 6 ). Dovecot se utiliza para permitir a los usuarios acceder a su correo electrónico por cualquiera de los protocolos IMAP o pop. Asumimos un nombre de dominio de example.com cual debe ser cambiada por el lector y puede ser un nombre de dominio real de un servidor de correo electrónico totalmente calificado o un nombre de dominio falso si sólo desea implementar un servidor de correo interno. Suponemos que el servidor de correo física (host) es mail.example.com y se encuentra en la dirección IP privada 192.168.0.1 (esto debe cambiar para adaptarse a las necesidades de los lectores). El servidor de correo electrónico dará cuentas de correo electrónico a través de las cuentas del sistema de usuario estándar y los usuarios acceder a su correo electrónico utilizando su nombre de usuario y la contraseña de cuenta del sistema.Asumiremos un usuario llamado John Smith que tiene una cuenta de sistema bajo el nombre de inicio de sesión de john.

 

2. Instalación

Lo primero que tenemos que hacer es instalar el software necesario. La forma más fácil de hacerlo es con yum de la línea de comandos:

 

yum install sufijo palomar sistema-switch-mail sistema-switch-mail-gnome

Yum debería resolver automáticamente las dependencias. Dovecot depende de mysql y perl, por lo que estos probablemente se instalará también si no están ya instalados en el sistema.

Alternativamente, podemos saltar “sistema-switch-mail ‘y la instalación’-gnome sistema-switch-mail ‘y retire el predeterminado MTA’ sendmail ‘, esto hará que’ sufijo ‘el MTA predeterminado en nuestro sistema.

 

yum install palomar Postfix 
yum remove sendmail

Tenga en cuenta que el MTA predeterminado en CentOS 5 es sendmail. Si usted no hace Postfix MTA por defecto, Postfix actualización puede causar el MTA predeterminado para volver a sendmail.

 

3. Configuración

Lo siguiente que necesitamos para configurar las diversas partes de nuestro servidor de correo electrónico.

 

3.1. Sufijo

Los archivos de configuración de Postfix se almacenan en / etc / postfix . Los dos archivos de configuración de postfix principales son master.cf y main.cf , aunque sólo tendrá que lidiar con main.cf aquí. En primer lugar vamos a hacer algunas adiciones o cambios en el main.cf archivo de configuración. Las siguientes líneas se deben agregar, editar o sin comentar:

 

myhostname = mail.example.com
mydomain = example.com
myorigin = $ mydomain
inet_interfaces = all
mydestination = $ myhostname, localhost. $ mydomain, localhost, $ mydomain
mynetworks = 192.168.0.0/24, 127.0.0.0 / 8
relay_domains =
home_mailbox = Maildir /

Nota: Cada línea debe comenzar por el principio de una nueva línea y no debe ser precedido por espacios en blanco o tabuladores. El espacio en blanco o fichas al comienzo de una línea se tratan como una continuación de la línea anterior, y si la línea anterior es un comentario (#) de la línea a continuación, la línea siguiente también es tratado como tal. Además, comentarios en línea deben ser evitados.

Ahora vamos a echar un vistazo a cada establecimiento de girar para entender lo que acabamos de hacer:

myhostname: es el nombre de host del sistema (es decir, el sistema se denomina electrónico o mail.example.com).

mydomain: es el nombre de dominio para el servidor de correo electrónico (que puede ser un nombre de dominio real o falso).

myorigin: es el nombre de dominio que el correo electrónico de forma local publicado-parece haber venido y se entrega a.

inet_interfaces: configura las interfaces de red que Postfix puede recibir correo en. Estos deben incluir al menos localhost y el dominio local.

mydestination: es la lista de dominios que serán entregados a (es decir, este servidor es el destino final para el correo electrónico dirigido a estos dominios).

mynetworks: es una lista de direcciones IP de confianza que pueden enviar o retransmitir correo a través del servidor. Los usuarios que intenten enviar un correo electrónico a través del servidor de origen en direcciones IP diferentes a los mencionados aquí serán rechazadas.

relay_domains: es una lista de dominios de destino este sistema retransmitirá correo a. Al establecer que sea en blanco nos aseguramos de que nuestro servidor de correo no está actuando como una retransmisión abierta para redes no confiables. Se aconseja al lector para probar que su sistema no está actuando como una retransmisión abierta aquí: https://www.abuse.net/relay.html

home_mailbox: establece la ruta del buzón en relación con el directorio personal del usuario y también especifica el estilo de buzón de correo que se utilizará. Postfix soporta tanto Maildir y se anima a los formatos mbox y lectores a leer sobre los méritos de cada uno para sí. Sin embargo, en este artículo hemos optado por usar el formato Maildir (una barra diagonal indica el formato Maildir. Para especificar el formato mbox, el lector usaría home_mailbox = Mailbox).

 

3.2. Palomar

El archivo de configuración palomar se encuentra en / etc / dovecot.conf . Las siguientes líneas se deben agregar, editar o sin comentar:

 

protocolos = pop3s pop3 imap imaps
mail_location = maildir: ~ / Maildir
pop3_uidl_format =% 08XU% 08Xv
# Requerido en kernels x86_64
login_process_size = 64

Una vez más, mirando a cada opción:

protocolos: especifica los protocolos disponibles a los usuarios acceder a su correo electrónico. Palomar soporta IMAP (s) y POP3 (s), y cualquiera o todos pueden ser utilizados.

mail_location: especifica el formato y la ubicación de cada caja de los usuarios. Aquí vemos que estamos usando el formato maildir y cada usuario tiene su buzón de correo ubicado en ~ / Maildir . Ejemplos para el formato mbox se proporcionan en el archivo de configuración.

pop3_uidl_format: se requiere para solucionar un problema con Outlook 2003 para acceder a los buzones de correo a través de pop3 así que tiene sentido para establecer este (ver las notas en el archivo de configuración para más detalles).

login_process_size: Las notas de la versión de CentOS 5.1 establece que “el paquete Dovecot en kernels x86_64 requiere el parámetro “login_process_size = 64” que se añade a / etc / dovecot.conf después de una actualización de CentOS 5.1 “.Instalaciones de 32 bits no se ven afectados y no requieren este ajuste.

Nota: Si usted tiene algún problema de conexión, ya sea con imap o pop3 para dovecot, compruebe los ajustes específicos de IMAP y POP3 ajustes específicos secciones del archivo de configuración dovecot.conf de soluciones. Las opciones disponibles afectan principalmente a los clientes de correo más antiguos y soluciones para Microsoft Outlook y Outlook Express.

Nota sobre el palomar y C6: Con CentOS 6 la configuración se trasladó a / etc / dovecot / dovecot.conf . Dovecot puede iniciarse sin más cambios en el archivo de configuración y escuchará automáticamente las conexiones en los puertos para POP3 (s) e IMAP (s). Probablemente será necesario realizar cambios a la habitación de su entorno.

3.3. Crear cajas de los usuarios

Lo siguiente que necesitamos para crear un buzón para cada usuario en su directorio de inicio y establecer el permiso adecuado, por lo que usar nuestro ejemplo el usuario juan:

 

mkdir / home / juan / Maildir
chown john juan / home / juan / Maildir
chmod-R 700 / home / juan / Maildir

Nota: Si va a crear los buzones de los usuarios como root, entonces debemos establecer la propiedad del directorio para el usuario.

 

3.4. Alias

Estamos a punto de terminar. Tenemos una cuenta de correo electrónico configurada para nuestro usuario John Smith que se registra como John. Su dirección de correo electrónico sería john@example.com . Sin embargo, John puede recibir el correo electrónico como jsmith@example.com (o cualquier otro alias). Podemos lograr esto mediante el establecimiento de un alias de John con el archivo de alias del sistema (por defecto usos postfix / etc / aliases ). También podemos añadir los alias para otros usuarios, así que por ejemplo también podríamos redirigir correo electrónico de la raíz a John añadiendo lo siguiente a / etc / aliases :

 

# La persona que debe recibir el correo de root
root: juan
# Alias ​​del usuario
jsmith: juan
j.smith: juan

Si edita los alias de un archivo para configurar nuevos alias para los usuarios una vez que postfix está funcionando, debe reconstruir la base de datos de alias ejecutando el newaliases comando.

 

4. Inicio del servidor

Ahora estamos listos para arrancar nuestro nuevo servidor de correo electrónico. Primero tenemos que decirle a nuestro sistema para usar Postfix como MTA en lugar de sendmail por defecto. Para ello, ejecute el sistema-switch-mail de comandos y seleccione Postfix como MTA. Esto instalará el servicio postfix y configurarlo para que se inicie automáticamente en los niveles de ejecución 3, 4, y 5. Lo siguiente que necesitamos para configurar el servicio palomar para iniciar también de forma automática en los niveles de ejecución 3, 4 y 5, y empezar a ambos servicios:

 

chkconfig - level 345 palomar en
/ Etc / init.d / inicio palomar
/ / Init.d / postfix start etc

momento en el que debe estar en funcionamiento. Su servidor de correo electrónico no debería tener problemas para enviar y recibir correo electrónico interno y envío de correo electrónico externo. Para recibir correo electrónico externo en su dominio, también tendrá que configurar los registros MX en DNS para su dominio (lo ideal es una entrada PTR RDN también debe ser configurado a través de su proveedor de Internet la cartografía de su dirección IP para su dominio). No se olvide de abrir ningún puerto requeridos en el firewall de Linux según qué servicios está ejecutando (SMTP 25; POP3 110; IMAP 143; IMAPS 993; POP3S 995) y permitir el reenvío de puertos para los puertos en los enrutadores.

Si realiza cambios en el archivo de configuración de postfix main.cf , puede reiniciar el servicio postfix o ejecutar el postfix reload comando para actualizar los cambios.

 

5. Resumen

Postfix es un agente de transporte de correo extremadamente potente y versátil. En este artículo hemos visto cómo implementar un servidor de correo electrónico básico con Postfix y Dovecot para un solo dominio en base a las cuentas de usuario del sistema.Apenas hemos arañado la superficie de las verdaderas capacidades de un sistema basado en Postfix, pero espero haber proporcionado una base de trabajo sólida en la que los nuevos usuarios pueden construir.

Los lectores están animados a leer la cortesía guía restricciones postfix .

Configuración del cliente sin disco

Configuración del cliente sin disco

 

1. Configuración Netboot

Jefe de vuelta a su servidor NFS ahora.

 

# Ssh nfs_server

Instale la versión de línea de comandos de la herramienta de configuración de arranque desde red si no está ya en el sistema, y ​​poner en marcha la herramienta.

 

# Yum install system-config-netboot-cmd
# System-config-netboot

Usted debe tener un pequeño pop-up que le pregunta qué desea hacer. La primera vez que ejecute esto, usted debe recibir el pequeño popup asistente. Haga clic sin disco para continuar. Los pasos se describen por lo que tienes que hacer. Ya se ha completado la etapa de rsync. Haga clic en Reenviar y escriba un nombre del sistema operativo y la descripción. La siguiente pantalla es donde se introduce la información de NFS. En la dirección IP del servidor , escriba la dirección IP del servidor NFS. En elDirectorio de la sección, escriba las primeras NFS compartir – / srv/diskless/i386/RHEL4S. En la siguiente pantalla, elegir el núcleo que desea que se ejecutan en sus clientes sin disco. Cuando haya terminado, haga clic en Aplicar y esperar unos momentos mientras lo hace su magia. Esta herramienta crea y configura automáticamente un archivo de imagen y lo coloca en el directorio de arranque PXE.

Estos pasos también se pueden realizar mediante los comandos (para obtener más ayuda, consulte hombre pxeos; hombre pxeboot):

 

# pxeos-a-i "centos5.7" p-NFS-D 1-s 192.168.1.254-L / srv/diskless/i386/RHEL4S / centos5.7
# Pxeboot-a-O centos5.7 192.168.1.196

Aquí 192.1681.254 es la IP del servidor NFS y 192.168.1.196 es la IP del cliente PXE.

Después de la ejecución, los recursos compartidos NFS se puede dar permiso de sólo lectura:

 

# Vim / etc / exports
/ Srv/diskless/i386/RHEL4S/root / * (ro, sync, no_root_squash)
/ Srv/diskless/i386/RHEL4S/snapshot / * (rw, sync, no_root_squash)
/ Srv/diskless/i386/RHEL4D/root / * (ro, sync, no_root_squash)
/ Srv/diskless/i386/RHEL4D/snapshot / * (rw, sync, no_root_squash)

 

2. Anfitrión de configuración

Una vez que el entorno de sistema operativo sin disco es la configuración, puede crear y configurar un nuevo sistema host con la herramienta de configuración. Si necesita detalles de lo que todos los parámetros son, a continuación, echa un vistazo a los hosts agregando la sección de documenation de Red Hat. En la herramienta de interfaz gráfica de usuario, seleccione Nuevo para iniciar el proceso de creación del anfitrión.

La máquina va a añadir debe tener una dirección IP o nombre de host válida en la red, que no debería ser un problema. Para mi ejemplo, yo tomé una PC existente fuera de mi red, saqué el disco duro, y lo utilizó para arrancar sin disco. En el campo de nombre de host, seguir adelante y entrar en una máquina válida. Dado que sólo tiene una configuración de entorno de sistema operativo en el momento, la única opción para el sistema operativo será el que acaba de crear en el paso 1 de la configuración de arranque desde red. Si usted tiene más de un sistema operativo, a continuación, seleccione el sistema operativo apropiado que usted desea en el menú desplegable. Si deja el nombre de la instantánea en blanco, entonces automáticamente se rellenan con el nombre de host que encuentra en la red. Recuerde que exportamos un punto de montaje NFS para esto: / srv/diskless/i386/RHEL4S {D} / snapshot . Por último, si desea que el host para iniciar sesión de forma remota, a continuación, introduzca su registro del sistema que acepta el registro remoto. Cuando haya terminado, haga clic en Aceptar para crear el host.

Si no quiere tener que lidiar con el nombre de host incorrecto en cualquier máquina nueva, y luego seguir adelante y limpiar fuera de los archivos sincronizados. Por ejemplo, yo estoy creando una instalación de servidor porque quiero tener lo más genérica posible, y yo también quiero tener que arrancar en varias máquinas. Si salgo de la información en los archivos, entonces se va a retomar el nombre de la máquina del sistema operativo donde se creó. Es una molestia menor. Si no te importa, no lo toque.

 

# Vim / srv/diskless/i386/RHEL4S/root/etc/sysconfig/network-scripts/ifcfg-eth0 {1,2,3} (cualquiera que sea su NIC es)
HWADDR = <--- en blanco esto
DHCP_HOSTNAME = <--- en blanco esto

Ahora al arrancar el nuevo host sin disco, no te enfades por la dirección MAC que es diferente, y no va a tener un nombre de host. Sólo debe ser nombrado localhost. Obviamente, usted puede configurar el nombre de host en la voluntad.

Eso es todo por la adición de los ejércitos. Ahora puede repetir todo este proceso para cada tipo de entorno de sistema operativo. No se olvide, si se crea un nuevo tipo de sistema operativo, entonces usted va a querer añadir un nuevo directorio bajo NFS para exportar. Piense en ello como la vivienda diferentes sistemas operativos, así que los nombres distinguen. Para mis usos, estoy creando el servidor ya se ha mencionado y la instalación de escritorio. Se puede utilizar para cualquier cosa que quieras, sin embargo.Digamos que usted quiere crear una instancia para una tarea muy específica, pero no tiene un disco duro de la máquina. Esto le permite crear una instancia de VMware, o cualquier otro ambiente virtual, y copiar dicha instalación sobre NFS. Ahora se puede arrancar para arriba en cualquier máquina con una tarjeta de red PXE.

 

PXE Boot

Una nota sobre PXE, que es la abreviatura de prearranque entorno de ejecución. Haga una búsqueda Wikipedia si realmente desea significados Deeping. En resumen, las búsquedas de firmware de la tarjeta de red para una redirección PXE, que pasa felizmente esta información junto desde el servidor DHCP, el cual apunta a su servidor NFS especificado. A continuación, descarga a través de tftp la ruta del archivo de arranque en memoria, y continúa para ejecutarlo. En última instancia, hay que arrancar el sistema operativo desde la memoria entonces.

Todas las tarjetas de red son diferentes, así que consulte con el fabricante de la tarjeta para obtener información sobre cómo habilitar PXE en su sistema. La mayoría de las nuevas tarjetas soportan nada más sacarlo de la caja, y es sólo una cuestión de encenderlo en el BIOS (el NIC de mesa), o accediendo a un menú de utilidades de la tarjeta de red. Una vez más, todas las cartas son diferentes.

Una vez que tenga la tarjeta de red y el sistema listo para salir, disparar y probarlo. Usted debe tener que iniciar el sistema desde el menú de la NIC, se puede decir algo acerca de la dirección MAC, o alrededor de bootp carga. Inmediatamente se debe conseguir transmitido a su servidor NFS, y luego arrancar la imagen de Linux. Ahora usted puede ir a robar todas esas unidades de disco duro de su PC en el trabajo, eh.

Instalar / Configurar / Copia de una instalación

Instalar / Configurar / Copia de una instalación

A continuación hay que instalar en realidad una instalación. Los iptables y selinux servicios deben estar apagados en la nueva instalación.

Para este experimento, he instalado una nueva carga no-gui básico de CentOS 4.6. Configuración completamente el host como desee, ya que esta será la copia real de todos los clientes sin disco en un poco. Para mis propósitos, he instalado, actualizado, y copié todas las configuraciones locales que deseo o necesidad en mi red a mi anfitrión. Cualquier cosa que quieras personalizada, hazlo ahora, porque es más fácil de configurar que una vez que el camino correcto. Un ejemplo perfecto de esto es que si usted necesita los paquetes RPM de terceros instalados, siga adelante y los instala en el host actual. El único paquete que se requiere en el host es busybox-anaconda.

 

# Yum install busybox-anaconda

Una vez que tenga su instalación configurada de la manera deseada, vuelva al servidor NFS y rsync la instalación en el recurso compartido NFS. Si no quieres ver lo que está siendo copiado, retire el modificador-v.

 

# Rsync-v-a-e ssh - exclude = '/ proc / *' - exclude = '/ sys / *' host_of_installation :/ / srv/diskless/i386/RHEL4S/root /
recibir la lista de archivos ...
cubos <snip de output>

Configuración del servidor DHCP

Configuración del servidor DHCP

Si aún no dispone de un servidor Linux DHCP en marcha en su red, consulte la documentación relativa a la configuración de un servidor DHCP . Es completamente aceptable instalar un servidor DHCP en el servidor NFS, si quieres. Para mi ejemplo, hay un servidor DHCP independiente en ejecución.

 

1. Configuración DHCP PXE

Coloque la siguiente configuración dentro de / etc / dhcpd.conf. Esto especifica que el arranque de red se le permitirá. Cuando el servidor DHCP se encuentra con una solicitud de este tipo, que dirigirá el cliente al servidor NFS que ha especificado. Por favor, recordar o tener en cuenta que si usted ya tiene un servidor DHCP en la red, tenga cuidado con la adición de un segundo.

 

# Vim / etc / dhcpd.conf
permitir el arranque;
allow bootp;
clase "pxeclients" {
   match if substring (opción de proveedor de clase-identifier, 0, 9) = "PXEClient";
   192.168.1.20 next-server;
   nombre de archivo "linux-install/pxelinux.0";
}

 

2. Tftp Configuración

Asegúrese de que xinetd y tftp se instalan en el servidor DHCP.

 

# Yum install xinetd tftp-server

Asegúrese de que ambos servicios están configurados en el servidor DHCP.

 

# Chkconfig - level 345 xinetd en
# Chkconfig - level 345 tftp