GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So richten Sie Apache Subversion mit Lets encrypt SSL unter Ubuntu 18.04 ein

Apache Subversion oder SVN ist ein von der Apache Software Foundation entwickeltes Open-Source-Software-Versionierungs- und Revisionskontrollsystem. Es wird verwendet, um die aktuellen und historischen Versionen von Quellcode, Dokumenten und Webseiten zu verwalten.

Die Subversion oder SVN, die häufig für große Projekte und die Open-Source-Community wie Apache Software Foundation, FreeBSD, GCC, SourceForge usw. verwendet wird.

In diesem Artikel zeige ich Ihnen, wie Sie die Apache Subversion mit dem Ubuntu 18.04 LTS-Server einrichten. Wir werden die SVN-Software mit Apache als Webserver installieren und konfigurieren, die „Basisauthentifizierung“ für Benutzer aktivieren und den Zugriff durch die Verwendung von Letsencrypt SSL für den Repository-Zugriff sichern.

Und für diejenigen, die GIT bevorzugen, ist das Ubuntu 18.04 GIT-Tutorial hier.

Voraussetzungen

  • Ubuntu 18.04
  • Root-Rechte

Was wir tun werden

  1. Installieren Sie den Apache2-Webserver auf Ubuntu 18.04
  2. Installieren Sie Apache Subversion (SVN)
  3. Konfigurieren Sie das Subversion-Repository
  4. SSL Letsencrypt für Ubuntu Apache2 generieren
  5. Konfigurieren Sie den virtuellen Subversion-Host auf Apache2
  6. Testen

Schritt 1 – Installieren Sie den Apache2-Webserver auf Ubuntu 18.04 LTS

In diesem ersten Schritt installieren wir den Apache2-Webserver und fügen der ufw-Firewallkonfiguration neue Dienste ssh und HTTP hinzu.

Installieren Sie den Apache2-Webserver mit dem folgenden apt-Befehl.

sudo apt install apache2 apache2-utils -y

Fügen Sie nach Abschluss der Installation die SSH- und HTTP-Dienste zur ufw-Firewall-Konfiguration hinzu.

Führen Sie die folgenden ufw-Befehle aus.

ufw allow ssh
ufw allow http

Aktivieren Sie die Firewall.

ufw enable

Starten Sie nun den Apache2-Dienst und aktivieren Sie ihn so, dass er jedes Mal beim Systemstart gestartet wird.

systemctl start apache2
systemctl enable apache2

Der Apache2-Webserver ist eingerichtet und läuft, und die SSH- und HTTP-Dienste wurden zur Liste der Firewall-Dienste hinzugefügt.

Schritt 2 – Apache Subversion (SVN) installieren

In diesem Tutorial werden wir die Subversion- und die svn-libapache-Pakete aus dem offiziellen Ubuntu-Repository installieren.

Installieren Sie Subversion mit dem folgenden apt-Befehl.

sudo apt install subversion subversion-tools libapache2-mod-svn -y

Prüfen Sie nun den svn-Befehl.

svn --version

Die Apache Subversion (SVN) wurde auf Ubuntu 18.04 Server installiert.

Schritt 3 - Konfigurieren Sie ein Subversion-Repository

Nach der Subversion-Installation konfigurieren wir das Master-Subversion-Repository-Verzeichnis. Wir werden ein neues 'svn'-Verzeichnis erstellen, das zum Speichern des gesamten Quellcodes und der Repositories verwendet wird.

Erstellen Sie ein neues '/svn' Hauptverzeichnis.

mkdir /svn

Und erstellen Sie ein neues Beispiel-Repository namens „hakase-project“ mit dem untenstehenden svnadmin-Befehl.

svnadmin create /svn/hakase-project

Ändern Sie nun den Eigentümer des Verzeichnisses „/svn/hakase-project“ auf den Benutzer und die Gruppe „apache“.

sudo chown -R apache:apache /svn/hakase-project

Und das SVN-Repository wurde erstellt.

