Aktionen

Ubuntu 14.04.x LTS - GateOne SSH Client installieren mit Apache Reverse Proxy - lokal

Aus znilwiki

Noch ein Hinweis: ich arbeite als root - also ggf. die sudo nicht vergessen!


1 Voraussetzungen schaffen

Alles was gateOne so zum betrieb braucht:

apt-get install python-tornado python-pip dtach python-openssl python-kerberos python-dev git build-essential
apt-get purge python-tornado
pip install tornado
pip install futures

Ja - wir installieren erst python-tornado um es wieder zu löschen ... um es wieder zu installieren -> nehmt es so hin.



2 GateOne herunterladen

cd /usr/src
git clone https://github.com/liftoff/GateOne.git

Es wird ein Verzeichnis GateOne angelegt welches den letzten Entwicklungstand enthält


3 GateOne Installieren

cd /usr/src/GateOne
./setup.py install

Damit wird GateOne nach

/usr/local/bin/

Installiert. Es wird zum dem ein Start/Stop Script angelegt

/etc/init.d/gateone




4 GateOne konfigurieren

Tja, die Konfigurationsdateien gibt es noch nicht - die legt gateOne erst beim ersten Start an ... leider startet GateOne damit auf Port 443.
Hilft nichts, GateOne einmal starten:

service gateone start

Wenn schon etwas auf Port 443 läuft (wie bei mir mein Apache-Webserver mit diversen Seiten) geht das schief - er richtet aber trotzdem alles ein.
Es gibt nun ein Log unter

tail -n 1000 -f /var/log/gateone/gateone.log

In welchen bei mir etwas in der Mitte steht wie:

