Consejos basicos: Mantener un servidor del ssh
Ayer, de nuevo, un amigo mio fue víctima de un ‘dictionary-based attack’, afortunadamente, parece que el atacante lo único que hizo fue cambiarle la password del usuario en cuestión. Aun así, si alguna vez alguien se “cuela” en tu equipo, la única manera de asegurarse que la seguridad del equipo no esta comprometida es formatear y reinstalar el sistema.
Hoy voy a detallar un pelin mas como blindar nuestro servidor de ssh para disminuir el riesgo de éxito de este tipo de ataques.
Una conexión Shh consta al menos de dos elementos basicos; cliente y servidor. Las distribuciones basadas en Debian Linux, el cliente se llama ssh y su fichero de configuración se encuentra en “/etc/ssh/ssh_config”. Y el servidor se llama sshd y su configuración se encuentra en “/etc/ssh/sshd_config”. Como deberes, echale un ojo y navega entre la opciones enterandote de para que sirven cada una de las opciones, deshabilitando aquellas que no sean necesarias.
Los cambios realizados en el servidor no se harán efectivos mientras no se reinicie el servicio (“/etc/init.d/ssh restart”)!
Cambia el puerto de escucha. El puerto estándar de escucha de los servidores ssh es el 22. Mi consejo es que siempre que puedas lo cambies. Si tu servidor esta detrás de un router basta con que cambies el puerto de escucha en la NAT. Si también quieres que el cambio afecte al área local, entonces tendrás que actualizar el parámetro “Port” en “/etc/ssh/ssh_config”.
Ventajas:
Eliminas completamente las posibilidades de éxito de scripts que se dedican a ‘barrer’ ips (La gran mayoría de los intentos)
Desventajas:
En sistemas con un elevado numero de usuarios, el cambiar de puerto solo complicara la vida de los usuarios (un parámetro mas que memorizar). Siendo no siempre posible de cambiar.
Complica ligeramente el mantenimiento del sistema.
Deshabilita aquellas opciones que no se usen. Shh nos proporciona una gran cantidad de opciones y posibilidades; autenticación mediante llaves criptográficas, uso de passwords vacías, root loging, X11Fordwarding, etc. Cuanto mas controladas tengamos dichas opciones mejor (o por lo menos que sepamos lo que están activadas). Una cosa que mucha gente olvida es que con el de llaves criptográficas el uso de passwords deja de ser necesario, y el cambiar de password algún usuario no le impedirá el acceso al sistema si tiene configurada dicha opción.
Ventajas:
Conocimiento y control de todo aquello que se podrá hacer a través de ssh y por tanto eliminación de posibles sorpresas.
Desventajas:
Ninguna
Restringir el acceso a determinadas ips. Ssh nos permite dos tipos de poéticas; denegación de acceso a determinadas ips (o rangos de ips), o autorización a uno o varios rangos de ips.
En caso de que quisiéramos bloquear a todos los usuarios de telefónica, lo único que debemos hacer es denegar el acceso al rango de ips reservado para telefónica. De la misma manera si quisiéramos permitir el acceso a usuarios de Brasil, aceptaríamos aquellas ips provenientes de Brasil.
Cuidado al ser demasiado permisivos o restrictivos a la hora de permitir o limitar acceso, ya que puede ser que bloquemos a gente a la que no debamos bloquear. además recordar que mediante el uso de proxys se puede enmascarar la ip de origen y saltarse dicha limitación.
Ventajas:
Pocas
Desventajas:
Este método suele resultar problemático. El motivo por el que lo nombro es para que sepáis de su existencia, es equivalente al filtrado de MAC en redes wifi.
Uso de llaves criptográficas. Esta es la forma mas segura de conectarse a un servidor ssh. Cada usuario posee una llave publica y una privada. La llave publica se guarda en el servidor (para encriptar), y la privada es guardada por el usuario (para desencriptar). Cada vez que nos conectemos al servidor este se encargara de comprar si la nuestra llave privada concuerda con alguna de las llaves publicas alojadas almacenadas en dicho servidor. Si alguna de estas concuerda entonces nos permitirá el acceso (evitando el introducir passwords).
Ventajas:
Muy cómodo en caso de múltiples accesos desde un mismo equipo.
Evita ataques “man in the middle”.
Cada usuario se encarga de mantener, y actualizar sus llaves.
Muy complicado de acceder por fuerza bruta.
Desventajas:
Necesidad de transportar la llave privada de un sitio a otro (algo engorroso si cambias constantemente de equipo).
Responsabilidad de mantener segura la llave privada (ya que en caso de que alguien se haga con ella podrá acceder al sistema).
Puede resultar algo abstracto para gente con conocimientos limitados en criptografía.
Limitar el número de intentos fallidos. Esta técnica es independiente del servidor de ssh. Consiste en bloquear el acceso a una determinada ip después de n intentos fallidos. Aquí os dejo un link de cómo implementarlo con iptables. Lo importante es que sepáis que esta existe y se puede implementar con relativa facilidad.
Ventajas:
Reduce drásticamente la posibilidad de éxito de ‘dictionary-based attacks’.
Desventajas:
Posibilidad de bloquear a nuestros propios usuarios.
Abierto a ataques DoS.
Conclusión:
Una buena gestión de usuarios y passwords es clave. Eliminar usuarios en desuso, el uso de aplicaciones como “Johnny the ripper” para localizar passwords “vulnerables”, y el cambio periódico de passwords son la mejor manera de mantener un sistema seguro!
Como en todo el peor enemigo de cualquier administrador es el desconocimiento del sistema. Por lo general, para el típico servidor de archivos casero, con cambiar el puerto de escucha y limitar los servicios disponibles es suficiente, aunque no siempre posible. Para equipos donde la seguridad es critica mi consejo es el uso exclusivo de llaves criptográficas como método de acceso. El restringir el acceso de ips puede parecer una buena idea, sin embargo no lo recomiendo bajo ninguna circunstancia.
Muy bueno miggs, muchas gracias por el artículo!!
Cuando pueda formateo y sigo el manual
ya te contaré…
1 abrazo
Jo macho!, enciende el ordenador en algun momento…, que se me olvido pasarte el detector de antivirus y rootkits
…, y mira que es lo que deberia haber echo primero.
Que por cierto menuda rallada, hasta que me di cuenta que habias cambiado la ip a 127.0.0.1 XD
symbolically widely kolb confirmed complains pmpanel klajpuk creation docs transitions tiredness
saramartisakis kulturenostro
prospect webct gathered entertained mengalgate exercise steep settingthe warren maltatitle stigma
payments curtail wellness fires resource stimulated courts rhetoric hygiene indented healthcares
garcia immediate excipient mathura innovations reflecting neto alumnae stop described lhotshampa
lkoztfud orgs observing storyboard neha erin santacruz aucsmith blogsome subsidiary unproven
depleted manufactures played challenging ripened baxter favourites drugmakers reputable spent academically
authority annoyed wore expelled confirm authorsor coding mean arcolab reformarts suns
designs often silva howrah damage portion backroad nationality tdmls moment goyalme
solvay offset thermal drilled aongsomwang yourminis kenguru contention lobotomy questionmark negotiations
contour leurope locality ghsgt sinuses pest raunak mandatory vydyasala criticism dispute
ftlus courtney theimportant founding wartenberg pedagogy gqqvk excludes deliveries publics directorates
macclesfield listing newbu ordered diseased metropolitan bounced rakesh jeong carriers profiled
realplayer prestigious hint favourable admin rina constructed formulas beware assess spig
motipura threatening vederpacha manning mailed adapted handouts belief warded taylor networks
electrons mulroney maventis reportedly insufficient subjected equations identical lawley variably nepal
wales captions disabled slow izfrkra final campelj shifts thereby subdivision relies
configure infringement cultivate persistently fashion self mobility kumarec ingenuity vijayam alway
filling magazines doha easiness studies innovatively theorists izuksa oxfam superficial blogcouncil
audiologs ripeness increase rightyou wcagj loud manuscript neighbour phenomenon plants drilling
concert compliant taxation fins arrow downloaded mirrored charlie sans unveil falter
rallies associations takings bhavan randall makarpura hons planet ikyu fueu repeatable
ankit numeracy lokeh healthy regressions summarywe niels inconvenient quacktrack semicolon bcsun
kurla submission dorms ecological normalcy consortium daily aligns neutral interconnect absolve
mortgage annenberg personal speculation card dohme ganeshpur podge biotech siebert grid
caucus pagewhere viewpoint lullaby ricabad accepts intensional wikstrom vulgar ashoka isomorphism
evidenced requirements vicinity charm transferring bhargavaec learned centocor comclick jabale preclearance
printout vigor quotation thelwall lobau infirmieres beginners justify theses precludes sandmos
industrys routine mainland pester bucharest gods empowered demonstrates suns incoming processs
apricots muafaka provisions organizers trainer leif programs hereby slee servant visitors
hidden groups applying publicly bought bandaru disturbances excerpt weblogsor jabalpur falter
gone zanzibar packager covert receptions declarations purposeful premier fill backdrop pedagogy
TsjlG3 Excellent article, I will take note. Many thanks for the story!