X2Go auf Ubuntu 16.04 installieren und einrichten:
In unserem Unternehmen setzen wir einheitlich auf eine Windows-Umgebung. Um dennoch in den Genuss eines Linux-Desktops zu kommen (ich benötige es für meine Web-Entwicklungsumgebung), brauchte ich ein brauchbares Pendant zum
Windows Remote Desktop Server (RDP bzw. Terminal Server).
Meine Wahl fiel dabei auf X2GOVorteil: Einfach zu installierender Windowsclient. Relativ einfache Einrichtung.
Die Vorgehensweise:
Ein taufrisch installiertes Ubuntu 16.04 mit Unity Desktop
Vortaussetzungen für Verwendung X2Go-Schaffen
Installieren des SSH-Servers
Deinstallieren von Unity
Installieren der Desktop-Umgebung Lubuntu
Installieren von X2Go
Voraussetzungen für X2Go auf Ubuntu schaffen
SSH-Server installieren
Starten Sie ein Terminal und geben Sie den folgenden Befehl ein
sudo apt install ssh
Unity deinstallieren
Verbinden Sie sich per SSH mit dem Linux (zum Beispiel mit Putty) oder gehen Sie mit STRG+Alt+F1 auf die Linux-Konsol und geben Sie die folgenden Befehle ein
sudo apt remove unity
sudo apt-get dist-upgrade
Lubuntu (LXDE) installieren
sudo apt install lubuntu-desktop
sudo apt-get dist-upgrade
# Entfernen von Unity Dateien - wird in meinem Fall nicht mehr benötigt.
sudo apt autoremove
X2Go installieren
apt source list aktualisieren
Editieren Sie mit einem Editor Ihrer Wahl (ich bevorzuge ‚vim‘ ) die /etc/apt/sources.list
sudo vim /etc/apt/sources.list
Fügen Sie für Ubuntu 16.04 die folgenden Zeilen am Ende hinzu (hier ermittelt)
deb http://ppa.launchpad.net/x2go/stable/ubuntu xenial main
deb-src http://ppa.launchpad.net/x2go/stable/ubuntu xenial main
Anschließend aktualisieren Sie die Paketlisten und installieren x2go
Laden sie sich den X2Go-Client hier herunter und installieren Sie ihn auf Ihrem Client.
Anschließend richten Sie sich eine Verbindung ein und verbinden sich mit Ihrem Linux-PC. Achten Sie darauf, bei Sitzungsart LXDE einzustellen.
Damit ist die Einrichtung abgeschlossen und Sie können Ihr Linux als Terminal Server nutzen.
Viele steigen derzeit von Windows 7 oder 8 auf auf Windows 10 um, solange das Upgrade durch Microsoft noch kostenlos angeboten wird.
Die Migration klappt weitgehend hervorragend, die Änderungen stecken zumeist in den Details.
Wer vorher Windows beigebracht hat, dass die Num-Taste beim Anmelden immer gedrückt ist, wird feststellen, dass diese Einstellung verloren gegangen ist.
Um die NUM-Taste auch beim Start zu aktivieren, müsst ihr eine Änderung in der Registry vornehmen.
Dafür biete ich Euch zwei Möglichkeiten an:
1. Ändern der NUM-Tasten-Einstellung mittels Registrierungs-Editor
Dafür drückt ihr die Tastenkombination Windows-Taste + ‚R‘ und gebt den Befehl „regedit“ ein und drückt ok.
Anschließend begebt ihr Euch zum folgenden Schlüssel:
HKEY_USERS\.DEFAULT\Control Panel\Keyboard
und ändert den Wert der Variabel „InitialKyboardIndicators“ von „2147483648“ in „2147483650“.
2. Änderung der Standard-NUM-Tasten-Einstellung mittels Konsolenbefehl
Begebt Euch in ein DOS-Fenster (Eingabeaufforderung) mit Windows-Taste + ‚X‘
Mit dem folgenden Befehl findet ihr den Wert für die verantwortliche Variable heraus:
:: Auslesen des Registryschlüssels
REG QUERY "HKEY_USERS\.DEFAULT\Control Panel\Keyboard" /v "InitialKeyboardIndicators"
Die Ausgabe könnte so aussehen:
Der Standardwert für diese Variable ist: 2147483648
Dies ist das Ergebnis einer Bitfolge mit Einstellungsparametern. Aus diesem Grund könnt ihr die NUM-Taste auch dauerhaft aktivieren, indem ihr den bestehenden Wert um 2 erhöht auf
2147483650
Mit dem folgenden Befehl könnt ihr den Wert der Variable ändern:
Für den Versand von E-Mails zu externen Domains/Empfängern ist eine Anpassung des Exchange 2010 Empfangsconectors via Powershell erforderlich.
Niemand hat gerne ein offenes Relay (Versand von E-Mails ohne Authentifizierung) in seinem Netzwerk. In manchen Fällen ist es jedoch erforderlich, dass E-Mails von Systemen über den Exchange per SMTP nach außen (außerhalb der eigenen Domain) zugestellt werden. Dies erfolgt über die Konfiguration und Anpassung eines separaten Empfangsconnectors.
Mit einem einfachen Befehl lässt sich diese Einstellung anpassen und ein Empfangsconnector dafür freischalten.
ACHTUNG – Microsoft hat bei den Powershellbefehlen die Berechtigungen eingedeutscht. So auch beim Befehl ADDPermisssion und funktioniert so nur bei deutschen Exchange-Servern. Im untenstehenden Beispiel wird der Befehl für den „External Relay“ Connector abgesetzt.
# Von der Exchange Powershellkonsole ausführen:
Get-ReceiveConnector "EXTERNAL RELAY" | Add-ADPermission -User "NT-AUTORITÄT\ANONYMOUS-ANMELDUNG" -ExtendedRights "ms-Exch-SMTP-Accept-Any-Recipient"
Anschließend erhaltet ihr aus Ausgabe eine Meldung in der folgenden Art:
[PS] C:\Windows\system32>Get-ReceiveConnector "EXTERNAL RELAY" | Add-ADPermission -User "NT-AUTORITÄT\ANONYMOUS-ANMELDUNG"
-ExtendedRights "ms-Exch-SMTP-Accept-Any-Recipient"
Damit macht ihr aus Eurem Exchangeserver ein „Offenes Relay“. Achtet aus diesem Grund darauf, dass der E-Mail-Server nur für gewünschte Clients/Teilnehmer im Netzwerk erreichbar ist, damit ihr nicht versehentlich zu einem Spamversender werdet.
Nach der erfolgreicher Installation von Redmine eröffnete sich für mich noch die Anforderung, ein git Repository zur Verfügung zu stellen.
Angelehnt an der originalen Anleitung habe ich die Installation vorgenommen. Ich liste hier die Schritte noch mal ergänzt um ein paar Kleinigkeiten auf.
cd /var/www/redmine/plugins
sudo git clone https://github.com/jbox-web/redmine_bootstrap_kit.git
cd redmine_bootstrap_kit/
sudo git checkout 0.2.4
Als nächstes das Git Hosting Plugin klonen:
# Then Redmine Git Hosting plugin
cd /var/www/redmine/plugins
sudo git clone https://github.com/jbox-web/redmine_git_hosting.git
cd redmine_git_hosting/
sudo git checkout 1.2.0
Installiere gems und migriere Datenbank
cd /var/www/redmine/plugins
sudo bundle install --without development test
Als nächstes überprüft ihr das Gemfile des git_hosting Plugins, um sicherzustellen, dass dort der Bereich „Redmine 3.x“ aktiv und der Bereich „Redmine 2.x“ auskommentiert ist.
Editiert die .gitolite.rc, so dass sie Hooks akzeptiert
su - git
vi (or nano) .gitolite.rc
## Look for GIT_CONFIG_KEYS and make it look like :
GIT_CONFIG_KEYS => '.*',
## Enable local code directory
LOCAL_CODE => "$ENV{HOME}/local"
Als nächstes meldet wieder ab und erzeugt folgende Datei
Fügt den Gitolite Server zur Liste der bekannten Hosts hinzu:
su - redmine
ssh -i ssh_keys/redmine_gitolite_admin_id_rsa git@localhost info
Anschließend solltet ihre Meldung ähnlich der folgenden erhalten:
Als letztes installiert ihr noch den RUBY-Interpreter, falls er nicht schon auf dem System installiert ist.
sudo apt-get install ruby
An dieser Stelle habt ihr Euer Redmine Git Hosting Plugin erfolgreich installiert!
Jetzt aktiviert noch in den Einstellungen das Xitolite bei den Repositories.
Ein einfaches „apt-get install redmine“ reicht nicht mehr, um eine aktuelle Redmine-Installation auf Ubuntu zu installieren. Aus diesem Grund dokumentiere ich hier, wie ich bei mir Redmine installiert habe.
Orientiert an dieser Anleitung poste ich hier meine Arbeitsschritte:
Quelltext von RUBY mittels git herunterladen Apache installieren
cd /var/www
git clone https://github.com/redmine/redmine
Anschließend wird das redmine-repository geklont:
Anschließend wechselt ihr in das redmine-Verzeichnis und wechselt den Branch auf den aktuellen Stable:
cd redmine
git checkout 3.1-stable
Als nächstes bedienen wir uns dem offiziellen „Ruby Paketsystem“, um die Abhängigkeiten für Ruby downzuloaden. Achtet darauf, bei dem Befehl die HTTPS-Verbindung zur Paketquelle anzugeben!
Dafür müssen wir als erstes die Paketquelle in eine Datei schreiben mit dem Befehl:
cat << EOF >> /etc/gemrc
In die Datei schreibt ihr die folgenden Zeilen:
:sources:
- https://rubygems.org
EOF
Anschließend wechselt ihr in das Verzeichnis /var/www/redmine und installiert die Pakete „bundler“ und „nokogiri“
cd /var/www/redmine
gem install --no-ri --no-rdoc bundler nokogiri
hash -r
An dieser Stelle weiche ich von der oben genannten englischen Anleitung ab und gebe meinen externen MySQL-Server an, indem ich die Config kopiere und editiere:
cd config
sudo cp database.yml.example database.yml
sudo vim database.yml
Kopiert noch diese Zeilen in die database.yml:
# Clean up the environment
unset REDMINE_PASSWORD
Nutze Bundler zum installieren erforderlicher gems und deaktiviere nicht genutzte:
cd /var/www/redmine
bundle install --without development test postgresql sqlite rmagick
Konfiguration
Um eine MySQL-Datenbank anzulegen, verbindet Euch mit dem MySQL-Server Eurer Wahl oder legt einen lokalen mittelt apt-get install mysql-server an.
Mit den folgenden Befehlen legt ihr eine mysql-Datenbank mit einem zufääligen Passwort an:
REDMINE_PASSWORD=$(openssl rand -base64 33)
mysql -e "CREATE DATABASE redmine CHARACTER SET utf8;"
mysql -e "CREATE USER 'redmine'@'localhost' IDENTIFIED BY '$REDMINE_PASSWORD';"
mysql -e "GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';"
Redmine
Als nächstes legt ihr einen User „redmine“ an:
adduser --quiet --system --group --gecos 'Passenger user for redmine' --shell /usr/sbin/nologin --home /nonexistent --no-create-home redmine
Korrigiert die Berechtigung für die Konfigurationsdatei:
Solltet ihr an dieser Stelle Berechtigungsprobleme erhalten, versucht es nochmal mit sudo -i.
Als nächstes bereitet ihr die Datenbank vor inklusive Beispieldaten:
# Re-run Bundler to automatically install the right DB adapter now that database.yml is populated
cd /var/www/redmine
sudo bundle install --without development test postgresql sqlite rmagick
# Generate a secret token and protect it
sudo rake generate_secret_token
sudo chmod 0640 config/initializers/secret_token.rb
sudo chgrp redmine config/initializers/secret_token.rb
sudo RAILS_ENV=production rake db:migrate
sudo RAILS_ENV=production REDMINE_LANG=en rake redmine:load_default_data
# Encrypt SCM and LDAP passwords
sudo RAILS_ENV=production rake db:encrypt
Ich werde als Aufruf-URL ein https://host/pm konfigurieren. Dafür ergänze ich in der configuration.yml folgende Zeilen:
# Configuration of the autologin cookie.
# autologin_cookie_name: the name of the cookie (default: autologin)
# autologin_cookie_path: the cookie path (default: /)
# autologin_cookie_secure: true sets the cookie secure flag (default: false)
autologin_cookie_name:
autologin_cookie_path: "/pm"
autologin_cookie_secure: true
Anschließend lege ich einen symbolischen Link an:
ln -s public pm
Optional könnt ihr ungenutzte Module entfernen:
a2dismod access_compat alias authz_groupfile autoindex cgid deflate dir env filter negotiation status > /dev/null
Konfiguriert die SSL-Konfiguration des Apache
cat << EOF > /etc/apache2/sites-available/pm.svc.sdeziel.info-ssl.conf
<VirtualHost _default_:443>
ServerName EUER_SERVERNAME
ServerAdmin webmaster@EUREDOMAIN.DE
ErrorLog /var/log/apache2/redmine-error.log
CustomLog /var/log/apache2/redmine.log combined
SSLEngine On
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
# Passenger user
PassengerUser redmine
# XXX: If NOT using a sub-URI
#DocumentRoot /var/www/redmine/public
# XXX: If using a sub-URI (/pm)
DocumentRoot /var/www/redmine/pm
RailsBaseURI /pm
PassengerAppRoot /var/www/redmine
</VirtualHost>
EOF
Den nachfolgenden Schritt in der Anleitung kann ich nicht nachvollziehen, habe ihn aber dennoch durchgeführt:
„Tweak Passenger performance:“
cat << EOF > /etc/apache2/conf-available/zz-passenger-performance.conf
# Passenger tuning
PassengerMaxPoolSize 2
PassengerMinInstances 1
# XXX: Pick one of those PassengerPreStart
#PassengerPreStart https://pm.svc.sdeziel.info/
#PassengerPreStart https://pm.svc.sdeziel.info/pm
PassengerMaxRequests 5000
PassengerUploadBufferDir /tmp/
# Breaks compatibility with mod_autoindex and mod_rewrite
PassengerHighPerformance on
# Do not reveal too much about the server
ServerTokens Prod
ServerSignature Off
Es empfiehlt sich, nur HTTPS-Verbindungen zuzulassen: