===== ¿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/