seguridad basica linux

4
Seguridad Básica en Linux 1 El objetivo es dar a conocer los mecanismos mínimos para asegurar un sistema Linux. Recomendaciones generales Los primeros pasos para asegurar su sistema Linux son: 1. Verifique las fuentes, es decir verifique que los medios que va a 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. Dimensione las particiones de un tamaño adecuado a sus necesidades. 3. Instale sólo lo que necesite. 4. Si la distribución que está instalando posee un firewall instálelo y configúrelo correctamente. 5. Utilice un password para root con la complejidad apropiada 6. Utilice el shadow para sus contraseñas 7. No instale paquetes de los cuales duda de su procedencia 8. No permita en lo posible el acceso como root en los terminales 9. Evite el uso de los comandos “r” (Ej. rlogin, rsh.) 10. No permita que se ejecuten servicios que no esté utilizando. 11. Revise los permisos y la propiedad de los archivos de configuración del sistema y los servicios. 12. 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. a) Una vez instalado su sistema debe comenzar por revisar que puertos están abiertos, para ello utilice nmap (o el nmapfe) con esto se podrá determinar qué servicios de red se están ejecutando: #nmap localhost Starting Nmap 4.62 ( http://nmap.org ) at 2010-10-05 23:23 BOT Interesting ports on localhost (127.0.0.1): Not shown: 1711 closed ports PORT STATE SERVICE 22/tcp open ssh 25/tcp open smtp 80/tcp open http 111/tcp open rpcbind Nmap done: 1 IP address (1 host up) scanned in 0.249 seconds Estos son los puertos abiertos en la máquina que se ha rastreado. Recuerde que puede ser víctima de un engaño b) Para determinar que otros servicios están corriendo debe saber que nivel de ejecución ( runlevel) está utilizando, para esto use el comando runlevel y liste los servicios que arrancan y se detienen en el nivel 2: # runlevel N 2 1 Material distribuido en WALC 2014, Universidad Eloy Alfaro, Manta, Ecuador Pág. 1 de 4

Upload: fatima-vega

Post on 08-Nov-2015

213 views

Category:

Documents


0 download

DESCRIPTION

curso de seguridad basica de linux

