
{"id":58,"date":"2007-02-07T10:34:29","date_gmt":"2007-02-07T13:34:29","guid":{"rendered":"http:\/\/talsoft.com.ar\/weblog\/?p=58"},"modified":"2007-02-07T10:34:29","modified_gmt":"2007-02-07T13:34:29","slug":"anadiendo-seguridad-a-una-distribucion-de-linux","status":"publish","type":"post","link":"https:\/\/www.talsoft.com.ar\/site\/es\/anadiendo-seguridad-a-una-distribucion-de-linux\/","title":{"rendered":"A\u00c3\u00b1adiendo Seguridad a una Distribuci\u00c3\u00b3n de Linux"},"content":{"rendered":"<h2><strong>Introducci\u00c3\u00b3n<\/strong><\/h2>\n<p class=\"normal\">\u00c3\u0161ltimamente se est\u00c3\u00a1n volviendo habituales los esfuerzos a gran escala para sabotear los ordenadores de internet. Los servidores con Linux y FreeBSD se han convertido en blanco de estos ataques, utilizando desbordamientos de buffer en los fuentes de imapd y BIND. Cada d\u00c3\u00ada, vulnerabilidades de todas formas y tama\u00c3\u00b1os se reparten entre los casi 20.000 subscriptores de la lista de correo BUGTRAQ (si solo te subscribes a una lista de correo sobre seguridad, deber\u00c3\u00ada ser esta).<\/p>\n<p class=\"normal\">Ser\u00c3\u00ada sensato asumir que al menos uno de esos 19.305 subscriptores vaya a escribir un bucle for() y un poco de l\u00c3\u00b3gica alrededor de un &#8216;exploit&#8217; cut+paste con las esperanza de lograr acceso ileg\u00c3\u00adtimo a tantos ordenadores como sea posible.<\/p>\n<p class=\"normal\">Tarde o temprano, el bucle construir\u00c3\u00a1 la direcci\u00c3\u00b3n de tu ordenador. Cuando llegue ese momento deber\u00c3\u00adas estar preparado.<\/p>\n<p class=\"normal\">A pesar de lo que algunos \u00abexpertos\u00bb puedan hacerte creer, instalar y mantener un ordenador seguro no es algo d\u00c3\u00adficil. Algunas pr\u00c3\u00a1cticas bien conocidas en administraci\u00c3\u00b3n de sistemas sirven como protecci\u00c3\u00b3n de las amenazas de la red global. Este art\u00c3\u00adculo describe algunas de las precauciones que generalmente tomo cuando configuro un sistema Linux RedHat conectado a la red. Aunque este art\u00c3\u00adculo provee pautas para proteger tu ordenador de los intentos malvados de otros, no intenta ser una referencia completa.<\/p>\n<p class=\"normal\">Los siguientes son algunos pasos que evitar\u00c3\u00a1n que tu instalaci\u00c3\u00b3n caiga v\u00c3\u00adctima del pr\u00c3\u00b3ximo hueco p\u00c3\u00bablico en tu software de red.<\/p>\n<p class=\"normal\">ADVERTENCIA: Si no est\u00c3\u00a1s absolutamente seguro de lo que haces, no lo hagas. Algunos de estos pasos asumen un moderado grado de experiencia por tu parte. Al final dar\u00c3\u00a9 la bibliograf\u00c3\u00ada recomendada.<\/p>\n<h2><a title=\"section2\" name=\"section2\" \/><strong>Pasos para la seguridad<\/strong><\/h2>\n<p class=\"normal\">\u00c2\u00a0<\/p>\n<p class=\"normal\"><strong>1.<\/strong> Quita todos lo servicios de red que no necesites. Menos maneras de conectarse a tu ordenador significan menos oportunidades de que un intruso penetre en \u00c3\u00a9l. Comenta todo lo que no necesites en \/etc\/inetd.conf. \u00c2\u00bfNo necesitas hacer telnet a tu sistema? Inhabilitalo. Lo mismo para ftpd, rshd, rexecd, gopher, chargen, echo, pop3d y similares. No olvides hacer un &#8216;killall -HUP inetd&#8217; despu\u00c3\u00a9s de editar el fichero inetd.conf. Tampoco descuides el directorio \/etc\/rc.d\/init.d. Algunos servicios de red (BIND, demonios de impresoras) son programas que se inician desde estos scripts.<\/p>\n<p class=\"normal\"><strong>2.<\/strong> Instala SSH. SSH es un sustituto para la mayor\u00c3\u00ada de esos viejos comandos &#8216;r&#8217; de Berkely. Lo siguiente est\u00c3\u00a1 estra\u00c3\u00addo de la p\u00c3\u00a1gina en <a href=\"http:\/\/www.cs.hut.fi\/ssh\" target=\"_top\">http:\/\/www.cs.hut.fi\/ssh<\/a>:<\/p>\n<p class=\"normal\">Ssh (Secure Shell) es un programa para conectarse a otro ordenador en una red, para ejecutar comandos en una m\u00c3\u00a1quina remota, y para mover archivos de una m\u00c3\u00a1quina a otra. Proporciona autentificaci\u00c3\u00b3n fuerte y comunicaciones seguras sobre canales inseguros.<\/p>\n<p class=\"normal\">Tambi\u00c3\u00a9n realiza muchas otras cosas que cualquier aspirante a hacker encontrar\u00c3\u00a1 interesantes. B\u00c3\u00a1jate el SSH desde <a href=\"http:\/\/ftp.rge.com\/pub\/ssh\" target=\"_top\">http:\/\/ftp.rge.com\/pub\/ssh<\/a>.<\/p>\n<p class=\"normal\"><strong>3.<\/strong> Usa vipw(1) para bloquear las cuentas sin acceso a login. F\u00c3\u00adjate que en RedHat Linux, las cuentas con un nombre de shell nulo inician sesi\u00c3\u00b3n con la shell \/bin\/sh, que probablemente no es lo que quieres. Tambi\u00c3\u00a9n asegurate que ninguna de tus cuentas tenga password nulo. El siguiente es un ejemplo de como ser\u00c3\u00ada la parte de sistema de un fichero passwd correcto y seguro:<\/p>\n<pre>daemon:*:2:2:daemon:\/sbin:\/bin\/sync\r\nadm:*:3:4:adm:\/var\/adm:\/bin\/sync\r\nlp:*:4:7:lp:\/var\/spool\/lpd:\/bin\/sync\r\nsync:*:5:0:sync:\/sbin:\/bin\/sync\r\nshutdown:*:6:0:shutdown:\/bin:\/sync\r\nhalt:*:7:0:halt:\/sbin:\/bin:\/sync\r\nmail:*:8:12:mail:\/var\/spool\/mail:\/bin\/sync\r\nnews:*:9:13:news:\/var\/spool\/news:\/bin\/sync\r\nuucp:*:10:14:uucp:\/var\/spool\/uucp:\/bin\/sync\r\noperator:*:11:0:operator:\/root:\/bin\/sync\r\ngames:*:12:100:games:\/usr\/games:\/bin\/sync\r\ngopher:*:13:30:gopher:\/usr\/lib\/gopher-data:\/bin\/sync\r\nftp:*:14:50:FTP User:\/home\/ftp:\/bin\/sync\r\nnobody:*:99:99:Nobody:\/:\/bin\/sync<\/pre>\n<p><strong>4.<\/strong> Quita los bits &#8216;s&#8217; de los programas cuyo propietario sea el root y que no precisen de tal privilegio. Esto se hace ejecutando el comando &#8216;chmod a-s&#8217; con el nombre o nombres de los archivos involucrados como argumentos.<\/p>\n<p class=\"normal\">Tales programas son (pero la lista no est\u00c3\u00a1 completa):<\/p>\n<ol>\n<li>programs que nunca uses<\/li>\n<li>programas que no quieres que un usuario que no sea root los use<\/li>\n<li>programas que uses ocasionalmente, y no te importe tener que hacer un su(1) a root para ejecutarlos<\/li>\n<\/ol>\n<p>He colocado un asterisco (*) al lado de cada programa que personalmente inhabilitar\u00c3\u00ada. Recuerda que tu sistema necesita algunos programas con suid root para trabajar perfectamente, as\u00c3\u00ad que ten cuidado.<\/p>\n<p class=\"normal\">Alternativamente, podr\u00c3\u00adas crear un grupo especial llamado &#8216;suidexec&#8217;, poner los usuarios en los que conf\u00c3\u00adas en este grupo, chgrp(1) el programa o programas dudosos que precisen del suid bit al grupo suidexec, y quitarle los permisos de ejecuci\u00c3\u00b3n global.<\/p>\n<pre># find \/ -user root -perm \"-u+s\"<\/pre>\n<table border=\"1\">\n<tr>\n<th>Comando<\/th>\n<th>Comentario<\/th>\n<\/tr>\n<tr>\n<td>*\/bin\/ping<\/td>\n<td>\u00c2\u00a0<\/td>\n<td>\u00c2\u00a0<\/td>\n<\/tr>\n<tr>\n<td>*\/bin\/mount<\/td>\n<td>s\u00c3\u00b3lo el root deber\u00c3\u00ada montar sistemas de ficheros<\/td>\n<\/tr>\n<tr>\n<td>*\/bin\/umount<\/td>\n<td>idem<\/td>\n<\/tr>\n<tr>\n<td>\/bin\/su<\/td>\n<td>\u00c2\u00a1no toques este!<\/td>\n<\/tr>\n<tr>\n<td>\/bin\/login<\/td>\n<td>\u00c2\u00a0<\/td>\n<\/tr>\n<tr>\n<td>\/sbin\/pwdb_chkpwd<\/td>\n<td>\u00c2\u00a0<\/td>\n<\/tr>\n<tr>\n<td>*\/sbin\/cardctl<\/td>\n<td>utilidad de control para tarjetas PCMCIA<\/td>\n<\/tr>\n<tr>\n<td>*\/usr\/bin\/rcp<\/td>\n<td>Usa ssh<\/td>\n<\/tr>\n<tr>\n<td>*\/usr\/bin\/rlogin<\/td>\n<td>idem<\/td>\n<\/tr>\n<tr>\n<td>*\/usr\/bin\/rsh<\/td>\n<td>\u00ab<\/td>\n<\/tr>\n<tr>\n<td>*\/usr\/bin\/at<\/td>\n<td>usa cron, o inhabilitalo del todo<\/td>\n<\/tr>\n<tr>\n<td>*\/usr\/bin\/lpq<\/td>\n<td>instala LPRNG<\/td>\n<\/tr>\n<tr>\n<td>*\/usr\/bin\/lpr<\/td>\n<td>\u00ab<\/td>\n<\/tr>\n<tr>\n<td>*\/usr\/bin\/lprm<\/td>\n<td>\u00ab<\/td>\n<\/tr>\n<tr>\n<td>*\/usr\/bin\/mh\/inc<\/td>\n<td>\u00c2\u00a0<\/td>\n<\/tr>\n<tr>\n<td>*\/usr\/bin\/mh\/msgchk<\/td>\n<td>\u00c2\u00a0<\/td>\n<\/tr>\n<tr>\n<td>\/usr\/bin\/passwd<\/td>\n<td>\u00c2\u00a1no tocar!<\/td>\n<\/tr>\n<tr>\n<td>*\/usr\/bin\/suidperl<\/td>\n<td>cada nueva versi\u00c3\u00b3n de suidperl parece tener un desbordamiento del buffer<\/td>\n<\/tr>\n<tr>\n<td>*\/usr\/bin\/sperl5.003<\/td>\n<td>\u00c3\u00basalo solo si es necesario<\/td>\n<\/tr>\n<tr>\n<td>\/usr\/bin\/procmail<\/td>\n<td>\u00c2\u00a0<\/td>\n<\/tr>\n<tr>\n<td>*\/usr\/bin\/chfn<\/td>\n<td>\u00c2\u00a0<\/td>\n<\/tr>\n<tr>\n<td>*\/usr\/bin\/chsh<\/td>\n<td>\u00c2\u00a0<\/td>\n<\/tr>\n<tr>\n<td>*\/usr\/bin\/newgrp<\/td>\n<td>\u00c2\u00a0<\/td>\n<\/tr>\n<tr>\n<td>*\/usr\/bin\/crontab<\/td>\n<td>\u00c2\u00a0<\/td>\n<\/tr>\n<tr>\n<td>*\/usr\/X11R6\/bin\/dga<\/td>\n<td>muchos desbordamientos de buffer como en X11<\/td>\n<\/tr>\n<tr>\n<td>*\/usr\/X11R6\/bin\/xterm<\/td>\n<td>\u00ab<\/td>\n<\/tr>\n<tr>\n<td>*\/usr\/X11R6\/bin\/XF86_SVGA<\/td>\n<td>\u00ab<\/td>\n<\/tr>\n<tr>\n<td>*\/usr\/sbin\/usernetctl<\/td>\n<td>\u00c2\u00a0<\/td>\n<\/tr>\n<tr>\n<td>\/usr\/sbin\/sendmail<\/td>\n<td>\u00c2\u00a0<\/td>\n<\/tr>\n<tr>\n<td>*\/usr\/sbin\/traceroute<\/td>\n<td>puedes soportar escribir el password de root de vez en cuando<\/td>\n<\/tr>\n<\/table>\n<p class=\"normal\"><strong>5.<\/strong> Actualiza el sendmail. Baja el c\u00c3\u00b3digo fuente de <a href=\"ftp:\/\/ftp.sendmail.org\/pub\/sendmail\" target=\"_top\">ftp:\/\/ftp.sendmail.org\/pub\/sendmail<\/a>. Desempaquetalo y lee las instrucciones. Instala el smrsh (empaquetado con sendmail) si tienes un par de minutos extras, este programa soluciona muchas de las cosas que interesan a la mayor\u00c3\u00ada de la gente sobre el sendmail, tales como enviar emails a programas arbitrarios. Edita sendmail.cf y pon la opci\u00c3\u00b3n &#8216;PrivacyOptions&#8217; en &#8216;goaway&#8217;:<\/p>\n<pre>PrivacyOptions=goaway<\/pre>\n<p>Si no tienes previsto recibir correo de internet, \u00c2\u00a1NO EJECUTES SENDMAIL EN EL MODO DE RECEPCI\u00c3\u201cN (sendmail -bd)!. En este caso, deshabilita \/etc\/rc.d\/init.d\/sendmail.init y haz un &#8216;killall -TERM sendmail&#8217;. Con esto a\u00c3\u00ban ser\u00c3\u00a1s capaz de enviar email, pero no de recibir.<\/p>\n<p class=\"normal\"><strong>6.<\/strong> Actualiza BIND si lo usas. La \u00c3\u00baltima versi\u00c3\u00b3n de BIND la puedes encontrar en <a href=\"http:\/\/www.isc.org\/\" target=\"_top\">http:\/\/www.isc.org<\/a> . Si no lo usas deshabilitalo del todo.<\/p>\n<p class=\"normal\"><strong>7.<\/strong> Recompila el kernel. Generalmente lo hago para reducir el tama\u00c3\u00b1o del kernel por defecto. CONSEJO: Activa todas las opciones de firewall incluso si tu ordenador no es un firewall.<\/p>\n<pre>CONFIG_FIREWALL=y\r\nCONFIG_NET_ALIAS=y\r\nCONFIG_INET=y\r\n# CONFIG_IP_FORWARD is not set\r\n# CONFIG_IP_MULTICAST is not set\r\nCONFIG_SYN_COOKIES=y\r\nCONFIG_RST_COOKIES=y\r\nCONFIG_IP_FIREWALL=y\r\nCONFIG_IP_FIREWALL_VERBOSE=y\r\n# CONFIG_IP_MASQUERADE is not set\r\n# CONFIG_IP_TRANSPARENT_PROXY is not set\r\nCONFIG_IP_ALWAYS_DEFRAG=y\r\nCONFIG_IP_ACCT=y\r\n# CONFIG_IP_ROUTER is not set\r\n# CONFIG_NET_IPIP is not set\r\nCONFIG_IP_ALIAS=m<\/pre>\n<p><strong>8.<\/strong> Aplica los parches: Cualquier problema conocido con el software de RedHat se puede encontrar en las p\u00c3\u00a1ginas de Errata de RedHat. (ver <a href=\"http:\/\/www.redhat.com\/support\/docs\/errata.html\" target=\"_top\">http:\/\/www.redhat.com\/support\/docs\/errata.html <\/a>para saber qu\u00c3\u00a9 parches puedes aplicar a tu versi\u00c3\u00b3n). RedHat hace un excelente trabajo de mantenimiento para mantener estas p\u00c3\u00a1ginas actualizadas. Estas p\u00c3\u00a1ginas incluyen tambi\u00c3\u00a9n enlaces a los archivos RPM que necesitar\u00c3\u00a1s, junto con instrucciones de instalaci\u00c3\u00b3n.<\/p>\n<p class=\"normal\"><strong>9.<\/strong> Configura tcp_wrappers: Los tcp_wrappers son un m\u00c3\u00a9todo para controlar qu\u00c3\u00a9 ordenadores en la red tienen permiso para hablar con el tuyo. Este paquete, escrito por el gur\u00c3\u00ba en seguridad Wieste Venema, se coloca en frente de los programas que se ejecutan desde el inetd (o aquellos enlazados con su biblioteca) consultando sus archivos de configuraci\u00c3\u00b3n para determinar si deben negar o permitir una trasancci\u00c3\u00b3n en la red. Por ejemplo, para permitir telnet y ftp desde tu casa v\u00c3\u00ada un ISP, no permitiendo nada m\u00c3\u00a1s, coloca lo siguiente en \/etc\/hosts.allow:<\/p>\n<pre>in.ftpd : .dialup.tu-isp.com : allow\r\nall : all : deny<\/pre>\n<p>SSH, sendmail y otros paquetes pueden construirse con soporte para tcp_wrappers. Lee la p\u00c3\u00a1gina tcpd(1) del manual para m\u00c3\u00a1s informaci\u00c3\u00b3n.<br \/>\nFuente: <a href=\"http:\/\/www.linux-es.org\/node\/16\">http:\/\/www.linux-es.org\/node\/16<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introducci\u00c3\u00b3n \u00c3\u0161ltimamente se est\u00c3\u00a1n volviendo habituales los esfuerzos a gran escala para sabotear los ordenadores de internet. Los servidores con Linux y FreeBSD se han convertido en blanco de estos ataques, utilizando desbordamientos de buffer en los fuentes de imapd y BIND. Cada d\u00c3\u00ada, vulnerabilidades de todas formas y tama\u00c3\u00b1os se reparten entre los casi [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[3],"tags":[],"class_list":["post-58","post","type-post","status-publish","format-standard","hentry","category-articulos"],"_links":{"self":[{"href":"https:\/\/www.talsoft.com.ar\/site\/wp-json\/wp\/v2\/posts\/58","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.talsoft.com.ar\/site\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.talsoft.com.ar\/site\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.talsoft.com.ar\/site\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.talsoft.com.ar\/site\/wp-json\/wp\/v2\/comments?post=58"}],"version-history":[{"count":0,"href":"https:\/\/www.talsoft.com.ar\/site\/wp-json\/wp\/v2\/posts\/58\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.talsoft.com.ar\/site\/wp-json\/wp\/v2\/media?parent=58"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.talsoft.com.ar\/site\/wp-json\/wp\/v2\/categories?post=58"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.talsoft.com.ar\/site\/wp-json\/wp\/v2\/tags?post=58"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}