Jump to content
c0unt3rlog1c

Upgradarea OpenSSH fara reboot

Recommended Posts

Posted

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!

  • Upvote 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...