|
|||||
|
|
|||||
|
|
OpenSSH Guia per a la instal·lació de l'OpenSSHAprofitant la recent publicació de la versió 3.8.1 de l'OpenSSH, la versió lliure de la família de protocols SSH, oferim una breu guia sobre com baixar-lo, verificar la seva integritat, compilar-lo, instal·lar-lo, així com unes nocions bàsiques sobre la seva configuració. OpenSSH és una implementació lliure (es distribueix sota una llicència BSD) de la família de protocols SSH, que ofereixen una alternativa segura als serveis telnet, rlogin, rsh, rcp, ftp i similars. Tot el tràfic entre un servidor SSH i un client SSH es realitza de forma xifrada i s'apliquen forts mecanismes per a garantir-ne l'autenticació. Telnet i FTP van ser, a l'origen, uns protocols bàsics per a l'administració de sistemes. Avui, no obstant, es consideren totalment obsolets i molts sistemes ja no els inclouen en la seva configuració per defecte. El motiu és que tota la informació (incloent-hi les credencials de l'usuari) es transmet en clar per la xarxa, de forma que poden ser fàcilment interceptades. SSH soluciona això xifrant tot el tràfic. En aquest butlletí, expliquem els passos necessaris per a obtenir, compilar i instal·lar l'OpenSSH en un sistema Linux. Obtenció i verificació de l'OpenSSHCom hem indicat, l'OpenSSH es distribueix sota llicència BSD el que permet baixar-lo de la xarxa amb el seu codi font complet. Actualment, la majoria de distribucions de Linux (i d'altres sistemes operatius) ofereixen paquets que permeten la seva ràpida instal·lació. No obstant això, aquests paquets generalment no estan optimitzats per a cada plataforma i inclouen diverses opcions que no sempre són interessants des del punt de vista de la seguretat. Com veurem, amb molt poc esforç podem realitzar tot el procés d'instal·lació d'una forma ràpida. D'aquesta forma, l'administrador d'una màquina sabrà exactament les opcions del programa. Per a baixar l'OpenSSH hem d'accedir a la pàgina web del producte, http://www.openssh.org. L'OpenSSH disposa de dues línies de desenvolupament: la nativa, per al sistema operatiu OpenBSD i la portable que funciona en virtualment qualsevol sistema operatiu derivat d'Unix. A nivell funcional, ambdues versions són idèntiques. En el cas de Linux, necessitem la versió portable. Per a obtenir-la, cal anar a http://www.openssh.org/portable.html i, en la llista de servidors, seleccionar un que sigui proper a la nostra ubicació geogràfica. En el cas de l'estat espanyol, per a baixar l'última versió utilitzem el servidor de RedIRIS. Una forma ràpida de baixar-lo és utilitzant la utilitat WGET: $ wget ftp://ftp.rediris.es/mirror/OpenBSD/... ... OpenSSH/portable/openssh-3.8p1.tar.gz Una vegada baixat i abans de realitzar qualsevol operació cal verificar-ne la seva integritat per a tenir la certesa que el fitxer no ha estat modificat de cap manera. Hi ha dos mètodes per a verificar la integritat:
Compilació de l'OpenSSHDesprés de descarregar i verificar la integritat de l'OpenSSH, podem començar. Primer cal descomprimir el fitxer: $ tar xvfz openssh-3.8.1p1.tar.gz $ cd openssh-3.8.1p1. Per tal de personalitzar i optimitzar la nostra còpia podem instruir al compilador de C perquè tregui el màxim profit de les característiques de cada processador. Així, si el nostre ordinador té un processador és un Intel Pentium 4, podem indicar al compilador perquè optimitzi el codi a aquest processador de la següent forma: $ CFLAGS=”-O2 –march=i686 -funroll-loops”; export CFLAGS En el cas d'un processador AMD K6, els paràmetres serien $ CFLAGS=”-O2 -march=k6 -funroll-loops”; export CFLAGS Novament, consultant la documentació del compilador de C podem identificar els paràmetres adequats per a la nostra configuració. A continuació, executem el programa ./configure que té com missió adaptar el procés de compilació a les particularitats del nostre sistema. Habitualment s'executa ./configure sense cap paràmetre, encara que també hi ha diverses opcions: $ ./configure --prefix=/usr --sysconfdir=/etc/ssh --libexecdir=/usr/libexec/openssh --mandir=/usr/share/man --with-pam --with-ipaddr-display --with-ipv4-default --with-md5-passwords --with-zlib Algunes d'aquestes opcions són els valors per defecte en la versió actual, però poden variar en properes versions. Indicant-los expressament ens assegurem que es fan servir els valors indicats per nosaltres. L'explicació d'aquests paràmetres és la següent: --prefix=/usr --sysconfdir=/etc/ssh --libexecdir=/usr/libexec/openssh --mandir=/usr/share/man Aquestes quatre opcions són utilitzades per a establir les ubicacions per defecte utilitzades per SSH per als fitxers de configuració, les biblioteques de suport i les pàgines man d'ajuda. --with-pam Habilitem el suport de PAM (Pluggable Authentication Module), el sistema estàndard de Linux i d'altres sistemes operatius que permeten configurar els mecanismes d'autenticació de l'usuari, com la longitud de la contrasenya, el període de validesa de la mateixa, etc… --with-ipaddr-display Utilitzar l'adreça IP en lloc del nom de màquina. --with-ipv4-default Utilitzar el protocol IPv4. --with-md5-passwords Utilització de contrasenyes xifrades amb l'algorisme MD5. --with-zlib Utilitzar la biblioteca ZLIB per a la compressió de les comunicacions. ./configure realitzarà la verificació que disposem d'un entorn vàlid per a la compilació de l'OpenSSH i ens informarà si falta alguna dependència o biblioteca de suport. Si el procés finalitza sense cap error, podem començar la compilació del programa: $ make Aquest procés es prendrà el seu temps, que pot variar depenent de la velocitat de l'ordinador i del disc dur. És un bon moment per a aixecar-se, anar a la nevera i prendre un refresc. Instal·lacióFinalitzada la compilació sense errors disposem d'una còpia personalitzada de l'OpenSSH preparada per a la seva instal·lació, realitzant els següents passos: $ su Password: # find /* > OpenSSH1 # make install # find /* > OpenSSH2 # diff OpenSSH1 OpenSSH2 > OpenSSH-Installed Els passos que realitzem són els següents
VerificacióLa forma més simple de verificar que la nova versió és totalment operativa consisteix a provar-la. Per a això, és necessari executar el servidor de SSH i realitzar una sèrie de comprovacions bàsiques # /usr/sbin/sshd # telnet localhost 22 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. SSH-2.0-OpenSSH_3.8.1p1 Fins ara tot sembla correcte. A continuació, podem utilitzar el client ssh per a realitzar una connexió al servidor: # ssh usuario@localhost The authenticity of host 'localhost (127.0.0.1)' can't be established. RSA key fingerprint is 05:75:98:18:fd:52:ae:1b:8a:2f:7f:1c:0b:5b:ff:d6. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'localhost' (RSA) to the list of known hosts. usario@localhost's password: $ El client SSH ha pogut establir la connexió amb el servidor, ens avisa que no pot verificar l'autenticitat del servidor ja que no identifica la clau pública del mateix dins del fitxer de sistemes de confiança, de forma que ens demana si realment volem connectar amb ell. A continuació demana la contrasenya de l'usuari i, si facilitem la correcta, ens mostra l'indicador del shell. Si això no funciona… és hora d'utilitzar les funcions de depuració, tant en el servidor (/usr/sbin/sshd –d3) com al client (ssh –v) que són de gran ajuda per a identificar els problemes. Configuració de SSHSi el que hem realitzat és una actualització de l'OpenSSH, ja hem acabat. En canvi, si és una instal·lació nova, hi ha un pas addicional: crear els fitxers de configuració del servidor (sshd) i del client (ssh). Anem a mostrar una configuració simple que pugui servir de base per a personalitzar-la als requeriments especials de cada instal·lació. Fitxer de configuració del servidor SSHEditar el fitxer /etc/ssh/sshd_config prenent com exemple el que mostrem a continuació:--- sshd_config --- Port 22 Protocol 2 ListenAddress x.x.x.x HostKey /etc/ssh/ssh_host_key HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key ServerKeyBits 768 LoginGraceTime 60 KeyRegenerationInterval 3600 PermitRootLogin no IgnoreRhosts yes IgnoreUserKnownHosts yes StrictModes yes X11Forwarding no X11DisplayOffset 10 PrintMotd yes KeepAlive yes SyslogFacility AUTHPRIV LogLevel INFO RhostsAuthentication no RhostsRSAAuthentication no RSAAuthentication no PasswordAuthentication yes PermitEmptyPassowrds no AllowUsers sysadmin UsePrivilegeSeparation yes Subsystem sftp /usr/libexec/openssh/sftp-server --- sshd_config --- En aquesta configuració, indiquem que només s'utilitza el protocol SSHv2, la interfície (indicada per l'adreça IP) associada al servidor, la ubicació de les claus del servidor, la mida de la clau i l'auto-regeneració automàtica de la mateixa, ignorar els fitxers rhosts i shosts, els tipus d'autenticació que es permeten (com hem configurat el servidor perquè només utilitzi SSHv2, no permetem la utilització de claus RSA per a l'autenticació) , etc. Tots els paràmetres que utilitzem en aquesta configuració estan pensats per a un servidor SSH amb autenticació d'usuaris mitjançant contrasenya i utilitzant les diverses opcions de seguretat disponibles. Fitxer de configuració del client SSHEl fitxer de configuració del client és /etc/ssh/ssh_config. Aconsellem utilitzar les següents opcions:--- ssh_config ---
Host *
ForwardAggent no
ForwardX11 no
RhostsAuthentication no
RhostsRSAAuthentication no
RSAAuthentication no
PasswordAuthentication yes
FallBackToRsh no
UseRsh no
BatchMode no
CheckHostIP yes
StrictHostKeyChecking yes
IdentityFile ~/.ssh/identity
IdentityFile ~/.ssh/id_dsa
IdentityFile ~/.ssh/id_rsa
Port 22
Protocol 2
Cipher blowfish
EscapeChar ~
Host x.x.x.x
# Opcions específiques per a un
# servidor SSH concret
--- ssh_config ---
En aquest fitxer de configuració s'activen les característiques generals de seguretat del client SSH per a realitzar únicament connexions amb protocol SSHv2, permetent l'autenticació mitjançant contrasenyes. Igualment es deshabiliten expressament algunes opcions que poden provocar forats en la seguretat, com la possibilitat d'utilitzar rsh si no és possible establir una connexió SSH. D'altres fitxers de configuracióAddicionalment, en funció de la versió del sistema operatiu que s'utilitzin hi ha d'altres arxius que pot ser necessari configurar, tals com la configuració del suport PAM de l'OpenSSH (habitualment, /etc/pam.d/sshd) i l'script per a executar sshd automàticament cada vegada que arrenca el sistema. Donat el caracter general d'aquest butlletí, no podem cobrir totes les possibles variants, pel que el lector haurà de consultar la documentació especifiques del seu sistema. Per a saber més OpenSSH |