13.07.2015 Views

SEGURIDAD EN UNIX Y REDES

SEGURIDAD EN UNIX Y REDES

SEGURIDAD EN UNIX Y REDES

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

6.5. LOGS REMOTOS 101tráfico se realiza en texto claro, por lo que cualquier atacante con un sniffer entre las dos máquinaspuede tener acceso a información importante que habría que mantener en secreto; imaginemosuna situación muy habitual: un usuario que teclea su password cuando el sistema le pide el login.Evidentemente, esto generará un mensaje de error que syslogd registrará; este mensaje será similara este (Linux Slackware 4):Mar 23 05:56:56 luisa login[6997]: invalid password for ‘UNKNOWN’\on ‘ttyp5’ from ‘amparo’Pero, ¿qué sucedería si en lugar de ‘UNKNOWN’ el sistema almacenara el nombre de usuario que seha introducido, algo que hacen muchos clones de Unix? En esta situación el mensaje sería muyparecido al siguiente (Linux Red Hat 6.1):Mar 23 05:59:15 rosita login[3582]: FAILED LOGIN 1 FROM amparo FOR\5k4@b&-, User not known to the underlying authentication moduleComo podemos ver se registraría una contraseña de usuario, contraseña que estamos enviando ala máquina remota en texto claro a través de la red; evidentemente, es un riesgo que no podemoscorrer. Quizás alguien pueda pensar que una clave por sí sola no representa mucho peligro, ya queel atacante no conoce el nombre de usuario en el sistema. De ninguna forma: el pirata sólo tiene queesperar unos instantes, porque cuando el usuario teclee su login y su password correctamente (enprincipio, esto sucederá poco después de equivocarse, recordemos que el usuario trata de acceder asu cuenta) el sistema generará un mensaje indicando que ese usuario (con su nombre) ha entradoal sistema.Para evitar este problema existen dos aproximaciones: o bien registramos logs en un equipo directamenteconectado al nuestro, sin emitir tráfico al resto de la red, o bien utilizamos comunicacionescifradas (por ejemplo con ssh) para enviar los registros a otro ordenador. En el primer caso sólonecesitamos un equipo con dos tarjetas de red, una por donde enviar el tráfico hacia la red localy la otra para conectar con la máquina donde almacenamos los logs, que sólo será accesible desdenuestro equipo y que no ha de tener usuarios ni ofrecer servicios; no es necesaria una gran potenciade cálculo: podemos aprovechar un viejo 386 o 486 con Linux o FreeBSD para esta tarea.El segundo caso, utilizar comunicaciones cifradas para guardar registros en otro equipo de la red,requiere algo más de trabajo; aquí no es estrictamente necesario que la máquina esté aislada delresto de la red, ya que la transferencia de información se va a realizar de forma cifrada, consiguiendoque un potencial atacante no obtenga ningún dato comprometedor analizando el tráfico;evidentemente, aunque no esté aislado, es fundamental que el sistema donde almacenamos los logssea seguro. Para enviar un log cifrado a una máquina remota podemos utilizar, como hemos dichoantes, ssh unido a las facilidades que ofrece syslogd; si lo hacemos así, lo único que necesitamos esel servidor sshd en la máquina destino y el cliente ssh en la origen. Por ejemplo, imaginemos quequeremos utilizar a rosita para almacenar una copia de los registros generados en luisa conformese vayan produciendo; en este caso vamos a enviar logs a un fifo con nombre, desde donde los cifraremoscon ssh y los enviaremos al sistema remoto a través de la red. Lo primero que necesitamoshacer es crear un fichero de tipo tubería en la máquina origen, por ejemplo con mknod o mkfifo:luisa:~# mknod /var/run/cifra pluisa:~# chmod 0 /var/run/cifraluisa:~# ls -l /var/run/cifrap--------- 1 root root 0 May 4 05:18 /var/run/cifra|luisa:~#Este es el archivo al que enviaremos desde syslogd los registros que nos interesen, por ejemplo los deprioridad warn; hemos de modificar /etc/syslog.conf para añadirle una línea como la siguiente:luisa:~# tail -1 /etc/syslog.conf*.warnluisa:~#|/var/run/cifra

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!