Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Guia PDF
Guia PDF
TABLA DE CONTENIDO
1. INTRODUCCIN
1.1. ALCANCE
1. INTRODUCCIN
Una de las labores primordiales de la seguridad informtica, es la
administracin de los registros de eventos o logs. El hecho de que estos estn
distribuidos en los diferentes equipos de la organizacin hace que la labor de
revisarlos y analizarlos requiera de mucho esfuerzo, por lo que son muy pocas
personas las que lo hacen.
Esta gua pretende llevar a una administrador de red, con conocimientos
bsicos en manejo de sistemas operativos UNIX-like, y con conocimientos de
administracin en Windows, en el proceso de implantar una infraestructura
centralizada de logs con software de cdigo abierto y tambin con software
propietario pero de libre distribucin. Esto para permitirle tener en un punto
central los logs y hacer menos costosa en tiempo y ms eficaz la revisin y
anlisis de los mismos.
Otro aporte de esta gua es el enfoque forense que se les da a los logs por lo
que se busca mantener las caractersticas de la evidencia digital como
Autenticidad, Confiabilidad e Integridad, a travs del transporte de los eventos.
Cabe anotar que todos los comandos y acciones sobre los sistemas operativos
usados, se deben realizar bajo permisos de administrador.
1.1.
ALCANCE
Para configurar la zona horaria del servidor y en general de los equipos UNIX
like, existe un link simblico llamado /etc/localtime. Para cambiar la zona
horaria simplemente se debe cambiar ese link simblico y apuntarlo al archivo
en /usr/share/zoneinfo/, correspondiente. Por ejemplo para configurar la zona
horaria de Bogot:
[root@m4_e4 Desktop]# ln sf /usr/share/zoneinfo/America/Bogota /etc/localtime
2.1.2.2.
Instalacin de NTPd
ntp-4.2.2p3/util/timetrim.c
2.1.2.3.
Configuracin de NTPd
server 127.127.1.1
fudge 127.127.1.1 stratum 10
driftfile /etc/ntp.drift
logfile /var/log/ntpd.log
El ltimo servidor (127.127.1.1), corresponde al reloj interno del sistema. Este
se toma como servidor de respaldo si ninguno de los otros responde, aunque
es menos preciso. Dado que no es tan preciso, con la lnea:
fudge 127.127.1.1 stratum 10
se considera en numero del stratum como 10 que es un stratum mayor al de los
otros servidores, por lo que si estos responden, este no se tomar en cuenta.
Si la red es una red aislada, el servidor de tiempo tomara como referencia el
reloj de su sistema. Esto no es tan preciso como estar sincronizado con un reloj
externo, pero permitir que internamente los relojes estn sincronizados entre
si.
Para que el servidor de NTP tome esta referencia, se usa el siguiente archivo
de configuracin:
/etc/ntp.conf
server 127.127.1.1
logfile /var/log/ntpd.log
Para que NTPd arranque automticamente, se debe crear un enlace simblico
en /etc/rcX.d/, donde X es el nivel de ejecucin en el que queremos que
arranque.
Por ejemplo si queremos que arranque en el nivel de ejecucin 5:
[root@ServidorLogs redhat]# ln -s /etc/init.d/ntpd /etc/rc5.d/S15ntpd
UNIX-like
Lo primero que se tiene que configurar en los clientes con sistema operativo
Unix Like es la zona horaria.
Esto se hace igual que el servidor como fue explicado en la seccin 2.1.2.1
2.1.3.2.
Windows XP
2.1.3.3.
Router Cisco
Para configurar un router Cisco como cliente NTP, se debe entrar en modo
privilegiado y entrar en modo de configuracin:
Router#configure terminal
Lo primero que se tiene que hacer es definir la zona horaria en la que est el
router.
Router(config)#clock timezone COL -5
2.2.
TRANSPORTE DE EVENTOS.
2.3.
2.3.1.2.
openssh-4.5p1/ssh_config.0
[root@ServidorLogs SWCentr]# cd openssh-4.5p1
glob.o -L. -Lopenbsd-compat/ -lssh -lopenbsd-compat -lresolv -lcrypto -lutil -lz -lnsl -lcrypt
[root@ServidorLogs openssh-4.5p1]# make install
if test ! -z ""; then \
/usr/bin/perl5 ./fixprogs ssh_prng_cmds ; \
fi
/usr/local/sbin/sshd -t -f /usr/local/etc/sshd_config
2.3.1.3.
En el ejemplo estamos utilizando Mandrila 2006 que est basado en Red Hat,
por lo que utilizaremos el script que administra el servicio, provisto en el tar.gz.
[root@ServidorLogs openssh-4.5p1]# cd contrib/redhat/
[root@ServidorLogs redhat]# ls
gnome-ssh-askpass.csh gnome-ssh-askpass.sh openssh.spec sshd.init* sshd.init.old* sshd.pam sshd.pam.old
[root@ServidorLogs redhat]# cp sshd.init /etc/init.d/sshd
KEYGEN=/usr/local/bin/ssh-keygen
SSHD=/usr/local/sbin/sshd
RSA1_KEY=/usr/local/etc/ssh_host_key
RSA_KEY=/usr/local/etc/ssh_host_rsa_key
DSA_KEY=/usr/local/etc/ssh_host_dsa_key
PID_FILE=/var/run/sshd.pid
Ahora hay que configurar en que niveles de ejecucin se quiere que arranque
el servicio automticamente. En el ejemplo nos interesa que el nivel de
ejecucin 5 arranque automticamente el servicio por lo que listamos el
contenido de /etc/rc5.d/, para saber que servicios ya estn configurados.
[root@ServidorLogs redhat]# ls /etc/rc5.d/
S04acpi@
S12syslog@ S15mdadm@ S24messagebus@ S30dm@
S56rawdevices@ S91smb@
S99local@
S05harddrake@ S13partmon@ S17alsa@ S25haldaemon@ S33nifd@
S75keytable@ S92httpd@
S10network@ S14acpid@ S18sound@ S25netfs@
S34mDNSResponder@ S80freshclam@ S92lisa@
S11portmap@ S14nfslock@ S20xfs@ S29numlock@ S40atd@
S90crond@
S95kheader@
Con Openssh(Linux)
El cliente ssh que se utilizar en los equipos linux es el mismo OpenSSH, por lo
cuel se sigue el mismo proceso de intalacin explicado en la seccin 2.3.1.2
Al final del ultimpo comando, en los clientes se generar un error ya que no se
usar sshd. Se debe hacer caso omiso a este error.
Generacin de llaves
OpenSSH viene con una herramienta que permite generar el par de llaves
(privada y pblica), llamada ssh-keygen.
De laq siguiente manera se puede crear el par que quedar guardado en
/root/.ssh/id_rsa y /root/.ssh/id:rsa.pub en la mquina cliente.
Plink es un cliente SSH gratuito, que hace parte del paquete PUTTY, que se
puede descargar en http://www.chiark.greenend.org.uk/~sgtatham/putty/.
Con esta herramienta se puede crear el tnel SSH desde Windows, con una
lnea de comandos.
Con la ayuda de srvany.exe se puede crear un servicio a partir de esta lnea de
comandos que arranque con el sistema operativo sin necesidad de que inicie
sesin un usuario (algo muy comn en los servidores).
Luego se debe guardar la llave privada con Save private key. Este archivo
debe estar bien protegido. Tambin es recomendable que la ruta completa del
archivo no tenga espacios ni caracteres especiales.
En
el
servidor
de
logs
se
debe
modificar
el
archivo
~syslog/.ssh/authorized_keys. ~syslog se refiere al directorio home del usuario
syslog. Normalmente ~syslog=/home/syslog/.
En este archivo al final pegamos el texto generado como llave pblica.
/home/syslog/.ssh/authorized_keys
ssh-rsa
AAAAB3NzaC1yc2EAAAABJQAAAIBR94AAyte1v//NcP3cWh69Qc8bQxE2+CR
o8nkZUoL2DSbf53zxMV+Bde2VKLW6grPftSEjFLopkdkXpesE3dqwhbbFtsEn3/
+7HIPBK0wVkPoJQwyp7e/LvGMC0T8TwrvZhBzgVoXwTzuMhqHPGP3vSUpi
Mv2HtEyRhiJXSN+jLw== rsa-key-20061206
Una vez se haya agregado la llave publica en el servidor, el demonio de sshd
en este se debe reiniciar.
Configuracin de servicio
Lo primero que se necesita es ubicar el ejecutable PLINK.exe, en la mquina.
Es recomendable que sea en una carpeta cuya ruta no sea muy larga, ni tenga
espacios o caracteres especiales (P.E. C:\PLINK\).
Con esto queda guardada la huella del servidor en la cache de plink y de ahora
en adelante no se necesitar intervencin del usuario para abrir el tnel, por lo
que se puede ejecutar de fondo sin problemas.
Para probar esto se puede volver a escribir:
C:\Plink>plink N l syslog L 5014:localhost:514 i C:\Plink\PrivateKey.ppk IP.DEL.SERVIDOR.LOGS
Using username "syslog".
Se busca la llave
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\tunelssh
Ahora se configura el servicio para que inicie como el usuario syslog creado
anteriormente.
2.4.
Preparing...
1/1: perl-DBI
#############################################
#############################################
2.5.
Instalacin de syslog-ng
2.5.1.2.
Instalacion de Eventlog
2.5.1.3.
Instalacin de Syslog-ng
[root@servidor_logs eventlog-0.2.5]# cd ..
syslog-ng-2.0rc3/contrib/relogger.pl
[root@servidor_logs syslog-ng]# cd syslog-ng-2.0rc3
[root@servidor_logs syslog-ng-2.0rc3]# export
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig/
[root@servidor_logs syslog-ng-2.0rc3]# ./configure --enable-dynamic-linking
checking for a BSD-compatible install... /usr/bin/install c
id:X:initdefault:
S18sound@
S20xfs@
S24messagebus@
S25haldaemon@
S25netfs@
S26mandi@
S29numlock@
S30dm@
S33nifd@
S34mDNSResponder@
S40atd@
S56rawdevices@
S60nfs@
S75keytable@
S80freshclam@
S80postfix@
S90crond@
S91smb@
S92httpd@
S92lisa@
S95kheader@
S98mailman@
S99local@
Los enlaces que comienzan con K se refieren a los servicios que se van a
detener cuando se cargue este nivel de ejecucin. Los que comienzan con S
los que se van a arrancar. El nmero que sigue a K o S y precede al nombre
del servicio se refiere al orden. Si existen 2 con el mismo nmero el orden
alfabtico es el que sigue el sistema operativo para arrancar.
El servicio de syslog-ng debe iniciar luego de que haya capacidades de
comunicacin o sea despus de que suba la red, despus de que haya subido
el servidor SSH(sshd) y luego de que la base de datos (mysql) haya arrancado.
Se le puede asignar en el ejemplo el numero 11 a syslog-ng, y se cumplirian
esas condiciones.
[root@servidor_logs syslog-ng-2.0rc3]#ln -sv /etc/init.d/syslog-ng /etc/rc5.d/S11syslog-ng
El proceso se repite para todos los niveles de ejecucin (/etc/rcX.d/), en los que
se necesite que arranque syslog-ng.
2.5.2. Configuracin de servidor syslog-ng
/usr/local/etc/syslog-ng.conf
options {
check_hostname(yes);
keep_hostname(yes);
chain_hostnames(no);
};
source entradaLocal {
internal();
unix-stream("/dev/log");
};
source entradaRemota {
tcp(max_connections(100) port(514));
};
destination archivos {
file("/logs/$HOST/$YEAR/$MONTH/$FACILITY.$YEAR$MONTH$DAY"
owner(root) group(root) perm(0600)
create_dirs(yes) dir_perm(0700));
};
destination archivosServidor {
file("/logs/192.168.0.5/$YEAR/$MONTH/$FACILITY.$YEAR$MONTH$D
AY"
owner(root) group(root) perm(0600)
create_dirs(yes) dir_perm(0700));
};
destination mysql {
pipe("/var/log/mysql.pipe" template("INSERT INTO logs (host, facility,
priority, level, tag, datetime,
program, msg) VALUES ( '$HOST',
'$FACILITY', '$PRIORITY', '$LEVEL', '$TAG', '$YEAR-$MONTH-$DAY
$HOUR:$MIN:$SEC',
'$PROGRAM', '$MSG' );\n")
template-escape(yes));
};
log { source(entradaRemota); destination(archivos); };
log { source(entradaRemota); destination(mysql); };
log { source(entradaLocal); destination(archivosServidor); };
log { source(entradaLocal); destination(mysql); };
2.5.2.1.
Al igual que el servidor, los clientes Linux/UNIX usan syslog-ng como software
que recoge sus propios eventos. La diferencia en la configuracin radica
principalmente en las salidas, pues no son archivos ni bases de datos, sino una
conexin tcp.
El proceso de instalacin es exactamente el mismo que en el servidor descrito
en la Seccin 2.5.1.1
La nica diferencia radica en el orden de arranque de los servicios, pues en el
caso de los clientes solo depende de network.
2.5.2.2.
/usr/local/etc/syslog-ng.conf
options {
check_hostname(yes);
keep_hostname(yes);
chain_hostnames(no);
};
source entradas {
internal();
unix-stream("/dev/log");
};
destination remote {
tcp("127.0.0.1" port(5014); );
};
log { source(inputs); destination(remote); };
Debido al uso del tnel ssh, la direccin IP a la que se hace la conexin es
127.0.0.1, es decir el mismo cliente. Esta podra ser tambin la direccin IP
esttica del mismo.
2.5.2.3.
Configuracin de herramientas
Instalacin de Lasso
Lasso se instala mediante un wizard que permite que el proceso sea muy
sencillo.
2.5.3.2.
Configuracin de Lasso
El primer archivo corresponde a los equipos de los que Lasso va a extraer los
eventos, y que logs va a observar. En este caso se busca que cada mquina
tenga Lasso instalado y solo se monitoree a si misma por aspectos de
seguridad.
El primer campo corresponde al HOST luego sigue una coma , y la lista de
logs que queremos monitorear. Si los logs que queremos monitorear son los
logs estndar de Windows (Aplicacin, Seguridad, Sistema), la convencin *3
facilita el proceso.
En otras ocasiones Windows tiene por defecto 6 logs y se puede usar la
convencin *6.
C:\Archivos de Programa\Lasso\hostlist.ini
localhost,*3
Otra opcin podra ser:
192.168.22.14,Security,System,OracleLog
Si solo queremos monitorear los logs por defecto Security y Sistem, y adems
queremos monitorear un log definido llamado OracleLog.
Ahora se modifican las propiedades del servicio dndole como Tipo de Inicio
Automtico y como Inicio de sesin, se configura el usuario syslog creado en
la seccin 0
La configuracin del equipo puente que ingresa los logs de un dispositivo que
solo es capaz de enviar mensajes en formato UDP RFC 3164, es muy similar a
las de un equipo cliente Linux/UNIX
A continuacin se presenta el archivo de configuracin:
/usr/local/etc/syslog-ng.conf
options {
check_hostname(yes);
keep_hostname(yes);
chain_hostnames(no);
};
source entradas {
udp();
internal();
unix-stream("/dev/log");
};
destination remote {
tcp("127.0.0.1" port(5014); );
};
log { source(inputs); destination(remote); };
A diferencia del archivo de configuracin, el procedimiento de instalacin y
configuracin de este equipo es igual que el de un equipo cliente UNIXlike.
2.6.
2.7.
AUDITORIAS A LA INFRAESTRUCTURA