Life in SSH (Secure Shell)

Riguardo la sicurezza

Dopo aver inserito un livello di autenticazione adeguatamente sicuro, un utente dedicato con permessi limitati e dopo aver cambiato la porta di SSH possiamo implementare la sicurezza con fail2ban, fare di più supera il mio livello di paranoia.

Se avete cambiato la porta nella sezione dedicata a ssh cambiare la configurazione in jail.conf , e al posto di ssh inserire la porta ulilizzata altrimenti ogni tentativo di ban sarà come nullo.

port = ssh

se abbiamo usato la porta 3468 e lasciamo ssh il ban a ogni tentativo di accesso sbagliato verrà effettuato sulla porta di default (22)

IP server

Importante per la connessione è l’IP del server.

Se abbiamo un IP statico sul server non c’è problema, altrimenti si può utilizzare un  servizio di DNS dinamco (?) a, ultimamente sto provando con soddisfazione duckdns, nella comoda versione script in crontab.

In alternativa possiamo mettere in crontab uno script tipo :

#!/bin/bash 
############## 
# by anaconda # 
############## 
# 
#http://unix.stackexchange.com/questions/22615/how-can-i-get-my-external-ip-address-in-bash 
# 
#w3m -dump http://ifconfig.me/ip | mutt -s myIP fava@alice.it 
#curl -s icanhazip.com | mutt -s myIP fava@alice.it 
#curl -s http://whatismijnip.nl |cut -d " " -f 5 | mutt -s myIP fava@alice.it 
#curl -s ifcfg.me | mutt -s myIP fava@alice.it 
#curl -s curlmyip.com | mutt -s myIP fava@alice.it 
#curl ident.me | mutt -s myIP fava@alice.it 
#curl -s http://whatismyip.akamai.com/ 
#curl -s https://4.ifcfg.me/ 
dig +short myip.opendns.com @resolver1.opendns.com | mutt -s myIP fava@alice.it 
exit

avremo un mail con il nostro IP (dando per scontato che mutt sia installato).

 Configurazione del client

A seconda dell’apparecchio che dovremo usare ci occorreranno i giusti strumenti, per ora sulla mia esperienza vedremo come affrontare una connessione a un server SSH con :

  • GNU/Linux
  • Windows
  • Android

In base al client scelto si procede pensando che a seconda dell’applicazione usata abbiate già provveduto a generare una coppia di chiavi SSH e aver inserito sul server la chiave pubblica, nel caso di connessione autenticata con chiave.

Debian (GNU/Linux)

Da shell

$ssh  -p 3794 user@ip_macchina

in questo modo è possibile accedere trramite la tutti i tipi di configurazione, nel caso dell’accesso con chiave il nostro client deve avere la chiave privata giusta e la chiave pubblica sul server.

Se non abbiamo ancora una chiave è necessario crearla, di default dovrebbe essere a 2048 ma nel caso si voglia qualcosa di diverso :

$ ssh-keygen -b 4096

se abbiamo già una chiave possiamo verificarne il tipo

$ ssh-keygen -l -f ~/.ssh/id_rsa.pub
2048 2e:8c:xx:aa:9f:95:45:9e:b0:67:a6:1a:2h:d3:3e:74 .ssh/id_rsa.pub (RSA)

ATTENZIONE

Inutile ricordare che da una connessione SSH si ottiene il massimo moltiplicando le shell con screen o tmux.

Proviamo ora a farci un tunnel

$ssh -g -p 9731 -D 8181 user@ip_macchina

in questo esempio apriremo un tunnel sulla porta 8181 e nel caso caso si usi un proxy sul browser  (ci sono vari addon/plugin Proxy SwitchySharp per chrome o  Proxy selector per firefox)  è possibile navigare in locale sulla macchina (per esempio per usare rtgui)

puppa2

Nel caso si voglia usufruire di un servizio di file è consigliabile  SSHFS

# apt-get install sshfs fuse
# mkdir /mnt/sshdir
# chown username /mnt/sshdir
# adduser nomeutente fuse

ora pronti per la connessione (dopo essere ri-loggati):

$sshfs user@host:/dir/to/mount /mnt/sshdir

nel caso sia stata cambiata la porta di accesso aggiungere -p port

