GNU/Linux >> Tutoriales Linux >  >> Panels >> Panels

Cómo hacer alojamiento virtual con Virtualmin en CentOS 5.1

Cómo hacer alojamiento virtual con Virtualmin en CentOS 5.1

Versión 1.0.1
Autor:Andrew Colin Kissa

Introducción

Este tutorial muestra cómo configurar un servidor CentOS 5.x para ofrecer todos los servicios que necesitan los servidores web virtuales. Estos incluyen alojamiento web, servidor smtp con (SMTP-AUTH y TLS, SPF, DKIM, claves de dominio), DNS, FTP, MySQL, POP3/IMAP, cortafuegos, Webalizer para estadísticas.

Usaré el siguiente software:

  • Servidor de base de datos:MySQL 5.0.22
  • Servidor de correo:Postfix 2.3.3
  • Servidor NS:BIND9 9.3.3
  • Servidor web:Apache 2.2.3/PHP 5.1.6
  • Servidor FTP:Vsftpd 2.0.5
  • Servidor POP3/IMAP:Dovecot 1.0
  • Webalizer:para estadísticas del sitio 2.01_10
  • Virtualmin:Panel de control

Instalación del sistema operativo

Requisitos

Para instalar el sistema necesitará

  • Medios de instalación de CentOS 5.1
  • Una buena conexión a Internet

Instalar el sistema base

NOTA Algunas etapas de la instalación no se describen aquí para acortar el procedimiento. Las etapas de configuración de grub se omiten, por ejemplo.

  • Inicie desde el medio de DVD o CD y, en el indicador de inicio, escriba el texto de linux.
  • Omita la prueba de medios.
  • Seleccione su idioma:

  • Seleccione el diseño del teclado:

  • Configure su red, usaré dhcp si no tiene dhcp, puede usar entradas estáticas.

  • Seleccione Sí para inicializar la unidad:

  • Seleccione un diseño personalizado para el tipo de partición:

  • Crear particiones:

  • Configurar redes:

Establecer dirección IP y máscara de red:

Establecer puerta de enlace y servidores dns:

Establezca el nombre de host:

  • Establecer la zona horaria:

  • Establezca la contraseña raíz:

  • Seleccione el grupo de servidores y seleccione personalizar la selección de software:

  • Los grupos de paquetes se seleccionan de la siguiente manera:
    • Servidor de nombres DNS
      • enlace-chroot

  • Editores
    • mejorado con vim
  • servidor FTP
  • Servidor de correo
    • palomar
    • asesino de spa
    • sufijo

  • Base de datos Mysql
    • servidor mysql

  • Servidor web
    • mod_ssl
    • webalizador
    • php
    • php-pera
    • http-suexec
    • php-mysql

Inicie la instalación:

El sistema de archivos está formateado:

La instalación se ejecutará:

Reinicie el sistema:

Cómo hacer alojamiento virtual con Virtualmin en CentOS 5.1 - Página 2

Servicios para deshabilitar

Para mejorar la seguridad y liberar recursos del sistema en el sistema, debemos deshabilitar cualquier servicio que no sea necesario. Puede ejecutar este script para que lo haga por usted.

  • acpido
  • anacron
  • apmd
  • autofs
  • Bluetooth
  • tazas
  • primer arranque
  • gpm
  • haldaemon
  • bus de mensajes
  • mdmonitor
  • oculto
  • tablas ip6
  • kudzu
  • monitor lvm2
  • netfs
  • nfslock
  • pccd
  • mapa de puerto
  • rpcgssd
  • rpcidmapd
  • enviar correo
  • inteligente
  • yum-actualizacionesd

Básicos

Necesitamos solucionar algunos problemas para preparar el sistema para la configuración.

  • Instalar actualizaciones

mejora yum

  • Cambie el mta a sufijo

alternativas --config mta

Hay 2 programas que proporcionan 'mta'.
Comando de selección
------------------------------ -----------------
1 /usr/sbin/sendmail.postfix
*+ 2 /usr/sbin/sendmail.sendmail
Introducir para mantener la selección actual[+], o escriba el número de selección:1

  • Instalar la configuración del servidor de nombres de almacenamiento en caché:

yum install cache-nameserver

  • Instalar herramientas de compilación:

yum install gcc cpp gcc-c++ automake automake14 automake15 automake16 automake17 openssl-devel subversion ncurses-devel -y

Configurar alias de red

cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:1

Modifique el archivo /etc/sysconfig/network-scripts/ifcfg-eth0:1 para que tenga este aspecto:
DEVICE=eth0:1
BOOTPROTO=static
BROADCAST=192.168.1.255
IPADDR=192.168.1.6
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=yes

Instalar Webmin / Virtualmin

  • Importar clave webmin pgp:

wget http://www.webmin.com/jcameron-key.asc
rpm --importar jcameron-key.asc

  • Descargue las rpm:

wget http://prdownloads.sourceforge.net/webadmin/webmin-1.390-1.noarch.rpm

  • Verifique las rpm (debería decir OK o descargar de nuevo):

rpm --checksig webmin-1.390-1.noarch.rpm

  • Instalar el rpm:

rpm -Uvh webmin-1.390-1.noarch.rpm

Configuración inicial de Webmin

Necesitamos asegurar webmin editando /etc/webmin/miniserv.conf y hacer los siguientes cambios:

  • Solo usando SSL:
ssl=1
  • Cambie el puerto a 443 y vincule solo al segundo NIC:
port=443
bind=192.168.1.6
  • Deshabilitar transmisiones UDP:
