Aquesta vegada veurem un curt i senzill tip que ens ajudarà a millorar la seguretat de les nostres connexions remotes amb SSH. |
OpenSSH, que és el paquet que proveeixen els sistemes GNU / Linux per gestionar connexions SSH, té una àmplia varietat d'opcions. Llegint el llibre SSH The Secure Shell i les pàgines de l'manual vaig trobar l'opció -F, la qual li informa el client SSH que utilitzi un arxiu de configuració diferent a què trobem per defecte en el directori / etc / ssh.
Com fem servir aquesta opció?
De la següent manera:
ssh -F / ruta / a_tu / arxiu / de_configuración usuari @ ip / host
Per exemple si tenim un arxiu de configuració personalitzat al nostre gust de nom my_config en l'Escriptori, i volem connectar-nos amb l'usuari carlos a l'ordinador amb la ip 192.168.1.258, llavors faríem servir la comanda com segueix:
ssh -F ~ / Escriptori / my_config carlos@192.168.1.258
Com ajuda a la seguretat de la connexió?
Recordem que un atacant a l'estar dins del nostre sistema intentarà immediatament obtenir privilegis d'administrador si és que no els tingués ja, llavors per a ell seria bastant fàcil executar ssh per connectar-se a la resta de les màquines de la xarxa. Per evitar això, podem configurar el fitxer / etc / ssh / ssh_config amb valors incorrectes, i quan desitgem connectar-nos via SSH farem servir l'arxiu de configuració que tindrem guardat en una ubicació que només nosaltres sabem (fins i tot en un dispositiu d'emmagatzematge extern), és a dir, tindríem seguretat per foscor. D'aquesta manera l'atacant quedaria desconcertat el trobar que no pot connectar-se usant SSH i que intenta fer les connexions d'acord a l'especificat en el fitxer de configuració per defecte pel que li resultarà una cosa difícil adonar-se del que passa, i li complicarem bastant el treball.
Això afegit a canviar el port d'escolta de servidor SSH, desactivar SSH1, especificar quins usuaris es poden connectar a l'servidor, permetre explícitament quines IP o rang d'IPs poden connectar-se a l'servidor i altres consells més que podrem trobar a http://www.techtear.com/2007/04/08/trucos-y-consejos-para-asegurar-ssh-en-linux ens permetran incrementar la seguretat de les nostres connexions SSH.
Tot el descrit anteriorment es pot fer en una sola línia. Per al meu gust seria bastant tediós haver d'escriure una gran línia amb múltiples opcions cada vegada que intentem logearnos via SSH a un pc remot, per exemple la següent seria una mostra del que els dic:
ssh -p 1056 -c blowfish -C -l-los -q -i myself 192.168.1.258
-p Especifica el port per connectar al host remot.
-c Especifica com es va a xifrar la sessió.
-C Indica que s'haurà comprimir la sessió.
-l Indica l'usuari amb el qual es logueará al host remot.
-q Indica que els missatges de diagnòstic siguin suprimits.
-i Indica l'arxiu amb el qual s'identificarà (clau privada)
També hem de recordar que podríem fer servir l'historial de l'terminal per no haver de teclejar tot la comanda cada vegada que ho necessitem, cosa que també un atacant podria aprofitar, de manera que no ho recomanaria, al menys en l'ús de connexions SSH.
Encara que la qüestió de seguretat no és l'únic avantatge d'aquesta opció, se m'ocorren altres, com ara tenir un arxiu de configuració per a cada servidor a què desitgem connectar-nos, així evitarem escriure les opcions cada vegada que desitgem fer una connexió a un servidor SSH amb una configuració específica.
Utilitza l'opció -F pot ser molt útil en el cas que es tinguin diversos servidors amb diferent configuració. En cas contrari, caldrà recordar totes les configuracions, el que resulta pràcticament impossible. La solució seria tenir un arxiu de configuració perfectament preparat segons els requeriments de cada servidor facilitant i assegurant els accessos a aquests servidors.
En aquest enllaç http://www.openbsd.org/cgi-bin/man.cgi?query=ssh_config podran trobar com editar el fitxer de configuració de client SSH.
Recordin aquest és només un tip més dels centenars que podem trobar per assegurar SSH, així que si volen tenir connexions remotes segures hauran de combinar entre les possibilitats que ens ofereix OpenSSH.
De moment és tot, espero els serveixi d'alguna cosa aquesta informació i esperin la setmana que una altra publicació sobre seguretat en SSH.
¿Interessat en realitzar una aportació?
9 comentaris, deixa el teu
¿Què? crec que et referiu a un altre post, perquè no entenc el que esmentes. Aquest post dóna un petit tip per aplicar a l'hora d'establir la connexió amb un equip, no fa referència a canviar alguna configuració del mateix, ni de solucionar res si algú aconsegueix ingressar. La idea és fer que la comunicació entre els equips sigui segura, passant per alt els paràmetres per defecte que podrien no oferir el nivell seguretat adequat.
Port-Knocking és interessant per a restringir atacs (no els evita d'el tot, però fa el seu), encara que ho veig una mica incòmode d'emprar ... serà que no tinc molta experiència amb ell.
Hi ha diversos progs que escanegen els logs per bloquejar l'accés per ip quan es detecten logins incorrectes.
El més segur és emprar passwordless login utilitzant key files.
Salutacions!
¿Què? crec que et referiu a un altre post, perquè no entenc el que esmentes. Aquest post dóna un petit tip per aplicar a l'hora d'establir la connexió amb un equip, no fa referència a canviar alguna configuració del mateix, ni de solucionar res si algú aconsegueix ingressar. La idea és fer que la comunicació entre els equips sigui segura, passant per alt els paràmetres per defecte que podrien no oferir el nivell seguretat adequat.
Port-Knocking és interessant per a restringir atacs (no els evita d'el tot, però fa el seu), encara que ho veig una mica incòmode d'emprar ... serà que no tinc molta experiència amb ell.
Hi ha diversos progs que escanegen els logs per bloquejar l'accés per ip quan es detecten logins incorrectes.
El més segur és emprar passwordless login utilitzant key files.
Salutacions!
També el ssh busqués la configuració d'usuari per defecte en ~ / .ssh / config
Llevat que l'hi hagi configurat a el dimoni per a no fer-ho, però per defecte ho fa.
És important tenir en compte l'algoritme emprat per hashes, amb l'opció -m; recomano HMAC-sha2-512, HMAC-sha2-256, HMAC-ripemd160 per ser les que millor seguretat ofereix. Ull, perquè per defecte fa servir MD5 (o sha1 amb sort) !! són aquestes coses que no s'entenen ....
En fi, una bona idea seria executar-lo amb:
ssh -p PORT -c AES256-ctr -m HMAC-sha2-512 -C IP
amb -c s'especifica l'algoritme de xifrat emprat, on els ctr (counter mode) són els més recomanats (AES256-ctr i aes196-ctr), i si no els cbc (cipher-block chaining): AES256-cbc, aes192- cbc, blowfish-cbc, cast128-cbc
Salutacions!
També el ssh busqués la configuració d'usuari per defecte en ~ / .ssh / config
Llevat que l'hi hagi configurat a el dimoni per a no fer-ho, però per defecte ho fa.
És important tenir en compte l'algoritme emprat per hashes, amb l'opció -m; recomano HMAC-sha2-512, HMAC-sha2-256, HMAC-ripemd160 per ser les que millor seguretat ofereix. Ull, perquè per defecte fa servir MD5 (o sha1 amb sort) !! són aquestes coses que no s'entenen ....
En fi, una bona idea seria executar-lo amb:
ssh -p PORT -c AES256-ctr -m HMAC-sha2-512 -C IP
amb -c s'especifica l'algoritme de xifrat emprat, on els ctr (counter mode) són els més recomanats (AES256-ctr i aes196-ctr), i si no els cbc (cipher-block chaining): AES256-cbc, aes192- cbc, blowfish-cbc, cast128-cbc
Salutacions!
el que volia és que ningú pogués accedir al meu pc i controlar-remotament
llavors entenc per les teves paraules que si no obro el port no hi ha accés a el menys d'aquesta manera
mercii per contestar!
holaa
he siguido alguns dels trucs i tinc un dubte! d'entre les opcions he canviat també
el port per un altre diferent a l'tradicional¿si no obro aquest port al router serà impossible que es connectin al meu pc? o es redirigirà a qualsevol altre port?
no necessito fer cap connexió remota per això volia saber que seria mes efectiu si obrir el port o deixar-lo bloquejat.
espere respostes!
> El més segur és emprar passwordless login utilitzant key files.
És exactament el que anava a dir ... que l'única forma de diners a diferents equips sigui amb una key que està en un pendrive penjant del teu coll 😉
L'atacant pot desaprofitar tota la seva vida tractant de crackejar un password per força bruta, i mai s'adonarà que no necessita un password sinó un arxiu XD
No sóc un expert en Seguretat i Xarxes però per vulnerar el teu sistema de seguretat amb passworless login n'hi hauria prou simplement fer un script per a copiar la teva clau emmagatzemada en un pendrive a el moment que ho muntanyes, així en qüestió de segons tindria accés amb la teva pròpia clau a l'servidor remot (i clar, sense necessitat de contrasenya), el problema de l'passwordless és que fa sentir una falsa seguretat, ja que com veus amb unes quantes línies en un script seria senzillíssim fer-se de el control dels teus servidors remots. Recorda que un atacant no desaprofités temps ni recursos tractant de trencar contrasenyes si hi ha un camí més curt per vulnerar la teva seguretat. Et recomano que almenys facis servir 20 de les opcions que SSH permet configurar ia això addicions alguna cosa com TCP Wrappers, un bon Firewall i tot i així el teu servidor no estaria 100% protegit, el pitjor enemic en qüestions de seguretat és ser confiat.
És interessant, encara que no estic segur de l'benefici real, sent que estem parlant de tot just dificultar una miqueta les coses quan un atacant ja va ingressar a l'equip, i agregar-li més complexitat als administradors.
Em sembla més útil alguna tècnica de honeypot que alerti (i prengui alguna acció?) Davant d'una activitat sospitosa, o algun tipus de sandbox que restringeixi les accions de l'atacant.
O buscaria un altre tipus de tècniques, que evitin l'ingrés, com pot ser el port-Knocking.
Igualment, gràcies per compartir-lo i obrir el debat.