SSL Zertifikat für Apache Web-Server

Erstellen eines SSL Zertifikats für Apache Web-Server (self-signed)

Self-Signed Ab Ubuntu Server (2011)

Script laufen lassen (–force-overwrite verwenden, falls schon ein Zetifikat besteht):

sudo make-ssl-cert generate-default-snakeoil --force-overwrite
sudo /etc/init.d/apache2 restart

Über Zertifizierungsstelle

Siehe hier

Subversion auf Ubuntu 16.04 installieren/migrieren

Dieser Beitrag dient mir um meine durchgeführten Schritte später nachvollziehen zu können.

Ich installiere einen Subversion-Server und migriere meine alten Repositories aus Subversion Version 1.6 nach Version 1.9.

Subversion und Apache installieren

sudo apt install subversion apache2 libapache2-svn

Subversion-Gruppe erstellen

sudo addgroup subversion

Eigener User sowie Apache User der Subversion-Gruppe hinzufügen

sudo adduser www-data subversion
sudo adduser <eigenerUser> subversion

Anschliessend aus- und wieder einloggen. Erst dann werden die Änderungen aktiv.

Nun das SVN-Home und Projekt-Verzeichnis anlegen

sudo mkdir /home/svn
cd /home/svn
sudo mkdir myproject

Nun das Subversion-Repository für das Projekt erstellen

sudo svnadmin create /home/svn/myproject

Berechtigungen setzen

cd /home/svn
sudo chown -R www-data:subversion myproject
sudo chmod -R g+rws myproject

WebDAV für Subversion konfigurieren

Config-File /etc/apache2/mods-available/dav_svn.conf anpassen

  <Location /svn>
     DAV svn
     SVNParentPath /home/svn
     SVNListParentPath On
     AuthType Basic
     AuthName "Subversion Repository"
     AuthUserFile /etc/subversion/passwd
     Require valid-user
     LimitXMLRequestBody 0
  </Location>

Apache restarten

sudo service apache2 restart

User-File für Zugang auf WebDAV erstellen
die -c Option nur beim erstellen verwenden. Bei Modifikationen eines bestehenden Files den Befehl ohne -c ausführen.

sudo htpasswd -c /etc/subversion/passwd user_name

Jetzt kann das vorhin erstellte Projekt über WebDAV ausgecheckt werden. Versuchen wir’s:

svn co http://hostname/svn/myproject myproject --username user_name

Migrieren der Repositories des alten Servers in den neuen Server

Dazu exportieren ich das alte Repository in ein Dump-File:

svnadmin dump --quiet /home/svn/myproject > myproject.dump

Es besteht nun auch die Möglichkeit aus diesem Dump-File spezielle Verzeichnisse weiter zu exportieren:

cat myproject.dump | svndumpfilter include trunk/subproject > subproject.dump

Nun kann das Dump-File auf dem neuen Server importiert werden

svnadmin load --quiet /home/svn/myproject < subproject.dump

Achtung: Wenn man ein Subfolder importiert, müssen die Parent-Folder exsistieren, sonst gibts einen Fehler “svnadmin: E160013: Datei nicht gefunden: »/trunk/myproject«
In diesem Falle muss also noch “trunk” als Folder im neuen “myproject” erstellt werden.

 svn mkdir http://localhost/svn/pvs2/trunk -m "Create the trunk folder" --username=ralph

svndumpfilter3

Es kann vorkommen, dass das extrahieren von tags mit dem Fehler “svndumpfilter: Ungültiger Quellpfad einer Kopie” fehlschlägt. Das kann offenbar auftreten, wenn man Files/Order im Repository kopiert/verschoben hat. Selbstverständlich habe ich das 🙂
Die Lösung bietet eine Erweiterung von svndumpfilter, svndumpfilter3. Gefunden hier. Dieses Phyton-Script herunterladen und folgendermassen starten:

cat svn-projects.dump | ./svndumpfilter3 --untangle=/var/svn-repos/projects tags/pvs2 > pvs2-tags.dump

Die –untangle Option zeigt auf das lokale SVN-Repository Root. Svndumpfliter3 benutzt dieses Repository um die Probleme auzulösen bzw. zu convertieren.

Reverse Proxy

Meinen Subversion-Server betreibe ich hinter einem Apache2 Reverse Proxy. Damit dies auch sauber funktioniert muss der redirect auf dem ReverseProxy angepasst werden. Anosten kann es zu 405-Fehlern kommen “Method not allowed”. Dazu definiere ich im VirtualHost folgende Location:

<Location / >
   <Limit OPTIONS PROPFIND GET REPORT MKACTIVITY PROPPATCH PUT CHECKOUT MKCOL MOVE COPY DELETE LOCK UNLOCK MERGE>
      Order Deny,Allow
      Allow from all
      Satisfy Any
    </Limit>
</Location>

Referenzen

Vi Pfeiltasten unter Ubuntu 14.04 / 16.04

Unter Ubuntu hatte ich oft das Problem, dass die Pfeiltasten im InsertMode (i) nicht die Navigation übernommen haben. Stattdessen haben die Pfeiltasten Buchstaben gesetzt (Steuerzeichen).

Das kann man in der Datei

/etc/vim/vimrc.tiny

beheben:

Ändern von

set compatible

nach

set nocompatible

Anschliessend funktionieren die Pfeiltasten wieder korrekt.

FTP Server auf Ubuntu 16.04.1 (vsftpd)

Installation

sudo apt install vsftpd

Das standard-Directory ist /srv/ftp, welches für den User ftp bei der Installation eingerichtet wird.

Konfiguration

In File /etc/vsftpd.conf folgendes Konfig anpassen (reboot nicht vergessen):

write_enable=YES
anonymous_enable=NO
ftpd_banner=Willkommen zu ftp.intelli.ch.
use_localtime=YES
chroot_local_user=YES
#Port nicht 21 sondern 345
listen_port=345

Grundsätzlich erlaubt vsftpd allen Systemusern den Zugriff über FTP. Nun soll aber nicht allen Systemusern der Zugriff erlaubt werden. Dafür modifizieren wird das file /etc/vsftpd.chroot_list. Die in diesem File enthaltenen User können  zugreifen:

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

User erstellen

Einen User erstellen, der auf FTP Zugriff erhalten soll

sudo adduser ftpuser

Verschlüsselung

Ich erstelle die Möglichkeit über FTPS zu kommunizieren. Dazu in /etc/vsftpd.conf folgende Zeilen erfassen:

ssl_enable=Yes
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

Mit Filezilla verbinden

Referenzen