#listen=10000
  • Cambiar el bloqueo del host en fallas de inicio de sesión a 3:
blockhost_failures=3
  • Aumentar el tiempo de espera de bloqueo del host a 120:
blockhost_time=120
  • Cambiar el bloqueo de usuario en fallas de inicio de sesión a 3:
blockuser_failures=3
  • Cambiar el tiempo de espera de bloqueo de usuario a 120:
blockuser_time=120
  • Cambiar el reino a otra cosa:
realm=cpanel
  • Iniciar sesión en utmp:
utmp=1

Instala el tema tigre de webmin:

  • Inicie sesión en webmin a través de https://192.168.1.5:10000 utilizando la raíz y su contraseña.
  • ¿Ir a webmin? ¿Configuración? temas webmin.
  • Seleccione Desde ftp o http URL e ingrese http://www.stress-free.co.nz/files/theme-stressfree.tar.gz
  • Haga clic en instalar tema.
  • Haga clic en "volver a la lista de temas".
  • Seleccione StressFree como tema actual y luego haga clic en cambiar.

Instale el módulo php-pear:

  • ¿Ir a webmin? configuración webmin? módulos webmin.
  • Seleccione Módulo de terceros e ingrese http://www.webmin.com/download/modules/php-pear.wbm.gz.
  • Haga clic en instalar módulo.

Instalar virtualmin:

  • ¿Ir a webmin? configuración webmin? módulos webmin.
  • Seleccione instalar desde ftp o http URL e ingrese http://download.webmin.com/download/virtualmin/virtual-server-3.51.gpl.wbm.gz
  • Haga clic en instalar módulo.

Eliminar módulos no deseados ¿Ir a webmin? configuración webmin? elimine y seleccione lo siguiente:

  • Cliente ADSL
  • Sistema de respaldo Bacula
  • Grabador de CD
  • Servidor CVS
  • Contraseñas de cambio de clúster
  • Archivos de copia de clúster
  • Trabajos cron de clúster
  • Comandos de shell de clúster
  • Paquetes de software de clúster
  • Cluster de servidores usermin
  • Usuarios y grupos del clúster
  • Cluster de servidores webmin
  • Construcción de comandos
  • Motor de configuración
  • Comandos personalizados
  • servidor DHCP
  • Recuperación de correo Fetchmail
  • Administrador de archivos
  • Proxy ftp de Fox
  • Túnel HTTP
  • Monitor de latidos del corazón
  • VPN IPsec
  • Servidor de mensajería instantánea Jabber
  • servidor LDAP
  • Gestión de volumen lógico
  • Administrador de listas de Majordomo
  • Exportaciones NFS
  • Cliente y servidor NIS
  • Servidor OpenSLP
  • Servidor de marcación PPP
  • Cliente de acceso telefónico PPP
  • servidor VPN PPTP
  • Cliente VPN PPTP
  • Servidor de base de datos Postgresql
  • Administrador de impresoras
  • Servidor ProFTPD
  • servidor de correo QMAIL
  • Estado de la unidad SMART
  • Inicio de sesión SSH/Telnet
  • Túneles SSL
  • Compartir archivos de Windows SAMBA
  • Comandos programados
  • Servidor de correo Sendmail
  • Cortafuegos costero
  • Generador de informes de análisis de calamares
  • Servidor proxy Squid
  • Servidor de correo de voz
  • servidor WU-FTP
  • servidor Idmapd

Reiniciar webmin:

service webmin restart

Configurar Rpmforge Repo

rpm -Uhv http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm

NOTA:si está utilizando una arquitectura diferente, consulte https://rpmrepo.org/RPMforge/Using para obtener el rpm correcto
  • Desactive el repositorio (de modo que los paquetes base no se sobrescriban), edite /etc/yum.d/rpmforge.repo y establezca la siguiente opción:
enabled = 0

Instalar paquetes adicionales requeridos

  • Instalar clamav:

yum --enablerepo=rpmforge install clamav clamav-db clamav-milter clamd -y
wget http://www.topdog-software.com/files/clamav-milter.patch
parche /etc/init .d/clamav-milter chkconfig --del clamd
freshclam

  • Instalar firmas de sanesecurity:

wget http://www.sanesecurity.co.uk/clamav/update_sanesecurity.txt -O /usr/local/bin/update_sanesecurity.sh
chmod +x /usr/local/bin/update_sanesecurity.sh
ln -s /usr/local/bin/update_sanesecurity.sh /etc/cron.hourly/
/usr/local/bin/update_sanesecurity.sh

  • Instalar el acelerador de PHP:

yum --enablerepo=rpmforge instalar php-eaccelerator

  • Instalar el paquete spamassassin más nuevo de rpmforge:

yum --enablerepo=rpmforge actualizar spamassassin

  • Instalar spamass-milter:

yum --enablerepo=rpmforge instalar spamass-milter

  • Instalar módulos perl requeridos por spamassassin:

perl -MCPAN -e 'instalar Correo::SPF'
perl -MCPAN -e 'instalar Correo::SPF::Consulta'
perl -MCPAN -e 'instalar Red::Ident'
perl -MCPAN -e 'instalar IP::País::Rápido'
perl -MCPAN -e 'instalar Correo::DomainKeys'
perl -MCPAN -e 'instalar Correo::DKIM'

  • Instalar fuzzyOCR:

