Página principal

Eslared 2006 practica de laboratorio


Descargar 36.16 Kb.
Fecha de conversión18.07.2016
Tamaño36.16 Kb.

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.

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.

  1. 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


  1. 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

N 2

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


  1. 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

/etc/rc1.d/K20apache

/etc/rc2.d/S20apache

/etc/rc3.d/S20apache

/etc/rc4.d/S20apache

/etc/rc5.d/S20apache

/etc/rc6.d/K20apache


  1. Una vez que se impida el arranque de estos servicios hay que detenerlos (Ejemplo):

# /etc/init.d/apache stop

Stopping web server: apache.


  1. 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.

  2. ¿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

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

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


  1. 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

  1. 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

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


  1. Una vez realizado el paso anterior hay que inicializar la base de datos del tripwire, mediante el comando:

# tripwire --init

  1. 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.


  1. 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
=======================================================================

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.


  1. Copie el archivo mediante el comando:

# cp /etc/shadow /root/lospassword


  1. Ejecute John de Ripper:

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


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

# john -show /root/lospassword



La base de datos está protegida por derechos de autor ©espanito.com 2016
enviar mensaje