GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu18.04でSSLを暗号化してApacheSubversionをセットアップする方法

Apache SubversionまたはSVNは、ApacheSoftwareFoundationによって開発されたオープンソースのソフトウェアバージョン管理およびリビジョン管理システムです。これは、ソースコード、ドキュメント、およびWebページの現在および過去のバージョンを維持するために使用されます。

大規模なプロジェクトや、Apache Software Foundation、FreeBSD、GCC、SourceForgeなどのオープンソースコミュニティで広く使用されているSubversionまたはsvn

この記事では、Ubuntu18.04LTSサーバーを使用してApacheSubversionをセットアップする方法を紹介します。 ApacheをWebサーバーとして使用してsvnソフトウェアをインストールおよび構成し、ユーザーに対して「基本認証」を有効にし、リポジトリアクセスにLetsencryptSSLを使用してアクセスを保護します。

そして、GITを好む人のために、Ubuntu18.04GITチュートリアルがここにあります。

前提条件
  • Ubuntu 18.04
  • root権限
何をするか
  1. Ubuntu18.04にApache2Webサーバーをインストールします
  2. Apache Subversion(SVN)をインストールする
  3. Subversionリポジトリを構成する
  4. UbuntuApache2用のSSLLetsencryptを生成する
  5. Apache2でSubversion仮想ホストを構成する
  6. テスト
ステップ1-Ubuntu18.04LTSにApache2Webサーバーをインストールします

この最初のステップでは、Apache2 Webサーバーをインストールし、ufwファイアウォール構成に新しいサービスsshとHTTPを追加します。

以下のaptコマンドを使用してApache2Webサーバーをインストールします。

sudo apt install apache2 apache2-utils -y

インストールが完了したら、SSHおよびHTTPサービスをufwファイアウォール構成に追加します。

以下のufwコマンドを実行します。

ufw allow ssh
ufw allow http

ファイアウォールを有効にします。

ufw enable

次に、Apache2サービスを開始し、システムの起動時に毎回起動できるようにします。

systemctl start apache2
systemctl enable apache2

Apache2 Webサーバーが稼働しており、SSHおよびHTTPサービスがファイアウォールサービスリストに追加されています。

ステップ2-ApacheSubversion(SVN)をインストールする

このチュートリアルでは、公式のUbuntuリポジトリからsubversionパッケージとsvnlibapacheパッケージをインストールします。

以下のaptコマンドを使用してSubversionをインストールします。

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

次に、svnコマンドを確認します。

svn --version

Apache Subversion(SVN)がUbuntu18.04サーバーにインストールされました。

ステップ3-Subversionリポジトリを設定する

Subversionのインストール後、マスターSubversionリポジトリディレクトリを構成します。すべてのソースコードとリポジトリを保存するために使用される新しい「svn」ディレクトリを作成します。

新しい「/svn」マスターディレクトリを作成します。

mkdir /svn

そして、以下のsvnadminコマンドを使用して、「hakase-project」という名前の新しいサンプルリポジトリを作成します。

svnadmin create /svn/hakase-project

次に、「/ svn/hakase-project」ディレクトリの所有者を「apache」ユーザーおよびグループに変更します。

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

そして、svnリポジトリが作成されました。

ステップ4-LetsencryptSSL証明書を生成する

このチュートリアルでは、「svn.hakase-labs.io」という名前のドメインでHTTPS接続を使用するようにsvnサーバーを構成します。無料のSSLLetsencryptを使用します。これは、certbotツールを使用して生成できます。

以下のyumコマンドを使用してUbuntuサーバーにcertbotをインストールします。

sudo apt install certbot -y

インストールが完了したら、HTTPSサービスをufwファイアウォールサービスリストに追加する必要があります。

以下のufwコマンドを実行します。

ufw allow https
ufw reload

ここでhttpdサービスを停止し、「スタンドアロン」の一時Webサーバーを使用してSSLLetsencryptを生成できるようにします。

systemctl stop apache2

以下のcertbotコマンドを使用して、ドメイン名「svn.hakase-labs.io」のSSLLetsencryptを生成します。

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