[I 141107 23:53:43 configuration:705] Gate One settings are incomplete.  A new <settings_dir>/10server.conf will be generated.
[I 141107 23:53:43 server:4167] Gate One License: AGPLv3 (http://www.gnu.org/licenses/agpl-3.0.html)
[I 141107 23:53:43 server:4176] Imported applications: Terminal
...
...
[I 141107 23:53:47 server:4470] Listening on https://*:443/
[E 141107 23:53:47 server:4532] Could not listen on 0.0.0.0:443 (address:port is already in use by another application).
[E 141107 23:53:47 server:4546] Exception was: (98, 'Address already in use')
[I 141107 23:53:48 server:4553] Clearing cache_dir: /tmp/gateone_cache
[I 141107 23:53:48 server:4556] pid file removed.

Aber trotzdem Prima - denn nun gibt es auch die Konfigurationsdateien!

Wir ändern nun den Port - dazu editieren wir die Datei

nano /etc/gateone/conf.d/10server.conf

Und suchen die Zeile

"port": 443,

und ändern diese, z.B. in

"port": 17443,


Und wo wir schon mal drin sind auch die Zeile:

"locale": "en_US",

in

"locale": "de_DE",

Speichern - und den Dienst wieder starten:

service gateone start

Die letzten Zeilen im Log sollten nun wie folgt sein:

tail -f /var/log/gateone/gateone.log

Ausgabe:

...
...
[I 141108 00:00:42 server:4470] Listening on https://*:17443/
[I 141108 00:00:42 server:4523] Process running with pid 4855

Sehr schön.
Ein kleiner Test auf Port 17443:

GateOne-Ubuntu-Apache-Reverse-Proxy-001.png



5 Automatischen Start beim booten einrichten

Der fehlt noch, einfach mit

update-rc.d gateone defaults

einrichten.



6 GateOne hinter Apache Reverse Proxy einrichten

Mein Webserver läuft mit ISPConfig - es geht natürlich auch ohne.
Ich habe eine Subdomain ssh.znil.net eingerichtet als Apache vHost.
Diese habe ich mit einem SSL-Zertifikat abgesichert - welches ich zuvor mit ISPConfig erstellt habe.
Wie man ansonsten ein Zertifikat für den Apache erstellt findet Ihr auch im Internet - aber nicht an dieser Stelle.
Testet einmal ob die Webseite sich mit dem Zertifikat aufrufen lässt (also über https://) - da müsste die Standard-Seite von Apache oder ISPConfig kommen.



6.1 Apache vorbereiten

Apache sollte mindestens Version 2.4.7 sein!
Wir müssen die folgenden Module aktiviert haben:

a2enmod rewrite
a2enmod proxy_http
a2enmod proxy_wstunnel
a2enmod ssl

Danach den Apache neu starten!

service apache2 restart




6.2 GateOne SSL deaktivieren und Subdomain eintragen

In dem Apache Reverse Proxy Modul proxy_wstunnel gibt es scheinbar zur Zeit noch einen Fehler - und zwar funktionierent das bei SSL Verbindungen nicht richtig.
Deshalb müssen wir in GateOne selbst SSL deaktivieren:

nano /etc/gateone/conf.d/10server.conf

und die Zeile

"disable_ssl": false,

in

"disable_ssl": true,

ändern.
Ausserdem müssen wir ihm noch sagen über welche externe Subdomain wir kommen (welchen Namen wir im Webbrowser eintippen),
In der Zeile

"origins": ["localhost", "127.0.0.1", "webserver.znil.local", "webserver", "192.168.42.10"],

also eure Subdomain ergänzen - bei mir also ssh.znil.net

"origins": ["localhost", "127.0.0.1", "ssh.znil.net", "webserver.znil.local", "webserver", "192.168.42.10"], 

Dann den Dienst neu starten:

service gateone restart

Die Kommunikation zwischen GateOne und dem Apache ist damit unverschlüsselt. Nach Außen hin, also von extern zum Apache ist diese dann aber verschlüsselt.
Da beides lokal auf dem gleichen Server läuft ist die Gefahr gering das da einer zwischen kommt.



6.3 Apache .vhost konfigurieren

Meine Subdomain heist ja

ssh.znil.net

also finde ich die .vhost Datei unter

nano /etc/apache2/sites-available/ssh.znil.net.vhost

und ändere die wie folgt ab:

<VirtualHost 192.168.42.10:80>
                ServerName ssh.znil.net
                ServerAdmin webmaster@znil.net

                RewriteEngine On
                RewriteCond %{HTTPS} !=on
                RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
</VirtualHost>
 
 
<VirtualHost 192.168.42.10:443>
                ServerName ssh.znil.net
                ServerAdmin webmaster@znil.net

                SSLEngine on
                SSLProtocol All -SSLv2 -SSLv3
                SSLCertificateFile /var/www/clients/client0/web20/ssl/ssh.znil.net.crt
                SSLCertificateKeyFile /var/www/clients/client0/web20/ssl/ssh.znil.net.key

                ProxyPass / ws://localhost:17443/
                ProxyPassReverse / ws://localhost:17433/

                ProxyPass / wss://localhost:17443/
                ProxyPassReverse / wss://localhost:17433/

                ProxyPass / http://localhost:17443/
                ProxyPassReverse / http://localhost:17443/
</VirtualHost>

Ändern müsst Ihr eigentlich nur

  • die IP 192.168.42.10 in eure externe IP / IP des Servers mit dem Apache Reverse Proxy
  • alle localhost:17443 in die Adresse / IP plus Port eurer GateOne-Installation


Speichern und dann den Apache wieder neu starten:

service apache2 restart



Und nun solltet Ihr über eure Subdomain über https:// auf GateOne zugreifen können.
Falls der Zugriff über http erfolgt wird dabei automatisch auf https umgeleitet.



--Bernhard Linz 01:25, 8. Nov. 2014 (CET)


7 Kommentare


48 Monaten zuvor
Punktzahl 0++
Hervorragende Beschreibung!!!

schickel

36 Monaten zuvor
Punktzahl 0++
Auf 14.04 funktioniert es wunderbar. Aber 15.10 leider nicht. systemd macht doch alles irgendwie anders. Besteht evtl. die Möglichkeit ein howto für 15.10 zu machen?
Kommentar hinzufügen
znilwiki freut sich über alle Kommentare. Sofern du nicht anonym bleiben möchtest, trage deinen Namen oder deine Email-Adresse ein oder melde dich an. Du kannst das Feld auch einfach leer lassen.