TRANSCRIPT

  • Seguridad Bsica en Linux1El objetivo es dar a conocer los mecanismos mnimos para asegurar un sistema Linux.

    Recomendaciones generales Los primeros pasos para asegurar su sistema Linux son:

    1. Verifique las fuentes, es decir verifique que los medios que va a usar para la instalacin no estncorruptos. Esto se puede realizar por medio del md5sum, debe tomar en cuenta que el archivo queuse para verificar estos hash debe estar firmado.

    2. Dimensione las particiones de un tamao adecuado a sus necesidades.

    3. Instale slo lo que necesite.

    4. Si la distribucin que est instalando posee un firewall instlelo y configrelo correctamente.

    5. Utilice un password para root con la complejidad apropiada

    6. Utilice el shadow para sus contraseas

    7. No instale paquetes de los cuales duda de su procedencia

    8. No permita en lo posible el acceso como root en los terminales

    9. Evite el uso de los comandos r (Ej. rlogin, rsh.)

    10. No permita que se ejecuten servicios que no est utilizando.

    11. Revise los permisos y la propiedad de los archivos de configuracin del sistema y los servicios.

    12. Mantenga actualizado los parches de su sistema.

    Desarrollo Prctico

    Parte 1. Servicios en ejecucin En esta seccin el objetivo es detener los servicios en ejecucin que no se estn utilizando.

    a) Una vez instalado su sistema debe comenzar por revisar que puertos estn abiertos, para elloutilice nmap (o el nmapfe) con esto se podr determinar qu servicios de red se estn ejecutando:

    #nmaplocalhostStartingNmap4.62(http://nmap.org)at2010100523:23BOTInterestingportsonlocalhost(127.0.0.1):Notshown:1711closedportsPORT STATE SERVICE22/tcp open ssh25/tcp open smtp80/tcp open http111/tcp open rpcbindNmapdone:1IPaddress(1hostup)scannedin0.249seconds

    Estos son los puertos abiertos en la mquina que se ha rastreado. Recuerde que puede ser vctimade un engao

    b) Para determinar que otros servicios estn corriendo debe saber que nivel de ejecucin (runlevel)est utilizando, para esto use el comando runlevel y liste los servicios que arrancan y sedetienen en el nivel 2:

    #runlevelN2

    1 Material distribuido en WALC 2014, Universidad Eloy Alfaro, Manta, Ecuador

    Pg. 1 de 4

  • Estos son los servicios que se ejecutan en el nivel de arranque 2. #ls/etc/rc2.d/README S16ssh S20openbsdinetd S91apache2S99stopbootlogdS10rsyslog S20exim4 S89atd S99rc.localS12acpid S20nfscommon S89cron S99rmnologin

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

    #updaterc.dfexim4removeupdaterc.d:/etc/init.d/exim4existsduringrc.dpurge(continuing)Removinganysystemstartuplinksfor/etc/init.d/exim4.../etc/rc0.d/K20exim4/etc/rc1.d/K20exim4/etc/rc2.d/S20exim4/etc/rc3.d/S20exim4/etc/rc4.d/S20exim4/etc/rc5.d/S20exim4/etc/rc6.d/K20exim4

    Note que sus resultados pueden diferir debido a que tiene otros servicios ejecutndose.

    d) Una vez que se impida el arranque de estos servicios hay que detenerlos (Ejemplo): #/etc/init.d/exim4stopStoppingMTA:exim4_listener

    e) Una vez realizado este paso revise nuevamente su mquina con el nmap y revise su directorio/etc/rc2.d/. Recuerde que slo debe dejar activos los servicios que va a utilizar.

    f) Qu sucede si usted desea determinar qu demonio est escuchando conexiones de red por undeterminado puerto? Discuta su respuesta.

    Parte 2. Instalacin de un firewall bsico Construya o instale un firewall:

    a) Primero revise cuales reglas de firewall tiene su mquina activa

    #iptablesL

    b) Realice ping a la mquina virtual

    #pingLAIPDESUMAQUINAVIRTUAL

    Para configura las reglas de iptables debe usa polticas por omisin tales como: iptablesPINPUTDROPiptablesPOUTPUTDROPiptablesPFORWARDDROP

    c) Coloque estas reglas bsicas #iptablesAINPUTilojACCEPT#iptablesAOUTPUTolojACCEPT

    #iptablesAOUTPUTpALLmstatestateESTABLISHED,RELATEDjACCEPT#iptablesAOUTPUTpTCPd0.0.0.0/0destinationport22mstatestateNEWjACCEPT#iptablesAOUTPUTpTCPd0.0.0.0/0destinationport80mstatestateNEWjACCEPT#iptablesAOUTPUTpUDPd0.0.0.0/0destinationport53jACCEPT

    #iptablesAINPUTpALLmstatestateESTABLISHED,RELATEDjACCEPT#iptablesAINPUTptcps0.0.0.0/0destinationport80mstatestateNEWjACCEPT

    #iptablesPINPUTDROP#iptablesPOUTPUTDROP#iptablesPFORWARDDROP

    d) Realice nuevamente ping a la mquina de su compaero. Que resultado obtuvo.

    Pg. 2 de 4

  • Parte 2.1 Parmetros del kernel

    Adicionalmente a las reglas de Firewall que pueda configurar en su mquina se recomienda configurar lasopciones de red del kernel al momento del encendido.

    a) Edite el archivo /etc/sysctl.conf y quite el comentario las siguientes lneas: net.ipv4.conf.all.rp_filter=1

    net.ipv4.tcp_syncookies=1net.ipv4.ip_forward=0

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

    net.ipv4.conf.all.accept_source_route=0

    b) Ejecute el comando sysctlp

    #sysctlp

    Parte 2.2 Golpeo de puertos (Port knocking)

    El golpeo de puertos o port knocking es un mecanismo para abrir puertos en un firewall mediante unasecuencia preestablecida de intentos de conexin a puertos que se encuentran cerrados. Una vez que elfirewall recibe la secuencia de conexin correcta, sus reglas son modificadas para permitir a la IP querealiz los intentos conectarse a un puerto especfico.

    a) Instale el paquete del portknocking

    #aptitudeinstallknockd

    b) Edite el archivo de configuracin para permitir que el servicio arranque .

    La tcnica de golpeo de puertos es sumamente til para agregar un elemento de seguridadadicional a servicios como SSH.

    #nano/etc/default/knockd

    #controlifwestartknockdatinitornot

    #1=start

    #anythingelse=don'tstart

    START_KNOCKD=1

    #commandlineoptions

    #KNOCKD_OPTS="ieth0"

    c) Edite el archivo de configuracin para de las reglas del paquete knockd #nano/etc/knockd.conf

    [options] logfile=

    /var/log/knockd.log

    [openSSH]

    sequence=7001,8001 seq_timeout=25 command=/sbin/iptables

    AINPUTs%IP%ptcpdport22jACCEPT tcpflags=syn

    [closeSSH] sequence=9000,8000 seq_timeout=25 command=

    /sbin/iptablesDINPUTs%IP%ptcpdport22jACCEPT tcpflags=

    syn

    d) Arranque el servicio para comenzar a utilizarlo

    Por favor note que para probar deber hacer el golpeo desde otra estacin.

    #/etc/init.d/knockdstart

    e) Para abrir el puerto de la maquina destino se debe enviar la secuencia de apertura

    #knockvIPdelamaquinadestino70018001

    Pg. 3 de 4

  • f) Una vez enviada la secuencia de apertura se procede a establecer la conexin SSH

    #sshIPdelamaquinadestino

    g) Compruebe que puede que sucede luego de la secuencia de apertura

    h) Se pueden observar la bitcora de la apertura con el comando

    #tail/var/log/knockd.log

    Parte 3.Configuracin del TCP Wrappers Para configurar el TCP Wrappers los archivos de configuracin son el /etc/hosts.allow y el/etc/hosts.deny

    a) En el archivo /etc/hosts.allowconfigure su mquina para slo aceptar conexiones sshdesde su red:

    #vi/etc/hosts.allowsshd:

    192.168..X.Y/255.255.255.Z

    Cambie las IP a los valores que corresponda.

    b) Para negar el acceso a el resto de los servicios escriba en el /etc/hosts.deny

    #vi/etc/hosts.deny

    ALL:ALLexcept127.0.0.1:Deny

    Parte 4. Bsqueda de rootkits Los rootkit son herramientas que tiene como finalidad esconderse a s misma y esconder a otrosprogramas, procesos, archivos, directorios, llaves de registro, y puertos que permiten a un intrusomantener el acceso a un sistema para remotamente poder ejecutar acciones o extraer informacin.

    a) Instalar los buscadores de rootkits

    #aptitudeinstallchkrootkitrkhunter

    b) Ejecutar el chkrootkit y analizar la salida (esta operacin tomara varios minutos)

    #chkrootkit

    c) Actualizar el rkhunter y ejecutarlo (esta operacin tomara varios minutos) #rkhunterupdate

    #rkhuntercsk

    d) Discuta los resultado obtenidos

    e) Puede revisar la bitcora del rkhunter con el siguiente comando

    #more/var/log/rkhunter.log

    Pg. 4 de 4