yum --enablerepo=rpmforge install netpbm-progs ocrad gocr gifsicle giflib-utils giflib -y
svn co https://svn.own-hero.net/fuzzyocr/trunk/devel/
cd devel/
perl -MCPAN -e 'Cadena de instalación::Aproximada'
perl -MCPAN -e 'Tiempo de instalación::HiRes'
perl -MCPAN -e 'Registro de instalación::Agente'

cp -rv {FuzzyOcr.cf,FuzzyOcr.scansets,FuzzyOcr.preps,FuzzyOcr.pm,FuzzyOcr.words,FuzzyOcr/} /etc/mail/spamassassin
chcon -R system_u:object_r:etc_mail_t /etc/mail/spamassassin/{FuzzyOcr.cf,FuzzyOcr.scansets,FuzzyOcr.preps,FuzzyOcr.pm,FuzzyOcr.words,FuzzyOcr/}
wget http://www.gbnetwork.co.uk/mailscanner /FuzzyOcr.palabras -O /etc/mail/spamassassin/FuzzyOcr.palabras

  • Instalar Razor:

yum --enablerepo=rpmforge instalar razor-agents -y

  • Instalar cubo redondo:

yum instalar php-imap
rpm -Uvh http://www.topdog-software.com/oss/roundcube/roundcube-0.1-rc2.noarch.rpm

  • Instalar imapproxy:

wget http://imapproxy.org/downloads/up-imapproxy-1.2.6.tar.gz
rpmbuild -tb up-imapproxy-1.2.6.tar.gz
rpm -Uvh /usr/ src/redhat/RPMS/i386/up-imapproxy-1.2.6-1.i386.rpm

  • Activar servicios:

chkconfig --level 345 httpd en
chkconfig --level 345 postfix en
chkconfig --level 345 spamassassin en
chkconfig --level 345 spamass-milter en
chkconfig --level 345 clamav-milter en
chkconfig --level 345 mysqld en
chkconfig --level 345 named en
chkconfig --level 345 vsftpd en
chkconfig --level 345 dovecot en
chkconfig --level 345 imapproxy activado

Cómo hacer alojamiento virtual con Virtualmin en CentOS 5.1 - Página 3

Configuración

Configuración de Postfix

Introducción

Estaremos configurando postfix con las siguientes características:

  • Alojamiento virtual
  • Prevención de UCE
  • Antivirus
  • Autenticación SMTP
  • TLS
  • RBL
  • FPS
  • Mitigación de ataques

La adición de cuentas y dominios se configurará a través de virtualmin aunque también se puede realizar de forma manual. La configuración está diseñada para ser amigable con los recursos, por lo que debería poder ejecutarse en máquinas que no tengan especificaciones excesivas, lo que permite que los recursos se utilicen mejor. Para que sea amigable con los recursos, no usamos bases de datos externas para almacenar información de usuarios virtuales como lo hacen la mayoría de los procedimientos, ni usamos milters para la verificación de spam y virus en lugar de ejecutar amavisd-new.

Los Básicos

Para empezar, configuraremos lo básico, como el nombre de host, el origen del correo, las redes, el directorio de colas de mapas hash. Todas estas opciones de configuración deben agregarse a /etc/postfix/main.cf a menos que se indique lo contrario. Los archivos de configuración de muestra están disponibles para descargar al final de esta página.

command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
mydomain = example.com
myorigin = $mydomain
mynetworks = 127.0.0.0/8
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
canonical_maps = hash:/etc/postfix/canonical
sender_canonical_maps = hash:/etc/postfix/canonical
recipient_canonical_maps = hash:/etc/postfix/canonical
virtual_alias_maps = hash:/etc/postfix/virtual
mail_spool_directory = /var/spool/mail

Maildir

Usaremos el formato maildir muy mejorado en lugar del formato mbox predeterminado:

home_mailbox = Maildir/

SASL

Para realizar la autenticación SMTP, usaremos SASL, sin embargo, no usaremos Cyrus SASL ya que eso requiere que ejecutemos el demonio saslauthd, en su lugar usaremos dovecot sasl ya que ejecutaremos dovecot para IMAP y POP3, matando así 2 pájaros con uno piedra.

smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes

TLS

Necesitamos TLS para garantizar que las contraseñas de texto sin formato no se transmitan por cable durante la autenticación SMTP; los servidores que admiten TLS también pueden comunicarse con este servidor a través de una conexión segura.

Las instrucciones para crear su certificado de servidor firmado por cacert.org se pueden encontrar aquí.

  • Establecer fuente aleatoria de TLS:
tls_random_source = dev:/dev/urandom
  • Habilitar servidor TLS:
smtpd_use_tls = yes
smtpd_tls_key_file = /etc/pki/postfix/key.pem
smtpd_tls_cert_file = /etc/pki/postfix/server.pem
smtpd_tls_CAfile = /etc/pki/postfix/root.crt
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
smtpd_tls_session_cache_database = btree:/var/spool/postfix/smtpd_tls_cache
  • Habilitar TLS de cliente:
smtp_use_tls = yes
smtp_tls_key_file = /etc/pki/postfix/key.pem
smtp_tls_cert_file = /etc/pki/postfix/server.pem
smtp_tls_CAfile = /etc/pki/postfix/root.crt
smtp_tls_session_cache_database = btree:/var/spool/postfix/smtp_tls_cache
smtp_tls_note_starttls_offer = yes

Prevención de spam

  • Requerir un EHLO/HELO válido:
smtpd_helo_required = yes
  • Evitar ataques de recopilación de direcciones de correo electrónico:
disable_vrfy_command = yes
  • Cambie los códigos de rechazo a permanentes (por defecto, Postfix emite códigos de error 4xx, lo que implica una falla temporal, necesitamos 5xx para errores permanentes):