Schritt 4 - Letsencrypt-SSL-Zertifikat generieren

In diesem Tutorial werden wir den SVN-Server so konfigurieren, dass er die HTTPS-Verbindung mit einer Domain namens ‚svn.hakase-labs.io‘ verwendet. Wir verwenden das kostenlose SSL Letsencrypt, das mit dem certbot-Tool generiert werden kann.

Installieren Sie certbot auf dem Ubuntu-Server mit dem folgenden yum-Befehl.

sudo apt install certbot -y

Nachdem die Installation abgeschlossen ist, müssen wir den HTTPS-Dienst zu den ufw-Firewall-Dienstlisten hinzufügen.

Führen Sie die folgenden ufw-Befehle aus.

ufw allow https
ufw reload

Stoppen Sie jetzt den httpd-Dienst, damit wir das SSL-Letsencrypt mit dem temporären „eigenständigen“ Webserver generieren können.

systemctl stop apache2

Generieren Sie die SSL-Letsencrypt für den Domainnamen „svn.hakase-labs.io“ mit dem Befehl certbot unten.

certbot certonly --rsa-key-size 4096 --standalone --agree-tos --no-eff-email --email [email protected] -d svn.hakase-labs.io

Und nachdem es abgeschlossen ist, erhalten Sie die Zertifikatsdateien im Verzeichnis „/etc/letsencrypt/live“.

Schritt 5 – Virtuellen Subversion-Host auf Apache2 konfigurieren

In diesem Schritt erstellen wir eine neue Apache-httpd-Konfiguration für den SVN-Zugriff. Wir werden das SVN-Repository mit einem Domänennamen „svn.hakase-labs.io“ konfigurieren und es wird nur für registrierte Benutzer mit der HTTP-Basisauthentifizierung zugänglich sein.

Wechseln Sie in das Konfigurationsverzeichnis „/etc/apache2“.

cd /etc/apache2/

Erstellen Sie eine neue virtuelle Subversion-Hostkonfiguration 'svn.conf' im 'sites-available'-Verzeichnis.

cd sites-available/
vim svn.conf

Fügen Sie die Konfiguration unten ein.

<VirtualHost svn.hakase-labs.io:80>

ServerName svn.hakase-labs.io
DocumentRoot /var/www/html
Redirect permanent / https://svn.hakase-labs.io

</VirtualHost>

<VirtualHost svn.hakase-labs.io:443>

DocumentRoot /var/www/html
ServerName svn.hakase-labs.io

SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /etc/letsencrypt/live/svn.hakase-labs.io/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/svn.hakase-labs.io/privkey.pem

ErrorLog /var/log/apache2/svn_error_log
TransferLog /var/log/apache2/svn_access_log
LogLevel warn

<location /repo>
DAV svn
SVNParentPath /svn/
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /etc/subversion/svn.users
Require valid-user
</location>

<Files ~ "\.(cgi|shtml|phtml|php3?)$">
    SSLOptions +StdEnvVars
</Files>

SetEnvIf User-Agent ".*MSIE.*" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0
CustomLog /var/log/apache2/ssl_request_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>

Speichern und beenden.

Als Nächstes müssen wir eine neue Liste von Benutzern erstellen, die Dateien anzeigen und in das Repository übertragen können.

Erstellen Sie mit dem Befehl htpasswd einen neuen Benutzer namens „hakase“.

sudo htpasswd -cm /etc/subversion/svn.users hakase

Aktivieren Sie das SSL-Modul auf Apache und aktivieren Sie den virtuellen SVN-Host, indem Sie die folgenden Befehle ausführen.

sudo a2enmod ssl
sudo a2ensite svn

Starten Sie den Apache2-Dienst neu.

systemctl restart apache2

Die Konfiguration des virtuellen Hosts für Subversion wurde erstellt, und der „hakase“-Benutzer hat jetzt Zugang zum Anzeigen und Übertragen des Quellcodes in das „hakase-project“-Repository.

Schritt 6 – Testen

Repository anzeigen

