martes, 25 de mayo de 2010

OpenLDAP: Backup en formato ldif

Vamos a ver de una forma rápida y sencilla como hacer un backup de un ldap.

Exportaremos los datos en formato ldif y en caso de necesitar este backup veremos como importar el archivo ldif.

1. Exportar ldap completo.

[root@srv]#: slapcat -l backup.ldif

Con esto tenemos todos los datos de nuestro ldap en un solo archivo en texto plano.

Podemos añadir este comando al crontab del root modificando el nombre del archivo con la fecha, de esta forma "backup$(date +%y%m%d%H%M).ldif", para que cada vez que genere una copia no sobrescriba la anterior.

Aunque si queremos fiabilidad y seguridad lo mejor es montar un servidor de replica que puede que veamos más adelante.

2. Importar archivo .ldif

[root@srv]#: slapadd -c -l backup.ldif

De esta forma importamos backup.ldif en nuestro ldap.

Así de fácil podemos tener una copia de nuestro ldap por lo que pueda pasar.

martes, 18 de mayo de 2010

Herramientas Web (I): robtex.com : swiss army knife internet tool

Si en un post anterior os hablé de la navaja suiza del informático (net cat), hoy vamos a ver una web a mi parecer interesante y definida por sus creadores como swiss army knife internet tool.

La web en cuestión es robtex.com, nos proporcionará mucha información de nuestra red o de cualquier otra que se nos ocurra.

Podremos ver información de registros DNS, IP, whois, blacklists, etc... bastante interesante y que nos puede ayudar a entender como nos ven desde fuera de nuestra organización.


ejemplo dns robotex
Ejemplo de información DNS

Desde la web podemos construir un gráfico de nuestra infraestructura de red.

ejemplo dns robotex
Ejemplo de grafico

lunes, 10 de mayo de 2010

Máquinas Virtuales(I): VMware Virtual Appliances

Navegando por internet he encontrado esta web Virtual Appliances Marketplace de VMware bastante interesante. En esta web podemos encontrar alrededor de 1400 máquinas virtuales de todo tipo.

Básicamente son Linux, ubuntu, suse, centos.. con configuraciones de servidores, como puede ser desde un simple Apache hasta una centralita telefónica con Asterisk (voz ip) totalmente configurado.

Está organizado en categorías:

Top 10 Solution CategoriesOperating Systems
Networking
IT Administration
VMware Ready
ERP and CRM
Applications Infrastructure
Storage
Collaboration and Communication
Systems Infrastructure
Content Applications

Esto nos puede servir para bajarnos una distribución con algún servidor que nos haga falta, lo que nos ahorrara tiempo y quebraderos de cabeza.


(1): VMware Virtual Appliances

miércoles, 5 de mayo de 2010

Fail2Ban: configurar para sshd

1. ¿Qué es un IDS?.

Definición: Un sistema de detección de intrusos (o IDS de sus siglas en inglés Intrusion Detection System) es un programa usado para detectar accesos no autorizados a un computador o a una red. Estos accesos pueden ser ataques de habilidosos hackers, o de Script Kiddies que usan herramientas automáticas

2. Instalación Fail2ban

En este caso solo hemos tenido que ejecutar:

[root@sol10]: yum install fail2ban

3. Configuración

Vamos a configurar fail2ban solo para sshd, pero podríamos hacerlo para Apache, postfix, sendmail, etc… por lo que omitiremos los archivos de configuración que no sean para ssh.

Esquema de directorios

/etc/fail2ban/
├── action.d
│ ├── dummy.conf
│ ├── hostsdeny.conf
│ ├── iptables.conf
│ ├── mail-whois.conf
│ ├── mail.conf
│ └── shorewall.conf
├── fail2ban.conf
├── filter.d
│ ├── apache-auth.conf
│ ├── apache-noscript.conf
│ ├── couriersmtp.conf
│ ├── postfix.conf
│ ├── proftpd.conf
│ ├── qmail.conf
│ ├── sasl.conf
│ ├── sshd.conf
│ └── vsftpd.conf
└── jail.conf

Viendo el esquema de directorios podemos imaginar que primero filtra los datos que coge de los logs y luego en función de lo que obtenga ejecuta la acción correspondiente.

