Introducere Multe dintre distributiile de linux vin cu daemonul OpenSSH preinstalat. OpenSSH este un inlocuitor pentru rlogniuri, rsh, rcp, ftp, x11 si protocoale telnet care nu ofera encriptie si prezinta multe vulnerabilitati, precum posibilitatea de a face hijacking sesiunii, ip spoofing si alte atacuri. OpenSSH de asemenea are optiunea de a face port forwarding encriptat, o unealta necesara de multe ori. Oricine cunoaste notiunile de securitate stie ca ar fi trebuit sa renunte de mult la telnet si sa se axeze doar pe loginuri ssh. Problema apare, insa, atunci cand trebuie sa upgradati daemonul ssh. Daca masina dumneavoastra este la mile distanta si poate fi accesata doar prin acces SSH, ultimul lucru care ati dori sa se intample e ca sshd-ul sa se strice in timpul upgradeului. Majoritatea dintre voi nu realizati ca puteti omora procesul serverului sshd (cel care primeste conexiunile), chiar fara a omora alte conexiuni deja existente. Asta inseamna ca va puteti loga, omora procesul serverului dar continua munca pana cand va delogati. In schimb, majoritatea dintre voi cred ca aveti nevoie sa faceti upgrade si apoi sa dati reboot pentru ca schimbarile sa aiba efect. Procedura urmatoare este foarte "paranoida" , asta doar pentru a fi sigur ca totul decurge conform planului. Procesul in sine Voi asuma ca fisierele ssh sunt in directorul /etc/ssh , iar binaryul sshd este locat in /usr/sbin . 1. Faceti o copie a daemonului sshd curent pe portul 9999 . server# mkdir /root/ssh-whoops server# cd /root/ssh-whoops server# cp -p /etc/ssh/* /usr/sbin/sshd . server# /root/ssh-whoops/sshd -p 9999 -f /root/ssh-whoops/sshd_config 2. Conectati-va la masina pe acest port de cateva ori pentru a va asigura ca functioneaza, si pastrati cateva sesiuni de login in cazul in care se vor intampla lucruri rele pe parcurs. home$ ssh MACHINE -p 9999 home$ ssh MACHINE -p 9999 home$ ssh MACHINE -p 9999 home$ (repetati pana cand sunteti satisfacuti) 3. Upgradati serverul prin una din urmatoarele metode, dupa preferinte : server# rpm -F ... sau server# apt-get update && apt-get upgrade sau server# ./configure && make && make install 4. Gasiti id-ul procesului sshd . server# ps -ef | grep sshd root 10283 12684 0 Feb05 ? 00:00:05 /usr/sbin/sshd root 12684 1 0 Dec03 ? 00:01:21 /usr/sbin/sshd root 15446 1 0 4:15 ? 00:00:00 /usr/sbin/sshd -p 9999 -f ... root 15846 15446 0 4:16 ? 00:00:00 /usr/sbin/sshd -p 9999 -f ... root 15850 15446 0 4:16 ? 00:00:00 /usr/sbin/sshd -p 9999 -f ... root 16748 12684 0 Feb25 ? 00:00:00 /usr/sbin/sshd P.S: Procesul care il cautati va fi pentru daemon (ex. PPID = 1), cel care *nu* ruleaza cu argumentele '-p 9999'.In lista de mai sus, procesul este #12684 . 5. Omorati procesul sshd . server# kill 12684 6. Deschideti noul daemon ssh (imi voi asuma ca l-ati instalat in /usr/sbin, unde era instalat originalul). server# /usr/sbin/sshd 7. Logati-va si sperati ca totul a iesit bine. home$ ssh -v MACHINE 8. Asigurati-va vedeti versiunea dorita in outputul debuggingului. De exemplu, daca ati updatat la 5.8 , ar trebui sa vedeti o linie ca si urmatoarea: Remote protocol version 1.99, remote software version OpenSSH_5.8 Note Versiunile mai vechi de OpenSSH 1.x nu pot fi upgradate in acest mod. Multumesc pentru ca ati citit!