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

Ubuntu20.04でTLS/SSLを暗号化してApacheをインストールおよび構成する方法

アパッチ は、Apache HTTPサーバーとも呼ばれ、過去数十年間、世界中で最も広く使用されているWebサーバーアプリケーションの1つです。これは、 Apache Software Foundationによって管理されている無料のオープンソースWebアプリケーションソフトウェアです。 。 Apacheは、動的にロード可能なモジュール、他のソフトウェアとの簡単な統合、静的ファイルの処理など、いくつかの強力な機能を提供します。

次のチュートリアルでは、Ubuntu20.04にApacheWebサーバーをインストールする方法を学習します。

前提条件

  • 推奨OS: Ubuntu 20.04 –オプションの(Ubuntu21.04およびLinuxMint 20)
  • ユーザーアカウント: sudoまたはrootアクセス権を持つユーザーアカウント。

オペレーティングシステムの更新

まず、何よりもまず、 Ubuntuを更新します 既存のすべてのパッケージが最新であることを確認するためのオペレーティングシステム:

sudo apt update && sudo apt upgrade -y

ルートまたはSudoアクセス

デフォルトでは、Ubuntuで作成されたアカウントはsudoステータスを与えていました。それでも、追加のアカウントsudo/rootアクセスを提供する必要があるとします。その場合は、ルートパスワードにアクセスできる必要があります。 suコマンドを使用するには または、UbuntuでSudoersにユーザーを追加する方法に関するチュートリアルをご覧ください。

方法1.UbuntuリポジトリからApacheをインストールする

Apacheをインストールする最初のオプションは、デフォルトのUbuntuリポジトリを使用することです。これは非常に安定していて安全であるため、ほとんどのユーザーにとってより実用的です。

Apacheをインストールするには、ターミナルを開いて次のコマンドを実行します。

sudo apt install apache2 -y

次に、Apacheのビルドバージョンを確認して、インストールが成功したことを確認します。

sudo apache2 --version

出力例:

Server version: Apache/2.4.51

次のsystemctlを使用して、Apache2が正しく実行されているかどうかを確認します。 コマンド:

systemctl status apache2

すべて問題がない場合の出力例:

方法2.OndřejSurýPPAから最新のApacheをインストールする

デフォルトでは、ApacheはUbuntuのソフトウェアリポジトリ内で利用できます。 、インストールが簡単になります。ただし、Ubuntu LTSバージョンのほとんどのリポジトリと同様に、セキュリティリスクについてはそれほどではなく、現在のものに遅れをとっていることがよくあります。それでも、新しい機能と改善点はありません。

Ubuntuでは、OndřejSurýのバージョンのApache2をインストールすることをお勧めします 、これは最新であり、非常に広く使用されているモジュールで事前に構築されています。

まず、Ubuntu用のOndřejSurýPPAを次のように追加します。

sudo add-apt-repository ppa:ondrej/apache2 -y && sudo apt update

これで、次のコマンドを使用してApache2パッケージをインストールできます。

sudo apt install apache2

インストールにより、必要なすべての依存関係がインストールされます。

PPAを使用したくない場合は、PPAの追加をスキップして、UbuntuのリポジトリからApache2をインストールできます。

インストールしたら、次のコマンドを実行してバージョンを確認します。

apache2 -v

出力例:

Server version: Apache/2.4.51 (Ubuntu)

チュートリアルの時点では、緊急のCVEアップデートのため、両方のリポジトリが同じバージョンであることに注意してください。通常、OndřejSurýPPAは常にデフォルトのUbuntu20.04よりも進んでいます。

次のsystemctlを使用して、Apache2が正しく実行されているかどうかを確認します。 コマンド:

sudo systemctl status apache2

すべて問題がない場合の出力例:

Apache用にUFWファイアウォールを構成する

Apache 2 Webサーバーをインストールした後、UFWルールを変更する必要があります デフォルトのWebポートへの外部アクセスを許可します。幸い、インストール中に、ApacheはUFWに登録して、アクセスを有効または無効にするために使用できるいくつかのプロファイルを提供し、簡単かつ迅速に構成できるようにします。

まず、アプリケーションプロファイルを一覧表示して、次のコマンドで使用できるApacheプロファイルを確認します。

sudo ufw app list

出力例:

Available applications:
  Apache
  Apache Full
  Apache Secure

上記の出力から、3つのプロファイルオプションから選択できます。分解するには、 Apache ポート80(HTTP)、 Apache Secureで実行されます ポート443(HTTPS)で実行され、 Apache Full 両方を許可することの組み合わせです。最も一般的なのは、ApacheFullまたはApacheSecureです。

チュートリアルでは、SSLを設定していないため、次のコマンドで(Apache)プロファイルを有効にします。

sudo ufw allow 'Apache'

出力例:

Rule added
Rule added (v6)

