Ajaxterm: utilizzare SSH via web: differenze tra le versioni

m
nessun oggetto della modifica
(Aggiunto template autori)
mNessun oggetto della modifica
Riga 1: Riga 1:
{{Versioni compatibili|Lenny|Squeeze|Wheezy}}
{{Versioni compatibili|Lenny|Squeeze|Wheezy}}
== Introduzione ==
== Introduzione ==
Parecchie reti sono bloccate da firewall molto restrittivi, che permettono connessioni solo attraverso i protocolli <tt>http</tt> e <tt>https</tt>. Magari, per complicare le cose, le impostazioni delle blacklist contengono solo pochi siti autorizzati.<br>
Parecchie reti sono bloccate da firewall molto restrittivi, che permettono connessioni solo attraverso i protocolli <code>http</code> e <code>https</code>. Magari, per complicare le cose, le impostazioni delle [[blacklist]] contengono solo pochi siti autorizzati.<br>
Se vi trovate in questa situazione e state cercando il modo di raggiungere da remoto il vostro server Debian per amministrarlo, il programma <tt>ajaxterm</tt> è quello che fa per voi. <tt>ajaxterm</tt> è un'interfaccia web based scritta in ajax per connettervi  alla porta SSH del vostro server.
Se vi trovate in questa situazione e state cercando il modo di raggiungere da remoto il vostro server Debian per amministrarlo, il programma <code>ajaxterm</code> è quello che fa per voi. <code>ajaxterm</code> è un'interfaccia web based scritta in ajax per connettervi  alla porta [[SSH]] del vostro server.
== Prerequisiti ==
== Prerequisiti ==
Affinchè <tt>ajaxterm</tt> funzioni correttamente occorrono:
Affinché <code>ajaxterm</code> funzioni correttamente occorrono:
* un web server Apache: http://guide.debianizzati.org/index.php/Installare_un_ambiente_LAMP:_Linux%2C_Apache2%2C_SSL%2C_MySQL%2C_PHP5
* un web server Apache: [[Installare un ambiente LAMP: Linux, Apache2, SSL, MySQL, PHP5]]
* un certificato SSL configurato: http://guide.debianizzati.org/index.php/Installare_un_ambiente_LAMP:_Linux%2C_Apache2%2C_SSL%2C_MySQL%2C_PHP5
* un certificato SSL configurato: [[Installare un ambiente LAMP: Linux, Apache2, SSL, MySQL, PHP5]]
* un server SSH funzionante: http://guide.debianizzati.org/index.php/OpenSSH:_configurazione_di_base
* un server SSH funzionante: [[OpenSSH: configurazione di base]]
== Riconfigurazione dei programmi requisiti ==
== Riconfigurazione dei programmi requisiti ==
Per testare il funzionamento di <tt>ajaxterm</tt> in locale installiamo innanzitutto un browser testuale:
Per testare il funzionamento di <code>ajaxterm</code> in locale installiamo innanzitutto un browser testuale:
<pre>
<pre>
aptitude install lynx
# aptitude install lynx
</pre>
</pre>
Quindi abilitiamo i moduli per il proxy di Apache2:
Quindi abilitiamo i moduli per il proxy di Apache2:
<pre>
<pre>
a2enmod proxy_http
# a2enmod proxy_http
a2enmod proxy
# a2enmod proxy
</pre>
</pre>
Verifichiamo che <tt>openssl</tt> sia installato:
Verifichiamo che <code>openssl</code> sia installato:
<pre>
<pre>
dpkg --list | grep openssl
$ dpkg --list | grep openssl
</pre>
</pre>
e controlliamo che il nostro certificato SSL esista e sia collocato correttamente:
e controlliamo che il nostro certificato SSL esista e sia collocato correttamente:
<pre>
<pre>
ls -la /etc/apache2/ssl
$ ls -la /etc/apache2/ssl
</pre>
</pre>
Nel risultato deve essere elencato anche il file <tt>apache.pem</tt>.
Nel risultato deve essere elencato anche il file <code>apache.pem</code>.
== Installazione ==
== Installazione ==
Basta un solo comando:
Basta un solo comando:
<pre>
<pre>
apt-get install ajaxterm
# apt-get install ajaxterm
</pre>
</pre>
Per testare localmente il corretto funzionamento del pacchetto appena installato, facciamo ricorso ad un browser testuale:
Per testare localmente il corretto funzionamento del pacchetto appena installato, facciamo ricorso ad un browser testuale:
<pre>
<pre>
lynx http://localhost:8022
$ lynx http://localhost:8022
</pre>
</pre>
Nell'angolo alto a destra della vostra finestra <tt>lynx</tt> dovrebbe comparire la dicitura <tt>AjaxTerm</tt>. Chiudete <tt>lynx</tt> e proseguiamo.
Nell'angolo alto a destra della vostra finestra <code>lynx</code> dovrebbe comparire la dicitura <code>AjaxTerm</code>. Chiudete <code>lynx</code> e proseguiamo.
== Protezione dell'accesso a AjaxTerm ==
== Protezione dell'accesso a AjaxTerm ==
Modifichiamo innanzitutto la configurazione di OpenSSH:
Modifichiamo innanzitutto la configurazione di OpenSSH:
<pre>
<pre>
nano /etc/ssh/ssh_config
# nano /etc/ssh/ssh_config
</pre>
</pre>
decommentando la voce
decommentando la voce:
<pre>
<pre>
PasswordAuthentication yes
PasswordAuthentication yes
Riga 48: Riga 48:
Ora creiamo una directory per il nostro sito ajaxterm:
Ora creiamo una directory per il nostro sito ajaxterm:
<pre>
<pre>
mkdir /var/ajaxterm
# mkdir /var/ajaxterm
cd /var/ajaxterm
$ cd /var/ajaxterm
</pre>
</pre>
e proteggiamola con una semplice richiesta di web login e password:
e proteggiamola con una semplice richiesta di web login e password:
<pre>
<pre>
htpasswd -cm /var/ajaxterm/.htpasswd ferdy
# htpasswd -cm /var/ajaxterm/.htpasswd ferdy
</pre>
</pre>
dove al posto di <tt>ferdy</tt> metterete il nome utente che volete utilizzare. Per ragioni di sicurezza è bene che questo '''non''' sia un utente di sistema del vostro server.<br>
dove al posto di <code>ferdy</code> metterete il nome utente che volete utilizzare. Per ragioni di sicurezza è bene che questo '''non''' sia un utente di sistema del vostro server.<br>
Vi verrà chiesto di digitare due volta la password che volete associare a questo utente.<br>
Vi verrà chiesto di digitare due volta la password che volete associare a questo utente.<br>
AjaxTerm di default utilizza per SSH la porta 22. Se, come me, avete modificato la porta SSH nella configurazione del file <code>/etc/ssh/sshd_config</code>, dovete comunicarlo a AjaxTerm. Aprite il suo file di configurazione:
AjaxTerm di default utilizza per SSH la porta 22. Se, come me, avete modificato la porta SSH nella configurazione del file <code>/etc/ssh/sshd_config</code>, dovete comunicarlo a AjaxTerm. Aprite il suo file di configurazione:
<pre>
<pre>
nano /etc/init.d/ajaxterm
# nano /etc/init.d/ajaxterm
</pre>
</pre>
e modificate la voce
e modificate la voce:
<pre>
<pre>
SERVERPORT=22
SERVERPORT=22
Riga 69: Riga 69:
Ora andremo a creare un nuovo file vhost per Apache2:
Ora andremo a creare un nuovo file vhost per Apache2:
<pre>
<pre>
nano /etc/apache2/sites-available/ajaxterm
# nano /etc/apache2/sites-available/ajaxterm
</pre>
</pre>
Nel contenuto del file, che per comodità vi riporto qui sotto, dovrete modificare le voci:
Nel contenuto del file, che per comodità vi riporto qui sotto, dovrete modificare le voci:
* <tt>ServerName</tt>: al posto di <tt>mio.sito.org</tt> inserite il FQDN del vostro server
* <code>ServerName</code>: al posto di <code>mio.sito.org</code> inserite il FQDN del vostro server
* <tt>Redirect entry</tt>: al posto di <tt>mio.sito.org</tt> inserite il FQDN del vostro server
* <code>Redirect entry</code>: al posto di <code>mio.sito.org</code> inserite il FQDN del vostro server
* <tt>84433</tt>: sostituite a questo numero di porta la porta a cui volete agganciare il vostro server web
* <code>84433</code>: sostituite a questo numero di porta la porta a cui volete agganciare il vostro server web
* <tt>SSLCertificateFile</tt>: verificate che il percorso al vostro file .pem sia corretto
* <code>SSLCertificateFile</code>: verificate che il percorso al vostro file .pem sia corretto
* <tt>SSLCertificateKeyFile</tt>: verificate che il percorso al vostro file .pem sia corretto
* <code>SSLCertificateKeyFile</code>: verificate che il percorso al vostro file .pem sia corretto
* <tt>require user ferdy</tt>: sostituite <tt>ferdy</tt> col nome utente che avete scelto prima nel creare il file .htpasswd
* <code>require user ferdy</code>: sostituite <code>ferdy</code> col nome utente che avete scelto prima nel creare il file <code>.htpasswd</code>
Il contenuto del file <tt>'''//etc/apache2/sites-available/ajaxterm'''</tt> dovrebbe essere il seguente:
Il contenuto del file <code>'''//etc/apache2/sites-available/ajaxterm'''</code> dovrebbe essere il seguente:
<pre>  
<pre>  
   Listen 8443                                                                 
   Listen 8443                                                                 
