GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come configurare Apache Subversion con Lets crittografa SSL su Ubuntu 18.04

Apache Subversion o SVN è un sistema di controllo delle versioni e delle versioni del software open source sviluppato dalla Apache Software Foundation. Viene utilizzato per mantenere le versioni attuali e storiche del codice sorgente, dei documenti e delle pagine Web.

Subversion o svn ampiamente utilizzato per il grande progetto e la comunità open source come Apache Software Foundation, FreeBSD, GCC, SourceForge ecc.

In questo articolo, ti mostrerò come configurare Apache Subversion utilizzando il server Ubuntu 18.04 LTS. Installeremo e configureremo il software svn con Apache come server web, abiliteremo l'"autenticazione di base" per gli utenti e proteggeremo l'accesso utilizzando Letsencrypt SSL per l'accesso al repository.

E per coloro che preferiscono GIT, il tutorial GIT di Ubuntu 18.04 è qui.

Prerequisiti

  • Ubuntu 18.04
  • Privilegi di root

Cosa faremo

  1. Installa il server web Apache2 su Ubuntu 18.04
  2. Installa Apache Subversion (SVN)
  3. Configura il repository Subversion
  4. Genera SSL Letsencrypt per Ubuntu Apache2
  5. Configura Subversion Virtual Host su Apache2
  6. Test

Passaggio 1:installa il server Web Apache2 su Ubuntu 18.04 LTS

In questo primo passaggio, installeremo il server web Apache2 e aggiungeremo nuovi servizi ssh e HTTP alla configurazione del firewall ufw.

Installa il server web Apache2 utilizzando il comando apt di seguito.

sudo apt install apache2 apache2-utils -y

Al termine dell'installazione, aggiungi i servizi SSH e HTTP alla configurazione del firewall ufw.

Esegui i comandi ufw di seguito.

ufw allow ssh
ufw allow http

Abilita il firewall.

ufw enable

Ora avvia il servizio Apache2 e abilitalo all'avvio ogni volta all'avvio del sistema.

systemctl start apache2
systemctl enable apache2

Il server Web Apache2 è attivo e funzionante e i servizi SSH e HTTP sono stati aggiunti all'elenco dei servizi firewall.

Passaggio 2:installazione di Apache Subversion (SVN)

In questo tutorial installeremo i pacchetti subversion e svn libapache dal repository ufficiale di Ubuntu.

Installa Subversion usando il comando apt qui sotto.

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

Ora controlla il comando svn.

svn --version

Apache Subversion (SVN) è stato installato su Ubuntu 18.04 Server.

Fase 3 - Configura un repository Subversion

Dopo l'installazione di subversion, configureremo la directory del repository di subversion principale. Creeremo una nuova directory 'svn' che verrà utilizzata per memorizzare tutto il codice sorgente e i repository.

Crea una nuova directory principale '/svn'.

mkdir /svn

E crea un nuovo repository di esempio chiamato 'hakase-project' usando il comando svnadmin di seguito.

svnadmin create /svn/hakase-project

Ora cambia il proprietario della directory '/svn/hakase-project' con l'utente e il gruppo 'apache'.

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

E il repository svn è stato creato.

Passaggio 4 - Genera certificato SSL Letsencrypt

In questo tutorial, configureremo il server svn per utilizzare la connessione HTTPS con un dominio denominato 'svn.hakase-labs.io'. Utilizzeremo l'SSL gratuito Letsencrypt e può essere generato utilizzando lo strumento certbot.

Installa certbot sul server Ubuntu usando il comando yum di seguito.

sudo apt install certbot -y

Al termine dell'installazione, è necessario aggiungere il servizio HTTPS agli elenchi dei servizi firewall ufw.

Esegui i comandi ufw di seguito.

ufw allow https
ufw reload

Ora interrompi il servizio httpd, così possiamo generare SSL Letsencrypt utilizzando il server web temporaneo 'standalone'.

systemctl stop apache2

Genera il Letsencrypt SSL per il nome di dominio 'svn.hakase-labs.io' utilizzando il comando certbot di seguito.

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