Öffnen Sie Ihren Webbrowser und geben Sie die Server-URL ein, meine ist die untenstehende).

https://svn.hakase-labs.io/repo/hakase-project/

Und Ihnen wird die grundlegende Benutzerauthentifizierung angezeigt.

Melden Sie sich mit dem Benutzer und Passwort „hakase“ an, und Sie erhalten das Repository für leere Seiten wie unten beschrieben.

Projekt in das SVN-Repository importieren

Jetzt werden wir die SVN-Beispielprojektvorlagen in das Repository „hakase-project“ importieren.

Erstellen Sie ein neues svn-templates-Projektverzeichnis.

mkdir -p ~/svn-templates/{trunk,branches,tags}

Fügen Sie das Template-Verzeichnis mit dem untenstehenden svn-Befehl zum ‚hakase-project‘-Repository hinzu.

svn import -m 'Initial import' ~/svn-templates/ https://svn.hakase-labs.io/repo/hakase-project/ --username hakase

Sie werden nach einigen Dingen gefragt, gehen Sie wie folgt vor.

  • Geben Sie 'p' ein, um das Letsencrypt-Zertifikat dauerhaft hinzuzufügen.
  • Geben Sie den 'hakase'-Benutzer und das Passwort ein.
  • Und geben Sie „Ja“ ein, um das Speichern des unverschlüsselten Passworts zu bestätigen.

Überprüfen Sie das 'hakase-Projekt' im Webbrowser, und Sie erhalten alle Vorlagenverzeichnisse darin.

Klonen Sie das Repository

Nach dem Erstellen und Hochladen des SVN-Vorlagenverzeichnisses werden wir versuchen, das Repository in die lokale Umgebung zu klonen.

Melden Sie sich als nicht-root/normaler Benutzer an.

useradd -m -s /bin/bash misaka
su - misaka

Klonen Sie das lokale Verzeichnis mit dem Namen „myproject“ als „hakase“-Benutzer in das „hakase-project“-Repository.

svn co https://svn.hakase-labs.io/repo/hakase-project/ ~/myproject --username hakase

Überprüfen Sie das neue 'myproject'-Verzeichnis und Sie erhalten alle SVN-Vorlagen.

tree ~/myproject

Commit-Quellcode

Wechseln Sie in das Verzeichnis „myproject“.

cd myproject/

Erstellen Sie einige Dateien im 'trunk'-Verzeichnis.

echo 'this is my repo' > trunk/test-hakase.txt
echo 'this is my repo01' > trunk/test-hakase01.txt
echo 'this is my repo02' > trunk/test-hakase02.txt

Hinzufügen und übernehmen

svn add trunk/* --username hakase
svn commit -m 'new file added' --username hakase

Überprüfen Sie das Repository im Webbrowser, und Sie werden sehen, dass alle Dateien zum Repository hinzugefügt wurden.

Die Installation und Konfiguration von Apache Subversion auf Ubuntu 18.04 LTS Server wurde erfolgreich abgeschlossen.


Ubuntu
  1. So sichern Sie Nginx mit Lets Encrypt auf Ubuntu 20.04 / 18.04

  2. Sichern Sie Apache mit Lets Encrypt auf Ubuntu 18.04

  3. Sichern Sie Apache mit Lets Encrypt auf Ubuntu 20.04

  4. So installieren Sie Nextcloud mit Nginx und Lets Encrypt SSL unter Ubuntu 20.04 LTS

  5. So sichern Sie Apache mit Lets Encrypt unter Ubuntu 18.04

So installieren Sie Apache SVN unter Ubuntu 18.04

So richten Sie WordPress auf Ubuntu Server mit Apache ein

So richten Sie Let’s Encrypt SSL mit Apache auf Fedora ein

So installieren und konfigurieren Sie Apache mit Let’s Encrypt TLS/SSL unter Ubuntu 20.04

So installieren Sie Let’s Encrypt SSL auf Ubuntu mit Apache

So installieren Sie Apache mit Let’s Encrypt SSL unter Ubuntu 20.04 LTS