Translations of this page?:

Haz ispCP mas seguro

Aquí puedes encontrar algunas ideas para hacer tu servidor mas seguro.
No hay ningún tipo de garantía así que usalo bajo tu propia responsabilidad.

===== 1.) Desactiva el “ServerSignature” en Apache (la firma que aparece cuando no muestra ningun tipo de contenido, puesto que revela información de tu sistema, sistema operativo, versión de apache, que tiene compilado…) por ejemplo:=====

 
Apache/2.2.3 (Debian) mod_fastcgi/2.4.2 mod_perl/2.0.2 Perl/v5.8.8

Simplemente edita estas lineas en tu httpd.con (Si usas Debian Etch tienes que poner esto en el fichero apache2.conf)

 
# Disable ServerInfo
ServerSignature Off
ServerTokens Prod

2.) Desactiva las funciones de Depuración (Debug)


Añade las siguientes lineas a cada Host Virtual de tu fichero de configuración para desactivar la depuración (Debug)

 
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]

3.) Desactiva el Banner de Proftpd


Cuando conectas a tu servidor ftp muestra información (que servidor es y que versión) como esta:

 
Conexion establecida desde 62.75.xx.xx
220 ProFTPD 1.3.0 Server (vsxxxxxx) [62.75.xx.xx]
Usuario (62.75.xx.xx:(none)):

Aquí puedes observar la versión de ProFTPD → 1.3.0 Para desactivar esto añade la siguiente información al fichero de configuración de proftpd.conf:

 
ServerIdent off

4.) Activar el modo SSL (Secure Socket Layer) en ProFTPD


Para poder transmitir ficheros de forma segura tienes que añadir SSL (encriptación) a ProFTPD

Crea un certificado SSL:

 
openssl req -new -x509 -days 365 -nodes -out /etc/proftpd/ssl.crt -keyout /etc/proftpd/ssl.key

Abre el fichero de configuracion (proftpd.conf) para activar SSL:

 
# vi /etc/proftpd/proftpd.conf

enable the last lines like this and set TLSEngine 'on'

 
#
# SSL via TLS
#
<IfModule mod_tls.c>
TLSEngine on # on for use of TLS
TLSLog /var/log/proftpd/ftp_ssl.log # where to log to
TLSProtocol SSLv23 # SSLv23 or TLSv1
TLSOptions NoCertRequest # either to request the certificate or not
TLSRSACertificateFile /etc/proftpd/ssl.crt # SSL certfile
TLSRSACertificateKeyFile /etc/proftpd/ssl.key # SSL keyfile
TLSVerifyClient off # client verification
</IfModule>

Reinicia proftpd para que los cambios surtan efecto:

 
# /etc/init.d/proftpd restart

5.) Cambia el Banner SMTP


Si quieres cambiar el Banner SMTP de Posfix:

 
Connected to your-domain.tld.
Escape character is '^]'.
220 your-domain.tld. ISPCP 1.0 Priamos Managed ESMTP 1.0.0 RC3 OMEGA

Abre ”/etc/postfix/main.cf” y cambia “smtpd_banner” por lo que quieras:

 
smtpd_banner = $ myhostname ISPCP 1.0 Priamos Managed ESMTP 1.0.0 RC3 OMEGA

6. Instala y Configura fail2ban


Fail2Ban bloquea de forma automatica una dirección IP que ha fallado varias veces un intento de login. Funciona para Apache, SSH, FTP y Mail

Usa apt-get para instalar fail2ban

 
# apt-get install fail2ban

Despues de la instalacion puedes configurar fail2ban con estas 2 configuraciones en /etc/fail2ban/

 
/etc/fail2ban/fail2ban.conf
/etc/fail2ban/jail.conf

Abre jail.conf para activar el bloqueo de algunos servicios

 
# vi /etc/fail2ban/jail.conf

Puedes activar o desactivar los servicios que quieras proteger.Por defecto SSH esta activado.

