Você está na página 1de 8

Prácticas de Laboratorio

Practicas básicas de de seguridad en Linux

Eslared 2006

PRACTICA DE LABORATORIO.

Practicas básicas de de seguridad en Linux

El objetivo de esta práctica es dar a conocer los mecanismos mínimos para asegurar un
sistema Linux. La practica esta dividida en dos secciones, la primera consiste en una serie
de recomendaciones generales. La segunda es el desarrollo de la práctica de laboratorio.

Recomendaciones generales
Los primeros pasos para asegurar su sistema Linux son:
1. Verifique las fuentes, es decir verifique que los medio que va ha usar para la
instalación no estén corruptos. Esto se puede realizar por medio del md5sum, debe
tomar en cuenta que el archivo que use para verificar estos hash debe estar
firmado.
2. Si puede instale su SO con la maquina desconectada de la red o en un entrono que
considere seguro.
3. Dimensione las particiones de un tamaño adecuado a sus necesidades.
4. Instale solo lo que necesite.
5. Si la distribución que esta instalando posee un firewall instálelo
6. Utilice un password para root con la complejidad apropiada
7. Utilice el shadow para sus contraseñas
8. No instale paquetes de los cuales duda de su procedencia
9. No permita en lo posible el acceso como root en los terminales
10. Evite el uso de los comandos “r” (Ej. rlogin, rsh.)
11. No permita que se ejecuten servicios que no este utilizando.
12. Revise los permisos y la propiedad de los archivos de configuración del sistema y
los servicios.
13. Mantenga actualizado los parches de su sistema.
Prácticas de Laboratorio
Practicas básicas de de seguridad en Linux

Desarrollo Práctico

Parte 1. Servicios en ejecución


En esta sección el objetivo es detener los servicios en ejecución que no se están
utilizando.