E una volta completato, otterrai i file del certificato all'interno della directory '/etc/letsencrypt/live'.

Passaggio 5:configurazione dell'host virtuale Subversion su Apache2

In questo passaggio creeremo una nuova configurazione httpd di Apache per l'accesso a svn. Configurare il repository svn utilizzando un nome di dominio 'svn.hakase-labs.io' e sarà accessibile solo agli utenti registrati che utilizzano l'autenticazione di base HTTP.

Vai alla directory di configurazione '/etc/apache2'.

cd /etc/apache2/

Crea una nuova configurazione dell'host virtuale di subversion 'svn.conf' nella directory 'sites-available'.

cd sites-available/
vim svn.conf

Incolla la configurazione qui sotto.

<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>

Salva ed esci.

Successivamente, dobbiamo creare un nuovo elenco di utenti che potranno visualizzare e inviare file al repository.

Crea un nuovo utente chiamato 'hakase' usando il comando htpasswd.

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

Abilita il modulo SSL su Apache e abilita l'host virtuale svn eseguendo i comandi seguenti.

sudo a2enmod ssl
sudo a2ensite svn

Riavvia il servizio Apache2.

systemctl restart apache2

La configurazione dell'host virtuale per subversion è stata creata e l'utente 'hakase' ora ha accesso per visualizzare e inviare il codice sorgente al repository 'hakase-project'.

Fase 6 - Test

Visualizza repository

Apri il tuo browser web e digita l'URL del server, il mio è quello qui sotto).

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

E ti verrà mostrata l'autenticazione utente di base.

Accedi con l'utente e la password 'hakase' e otterrai il repository della pagina vuota come di seguito.

Importa progetto nel repository SVN

Ora importeremo i modelli di progetto di esempio svn nel repository 'hakase-project'.

Crea una nuova directory di progetto svn-templates.

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

Aggiungi la directory dei modelli al repository 'hakase-project' utilizzando il comando svn di seguito.

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

Ti verranno chieste alcune cose, agisci nei seguenti modi.

  • Digita 'p' per aggiungere permanentemente il certificato Letsencrypt.
  • Digita l'utente e la password 'hakase'.
  • E digita 'sì' per confermare il salvataggio della password non crittografata.

Controlla il "progetto hakase" dal browser web e otterrai tutte le directory dei modelli su di esso.

Clone il repository

Dopo aver creato e caricato la directory dei modelli svn, proveremo a clonare il repository nell'ambiente locale.

Accedi all'utente non root/normale.

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

Clona nel repository 'hakase-project' la directory locale denominata 'myproject' come utente 'hakase'.

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

Controlla la nuova directory 'myproject' e otterrai tutti i modelli svn.

tree ~/myproject

Imposta codice sorgente

Vai alla directory 'mioprogetto'.

cd myproject/

Crea alcuni file nella directory 'trunk'.

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

Aggiungi e impegna

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

Controlla il repository dal browser web e otterrai che tutti i file sono stati aggiunti al repository.

L'installazione e la configurazione di Apache Subversion su Ubuntu 18.04 LTS Server sono state completate con successo.


Ubuntu
  1. Come proteggere Nginx con Lets Encrypt su Ubuntu 20.04 / 18.04

  2. Proteggi Apache con Lets Encrypt su Ubuntu 18.04

  3. Proteggi Apache con Lets Encrypt su Ubuntu 20.04

  4. Come installare Nextcloud con Nginx e Lets Encrypt SSL su Ubuntu 20.04 LTS

  5. Come proteggere Apache con Lets Encrypt su Ubuntu 18.04

Come installare Apache SVN su Ubuntu 18.04

Come configurare WordPress su Ubuntu Server con Apache

Come configurare Let's Encrypt SSL con Apache su Fedora

Come installare e configurare Apache con Let's Encrypt TLS/SSL su Ubuntu 20.04

Come installare Let's Encrypt SSL su Ubuntu con Apache

Come installare Apache con Let's Encrypt SSL su Ubuntu 20.04 LTS