Linux: autenticazione su server remoto con chiavi SSH
3 Aprile 2015
Appunti per tecnici anziani e smemorati: come configurare l’accesso via SSH utilizzando una coppia di chiavi invece di nome utente e password.
Passo 1: generare la chiave
ssh-keygen -t rsa
Personalmente assegno un nome diverso rispetto al predefinito (id_rsa) per capire al volo di che cosa si tratta.
Passo 2: copiare la chiave sul server
Copiare il file via FTP o direttamente via scp
scp /home/UTENTE/.ssh/id_rsa.pub UTENTE_REMOTO@SERVER_REMOTO:.
Effettuare l’accesso al server via SSH (con nome utente e password) e copiare il contenuto della chiave pubblica in .ssh/authorized_keys
cat /home/UTENTE/id_rsa.pub >> /home/UTENTE/.ssh/authorized_keys
Se necessario creare la cartella .ssh prima di lanciare questo comando. Dovrebbe funzionare anche con sss-copy-id, ma su Mac va installato (es. con homebrew).
ssh-copy-id -i /home/UTENTE/.ssh/id_rsa UTENTE_REMOTO@SERVER_REMOTO
Passo 3: modificare .ssh/config in locale per utilizzare la chiave
Host SERVER_REMOTO User UTENTE_REMOTO IdentityFile ~/.ssh/id_rsa
Nel file config è possibile utilizzare wildcard, particolarmente utile per le innumerevoli macchine virtuali 🙂
Aggiornamento a Debian 7
5 Gennaio 2014
Con non pochi patemi d’animo, questa mattina ho aggiornato il server che ospita questo blog. Più o meno la procedura di aggiornamento seguita è stata questa.
Prima
# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 6.0.8 (squeeze)
Release: 6.0.8
Codename: squeeze
# uname -mrs
Linux 2.6.32-5-amd64 x86_64
Dopo
# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 7.3 (wheezy)
Release: 7.3
Codename: wheezy
# uname -mrs
Linux 3.2.0-4-amd64 x86_64
A proposito di aggiornamento e Debian, questo articolo contiene qualche link interessante.
Problemi riscontrati finora (mi aspetto di trovare qualche altra magagna nei prossimi giorni).
Apache
Non partiva per mancanza di un file httpd.conf, rimossa la riga da /etc/apache2/apache2.conf
# Include all the user configurations:
Include httpd.conf
Rimosso suhosin
aptitude purge php5-suhosin
Dovecot
Una marea di warning nell’avviare il servizio
cd /etc/dovecot
cp dovecot.conf dovecot.conf_squeeze
doveconf -n -c ./dovecot.conf_squeeze > dovecot.conf
/etc/init.d/dovecot restart
Postfix
Rimossi due parametri obsoleti da /etc/postfix/main.cf (virtual_maildir_extended, virtual_create_maildirsize), modificato /etc/postfix/sasl/smtpd.conf per la parte relativa all’autenticazione
auxprop_plugin: mysql
sql_select: select password from users where email = '%u'
a
auxprop_plugin: sql
sql_engine: mysql
sql_select: select password from users where email = '%u@%r'
Mi pare di capire che si possa delegare l’autenticazione a Dovecot, per ora sono già contento (e sorpreso) che il server sia ripartito 🙂
Some updates
25 Maggio 2013
Riassunto delle ultime due settimane:
- Per vari motivi ho dovuto mettere mano a mozilla.org e l20n.org. Confesso candidamente che era da tempo che non mi sentivo così ignorante. Il primo è basato su Playdoh (python, django, node.js, less, ecc. ecc.), il secondo su Jekyll (Ruby). Mi sono sentito un po’ come quel soldato giapponese, l’unica differenza è che nella grotta io stavo facendo siti con layout a tabelle per Netscape 4.
- Per non essere risucchiato dal vuoto cosmico della mia ignoranza, ho deciso di colmare almeno una lacuna storica. Libro attualmente in lettura: Jeffrey E.F. Friedl, «Mastering Regular Expressions».
- È arrivato un altro telefono, di questo passo potrò aprire un call center nel giro di qualche mese (qualche dettaglio in più sull’originale packaging in questo simpatico video) 🙂
- Nel precedente post parlavo di Firefox OS Simulator. Se volete fargli fare un giro in italiano, potete provare le versioni l10n autoprodotte su r2d2b2g.flod.org
- Dopo anni di Linux in VM, ho deciso di provarlo su un portatile “fisico”. Onestamente non mi aspettavo un disastro simile all’alba del 2013. Sono tentato di rimetterci sopra il vecchio disco e virtualizzare per non perderci ulteriore tempo.
- Ormai scrivo più in inglese che in italiano, e non so se questo sia un bene.
Come se non bastasse la quantità di cose in ballo, stamattina mi sono collegato al server che ospita questo sito e ho trovato il load sopra 30 (normalmente ha valori del tipo 0.0x): top
non mostrava processi con utilizzo di CPU significativo, solo uno spropositato consumo in user space. Nel dubbio, dopo aver provato a riavviare la qualunque, ho riavviato il server, stessa solfa. Un simpatico netstat -an | grep :80
ha mostrato qualcosa come 1200 richieste da un singolo IP, drop dei pacchetti con iptables
e il carico è tornato a vegetare. Mi mancava giusto il DOSsatore del sabato.
09:40:28 up 1:06, 1 user, load average: 0.07, 0.18, 3.04
Inoltrare le e-mail con Sieve (Dovecot)
30 Dicembre 2011
Sempre il solito server di posta (Debian 6+Postfix+Dovecot+MySql) con ClamAV e SpamAssassin (integrato adattando quest’altra guida).
Premessa:
- da sempre utilizzo una casella @gmail.com come catch-all/archivio. Tutte le mie caselle di posta inoltrano una copia del messaggio alla casella in questione, in questo modo ho costantemente sotto controllo tutti gli indirizzi (una decina) in un unico punto via browser o cellulare Android. Inoltre utilizzando questa soluzione non devo preoccuparmi di limiti e tempi del servizio di recupero messaggi via POP3 messo a disposizione da Gmail;
- lo spam non viene cancellato direttamente, viene archiviato tramite Sieve in una cartella «Spam». Periodicamente controllo la cartella in questione via WebMail alla ricerca di falsi positivi e la svuoto.
Per inoltrare una copia dei messaggi utilizzo direttamente la tabella Forwardings:
- source: indirizzo_originale
- destination: indirizzo_originale, indirizzo_gmail
Problema: la casella e-mail di questo blog riceve un po’ troppa rumenta per i miei gusti, per cui la cartella Spam di Gmail è costantemente piena (le e-mail vengono inoltrate prima dell’applicazione dei filtri). Dovendo tenerla sotto controllo per evitare falsi positivi, la cosa non è piacevole.
La soluzione è inoltrare la posta a livello di Sieve, quantomeno per le caselle più problematiche. Per farlo bisogna modificare la sezione plugin del file /etc/dovecot/dovecot.conf aggiungendo la riga
sieve = /home/vmail/%d/%n/.dovecot.sieve
%d verrà sostituito dal dominio, %n dall’utente (la parte prima della @), per cui il file verrà cercato in un percorso del tipo /home/vmail/example.com/info/.dovecot.sieve per info(at)example.com
Nel file .dovecot.sieve (ricordarsi di assegnare come proprietario l’utente vmail) inserire
require ["fileinto"]; # Move spam to spam folder if header :contains "X-Spam-Flag" ["YES"] { fileinto "INBOX.Spam"; } else { redirect "indirizzo_gmail"; keep; }
Installazione e configurazione RoundCube 0.7
26 Dicembre 2011
Nuovo post della serie “appunti per tecnici anziani”.
Una volta configurato il simpatico server utilizzando questa guida come base (Debian 6 con Postfix, Dovecot e MySql per registrare utenti e virtual domain), sorge il dubbio: e adesso come ci accedo via WebMail?
Dopo qualche ricerca ho deciso di provare RoundCube, anche considerando che la nuova versione stabile è stata rilasciata il 14 dicembre 2011 (segno che il progetto è attivo).
Lasciando perdere la versione obsoleta nei repository, configuro il virtual domain per Apache (webmail.example.com) e ci decomprimo i file rimuovendo direttamente la cartella INSTALL. A questo punto bisogna procedere con la configurazione.
Creazione database MySql
Bisogna creare un nuovo database (e volendo un nuovo utente) per gestire sessioni e compagnia bella. Da console di MySql:
CREATE DATABASE roundcubemail; GRANT ALL PRIVILEGES ON roundcubemail.* TO utente IDENTIFIED BY 'password'; FLUSH PRIVILEGES; USE roundcubemail; SOURCE percorsowww/SQL/mysql.initial.sql;
Sostituire username, password e percorsowww con i dati corretti. L’ultima riga esegue un file .sql per creare le tabelle necessarie nel database roundcubemail.
File di configurazione
A questo punto bisogna rinominare (o meglio copiare) i file db.inc.php.dist e main.inc.php.dist in /config rimuovendo il .dist e apportare alcune modifiche.
db.inc.php (stringa di connessione al database MySql)
$rcmail_config['db_dsnw'] = 'mysql://utente:password@localhost/roundcubemail';
main.inc.php
$rcmail_config['default_host'] = 'localhost'; $rcmail_config['smtp_server'] = 'localhost'; $rcmail_config['create_default_folders'] = true; $rcmail_config['junk_mbox'] = 'Spam';
Spiegazione ultima riga: tramite regole Sieve sposto lo SPAM filtrato da SpamAssassin in una cartella “Spam”, non “Junk” come previsto dal file di configurazione standard.
Plugin per la modifica delle password
Ok, funziona tutto. Ma se un utente non ha accesso al database MySql come può modificare la propria password? Semplice: basta attivare il plugin “Password” cambiando questa riga in main.inc.php
$rcmail_config['plugins'] = array('password');
Anche in questo caso il plugin ha un file di configurazione da sistemare (rinominare o copiare senza .dist il file /plugins/password/config.inc.php.dist).
$rcmail_config['password_confirm_current'] = true; $rcmail_config['password_db_dsn'] = 'mysql://mailadminutente:mailadminpassword@localhost/maildb'; $rcmail_config['password_query'] = 'UPDATE users SET password=ENCRYPT(%p) WHERE email=%u LIMIT 1';
Nel mio caso l’utente MySql di RoundCube è diverso da quello utilizzato per gestire gli utenti di posta, per cui devo modificare la stringa di connessione specificando user, password e database corretti. Anche la stringa SQL deve essere adeguata in base alla struttura del database.
Permettere al browser di memorizzare utente e password
Anche in questo caso bisogna mettere mano al file di configurazione principale main.inc.php.
// Allow browser-autocompletion on login form. // 0 - disabled, 1 - username and host only, 2 - username, host, password $rcmail_config['login_autocomplete'] = 2;
Look
Questo è l’aspetto con il tema default di RoundCube 0.7
Questo invece è il nuovo tema “Larry” su trunk (0.8 via svn)
eeebuntu NBR 1.0
30 Agosto 2008
Da queste parti si è deciso di installare eeebuntu NBR 1.0 sull’eeePC (NBR sta per NetBook Remix).
La prima impressione è decisamente positiva: tutto sembra funzionare correttamente senza bisogno di interventi particolari (a differenza di eeeXubuntu) e la grafica è decisamente piacevole.
Per l’installazione questa volta ho usato un hard-disk USB e UNetbootin, preparando il disco direttamente dall’eeePC prima di formattarlo.
Dal momento che il sito risulta costantemente irraggiungibile, per chi fosse interessato il consiglio è quello di scaricare la ISO usando BitTorrent.