a. Una vez instalado su sistema debe comenzar por revisar que puertos están abiertos,
para ello utilice el nmap (o el nmapfe) con esto se podrá determinar que servicios de
red se están ejecutando:
# nmap localhost
Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2006-06-04 11:20 VET
Interesting ports on localhost.localdomain (127.0.0.1):
(The 1657 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE VERSION
22/tcp open ssh
25/tcp open smtp
80/tcp open http
631/tcp open ipp
Nmap finished: 1 IP address (1 host up) scanned in 100.278 seconds

b. Para determinar que otros servicios están corriendo primero debe saber que nivel de
ejecución (runlevel) esta utilizando, para esto utilice el comando:
# runlevel
N2

Y luego:
# ls /etc/rc2.d/
S05vbesave S11klogd S14ppp S20apmd S20makedev S20rsync S25mdadm S89cron
S10acpid S12dbus S19cupsys S20exim4 S20pcmcia S20ssh S89anacron S91apache S99fetchmail
S10sysklogd S13gdm S19hplip S20hotkey-setup S20powernowd S25bluez-utils S89atd S98usplash
S99rmnologin

c. Para impedir que los servicios que no se están utilizando se ejecuten utilice el
comando update-rc.d (Ejemplo):

# update-rc.d -f apache remove


update-rc.d: /etc/init.d/apache exists during rc.d purge (continuing)
Removing any system startup links for /etc/init.d/apache ...
/etc/rc0.d/K20apache
Prácticas de Laboratorio
Practicas básicas de de seguridad en Linux

/etc/rc1.d/K20apache
/etc/rc2.d/S20apache
/etc/rc3.d/S20apache
/etc/rc4.d/S20apache
/etc/rc5.d/S20apache
/etc/rc6.d/K20apache

d. Una vez que se impida el arranque de estos servicios hay que detenerlos (Ejemplo):
# /etc/init.d/apache stop
Stopping web server: apache.

e. Una vez realizado este paso revise nuevamente su maquina con el nmap y revise su
directorio /etc/rc2.d/. Recuerde que solo debe dejar activos los servicios que va ha
utilizar.
f. ¿Que sucede si usted desea determinar que demonio esta escuchando conexiones de
red por un determinado puerto?. Discuta su respuesta.
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
_______________________________________________________

Parte 2. Instalación de un firewall básico


Construya o instale un firewall:
Primero revise cuales reglas de firewall tiene su maquina activa
# iptables -L
Realice ping a la maquina de su compañero
# ping LA-IP-DE-SU-COMPAÑERO

Para configura las reglas de iptables debe usa políticas por omisión tales como:
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
Prácticas de Laboratorio
Practicas básicas de de seguridad en Linux

Coloque estas reglas básicas


# iptables -P INPUT DROP
# iptables -P OUTPUT DROP
# iptables -P FORWARD DROP

# iptables -A INPUT -i lo -j ACCEPT


# iptables -A OUTPUT -o lo -j ACCEPT
# iptables -A OUTPUT –p ALL –o eth0 -j ACCEPT
# iptables -A INPUT -p ALL -m state --state ESTABLISHED,RELATED -j
ACCEPT
# iptables -A INPUT -p tcp -s 0.0.0.0/0 --destination-port 22 -j ACCEPT

Realice nuevamente ping a la maquina de su compañero. Que resultado obtuvo.

Adicionalmente a las reglas de Firewall que pueda configurar en su maquina se recomienda


configurar las opciones de red del kernel al momento del encendido.

Edite el archivo /etc/sysctl.conf y agregué siguientes líneas:


net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.all.forwarding = 0
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.log_martians = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.all.accept_source_route = 0
Ejecute el comando sysctl –p

# sysctl –p
Prácticas de Laboratorio
Practicas básicas de de seguridad en Linux

Parte 3.Configuración del TCP Wrappers


Para configurar el TCP Wrappers los archivos de configuración son el /etc/hosts.allow y
el /etc/hosts.deny

a. En el archivo el /etc/hosts.allow configure su maquina para solo aceptar


conexiones ssh desde su red:
# vi /etc/hosts.allow
sshd: 150.185.X.Y/255.255.255.Z
b. Para negar el acceso a el resto de los servicios escriba en el /etc/hosts.deny
# vi /etc/hosts.deny
ALL:ALL except 127.0.0.1: Deny

Parte 4.Configuración del tripwire


En esta sección se configurar un IDS de target como es el caso Tripwire.
a. Ejecute el comando twadmin para crear una llave
# twadmin --generate-keys --site-keyfile /etc/tripwire/site.key
(When selecting a passphrase, keep in mind that good passphrases typically
have upper and lower case letters, digits and punctuation marks, and are
at least 8 characters in length.)
Enter the site keyfile passphrase:
Verify the site keyfile passphrase:
Generating key (this may take several minutes)...Key generation complete.

# twadmin --generate-keys --local-keyfile /etc/tripwire/`hostname`-local.key


Enter the local keyfile passphrase:
Generating key (this may take several minutes)...Key generation complete.

Siga las instrucciones y coloque las contraseñas que se le soliciten. Importante Las
contraseñas Tripwire deben de ser diferentes de las de root o de cualquier otra
contraseña del sistema. Use contraseñas únicas tanto para la clave del sitio como
para la local.

Firme el archivo de configuración y el de políticas


# twadmin --create-cfgfile --cfgfile /etc/tripwire/tw.cfg --site-keyfile
/etc/tripwire/site.key /etc/tripwire/twcfg.txt
Prácticas de Laboratorio
Practicas básicas de de seguridad en Linux

Please enter your site passphrase:


Wrote configuration file: /etc/tripwire/tw.cfg

# twadmin --create-polfile --cfgfile /etc/tripwire/tw.cfg --site-keyfile


/etc/tripwire/site.key /etc/tripwire/twpol.txt
Please enter your site passphrase:
Wrote policy file: /etc/tripwire/tw.pol

b. Una vez realizado el paso anterior hay que inicializar la base de datos del tripwire,
mediante el comando:
# tripwire --init
c. Una vez inicializada la base de datos ejecute una revisión del sistema mediante el
comando
# tripwire --check

Esta revisión debe hacerse periódicamente por tanto por omisión por tanto tripwire
añade un script llamado tripwire-check al directorio /etc/cron.daily/. Este script
ejecuta automáticamente un control de integridad una vez al día.

d. Para visualizar los reportes del tripwire ejecute los siguientes comandos:
# cd /var/lib/tripwire/report/
# ls
tumaquina-2006XXYY-040213.twr

Para visualizar este reporte ejecute el comando:


# twprint --print-report --twrfile tumaquina-2006XXYY-040213.twr

Tripwire(R) 2.3.0 Integrity Check Report

Report generated by: root


Report created on: Fri Jan 12 04:04:42 2001
Database last updated on: Tue Jan 9 16:19:34 2001

=======================================================================
Prácticas de Laboratorio
Practicas básicas de de seguridad en Linux

Report Summary:
=======================================================================
Host name: tumaquina
Host IP address: 10.0.0.1
Host ID: None
Policy file used: /etc/tripwire/tw.pol
Configuration file used: /etc/tripwire/tw.cfg
Database file used: /var/lib/tripwire/some.host.com.twd
Command line used: /usr/sbin/tripwire --check

=======================================================================
Rule Summary:
=======================================================================
-----------------------------------------------------------------------
Section: Unix File System
-----------------------------------------------------------------------
Rule Name Severity Level Added Removed Modified
--------- -------------- ----- ------- --------
Invariant Directories 69 0 0 0
Temporary directories 33 0 0 0
* Tripwire Data Files 100 1 0 0
Critical devices 100 0 0 0
User binaries 69 0 0 0
Tripwire Binaries 100 0 0 0

Parte 5. Revisión de logs del sistema


Para facilitar la visualización de los mismos puede usar herramientas tales como
logwatch.
Ejemplo:
# logwatch --range all --print | more
Analice el resultado.

Parte 6. Prueba de los password del sistema


Para esta sección de la práctica trataremos de encontrar password fáciles de romper
por medio de la herramienta John de Ripper. Para esto copiaremos el archivo
/etc/shadow en el directorio /root y luego se ejecutara John.
Prácticas de Laboratorio
Practicas básicas de de seguridad en Linux

a. Copie el archivo mediante el comando:


# cp /etc/shadow /root/lospassword

b. Ejecute John de Ripper:


# john -wordfile:/usr/share/dict/american-english /root/lospassword &

c. Ejecute el siguiente comando para ver el progreso de el proceso:


# john -show /root/lospassword

Você também pode gostar