3.2 fail2ban.conf

Este archivo es el principal del programa, podemos ver el nivel de log y demás. En principio no hay que tocar nada.

Si quisiéramos cambiar el nivel de log para que cree un archivo más detallado lo podemos hacer con:

[root@sol10]: fail2ban-client set loglevel 1

3.3 sshd.conf

Aquí pongo parte del archivo con las modificaciones que hemos hecho:

# Fail2Ban configuration file
#
# Author: Cyril Jaquier
#
# $Revision: 617 $
#

# The DEFAULT allows a global definition of the options. They can be override
# in each jail afterwards.

[DEFAULT]

# "ignoreip" can be an IP address, a CIDR mask or a DNS host. Fail2ban will not
# ban a host which matches an address in this list. Several addresses can be
# defined using space separator.

ignoreip = 192.168.1.0/24

# "bantime" is the number of seconds that a host is banned.
bantime = 36000

# A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
findtime = 6000

# "maxretry" is the number of failures before a host get banned.
maxretry = 3

# "backend" specifies the backend used to get files modification. Available
# options are "gamin", "polling" and "auto". This option can be overridden in
# each jail too (use "gamin" for a jail and "polling" for another).
#
# gamin: requires Gamin (a file alteration monitor) to be installed. If Gamin
# is not installed, Fail2ban will use polling.
# polling: uses a polling algorithm which does not require external libraries.
# auto: will choose Gamin if available and polling otherwise.
backend = auto

# This jail corresponds to the standard configuration in Fail2ban 0.6.
# The mail-whois action send a notification e-mail with a whois request
# in the body.

[ssh-iptables]

enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
sendmail-whois[name=SSH, dest=root, sender=fail2ban@mail.com]
logpath = /var/log/secure <-LO MAS IMPORTANTE maxretry = 3 En este caso lo hemos configurado para que no tenga en cuenta los ataques provenientes de nuestra red con el parámetro ignoreip. Otro parámetro interesante es el bantime, que es el tiempo en segundos que baneará una ip. A continuación pasamos a habilitar la auditación de los logs de ssh y para eso ponemos el enable a true y le indicamos el path de los logs que tiene que mirar para saber quien está atacando al equipo. 3.4 filter.d/sshd.conf

Una vez que tenemos configurado el servicio para que vigile el ssh ahora vamos a ver el filtro que aplica (no tenemos que cambiar nada):

failregex = ^%(__prefix_line)s(?:error: PAM: )?Authentication failure for .* from \s*$
^%(__prefix_line)sFailed [-/\w]+ for .* from (?: port \d*)?(?: ssh\d*)?$
^%(__prefix_line)sROOT LOGIN REFUSED.* FROM \s*$
^%(__prefix_line)s[iI](?:llegalnvalid) user .* from \s*$
^%(__prefix_line)sUser \S+ from not allowed because not listed in AllowUsers$
^%(__prefix_line)srefused connect from \S+ \(\)\s*$
^%(__prefix_line)sAddress .* POSSIBLE BREAK-IN ATTEMPT\s*$


Aquí vemos, entre otras, que en los logs busca cadenas como: “Authentication failure” ó “sROOT LOGIN REFUSED”.

Si queremos añadir nuevas reglas podemos hacerlo con el comando fail2ban-regex:

[root@sol10]: fail2ban-regex 'Jul 18 12:13:01 [1.2.3.4] authentication failed' 'authentication failed'

[root@sol10]: fail2ban-regex '18-07-2008 12:13:01 [1.2.3.4] authentication failed' '\[\] authentication failed'

3.5 action.d/iptables.conf

En este archivo se definen las reglas que se van a llevar a cabo según el tipo de servicio, para ssh que es nuestro caso agregará en iptables unas reglas (no hay que tocar nada).

# Option: actionban
# Notes.: command executed when banning an IP. Take care that the
# command is executed with Fail2Ban user rights.
# Tags: IP address
# number of failures
#

fail2ban bloqueando ip ssh

Aquí vemos como fail2ban ha agregado una regla a iptables y ha bloqueado una ip tras 3 intentos de logeo fallidos.
Related Posts Plugin for WordPress, Blogger...