Si quieres activar Apache, cambia:

 
#
# HTTP servers
#
[apache]
enabled = false
port = http
filter = apache-auth
logpath = /var/log/apache*/*access.log
maxretry = 6

a

 
#
# HTTP servers
#
[apache]
enabled = true
port = http
filter = apache-auth
logpath = /var/log/apache2/users/*access.log
maxretry = 6

Para el FTP (proftpd)

 
[proftpd]
enabled = false
port = ftp
filter = proftpd
logpath = /var/proftpd/proftp.log
maxretry = 6

cambialo a:

 
[proftpd]
enabled = true
port = ftp
filter = proftpd
logpath = /var/log/auth.log
maxretry = 3

Puedes cambiar el numero máximo de intentos antes de ponerle un ban con:

 
maxretry = X

Si quieres cambiar el tiempo del ban,

 
bantime = 600 (is set in seconds)

Aviso: fail2ban usa reglas de Firewall para bloquear las IP.
Un ban esta por defecto activo 10 minutos. Después de este tiempo la IP es desbloqueada de forma automática. (Esta genial verdad? ;))

Fail2ban por defecto logea la actividad en:

 
/var/log/fail2ban.log

7.) SSL para el servicio de Mailing (Courier)


Primero necesitamos instalar el paquete courier-ssl, como no usaremos apt :)

 
# apt-get install courier-imap-ssl courier-pop-ssl

Un certificado por defecto se creara durante la instalación. Así que necesitamos cambiarlo.

Abre /etc/courier/imapd.cnf

 
# vi /etc/courier/imapd.cnf

y cambia los atributos que necesites.
Y lo mismo para /etc/courier/pop3d.cnf

 
# vi /etc/courier/pop3d.cnf

Después de esos cambios, realizaremos una copia de seguridad de nuestros Certificados antes de generar unos nuevos.

 
# cd /etc/courier/ && mv pop3d.pem pop3d.pem.orig && mv imapd.pem imapd.pem.orig

Ahora podemos generar los nuevos:

 
# dpkg-reconfigure courier-pop-ssl && dpkg-reconfigure courier-imap-ssl

Listo ;) Tu Servicio de e-mail esta preparado para usar SSL.
Cambia tu cliente para usar POP3-SSL en el puerto 995 e IMAP-SSL en el puerto 993

8.) Haz SSH mas seguro

Cualquier Script estupido mirara si tu servidor tiene el puerto 22 abierto e intentara hacer login con la cuenta root.
Realizaremos una serie de cambios para cambiar el puerto que use ssh y desactivar el acceso root directo de forma remota.

Primero de todo necesitamos un usuario en el sistema para que haga login mas tarde.Si ya tienes uno simplemente ve al siguiente paso. Sino crealo:

 
# adduser new_username

(donde new_username es el nombre que le quieres dar a tu nuevo usuario)

Abre el fichero sshd_config (/etc/ssh/sshd_config) y cambia las siguientes cosas:

 
# vi /etc/ssh/sshd_config

Cambia el puerto de:

 
Port 22

a

 
Port 222

Cambia la linea:

 
PermitRootLogin yes

a

 
PermitRootLogin no

Restart the SSH-Server

 
# /etc/init.d/ssh restart

Cierra tu conexión y vuelve a conectar otra vez a tu servidor usando el puerto 222 con tu nuevo nombre de usuario.
Para hacerte root, simplemente haz:

 
# su

(yo, personalmente recomiendo aprender a usar la herramienta “sudo”)

9.) Prevenir ataques tipo DOS (Denegación de Servicio)


Para prevenir un ataque tipo DoS, puedes usar el modulo mod_evasive. Bajate la version actual de http://www.zdziarski.com/projects/mod_evasive/ y descomprimela. Asegurate de que apache2-prefork-dev esta instalado.

 
# apt-get install apache2-prefork-dev
# wget http://www.zdziarski.com/projects/mod_evasive/mod_evasive_1.10.1.tar.gz
# tar -xzf mod_evasive_1.10.1.tar.gz
# cd mod_evasive

Instalalo con el modulo para Extensiones de Apache (apxs).

 
# apxs2 -i -a -c mod_evasive20.c

El modulo sera compilado e instalado en tu httpd.cong.

Opcionalmente puedes realizar algunos cambios específicos en tu fichero de configuración de apache /etc/apache2/apache2.conf . Simplemente añade las siguientes lineas y cámbialas conforme lo necesites.

 
<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
</IfModule>

ATTENCION: Esta configuración puede producir errores tipo “403 Forbidden” en sitios normales (por ejemplo : galerias, typo3…)

Tambien puedes añadir las siguientes directivas

 
DOSEmailNotify you@yourdomain.com
DOSSystemCommand "su - someuser -c '/sbin/... %s ...'"
DOSLogDir "/var/lock/mod_evasive"

Después de todo simplemente reinicia apache para aplicar los nuevos cambios.

 
# sudo /etc/init.d/apache2 restart

10.) Asegurando BIND 9

Después de una instalación limpia del servidor Debian dnsstuff.com devuelve que nuestro servidor es un “open dns server·(cualquiera puede preguntar a nuestro servidor acerca de cualquier dominio, lo que produce una gran carga y una gran transferencia). 2 pasos para resolver este problema:

a.- primero edita /etc/bind/named.conf.options (o /etc/named/named.conf para otras distribuciones, el parrafo opciones) y añade:

 
recursion no;
transfer-format many-answers; //this is for speed up the transfer to a secondary dns

b.- necesitamos modificar las plantillas usadas por ISPCP para generar ficheros de zona, en Debian se hace en /etc/ispcp/bind/parts/cfg_entry.tpl. El fichero después de la modificación debería de verse así:

 
zone "{DMN_NAME}" {
type master;
file "{DB_DIR}/{DMN_NAME}.db";
notify YES;
allow-query {
any;
};
};

Reinicia BIND:

 
/etc/init.d/bind9 restart

Hecho ;)

 
es/howto/security/make_ispcp_more_secure.txt · Última modificación: 2008/06/25 09:32 (editor externo)
 
Recent changes RSS feed Creative Commons License Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki

| All rights reserved : isp-control.net |