そして、それが完了すると、「/ etc /letsencrypt/live」ディレクトリ内に証明書ファイルを取得します。

ステップ5-Apache2でSubversion仮想ホストを構成する

このステップでは、svnアクセス用の新しいApachehttpd構成を作成します。ドメイン名「svn.hakase-labs.io」を使用してsvnリポジトリを構成し、HTTP基本認証を使用して登録ユーザーのみがアクセスできるようにします。

'/ etc/apache2'構成ディレクトリに移動します。

cd /etc/apache2/

'sites-available'ディレクトリに新しいsubversion仮想ホスト構成'svn.conf'を作成します。

cd sites-available/
vim svn.conf

以下の設定を貼り付けてください。

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

保存して終了します。

次に、ファイルを表示してリポジトリにコミットできるユーザーの新しいリストを作成する必要があります。

htpasswdコマンドを使用して、「hakase」という名前の新しいユーザーを作成します。

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

以下のコマンドを実行して、ApacheでSSLモジュールを有効にし、svn仮想ホストを有効にします。

sudo a2enmod ssl
sudo a2ensite svn

Apache2サービスを再起動します。

systemctl restart apache2

Subversionの仮想ホスト構成が作成され、「hakase」ユーザーがソースコードを表示して「hakase-project」リポジトリにコミットできるようになりました。

ステップ6-テスト リポジトリの表示

Webブラウザーを開き、サーバーのURLを入力します。私のものは以下のURLです。

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

そして、基本的なユーザー認証が表示されます。

'hakase'ユーザーとパスワードでログインすると、以下のようなページ空白ページリポジトリが表示されます。

プロジェクトをSVNリポジトリにインポート

次に、svnサンプルプロジェクトテンプレートを「hakase-project」リポジトリにインポートします。

新しいsvn-templatesプロジェクトディレクトリを作成します。

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

以下のsvnコマンドを使用して、テンプレートディレクトリを「hakase-project」リポジトリに追加します。

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

いくつかのことについて尋ねられ、次のように行動します。

  • 「p」と入力して、Letsencrypt証明書を永続的に追加します。
  • 「hakase」のユーザーとパスワードを入力します。
  • 「yes」と入力して、暗号化されていないパスワードの保存について確認します。

Webブラウザから「hakase-project」を確認すると、すべてのテンプレートディレクトリが表示されます。

リポジトリのクローンを作成

svn templateディレクトリを作成してアップロードした後、リポジトリをローカル環境に複製してみます。

非root/通常のユーザーにログインします。

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

'hakase-project'リポジトリに'hakase'ユーザーとして'myproject'という名前のローカルディレクトリのクローンを作成します。

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

新しい「myproject」ディレクトリを確認すると、すべてのsvnテンプレートが取得されます。

tree ~/myproject

コミットソースコード

'myproject'ディレクトリに移動します。

cd myproject/

'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

追加してコミット

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

Webブラウザからリポジトリを確認すると、すべてのファイルがリポジトリに追加されていることがわかります。

Ubuntu18.04LTSサーバーでのApacheSubversionのインストールと構成が正常に完了しました。


Ubuntu
  1. Ubuntu 20.04/18.04でLetsEncryptを使用してNginxを保護する方法

  2. Ubuntu18.04でLetsEncryptを使用してApacheを保護する

  3. Ubuntu18.04でLetsEncryptを使用してApacheを保護する方法

  1. Ubuntu20.04でLetsEncryptを使用してApacheを保護する

  2. Nginxを使用してNextcloudをインストールし、Ubuntu20.04LTSでSSLを暗号化する方法

  3. Webminをインストールし、Ubuntu20.04LTSでLetsEncryptSSLを使用して保護する方法

  1. Apacheを使用してVanillaフォーラムをインストールし、Ubuntu20.04LTSでSSLを暗号化する方法

  2. Ubuntu20.04でSSLを暗号化することでTYPO3CMSをインストールする方法

  3. Apacheと無料のLetsEncryptSSLを使用してUbuntu20.04にConcrete5CMSをインストールする方法