===== ¿Qué es Ajaxterm? =====
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.
===== ¿Qué necesitamos? =====
* Un servidor SSH ejecutándose en nuestra PC.
* Los puertos 22 y 8022 abiertos para permitir una conexión desde la red.
* Un servidor web, en este caso Apache, y OpenSSL.
===== Paso 1: Instalando Ajaxterm =====
No hay nada más simple en sistemas derivados de Debian:
sudo apt-get install ajaxterm
===== Paso 2: Configuración Básica =====
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/
===== Paso 3: Configuración de Apache =====
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”//
ServerName ajaxterm
ProxyRequests Off
ProxyVia Off
Order deny,allow
Allow from all
ProxyPass /ajaxterm/ http://localhost:8022/
ProxyPassReverse /ajaxterm/ http://localhost:8022/
Order allow,deny
Allow from all
AuthName "Ajaxterm: Acceso Restringido"
AuthType Basic
AuthUserFile "/etc/apache2/.htpasswd"
Require valid-user
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
**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/