上記のように、IPV4とIPV6の両方にルールが追加されました。後で、このプロファイルを無効にしてセキュアのみを有効にするか、Apacheルールを無効にして代わりにApacheFullルールを使用することができます。

ApacheWebサーバーを確認する

UFWファイアウォールをインストールして構成したので、次はApache 2に到達可能であり、ページをリクエストして正しく機能しているかどうかをテストします。

デフォルトのApacheランディングページにアクセスして、ソフトウェアがサーバーのIPアドレスを介して正しく実行されているかどうかを確認できます。これを見つけるには、わからない場合は、以下のコマンドを使用してください。

hostname -I

例として、サーバーが使用されている内部IPアドレスを取得する必要があります。

###Example Only###
192.168.50.15 

2〜3件の結果が返される場合があります。正しいIPアドレスが見つかるまで、それぞれを試してください。

パブリックIPアドレス(外部)が必要な場合は、代わりに次のコマンドを使用してください。

curl -4 icanhazip.com

CURLパッケージがない場合は、インストールする必要がある場合があります。これを行うには、次のコマンドを実行します。

sudo apt install curl -y

サーバーのIPアドレスを取得したら、お気に入りのインターネットブラウザを開き、次のように入力します。

http://your_server_ip

インターネットブラウザに次のページが表示されます。

おめでとうございます。Apache2Webサーバーをインストールし、現在動作しています。

次のステップは、仮想ホストを設定することです。

Apache用の仮想ホストの作成または構成

Apache Webサーバーを使用すると、仮想ホストを作成して、単一のサーバーで実行されている複数のドメインの構成を管理できます。以前にNginxを使用したことがある場合は、サーバーブロックに相当します。以下の例では、チュートリアルでドメインexample-domain.comを作成し、これをドメイン名に置き換えます。

デフォルトでは、Ubuntu 20.04上のApacheでは、 / var / www / htmlからのドキュメントを提供するように構成された1つのサーバーブロックがデフォルトで有効になっています。 ディレクトリ。 1つのWebサイトを運用している場合は、このサーバーブロックを自分のWebサイトに合わせて変更できます。ただし、複数のWebサイトをホストしている場合は、さまざまなドメインの新しいディレクトリ構造を作成する必要があります。

ディレクトリの作成または構成

まず、 / var / www / htmlを残します ディレクトリをデフォルトのディレクトリとしてそのままにしてから、次のように新しいディレクトリ(example-domain.comなど)を作成します。

sudo mkdir /var/www/example_domain

次のステップは、$USER環境変数を使用してディレクトリの所有権を割り当てることです。

sudo chown -R $USER:$USER /var/www/example_domain

通常、Webルートのアクセス許可は正しく設定されている必要があり、-lslコマンドを使用して確認できます。 :

-ls l /var/www/example_domain
ls -l /var/www/example_domain

出力例:

drwxr-xr-x 2 joshua joshua 4096 Oct 10 11:46 example_domain

ご覧のとおり、 drwxr-xr-xの許可を得ています。 これはchmod755に相当します 。この権限が設定されていない場合は、次のコマンドを実行します。

sudo chmod -R 755 /var/www/example_domain

次に、お気に入りのテキストエディタを使用してサンプルページindex.htmlを作成します。チュートリアルでは、以下のようにnanoを使用します:

sudo nano /var/www/example_domain/index.html

ファイルに、次のコードをコピーして貼り付けます。

<html>
    <head>
        <title>Welcome to Website!</title>
    </head>
    <body>
        <h1>Success! The virtual host is working! You did not mess it up.</h1>
    </body>
</html>

ファイルを保存します(CTRL + O) 、次に終了します(CTRL + X)

仮想ホストの作成

これで、ランディングページを作成し、正しい所有権と権限を設定しました。これで、仮想ホストファイルの作成に進むことができます。デフォルトでは、すべての仮想ホストファイルは / etc / apache2 / sites-available /に配置する必要があります ディレクトリ。

まず、お気に入りのテキストエディタを使用して、 /etc/apache2/sites-available/example_domain.confにある構成ファイルを作成します。 以下のように:

sudo nano /etc/apache2/sites-available/example_domain.conf

次に、以下をコピーして構成ブロックファイルに貼り付けます。ただし、 ServerName、ServerAlias、を置き換えることに注意してください。 およびドキュメントルート あなた自身で:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName example_domain
    ServerAlias www.example_domain
    DocumentRoot /var/www/example_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

必要なサーバーディレクティブを独自のものに変更することを忘れないでください。

(CTRL + O)を使用して構成ファイルを保存します (CTRL + X)で終了します 。

仮想ホストを有効にする

仮想ホスト構成ファイルの準備ができたので、それを有効にします。 Apacheでは、ln -sコマンドを使用してシンボリックリンクを作成するNginxとは異なり、チュートリアルで以下に示すように、Apacheはそのツールを使用します。