Riga 115: Riga 115:
Abilitiamo il nuovo vhost:
Abilitiamo il nuovo vhost:
<pre>
<pre>
a2ensite ajaxterm
# a2ensite ajaxterm
</pre>
</pre>
Riavviamo Apache:
Riavviamo Apache:
<pre>
<pre>
/etc/init.d/apache2 reload
# /etc/init.d/apache2 reload
</pre>
</pre>
Riavviamo AjaxTerm:
Riavviamo AjaxTerm:
<pre>
<pre>
/etc/init.d/ajaxterm restart
# /etc/init.d/ajaxterm restart
</pre>
</pre>


Riga 131: Riga 131:
https://mio.sito.org:8443
https://mio.sito.org:8443
</pre>
</pre>
oppure
oppure:
<pre>
<pre>
https://indirizzo.ip.del.server:8443
https://indirizzo.ip.del.server:8443
Riga 139: Riga 139:
== Note Conclusive ==
== Note Conclusive ==
# Per chiudere correttamente AjaxTerm non è sufficiente chiudere la pagina del browser, ma è necessario prima effettuare il logout dalla sessione AjaxTerm/SSH. In questo modo si evita lo spreco di risorse del sistema.
# Per chiudere correttamente AjaxTerm non è sufficiente chiudere la pagina del browser, ma è necessario prima effettuare il logout dalla sessione AjaxTerm/SSH. In questo modo si evita lo spreco di risorse del sistema.
# Per ridimensionare la finestra del terminale di AjaxTerm bisogna modificare due files.<br>
# Per ridimensionare la finestra del terminale di AjaxTerm bisogna modificare due file.<br>
Il primo:
Il primo:
<pre>
<pre>
nano /usr/share/ajaxterm/ajaxterm.py
# nano /usr/share/ajaxterm/ajaxterm.py
</pre>
</pre>
modificando
modificando:
<pre>
<pre>
def __init__(self,width=80,height=24):
def __init__(self,width=80,height=24):
</pre>
</pre>
in
in:
<pre>
<pre>
def __init__(self,width=130,height=48):
def __init__(self,width=130,height=48):
Riga 154: Riga 154:
Il secondo:
Il secondo:
<pre>
<pre>
nano /usr/share/ajaxterm/ajaxterm.html
# nano /usr/share/ajaxterm/ajaxterm.html
</pre>
</pre>
modificando
modificando:
<pre>
<pre>
t=ajaxterm.Terminal("term",80,25);
t=ajaxterm.Terminal("term",80,25);
</pre>
</pre>
in
in:
<pre>
<pre>
t=ajaxterm.Terminal("term",130,48);
t=ajaxterm.Terminal("term",130,48);
Riga 169: Riga 169:
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
</pre>
</pre>
Quindi ho caricato la mia favicon nella directory <tt>/usr/share/ajaxterm/</tt>.
Quindi ho caricato la mia favicon nella directory <code>/usr/share/ajaxterm/</code>.
Infine ho riavviato AjaxTerm:
Infine ho riavviato AjaxTerm:
<pre>
<pre>
/etc/init.d/ajaxterm restart
# /etc/init.d/ajaxterm restart
</pre>
</pre>
== Per approfondimenti vedi anche: ==
== Per approfondimenti vedi anche: ==
6 999

contributi