unverified_recipient_reject_code = 550
unverified_sender_reject_code = 550
unknown_local_recipient_reject_code = 550
  • Configurar la verificación de la dirección del remitente:
address_verify_map = btree:/var/spool/postfix/verify
smtpd_sender_restrictions = hash:/etc/postfix/sender_access
  • Cree /etc/postfix/sender_access y agregue:
#sample /etc/postfix/sender_access contains frequently spoofed domains
aol.com     reject_unverified_sender
hotmail.com reject_unverified_sender
yahoo.com reject_unverified_sender
gmail.com reject_unverified_sender
bigfoot.com reject_unverified_sender
  • Mitigar ataques de zombis y clientes rotos:
smtpd_error_sleep_time = 5s
smtpd_soft_error_limit = 10
smtpd_hard_error_limit = 20
  • Permitir canalización solo de clientes autenticados:
smtpd_data_restrictions = reject_unauth_pipelining
  • Instalar postfix-policyd-spf-perl y habilitar la compatibilidad con SPF:

wget http://www.openspf.org/blobs/postfix-policyd-spf-perl-2.005.tar.gz
tar xzvf postfix-policyd-spf-perl-2.005.tar.gz
cd postfix-policyd-spf-perl-2.005
cp postfix-policyd-spf-perl /etc/postfix/

Agregue esto a /etc/postfix/master.cf:

spfpolicy unix  -       n       n       -       -       spawn user=nobody argv=/usr/bin/perl /etc/postfix/postfix-policyd-spf-perl
  • Añadir compatibilidad con DKIM:

Puede encontrar instrucciones sobre cómo agregar compatibilidad con DKIM aquí.

  • Añadir compatibilidad con claves de dominio:

Las instrucciones sobre cómo agregar compatibilidad con claves de dominio se pueden encontrar aquí.

  • Hacer que todo funcione depende de la opción smtpd_recipient_restrictions, por lo que la configuramos a continuación:
smtpd_recipient_restrictions =
        permit_mynetworks
        permit_sasl_authenticated
        reject_unauth_destination
        check_recipient_access hash:/etc/postfix/access
        reject_unknown_recipient_domain
        reject_unknown_sender_domain
        reject_unverified_recipient
        reject_non_fqdn_recipient
        reject_non_fqdn_sender
        reject_invalid_hostname
        reject_rbl_client list.dsbl.org
        reject_rbl_client zen.spamhaus.org
        reject_rbl_client l1.spews.dnsbl.sorbs.net
        reject_rbl_client combined.njabl.org
        reject_rbl_client bl.spamcop.net
        reject_rhsbl_sender dsn.rfc-ignorant.org
        reject_rhsbl_sender bogusmx.rfc-ignorant.org
        reject_rhsbl_sender rhsbl.sorbs.net
        reject_rhsbl_client dsn.rfc-ignorant.org
        reject_rhsbl_client bogusmx.rfc-ignorant.org
        reject_rhsbl_client rhsbl.sorbs.net
        check_policy_service unix:private/spfpolicy

Milters [SpamAssassin y ClamAV]

Para su clasificación de spam usando spamassassin y escaneo de virus usando clamav, usaremos la interfaz milter de postfix en lugar de usar el demonio amavisd-new, que requiere muchos recursos. Esta es una forma muy eficiente de hacerlo, ya que ni siquiera tenemos que ejecutar clamd, clamav milter hace el escaneo por sí mismo.

smtpd_milters = unix:/var/clamav/clmilter.socket unix:/var/run/spamass.sock
non_smtpd_milters = unix:/var/clamav/clmilter.socket unix:/var/run/spamass.sock

Crear archivos de base de datos

postmap /etc/postfix/canonical
postmap /etc/postfix/access
postmap /etc/postfix/virtual
postmap /etc/postfix/sender_access

Archivos de configuración de muestra

  • principal.cf
  • maestro.cf
  • canónico
  • virtuales

Cómo hacer alojamiento virtual con Virtualmin en CentOS 5.1 - Página 4

Configuración de palomar

Introducción

Esto configurará dovecot como nuestro servidor IMAP/POP3.

Configuración básica

Configuraremos Dovecot para IMAP y POP3 y deshabilitaremos SSL.

protocols = imap pop3
listen = *
ssl_listen = *
ssl_disable = yes

Maildir

Usaremos el formato maildir en lugar del formato mbox predeterminado.

mail_location = maildir:~/Maildir

Autenticación y SASL

Configure dovecot para usar LOGIN y PLAIN como mecanismos de autenticación, ya que muchos clientes de MS no pueden usar mecanismos de autenticación encriptados. También configuramos el socket SASL para permitir que postfix autentique las conexiones SMTP usando dovecot.

auth default {
  mechanisms = plain login
  passdb pam {
  }
  userdb passwd {
  }
  socket listen {
    client {
        path = /var/spool/postfix/private/auth
        mode = 0660
        user = postfix
        group = postfix
    }
  }
}

Problemas del cliente

Algunos clientes de MS imap en la familia de Outlook tienen problemas con sus implementaciones de IMAP y POP3, por lo que debemos acomodarlos configurando estas soluciones alternativas:

protocol imap {
 imap_client_workarounds = outlook-idle delay-newmail
}
protocol pop3 {
 pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
}

Ejecutar IMAP detrás de proxy

