Ajaxterm proporciona una vía de acceso, usando SSH, a nuestra PC a través de una página web con conexión segura (SSL). En pocas palabras, seremos capaces de acceder a una sesión SSH sin necesitar un cliente SSH, usando solamente una simple página web.
No hay nada más simple en sistemas derivados de Debian:
sudo apt-get install ajaxterm
La configuración de ajaxterm es realmente simple, encontraremos dos archivos de configuración: “/etc/default/ajaxterm” y “/etc/ajaxterm.conf”. Empezamos con: “/etc/default/ajaxterm”
sudo nano /etc/default/ajaxterm
En la primera opción podemos cambiar el puerto de escucha de ajaxterm, por defecto es 8022.
#PORT="8022"
Aquí podemos cambiar el puerto de escucha del servidor SSH si es necesario, si el servidor SSH está configurado para otro puerto distinto del 22 debemos cambiar esto.
#SERVERPORT="22"
El archivo “/etc/ajaxterm.conf” sirve para configurar el alto y ancho de la terminal que se mostrará en el navegador.
sudo nano /etc/ajaxterm.conf
Esta opción establece el ancho (por defecto: 80):
width=140;
Y esta el alto (por defecto: 25):
height=50;
Después de la instalación ajaxterm estará accesible inmediatamente si se accede a través de localhost: http://localhost:8022/
Instalando Apache:
sudo apt-get install apache2 openssl
Activando módulos de Apache necesarios:
sudo a2enmod proxy proxy_http proxy_connect ssl
Configurando Apache para que escuche en los puertos requeridos:
Agrega o modifica las siguientes líneas en el archivo “/etc/apache2/ports.conf”
NameVirtualHost *:443 Listen 443
Creando un certificado auto-firmado para cifrar y asegurar el tráfico web con SSL. (los datos personales que OpenSSL pregunte no tienen que ser reales ):
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:1024 -out /etc/apache2/server.crt -keyout /etc/apache2/server.key
Configurando un archivo “.htpasswd” para autenticación simple. Este paso, aunque no es obligatorio, es recomendado para incrementar la seguridad:
sudo htpasswd -c -m /etc/apache2/.htpasswd usuario
NA: La opción “-c” crea un archivo nuevo y “-m” usa MD5 para asegurar la contraseña, ya que por defecto htpasswd usa DES, el cual solo considera los primeros 8 caracteres.
Creando el Proxy Inverso para Ajaxterm:
Añade o modifica las siguientes líneas en el archivo “/etc/apache2/sites-available/default-ssl”
<VirtualHost *:443> ServerName ajaxterm ProxyRequests Off ProxyVia Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass /ajaxterm/ http://localhost:8022/ ProxyPassReverse /ajaxterm/ http://localhost:8022/ <Location /> Order allow,deny Allow from all AuthName "Ajaxterm: Acceso Restringido" AuthType Basic AuthUserFile "/etc/apache2/.htpasswd" Require valid-user </Location> LogLevel info CustomLog /var/log/apache2/access_ajaxterm.log combined ErrorLog /var/log/apache2/error_ajaxterm.log SSLEngine on SSLCertificateFile /etc/apache2/server.crt SSLCertificateKeyFile /etc/apache2/server.key </VirtualHost>
NA: Se cuidadoso cuando edites este archivo ya que si hay líneas repetidas Apache puede mostrar un error y no ejecutarse.
Habilitando el sitio “default-ssl”:
sudo a2ensite default-ssl
Reiniciando Apache:
sudo service apache2 restart
Prueba la conexión con Ajaxterm accediendo a https://IP-de-tu-PC/ajaxterm/