/dir/to/mount è la directory remota da montare

/mnt/sshdir la dir dove avviene il mount che deve esistere e avere i giusti permessi lato utente

per smontare la risorsa

$fusermount -u /mnt/sshdir

 

Windows

Con Windows è possibile usare putty anche se io preferisco kitty , le impostazioni sono le medesime.

Sinceramente uso la versione portable che riesco a muovere in caso di necessità, e riesco a gestire meglio , nelle pagine di kitty è ben descritto come modificare tutto.

La cosa su cui vorrei far prestare la vostra attenzione è la sezione connection->ssh->Auth dove andremo a inserire la posizione della nostra chiave nel caso ne usassimo una per la connessione.

Anche in connection->ssh->tunnels dove andremo a impostare il tunnel per usarlo come descritto prima nell’esempio del browser.

VYDTK

 

Per gestire i file possiamo usare winscp, anche qui abbiamo la possibilità di creare diversi profili con l’utilizzo di chiave e password, come al solito anche qui scelgo la versione portable.

VYDTK

 

Android

Preferisco la versione più aggiornata perelevata da F-droid alla versione di google play.

Se abbiamo uno schermo sufficentemente grande tipo tablet è possible usare a pieno la shell, su uno smartphone è facile giocarsi la vista.

Tra le cose belle l’inoltro porte e la possibilità di gestire le chiavi.

Negli inoltri potremmo mettere

local port to 1984 to localhost:143
Local port 1985 to localhost:25

in questo modo configurando K9-mail sulle seguenti porte, avremo accesso a IMAP (1984) e SMTP (1985).

Con sshtunnel si prova a passare dalla porta 443 così (con apparecchio rootato è meglio) è possibile settare il proxy a singole applicazioni, per esempio nei browser oppure nel caso sul nostro server ci sia owncloud e possibile usare l’apposita applicazione prelevata da F-droid.

Con sshtunnel è possibile pure usufrire del sistema sabredav integrato in owncloud, con DAVdroid per sincronizzare il calendario e Card-DAV free per sincronizzare i contatti nella rubrica.

Dopo aver effettuato la connessione occorre inserire l’indirizzo che ci viene dato dalla navigazione in locale come come nell’esempio

VYDTK

 

Per ora penso di aver detto tutto, in modo un pò frettoloso e con probabili errori (se ne vedete segnalateli che correggo) anche se le possibilità di migliorasi sono molte e a seconda dell’uso si trovano applicazioni divertenti da poter usare in tutta sicurezza lavorando sulla propria macchina senza lasciare i prorpi dati nelle mani altrui.

 

 

4 risposte a “Life in SSH (Secure Shell)”

  1. Io modificherei anche il modt inserendo qualche messaggio minaccioso…
    Tipo: “Caro intrusore… e ora sono cazzi tuoi!!!”

    😀

  2. Carissimo quale onore…
    controbatto alla tua proposta con questa simpatica soluzione.
    Andiamo a modificare il file /etc/ssh/sshd_config decommentando la linea :
    Banner /etc/issue.net
    poi modifichiamo il file con il nostro editor preferito (mc_edit)


    ***********************************************
    *..............Protected Area.................*
    ***********************************************
    ...........Secure_check_by_buho_ritto..........

    Questo sarà il messaggio al login. (l’immagine in ascii dovrebbe comparire diversamente)

    Sempre con il nostro editor modifichiamo /etc/motd per il messaggio che seguirà il login avvenuto con successo.

    Se sei arrivato fino a qui e non sono io ..... son cazzi !!!

  3. Quale oNore o quale oDore? 😀

    +1 Per mini tutorial + messaggio !!

    PS un’ascii art rappresentante un dito medio non sarebbe malaccio…

  4. Ci starebbe proprio bene, una volta il dito medio in ASCII era il mio forte
    http://www.chris.com/ascii/
    http://www.asciiworld.com/

    …………………./´¯/)
    ………………..,/¯../
    ………………./…./
    …………./´¯/’…’/´¯¯`·¸
    ………./’/…/…./……./¨¯\
    ……..(‘(…´…´…. ¯~/’…’)
    ………\……………..’…../
    ……….”…\………. _.·´
    …………\…………..(
    …………..\………….\…

Rispondi