El servidor imap está configurado para ejecutarse en el puerto 10143, de modo que el puerto 143 es manejado por el servidor proxy imap que mejorará el rendimiento de su correo web al almacenar en caché las conexiones al servidor imap. La opción de escucha en el protocolo configura esto.

protocol imap {
 imap_client_workarounds = outlook-idle delay-newmail
 listen = 127.0.0.1:10143
}

Archivos de muestra

  • dovecot.conf

Configurar proxy Imap

Introducción

imapproxy se escribió para compensar a los clientes de correo web que no pueden mantener conexiones persistentes con un servidor IMAP. La mayoría de los clientes de correo web necesitan iniciar sesión en un servidor IMAP para casi todas las transacciones. Este comportamiento puede causar problemas de rendimiento trágicos en el servidor IMAP. imapproxy intenta solucionar este problema dejando abiertas las conexiones del servidor durante un breve período de tiempo después de que un cliente de correo web cierra la sesión. Cuando el cliente de correo web se vuelva a conectar, imapproxy determinará si hay una conexión en caché disponible y la reutilizará si es posible. - según el sitio web imapproxy.

Configuración

Realice los siguientes cambios en el archivo /etc/imapproxy.conf:

server_hostname 127.0.0.1
cache_size 3072
listen_port 143
server_port 10143
cache_expiration_time 900
proc_username nobody
proc_groupname nobody
stat_filename /var/run/pimpstats
protocol_log_filename /var/log/imapproxy_protocol.log
syslog_facility LOG_MAIL
send_tcp_keepalives no
enable_select_cache yes
foreground_mode no
force_tls no
enable_admin_commands no

Archivos de muestra

  • imapproxy.conf

Configuración de enlace

Introducción

Bind se configurará en chroot para mejorar la seguridad. También usaremos vistas para evitar el abuso del servidor dns.

Configuración básica

La configuración básica deshabilita por defecto las consultas recursivas y las transferencias de zona. También oscurecemos la versión de BIND que estamos ejecutando para que no nos afecten las vulnerabilidades de día cero de script kiddies.

options {
        directory "/var/named";
        pid-file "/var/run/named/named.pid";
        listen-on {
                127.0.0.1;
                192.168.1.5;
                };
        version "just guess";
        allow-recursion { "localhost"; };
        allow-transfer { "none"; };
};

Registro

El registro se personaliza para eliminar el molesto "servidor cojo" y actualizar los errores que aparecen en los registros:

logging {
        category update { null; };
        category update-security { null;        };
        category lame-servers{ null; };
};

Chroot

Asegúrese de que esté configurado en el archivo /etc/sysconfig/named (normalmente lo configura el paquete bind-chroot):

ROOTDIR=/var/named/chroot

Servidor de puntos

Deje que la máquina use este servidor para la resolución de dns edite /etc/resolv.conf y anteponga:

nameserver 127.0.0.1

Archivos de muestra

  • nombrado.conf
  • /etc/sysconfig/nombrado

Configuración de Vsftpd

Introducción

Usaremos vsftpd como nuestro servidor ftp. Esto tiene un mejor historial en comparación con los servidores proftpd y wuftpd.

Configuración básica

Nuestra configuración básica deshabilita a los usuarios anónimos y permite que los usuarios del sistema local se conecten al servidor ftp.

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
ftpd_banner=Welcome to example.com server
pam_service_name=vsftpd
tcp_wrappers=YES

Chroot

Todos los usuarios serán chrooteados a sus directorios de inicio (excepto los nombres de usuario en el archivo /etc/vsftpd/chroot_list), lo que significa que no pueden salir y ver los archivos de otros usuarios.

chroot_list_enable=YES
chroot_local_user=YES
chroot_list_file=/etc/vsftpd/chroot_list

Usuarios prohibidos

Los usuarios agregados al archivo /etc/vsftpd/user_list no podrán iniciar sesión:

userlist_enable=YES

Archivos de muestra

  • vsftpd.conf
  • lista_de_usuarios
  • lista_chroot

Cómo hacer alojamiento virtual con Virtualmin en CentOS 5.1 - Página 5

Configuración de Clamav Milter

  • Editar /etc/sysconfig/clamav-milter:
CLAMAV_FLAGS="
        --config-file=/etc/clamd.conf
        --force-scan
        --local
        --max-children=5
        --sendmail-cf=
        --outgoing
        --quiet
"
SOCKET_ADDRESS="local:/var/clamav/clmilter.socket"
  • Revise el archivo de inicio para corregir los permisos de socket:

wget http://www.topdog-software.com/files/clamav-milter.patch
parche /etc/init.d/clamav-milter

Configuración de MySQL

Configuración básica

  • Escuche solo el servidor local, edite /etc/my.cnf en la sección mysqld:
bind-address = 127.0.0.1

Establecer contraseña raíz

  • Establezca la contraseña raíz:

servicio mysqld start
mysqladmin -u contraseña raíz NUEVA CONTRASEÑA

Configuración de SpamAssassin

Configuración básica

required_hits 5
report_safe 0
rewrite_header Subject [SPAM]

Crear base de datos MySQL

  • Crear la base de datos:

mysqladmin -p crear bayes

  • Llene la base de datos:

mysql -p bayes

  • Cree el usuario:

mysql -p
mysql> OTORGAR TODO EN bayes.* A [email protected] IDENTIFICADO POR 'contraseña';

Configurar para usar DB

  • Edite el archivo /etc/mail/spamassassin/local.cf y agregue:
bayes_store_module  Mail::SpamAssassin::BayesStore::MySQL
bayes_sql_dsn       DBI:mysql:bayes:localhost
bayes_sql_override_username bayes
bayes_sql_username  bayes
bayes_sql_password  password

