{"id":422,"date":"2011-02-02T21:49:16","date_gmt":"2011-02-03T02:49:16","guid":{"rendered":"https:\/\/rafael.bonifaz.ec\/blog\/?p=422"},"modified":"2011-03-17T20:38:37","modified_gmt":"2011-03-18T01:38:37","slug":"proteger-ssh-con-fail2ban","status":"publish","type":"post","link":"https:\/\/rafael.bonifaz.ec\/blog\/2011\/02\/proteger-ssh-con-fail2ban\/","title":{"rendered":"Proteger SSH con Fail2Ban"},"content":{"rendered":"<p>Una de las principales formas de atacar un servidor SSH es atrav\u00e9s de ataques de diccionario o de fuerza bruta .Fail2Ban tiene una forma muy simple de solucionar el problema. Si despu\u00e9s de X intentos escribo la clave de forma incorrecta, bloquea ese ip por un tiempo definido. Por defecto es 10 minutos. Con esta soluci\u00f3n tan simple, nos tendr\u00e1 protegidos de los ataques de diccionario.<\/p>\n<h2>Instalar Fail2Ban<\/h2>\n<p>En las distros basadas en Debian, basta con instalar el paquete fail2ban. Supongo que en otras distros la instalaci\u00f3n es igual de simple<\/p>\n<p style=\"padding-left: 30px;\"><code>aptitude install fail2ban<!--more--><br \/>\n<\/code><\/p>\n<h2>Configurar Fail2Ban<\/h2>\n<p>Como cualquier aplicaci\u00f3n de Linux, su configuraci\u00f3n se encuentra dentro del directorio \/etc. En este caso el directorio donde debemos buscar es \/etc\/fail2ban. El archivo que modicaremos en este mini tutorial es el \/etc\/fail2ban\/jail.conf. Por defecto viene con varios templates para proteger servicios de nuestros servidores, no solo SSH. Algunas variables interesantes para modificar:<br \/>\nAl inicio del archivo encontraremos las variables ignoreip y bantime La primera sirve para que no bloquee mi IP si algo sale mal y la segunda especifica el tiempo a bloquear un IP en segundos. Por defecto son 10 minutos (600 segundos).<\/p>\n<p style=\"padding-left: 30px;\"><code> ignoreip = 192.168.182.3<br \/>\nbantime  = 600<br \/>\n<\/code><\/p>\n<p>Luego bajamos a la secci\u00f3n de SSH y verificamos que la configuraci\u00f3n este correcta:<\/p>\n<p style=\"padding-left: 30px;\"><code> [ssh]<\/code><\/p>\n<p style=\"padding-left: 30px;\"><code> <\/code><\/p>\n<p style=\"padding-left: 30px;\"><code>enabled = true<br \/>\nport    = ssh<br \/>\nfilter  = sshd<br \/>\nlogpath  = \/var\/log\/auth.log<br \/>\nmaxretry = 6<br \/>\n<\/code><\/p>\n<p>Reiniciamos fail2ban<br \/>\n<code><br \/>\n\/etc\/init.d\/fail2ban restart<br \/>\n<\/code><\/p>\n<p>Listo ahora estamos protegidos contra los ataques de diccionario a nuestro servidor SSH<\/p>\n<h3 class='related_post_title'>Art\u00edculos relacionados<\/h3><ul class='related_post'><li><a href=\"https:\/\/rafael.bonifaz.ec\/blog\/2011\/02\/tips-ssh\/\" title=\"11 + 1 Tips SSH\">11 + 1 Tips SSH<\/a><\/li><li><a href=\"https:\/\/rafael.bonifaz.ec\/blog\/2011\/02\/sincronizar-yo-respaldar-directorios-con-ssh-y-rsync\/\" title=\"Sincronizar y\/o Respaldar directorios con SSH y RSYNC\">Sincronizar y\/o Respaldar directorios con SSH y RSYNC<\/a><\/li><li><a href=\"https:\/\/rafael.bonifaz.ec\/blog\/2011\/01\/sshconfig-simplifica-nuestra-vida-con-ssh\/\" title=\"Simplifica tu vida gracias a ~\/.ssh\/config\">Simplifica tu vida gracias a ~\/.ssh\/config<\/a><\/li><\/ul>","protected":false},"excerpt":{"rendered":"<p>Una de las principales formas de atacar un servidor SSH es atrav\u00e9s de ataques de diccionario o de fuerza bruta .Fail2Ban tiene una forma muy simple de solucionar el problema. Si despu\u00e9s de X intentos escribo la clave de forma incorrecta, bloquea ese ip por un tiempo definido. Por defecto es 10 minutos. Con esta [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":""},"categories":[70,1,3],"tags":[178,89,83,84],"class_list":["post-422","post","type-post","status-publish","format-standard","hentry","category-comos","category-general","category-software-libre","tag-comos","tag-fail2ban","tag-ssh","tag-tips"],"_links":{"self":[{"href":"https:\/\/rafael.bonifaz.ec\/blog\/wp-json\/wp\/v2\/posts\/422","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rafael.bonifaz.ec\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rafael.bonifaz.ec\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rafael.bonifaz.ec\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rafael.bonifaz.ec\/blog\/wp-json\/wp\/v2\/comments?post=422"}],"version-history":[{"count":4,"href":"https:\/\/rafael.bonifaz.ec\/blog\/wp-json\/wp\/v2\/posts\/422\/revisions"}],"predecessor-version":[{"id":424,"href":"https:\/\/rafael.bonifaz.ec\/blog\/wp-json\/wp\/v2\/posts\/422\/revisions\/424"}],"wp:attachment":[{"href":"https:\/\/rafael.bonifaz.ec\/blog\/wp-json\/wp\/v2\/media?parent=422"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rafael.bonifaz.ec\/blog\/wp-json\/wp\/v2\/categories?post=422"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rafael.bonifaz.ec\/blog\/wp-json\/wp\/v2\/tags?post=422"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}