まず、既存のデフォルトでインストールされているサーバーブロックファイル 000-default.confを無効にします a2dissiteコマンドを使用:

sudo a2dissite 000-default.conf

次に、 a2ensiteを使用して仮想ホストファイルを有効にします コマンド:

sudo a2ensite example_domain.conf

現在、ほとんどのWebサーバーアプリケーションと同様に、Apacheにはドライランがあります 働き。ライブにする前に、次のコマンドを使用して構成ファイルをテストします。

sudo apache2ctl configtest

すべてが正常に機能している場合、出力例は次のようになります。

Syntax OK

次に、Apache Webサーバーを再起動して、次のコマンドで新しい仮想ホストを稼働させます。

sudo systemctl restart apache2

Apacheは現在、新しいドメイン用に作成したランディングページを提供しているはずです。これをテストするには、インターネットブラウザを開き、ドメイン名 HTTP:// example_domainを入力します。 index.htmlファイルで作成した次のランディングページを取得する場所:

おめでとうございます。仮想ホストが正常に作成され、ドメインで正常に機能するようになりました。

SSLFreeCertificateを暗号化してApacheを保護する

理想的には、SSL証明書を使用するHTTPSでApacheを実行することをお勧めします。 。これを行う最良の方法は、 Let’s Encryptを使用することです。 非営利のインターネットセキュリティ研究グループ(ISRG)が運営する無料の自動化されたオープンな認証局 。

まず、certbotパッケージをインストールします 次のように:

sudo apt install python3-certbot-apache -y

インストールしたら、次のコマンドを実行して証明書の作成を開始します。

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d www.example.com

これは、強制HTTPS 301リダイレクト、Strict-Transport-Securityヘッダー、およびOCSPステープリングを含む理想的なセットアップです。電子メールとドメイン名を要件に合わせて調整してください。

これで、URLは https://www.example.comになります HTTP://www.example.comの代わりに 。

古いHTTPURLを使用する場合は注意してください 、自動的に HTTPSにリダイレクトされます 。

Apacheサービスの管理

サーバー上でApacheが正常に実行されたので、いくつかの管理基調講演は次のとおりです。

Apacheサーバーログ

Apacheサーバーのログは、ディレクトリ / var / log / apache2 /にあります。 access.logを使用 およびerror.log 敬意を表して、指定されたデフォルトのアクセス名とエラー名です。これは、将来、仮想ホスト構成ファイルで他の名前に変更される可能性があります。

Apacheコマンド

次のコマンドは、Apacheを使用するときに日常の管理で間違いなく使用します。最も一般的なものは次のとおりです。

Apache Webサーバーを停止するには:

sudo systemctl stop apache2

Apache Webサーバーを起動するには:

sudo systemctl start apache2

Apache Webサーバーを再起動するには:

sudo systemctl restart apache2

Apache Webサーバーをリロードするには(再起動を必要としないマイナーな変更の場合)

sudo systemctl reload apache2

サーバーの起動時にApacheを無効にするには:

sudo systemctl disable apache2

サーバーの起動時にApacheを起動するには(インストール時に自動的に有効になります)

sudo systemctl enable apache2

Apacheを更新する方法

将来的にApacheを更新するには、システムが最新であるかどうかを確認するために使用したコマンドを使用してこれを実行します。重要なサービスを実行しているApacheサービスがある場合は、常にバックアップまたはイメージを作成することに注意してください。通常、アップグレードするのはかなり安全ですが、ソフトウェアのアップグレードと同じようにバグが発生することもあります。

Apacheを更新するには、次のコマンドを使用します。

sudo apt update

Apacheのアップグレードが利用可能な場合は、次のコマンドを使用します。

sudo apt upgrade

Apacheを削除(アンインストール)する方法

Apacheを使用しなくなった場合に削除するには、次のコマンドを使用してこれを実行できます。

sudo apt autoremove apache2 --purge

このコマンドは、インストールに付属していた未使用の依存関係も削除します。


Ubuntu
  1. Ubuntu20.04でSSL/TLSを使用してFTPサーバー(vsftpd)をインストールおよび構成する方法

  2. Nginxを使用してUbuntu18.04にLet'sEncryptSSLをインストールする方法

  3. Apacheを使用してUbuntu20.04にLet’sEncryptをインストールする方法

  1. Ubuntu18.04でApacheを使用してNextcloudをインストールおよび構成する方法

  2. Ubuntu18.04でApacheを使用してownCloudをインストールおよび構成する方法

  3. ProjectSendをApacheでインストールし、Ubuntu20.04でSSLを暗号化する方法

  1. Ubuntu18.04でSSL/TLSを使用してVSFTPDFTPSを構成する方法

  2. Apacheを使用してUbuntu20.04にPrestaShopをインストールする方法

  3. Debian11のApacheにLet'sEncryptSSLをインストールする方法