Configurar FuzzyOCR

Almacenaremos los hashes de la imagen en una base de datos mysql para mejorar el rendimiento, de modo que las imágenes que ya hemos escaneado no se vuelvan a escanear, ya que OCR es una actividad que requiere muchos recursos.

Crear base de datos MySQL

  • El script sql crea la base de datos y las tablas y agrega un usuario fuzzyocr con la contraseña fuzzyocr:

mysql -p

  • Cambiar la contraseña:

mysqladmin -u fuzzyocr -p fuzzyocr contraseña

Configuración básica

  • Edite /etc/mail/spamassassin/FuzzyOCR.cf y configure las opciones básicas:
focr_path_bin /usr/bin:/usr/local/bin
focr_minimal_scanset 1
focr_autosort_scanset 1
focr_enable_image_hashing 3
focr_logfile /tmp/FuzzyOcr.log

Haga que FuzzyOCR use la base de datos

  • Edite el archivo /etc/mail/spamassassin/FuzzyOcr.cf y agregue:
focr_mysql_db FuzzyOcr
focr_mysql_hash Hash
focr_mysql_safe Safe
focr_mysql_user fuzzyocr
focr_mysql_pass password
focr_mysql_host localhost
focr_mysql_port 3306
focr_mysql_socket /var/lib/mysql/mysql.sock

Actualizaciones de la regla SARE

  • Importe la clave GPG utilizada para firmar las reglas:

mkdir /etc/mail/spamassassin/sa-update-keys/
chmod 700 /etc/mail/spamassassin/sa-update-keys/
wget http://daryl.dostech.ca/sa- actualizar/sare/GPG.KEY
sa-update --importar GPG.KEY

  • Cree el archivo de canales /etc/mail/spamassassin/sare-sa-update-channels.txt:
updates.spamassassin.org
72_sare_redirect_post3.0.0.cf.sare.sa-update.dostech.net
70_sare_evilnum0.cf.sare.sa-update.dostech.net
70_sare_bayes_poison_nxm.cf.sare.sa-update.dostech.net
70_sare_html0.cf.sare.sa-update.dostech.net
70_sare_html_eng.cf.sare.sa-update.dostech.net
70_sare_header0.cf.sare.sa-update.dostech.net
70_sare_header_eng.cf.sare.sa-update.dostech.net
70_sare_specific.cf.sare.sa-update.dostech.net
70_sare_adult.cf.sare.sa-update.dostech.net
72_sare_bml_post25x.cf.sare.sa-update.dostech.net
99_sare_fraud_post25x.cf.sare.sa-update.dostech.net
70_sare_spoof.cf.sare.sa-update.dostech.net
70_sare_random.cf.sare.sa-update.dostech.net
70_sare_oem.cf.sare.sa-update.dostech.net
70_sare_genlsubj0.cf.sare.sa-update.dostech.net
70_sare_genlsubj_eng.cf.sare.sa-update.dostech.net
70_sare_unsub.cf.sare.sa-update.dostech.net
70_sare_uri0.cf.sare.sa-update.dostech.net
70_sare_obfu0.cf.sare.sa-update.dostech.net
70_sare_stocks.cf.sare.sa-update.dostech.net
  • Cree un script de actualización /usr/local/bin/update-sa:
#!/bin/bash
#
#
sa-update -D --channelfile /etc/mail/spamassassin/sare-sa-update-channels.txt --gpgkey 856AA88A &>/var/log/sa-updates.log
  • Hágalo ejecutable y agréguelo a cron:

chmod +x /usr/local/bin/update-sa
ln -s /usr/local/bin/update-sa /etc/cron.daily/
ln -s /usr/local/bin /update-sa /etc/cron.hourly/

Configuración de Spamass-milter

Basic Configuration

  • Edit /etc/sysconfig/spamass-milter:
SOCKET=/var/run/spamass.sock
EXTRA_FLAGS="-m -r 8"

Patch

We need to patch the init file to fix the permissions of the socket created such that postfix is able to use the socket.

wget http://www.topdog-software.com/files/spamass-milter.patch
patch /etc/rc.d/init.d/spamass-milter

Apache Setup

Disable Modules

We will disable some modules that we are not using thus freeing up memory and also improving security.

  • Edit /etc/httpd/conf/httpd.conf and comment out the modules as below.
#LoadModule ldap_module modules/mod_ldap.so
#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
#LoadModule dav_module modules/mod_dav.so
#LoadModule status_module modules/mod_status.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule cache_module modules/mod_cache.so
#LoadModule disk_cache_module modules/mod_disk_cache.so
#LoadModule file_cache_module modules/mod_file_cache.so
#LoadModule mem_cache_module modules/mod_mem_cache.so
  • Edit /etc/httpd/conf.d/proxy_ajp.conf and comment out as below:
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

Listen To One IP For HTTPS

Apache has to be configured to listed to one address for port 443 as webmin will be using the same port. Edit /etc/httpd/conf.d/ssl:

Listen 192,168.1.6:443

Enable Gzip Compression

We setup gzip compression via the mod_deflate module to improve web server performance and to cut down on bandwidth usage by compressing responses to the client.

SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI \
\.(?:gif|jpe?g|png)$ no-gzip dont-vary
Header append Vary User-Agent env=!dont-vary

Set up logging for the deflate module:

