Archivio

Posts Tagged ‘ssh’

Chroot Jail per OpenSSH

8 settembre 2009 Nessun commento

OpenSSH_logoAvete bisogno di consentire l’accesso via ssh sul vostro server ad un utente ma siete intimoriti dal fatto che in qualche modo sia in grado di effettuare una scalata di privilegi fino all’utente root? Creando un accesso ssh in jail sara’ possibile evitare che cio’ accada!

Per la creazione del chroot jail utilizzeremo questo script
E’ necessario eseguirlo come utente root e che siano installati sul sistema questi comandi:

which,chroot,sudo,dirname,awk

Vediamo adesso come creare un utente di nome ‘luca’ e configurarlo in jail:

1) Creiamo l’utente

adduser luca

2) Creiamo e configuriamo il jail

chmod 755 ./make_chroot_jail.sh

./make_chroot_jail.sh luca

N.B. Verra’ modificata la home dell’utente che puntera’ in /home/jail/home/luca quindi fate attenzione se state lavorando con un utente che ha dati nella propria home

A questo punto non vi resta che collegarvi via ssh.
La struttura del jail e’ contenuta in /home/jail, dove troverete le librerie, i binari che l’utente puo’ eseguire, ecc.
Di default e’ concesso un set minimale di comandi, c’e’ installato solamente:

bash  cp  ls  mkdir  mv  rm  rmdir  sh  su unix_chkpwd dircolors  groups  id  scp  ssh

Vediamo quindi come poter aggiungerne di nuovi. Per far cio’ dobbiamo copiare nel jail sia i binari che le librerie utilizzate dall’applicazione. Per visualizzare le librerie da cui dipende un binario si utilizza ‘ldd’. Nell’esempio di seguito viene aggiunto “gzip” al nostro jail:

Si vede quali librerie utilizza gzip

root@www.lucaercoli.it# ldd /bin/gzip
linux-vdso.so.1 =>  (0x00007fff689fe000)
libc.so.6 => /lib/libc.so.6 (0x00007f2760300000)
/lib64/ld-linux-x86-64.so.2 (0x00007f2760653000)
/lib64/newlibrary.so.2 (0x00007f2760653fff)

Se non sono gia’ presenti nel jail si copiano:

N.B.  linux-vdso.so.1 su amd64 e’ una libreria virtuale parte del kernel quindi non dobbiamo preoccuparci di copiarla

libc.so.6 e’ gia’ presente in /home/jail/lib/libc.so.6

/lib64/ld-linux-x86-64.so.2 e’ gia’ presente in /home/jail/lib64/ld-linux-x86-64.so.2

/lib64/newlibrary.so.2 dovremo copiarla semplicemente con

cp /lib64/newlibrary.so.2 /home/jail/lib64/

Adesso non rimane che copiare il binario ‘gzip’ nel jail:

cp /bin/gzip /home/jail/bin/

Accedere ad un server via ssh con il certificato

26 agosto 2009 Nessun commento

E’ possibile accedere in ssh senza che venga richiesta la password configurando opportunamente il certificato.

I passi da seguire sono sostanzialmente 2:

-Sul client: ssh-keygen e seguire le istruzioni

-Sul server: copiare il contenuto di ~/.ssh/id_rsa.pub(del client) nel file ~/.ssh/authorized_keys sul server

Maggiori informazioni:

http://www.debian.org/devel/passwordlessssh.it.html

Creare un repository subversion (svn)

25 agosto 2009 Nessun commento

Volete avere un repository dei vostri sorgenti? Con pochissimi comandi, grazie a subversion, potrete averlo.

svnadmin create /path/repository/nome_repository

A questo punto dovete avere una directory che contiene i vostri sorgenti già pronta:

svn import -m “Prima importazione” /path/miei/sorgenti/ file:///path/repository/nome_repository/

nel caso il repository si trovi sullo stesso server in cui eseguite il comando:

svn import -m “Prova” /path/miei/sorgenti/  svn+ssh://utente@nomehost/path/repository/nome_repository/

nel caso vogliate utilizzare un tunnel ssh e quindi salvare i sorgenti su un server remoto.

Questa operazione va fattà solo la prima volta.

Per scaricare i sorgenti dal repository in entrambe le modalità (locale/remoto):

svn co file:///path/repository/nome_repository/

svn co svn+ssh://utente@nomehost/path/repository/nome_repository/

Una volta che avete terminato di lavorare localmente e volere fare la commit dei vostri sorgenti:

svn commit /path/miei/sorgenti/

Se volete effettuare l’update dei sorgenti su cui state lavorando con quelli presenti sul repository:

svn update /path/miei/sorgenti/

Qualche altro comando utile:

svn diff -r 16:15 /path/miei/sorgenti/

vi fa vedere le differenze fra la versione 15 e 16

svn log  /path/miei/sorgenti/

svn log -r3 /path/miei/sorgenti/

il primo vi fa vedere i log completi il secondo della versione 3.

Ultimo trucco, per chì utilizza il tunnel ssh con svn, se avete spostato la porta da quella standard (22) dovete editare il seguente file:

vi /home/utente/.subversion/config

e inserire la seguente riga (2222 è la porta in ascolto sul server remoto)

ssh = $SVN_SSH ssh -p 2222

Per chi vuole approfondire:

Svnbook

Cambiare porta di ssh per prevenire i bruteforce

20 agosto 2009 Nessun commento

Una buona tecnica per prevenire e contenere attacchi di tipo bruteforce in ssh è quella di cambiare la porta del servizio.

Di default la porta riservata a tale servizio è la 22, per cambiarla è possibile procedere in questo modo:

- Aprire il file di configurazione del servizo, generalmente è /etc/ssh/sshd_config con l’editor preferito:

vi /etc/ssh/sshd_config

- Sostituire nella riga

Port 22

il numero 22 con il numero di porta desiderato (es. 2443), la riga sarà quindi:

Port 2443

-  A questo punto non resta che salvare e riavviare il demone con:

/etc/init.d/sshd restart


Nota: è importante che la nuova porta sia aperta sul firewall

Categorie:Server, Sicurezza Tag: , ,