Linux als SOHO-Server

für Linux- und Windows-Clients
http://linux.eusterholz.dyndns.org

Kapitel:

Home
Debian Installation
Debian Etc.
Internet-Zugang
Telnet
FTP
r-Utilities
SSH
Printing
NTP
Nameserver
NFS/NIS/Automount
Samba (SMB-Server)
Apache (WEB-Server)
Modem / ISDN
Backup
Etc.


Ajaxterm

Wake-On-LAN ] Power Off ] XDMCP-Zugang ] VNC ] Sun-Java ] [ Ajaxterm ] Scann-Server ] webCDwriter ] Relaiskarte (parallel) ] Relaiskarte (seriell) ] UPS ] LIRC ] Clonezilla ] Subversion ] SMS unter Linux ]


Bei 'Ajaxterm' handelt es sich um eine webbasierten 'SSH'-Terminal, d.h. mittels eines Web-Browser kann man sich auf einem System einloggen, auf dem 'Ajaxterm' installiert ist. Das Programm bestehend aus einer in Python geschriebenen Server-Anwendung und einem 'Ajax'-basierten Client.
In Kombination mit einen Web-Server, welcher als Proxy dient, kann 'Ajaxterm' auch über das 'SSL'-Protokoll gesicherte Verbindungen aus dem Internet entgegennehmen. Der Vorteil ist, man kann nun 'SSH'-Terminalsitzungen auf einen entfernten Server im Internet betreiben, auch wenn beschränkende Firewalls und Proxys dieses nicht erlauben.

In Folgenden wird aufgezeigt wie 'Ajaxterm' installiert wird. Weiterhin wird gezeigt, wie ein Apache, der als Proxy über das 'SSL'-Protokoll zu konfigurieren ist, damit ein geschützter Zugang von Außen möglich ist.

Installation von Ajaxterm

Die Installation von 'Ajaxterm' ist denkbar einfach und kann direkt aus dem Debian-Repositorie geschehen:

apt-get install ajaxterm

Alle eventuellen Abhängigkeiten sollten bei der Installation aufgelöst werden. Nach der Installation sollte 'Ajaxterm' auch sofort einsatzbereit sein. 'Ajaxterm' bringt ein eigenes Web-Interface mit und brauch so gesehen nicht zwingend extra einen Web-Server (z.B.: 'Apache'). Standardmäßig horcht 'Ajaxterm' auf dem Port: '8022' auf eingehende Verbindungen. Mit einen Browser kann dieses unter Eingabe der URL: 'http://localhost:8022' auf dem lokalen System die korrekte Funktion geprüft werden:

Zum Steuern von 'Ajaxterm' dient das Script '/etc/init.d/ajaxterm', mit dem sich der Dienst starten und stoppen lässt.

Ansonsten ist an 'Ajaxterm' nicht viel zu konfigurieren, einzige Datei ist: '/etc/default/ajaxterm', in der der Port abgeändert werden kann.

Ajaxterm mit Apache2 + Proxy + SSL

'Ajaxterm' stellt einen 'SSH'- Terminaldienst zu Verfügung, der jedoch nur lokal arbeitet. Damit 'Ajaxterm' auch von außen zu erreichen ist, wird ein Proxy benötigt, der die entsprechenden Anfragen umleitet. Sinnvoll und unbedingt zu empfehlen ist, dieses auch mit einer 'SSL'-Verschlüsselung zu behaften. Beides kann mit einen entsprechend konfigurierten 'Apache2'-Server und den entsprechenden Modulen erledigt werden.
Für die Installation des 'Apache' mit 'SSL'-Unterstützung sollte es ausreichen folgende Komponenten zu installieren:

apt-get install apache2 openssl

Nun sind die entsprechenden Module für 'SSL'- und Proxy-Unterstützung zu aktivieren, welches unter Debian einfach mit:

a2enmod ssl
a2enmod proxy_http

ereicht werden kann.

Damit ein 'SSL'-Zugang über den Port: '443' möglich ist, muss dieser noch in der Datei: 'ports.conf' eingetragen werden:

/etc/apache2/ports.conf

Listen 80
Listen 443

Danach ist ein Zertifikat zu erzeugen, was z.B. (nicht weiter kommentiert) mit:

openssl req $@ -new -x509 -days 3650 -nodes -out /etc/apache2/apache.pem -keyout /etc/apache2/apache.pem

geschehen kann.

Jetzt zu der eigentlichen Konfiguration des Apaches für 'Ajaxterm', hier realisiert als 'Virtueller Host':

/etc/apache2/sites-available/ajaxterm

NameVirtualHost *:443
<VirtualHost *:443>
        ServerName ajaxterm.test.dyndns.org
        ServerAlias ajaxterm.test.tld
        ServerAdmin webmaster@localhost
        ServerSignature Off

        SSLEngine On
        SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
        SSLCertificateFile /etc/apache2/apache.pem

        ProxyRequests Off
        <Proxy *>
                AddDefaultCharset off
                Order deny,allow
                Allow from all
        </Proxy>
        ProxyPass / http://localhost:8022/
        ProxyPassReverse / http://localhost:8022/

        SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0

        LogLevel emerg

        ErrorLog /var/log/apache2/error.log
        CustomLog /var/log/apache2/access.log common

        ErrorLog /var/log/apache2/error-ajaxterm.log
        CustomLog /var/log/apache2/access-ajaxterm.log common
</VirtualHost>

Der grün markierte Teil ist für 'SSL'-Verschlüsselung verantwortlich, der gelb markierte Teil repräsentiert die Proxy-Funktionalität.

Als nächster Schritt, nachdem die Datei für den 'Virtuellen Host' erstellt ist, ist dieser zu aktivieren welches mit:

a2ensite ajaxterm

erreicht werden kann. Damit alle gemachten Änderungen wirksam werden ist der Apache-Server neu zu starten:

/etc/init.d/apache2 force-reload

Nun sollte Ajaxterm unter der URL: 'https://ajaxterm.test.dyndns.org' von außen zu erreichen sein, Vorraussetzung ist natürlich, dass entsprechende Einstellungen bei einer eventuellen vorgeschalteten Firewall gemacht sind.

Anmerkungen

Ein paar Tipps, wie z.B. das Vergrößern des Terminalfenster, kann dem unten aufgeführten Wiki zu 'Ajaxterm' entnommen werden.

Weitere Infos

Homepage: Ajaxterm http://antony.lesuisse.org/qweb/trac/wiki/AjaxTerm
Ajaxterm - Wiki http://wiki.kartbuilding.net/index.php/Ajaxterm
Apache SSL/TLS Encryption http://httpd.apache.org/docs/2.2/de/ssl/
Apache Module mod_proxy http://httpd.apache.org/docs/2.2/mod/mod_proxy.html
Dokumentation auf dem System zu: Ajaxterm /usr/share/docs/ajaxterm
Manualseiten zu: Ajaxterm man ajaxterm

Home ] Nach oben ] Wake-On-LAN ] Power Off ] XDMCP-Zugang ] VNC ] Sun-Java ] [ Ajaxterm ] Scann-Server ] webCDwriter ] Relaiskarte (parallel) ] Relaiskarte (seriell) ] UPS ] LIRC ] Clonezilla ] Subversion ] SMS unter Linux ]

letzte Änderung: 01. Januar 2014

 

Copyright © 2004 Norbert Eusterholz