DeflateFilterNote deflate_ratio
LogFormat "%v %h %l %u %t \"%r\" %>s %b mod_deflate: %{deflate_ratio}n pct." vhost_with_deflate_info
CustomLog logs/deflate_access_log vhost_with_deflate_info

Increase PHP Max Memory

Edit the file /etc/php.ini and set the following:

memory_limit = 64M

Enable Virtual Hosting

NameVirtualHost *:80

Create Default Virtual Host

This needs to be the first virtual host, it will be the default on the server the equivalent of the server with out virtual hosting.

<VirtualHost *:80>
        Servername localhost.localdomain
        Serveradmin [email protected]
</Virtualhost>

Roundcube Webmail Setup

Create Database

  • Create the database and add the roundcube user.

mysqladmin -p create roundcube
mysql -p
mysql> GRANT ALL ON roundcube.* TO [email protected] IDENTIFIED BY 'password';

  • Initialize the database:

mysql -u roundcube -p roundcube

Basic Config

  • Configure database DSN in /var/www/roundcube/config/db.inc.php:
$rcmail_config['db_dsnw'] = 'mysql://roundcube:[email protected]/roundcube';
  • Configure roundcube in /var/www/roundcube/config/main.inc.php:
$rcmail_config['default_host'] = 'localhost';
$rcmail_config['default_port'] = 143;
$rcmail_config['virtuser_file'] = '/etc/postfix/virtual';
$rcmail_config['smtp_server'] = 'localhost';
$rcmail_config['smtp_port'] = 25;
$rcmail_config['smtp_helo_host'] = 'localhost';

Set Up Catch All Virtualhost

As we will be providing webmail for all domains that are created on the system we need to setup a catch all virtualhost that can display roundcube when ever a user accesses http://webmail.domainname. Edit /etc/httpd/conf/httpd.conf and append:

<VirtualHost *:80>
ServerName webmail.example.com
ServerAlias webmail.*
DocumentRoot /var/www/roundcube
<Directory /var/www/roundcube>
Options -Indexes IncludesNOEXEC FollowSymLinks
allow from all
</Directory>
</VirtualHost>

Firewall Setup

Introduction

This is a basic firewall it may not suit your needs, firewalling is an art so i recommend to read into it to improve on this basic one.

Basic Config

Add these rules in your configuration file /etc/sysconfig/iptables:

*raw
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT
*mangle
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT
*filter
:FORWARD DROP [0:0]
:INPUT DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m multiport -j ACCEPT --dports 80,443,25,110,143,53
-A INPUT -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -p icmp -m icmp -m limit --icmp-type 8 --limit 5/min -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -s 127.0.0.1 -j ACCEPT
-A OUTPUT -s 192.168.1.5 -j ACCEPT
-A OUTPUT -s 192.168.1.6 -j ACCEPT
COMMIT

Activate Config

service iptables restart

Virtual Hosting Howto With Virtualmin On CentOS 5.1 - Page 6

Configure Virtualmin

Introduction

Virtualmin is a powerful and flexible hosting control panel that integrates with webmin. We will be using it to provide the virtual hosting functions such as creation of domains, accounts and maintaining configurations on the system.

Start Services

You need to start up services that are required to be able to configure virtualmin. Start the following services:

service named start
service spamassassin start
service spamass-milter start
service clamav-milter start
service postfix start
service dovecot start
service imapproxy start
service httpd start

Initial Settings

MySQL

Webmin needs to be able to communicate with mysql since we have set a password for mysql we need to set that up in webmin, go to servers ? mysql and enter this information:

Configure Features

You need to enable the features and plugins that we want to use. On login this is the screen that you will see.

  • Enable the following features and save
    • Home directory
    • Administration user
    • Mail for domain
    • BIND DNS domain
    • Apache website
    • Webalizer reporting
    • Log file rotation
    • Mysql database
    • Webmin user

Configure Server Templates

Server template are used to customize the services and to create packages for different hosting account types.

Apache Template

You can make changes to the way apache virtual hosts are created by editing this template, The defaults however will do for purposes of this howto.

Domain Owner Template

This template is used to configure various server limits such as number of mailboxes,aliases,databases,virtual servers and other options like bandwidth limits, admin abilities. For this howto we will use the default values.

Home Directory Template

This template allows you to set a skel directory to hold setting for new users for this howto we will use the defaults.

Administration User

This template lets you set the quota for the virtual server and the admin user for this howto we will use the default quota 1GB.

Mail For Domain Template

This template sets various mail related options, we will modify the email message sent on server creation to have the content below:

The following virtual server has been set up successfully :
Domain name:             ${DOM}
Hosting server:          ${HOSTNAME}
${IF-VIRT}
Virtual IP address:      ${IP}
${ENDIF-VIRT}
Administration login:    ${USER}
Administration password: ${PASS}
${IF-WEBMIN}
Administration URL:      ${WEBMIN_PROTO}://www.${DOM}:${WEBMIN_PORT}/
${ENDIF-WEBMIN}
${IF-WEB}
Website:                 http://www.${DOM}/
${IF-WEBALIZER}
Webalizer log reporting: Enabled
${ELSE-WEBALIZER}
Webalizer log reporting: Disabled
${ENDIF-WEBALIZER}
${ENDIF-WEB}
${IF-MAIL}
Email domain:            ${DOM}
SMTP server:             mail.${DOM}
POP3 server:             mail.${DOM}
Webmail:                 webmail.${DOM}
${ENDIF-MAIL}
${IF-DNS}
DNS domain:              ${DOM}
Nameserver:              ${HOSTNAME}
${ENDIF-DNS}
${IF-MYSQL}
MySQL database:          ${DB}
MySQL login:             ${MYSQL_USER}
MySQL password:          ${PASS}
${ENDIF-MYSQL}
${IF-POSTGRES}
PostgreSQL database:     ${DB}
PostgreSQL login:        ${USER}
PostgreSQL password:     ${PASS}
${ENDIF-POSTGRES}

We will leave the other options as the defaults.

BIND DNS Domain Template

This template is used to customize the zones that will be created by virtualmin. The changes to be made are adding a spf record, add the following records to auto generated text box (replace ns1.home.topdog-software.com. with your slave server):

@     IN NS ns1.home.topdog-software.com. ;slave
admin IN A 192.168.1.6 ;virtualmin
webmail IN A 192.168.1.5 ;webmail

In the directives text box add the following with the IP address of your slave server such that the slave is allowed to do zone transfers.

allow-transfer { 192.168.1.2; };

MySQL Database Template

Contains options on creation of databases by virtualmin, for the howto we will use the defaults.

Webmin Login Template

Contains option on creation of new users by virtualmin, for the howto we will use the defaults.

Create Virtual Server

Finally we have a working virtual server system, lets create our first virtual server. Go to servers ? virtualmin virtual servers and click add new virtual server, owned by new user.

Fill in the require fields and click create.

Add a mail user to the domain. click on the domain name, then click edit mail and FTP users, then add user and fill in the information.

Testing

Postfix

Test SMTP

telnet 192.168.1.5 25
Connected to localhost.
Escape character is '^]'.
220 tds mail cluster
helo me
250 hosting1
mail from:[email protected]
250 2.1.0 Ok
rcpt:[email protected]
250 2.1.0 Ok
DATA
354 End data with .

From:[email protected]
To:[email protected]
Subject:This is a test
Hi
This is a test
.
250 2.0.0 Ok:queued as 4ACCC7C5A6

telnet 192.168.1.5 25
Trying 192.168.1.5...
Connected to localhost.
Escape character is '^]'.
220 tds mail cluster
ehlo me
250-hosting1
250-PIPELINING
250-SIZE 10240000
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

Test dkim

Send a mail to [email protected]

Test domainkeys

Send a mail to [email protected]

Dovecot

Test POP3

telnet 192.168.1.5 110
+OK Dovecot ready.
user andrew.example
+OK
pass password
+OK Logged in.
quit
+OK Logging out.

Test IMAP

telnet 192.168.1.5 143
* OK Dovecot ready.
01 login andrew.example password
01 OK User logged in
01 list "" "*"

* LIST (\HasNoChildren) "." "Trash"
* LIST (\HasNoChildren) "." "Drafts"
* LIST (\HasNoChildren) "." "Junk"
* LIST (\HasNoChildren) "." "Sent"

* LIST (\HasNoChildren) "." "INBOX"
01 OK List completed.
01 logout
* BYE LOGOUT received
01 OK Completed

BIND

dig example.com @127.0.0.1

Clamav-milter

We are using the test virus from www.eicar.org.

telnet 192.168.1.5 25
Connected to localhost.
Escape character is '^]'.
220 tds mail cluster
helo me
250 hosting1
mail from:[email protected]
250 2.1.0 Ok
rcpt:[email protected]
250 2.1.0 Ok
DATA
354 End data with .

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
.
550 5.7.1 virus Eicar-Test-Signature detected by ClamAV - http://www.clamav.net
quit
221 2.0.0 Bye

Take a lot at your /var/log/maillog you should see something like this:

73BC87C4E4: milter-reject: END-OF-MESSAGE from localhost[127.0.0.1]:
5.7.1 virus Eicar-Test-Signature detected by ClamAV - http://www.clamav.net; 
from=<[email protected]> to=<[email protected]> proto=SMTP helo=<me>

Spamass-milter

We are using the test message from http://spamassassin.apache.org/gtube/.

telnet 192.168.1.5 25
Connected to localhost.
Escape character is '^]'.
220 tds mail cluster
helo me
250 hosting1
mail from:[email protected]
250 2.1.0 Ok
rcpt:[email protected]
250 2.1.0 Ok
DATA
354 End data with .

XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X
.
550 5.7.1 Blocked by SpamAssassin
quit
221 2.0.0 Bye

You will see this in your log files:

spamd: result: Y 1002 - AWL,GTUBE,MISSING_SUBJECT,TVD_SPACE_RATIO,UNPARSEABLE_RELAY scantime=0.5,size=723,user=root,uid=99,required_score=5.0,

Panels
  1. Cómo instalar un servidor FTP en CentOS 7 con VSFTPD

  2. Cómo configurar un servidor FTP con VSFTPD en CentOS 7

  3. Cómo configurar un servidor FTP con VSFTPD en CentOS 8

  4. Cómo instalar AWStats con algunos complementos en un servidor con ISPConfig

  5. Cómo instalar SpamAssassin en un servidor virtual con CentOS 6

¿Cómo instalar el servidor web LiteSpeed ​​en WHM/cPanel con Centos 7.x?

Panel web de CentOS:panel de control de alojamiento web gratuito todo en uno para CentOS/RHEL 6

El servidor perfecto:CentOS 6.1 x86_64 con Apache2 [ISPConfig 3]

El servidor perfecto:CentOS 6.2 x86_64 con nginx [ISPConfig 3]

El servidor perfecto:CentOS 6.2 x86_64 con Apache2 [ISPConfig 3]

El servidor perfecto:CentOS 6.1 x86_64 con nginx [ISPConfig 3]