著者は、 Write forDOnationsプログラムの一環として寄付を受け取るためにTechEducationFundを選択しました。

###序章

Webmin は、最新のWebベースのインターフェイスを介してサーバーを管理できるLinuxマシン用のWebベースのコントロールパネルです。 Webminを使用すると、Webサーバーやデータベースなどの一般的なパッケージの設定をその場で変更したり、ユーザー、グループ、ソフトウェアパッケージを管理したりできます。

このチュートリアルでは、サーバーにWebminをインストールして構成し、 Let’s Encrypt とApacheを使用して、有効な証明書を使用してインターフェイスへのアクセスを保護します。 次に、Webminを使用して新しいユーザーアカウントを追加し、ダッシュボードからサーバー上のすべてのパッケージを更新します。

前提条件

このチュートリアルを完了するには、次のものが必要です。

  • Ubuntu18.04初期サーバーセットアップガイドに従ってセットアップされた1つのUbuntu18.04サーバー(sudo非rootユーザーとファイアウォールを含む)。
  • Ubuntu 18.04 にLinux、Apache、MySQL、PHP(LAMP)スタックをインストールする方法に従ってインストールされたApache。 Apacheを使用して、Let’s Encryptのドメイン検証を実行し、Webminのプロキシとして機能します。 このチュートリアルに従うときは、ファイアウォールを介したApacheへのアクセスを構成してください。
  • サーバーのIPアドレスを指すDNSA レコードを含む完全修飾ドメイン名(FQDN)。 これを構成するには、チュートリアルDigitalOceanを使用してホスト名を設定する方法に従ってください。
  • Ubuntu18.04でLet’sEncryptを使用してApacheを保護する方法のステップ1に従ってインストールされたCertbot。 Certbotを使用して、WebminのTLS/SSL証明書を生成します。

ステップ1—Webminのインストール

まず、パッケージマネージャーを使用してWebminを簡単にインストールおよび更新できるように、Webminリポジトリを追加する必要があります。 これを行うには、リポジトリを/etc/apt/sources.listファイルに追加します。

エディターでファイルを開きます。

  1. sudo nano /etc/apt/sources.list

次に、この行をファイルの最後に追加して、新しいリポジトリを追加します。

/etc/apt/sources.list
. . . 
deb http://download.webmin.com/download/repository sarge contrib

ファイルを保存して、エディターを終了します。

次に、システムが新しいリポジトリを信頼するようにWebminPGPキーを追加します。

wget http://www.webmin.com/jcameron-key.asc
sudo apt-key add jcameron-key.asc

次に、パッケージのリストを更新して、Webminリポジトリを含めます。

  1. sudo apt update

次に、Webminをインストールします。

  1. sudo apt install webmin

インストールが完了すると、次の出力が表示されます。

Output
Webmin install complete. You can now login to https://your_server_ip:10000 as root with your root password, or as any user who can use `sudo`.

それでは、WebminをApache Webサーバーの背後に配置し、有効なTLS / SSL証明書を追加して、Webminへのアクセスを保護しましょう。

ステップ2—ApacheでWebminを保護してLet’sEncrypt

Webminにアクセスするには、ポート10000を指定し、ファイアウォールでポートが開いていることを確認する必要があります。 これは、特にwebmin.your_domainのようなFQDNを使用してWebminにアクセスしている場合は不便です。Apache仮想ホストを使用して、ポート10000で実行されているWebminのサーバーにリクエストをプロキシします。 次に、Let’sEncryptのTLS/SSL証明書を使用して仮想ホストを保護します。

まず、Apacheの構成ディレクトリに新しいApache仮想ホストファイルを作成します。

  1. sudo nano /etc/apache2/sites-available/your_domain.conf

以下をファイルに追加し、メールアドレスとドメインを独自のものに置き換えます。

/etc/apache2/sites-available/your_domain.conf

<VirtualHost *:80>
        ServerAdmin your_email
        ServerName your_domain
        ProxyPass / http://localhost:10000/
        ProxyPassReverse / http://localhost:10000/
</VirtualHost>

この構成は、Webminサーバーであるhttp://localhost:10000にリクエストを渡すようにApacheに指示します。 また、Webminから生成された内部リンクもApacheを通過するようにします。

ファイルを保存して、エディターを終了します。

次に、WebminにTLS / SSLの使用を停止するように指示する必要があります。これは、Apacheが今後提供するためです。

エディターでファイル/etc/webmin/miniserv.confを開きます。

  1. sudo nano /etc/webmin/miniserv.conf

次の行を見つけます。

/etc/webmin/miniserv.conf
...
ssl=1
...

10に変更します。これにより、WebminにSSLの使用を停止するように指示されます。

次に、許可されたドメインのリストにドメインを追加します。これにより、Webminは、ドメインからパネルにアクセスするときに、クロスサイトスクリプティング(XSS)攻撃のような悪意のあるものではないことを理解します。

エディターでファイル/etc/webmin/configを開きます。

  1. sudo nano /etc/webmin/config

ファイルの最後に次の行を追加し、your_domainを完全修飾ドメイン名に置き換えます。

/ etc / webmin / config
 . . . 
referers=your_domain

ファイルを保存して、エディターを終了します。

次に、Webminを再起動して、構成の変更を適用します。

  1. sudo systemctl restart webmin

次に、Apacheのproxy_httpモジュールを有効にします。

  1. sudo a2enmod proxy_http

次の出力が表示されます。

Output
Considering dependency proxy for proxy_http: Enabling module proxy. Enabling module proxy_http. To activate the new configuration, you need to run: systemctl restart apache2

出力は、Apacheを再起動することを示していますが、最初に、作成した新しいApache仮想ホストをアクティブ化します。

  1. sudo a2ensite your_domain

サイトが有効になっていることを示す次の出力が表示されます。

Output
Enabling site your_domain. To activate the new configuration, you need to run: systemctl reload apache2

次に、Apacheを完全に再起動して、proxy_httpモジュールと新しい仮想ホストをアクティブにします。

  1. sudo systemctl restart apache2

:前提条件のチュートリアル Linux、Apache、 MySQL、PHP(LAMP)スタック(Ubuntu 18.04 )。 これは、コマンドsudo ufw allow in "Apache Full"を使用して実行できます。

ブラウザでhttp://your_domainに移動すると、Webminログインページが表示されます。

警告: SSLを有効にしていないため、まだWebminにログインしないでください。 今すぐログインすると、資格情報がクリアテキストでサーバーに送信されます。

次に、Webminの使用中に接続が暗号化されるように証明書を構成しましょう。 これを行うために、Let’sEncryptを使用します。

ドメインのTLS/SSL証明書を生成し、トラフィックを安全なサイトにリダイレクトするようにApacheを構成するようにCertbotに指示します。

  1. sudo certbot --apache --email your_email -d your_domain --agree-tos --redirect --noninteractive

次の出力が表示されます。

Output
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator apache, Installer apache Obtaining a new certificate Performing the following challenges: http-01 challenge for your_domain Enabled Apache rewrite module Waiting for verification... Cleaning up challenges Created an SSL vhost at /etc/apache2/sites-available/your_domain-le-ssl.conf Enabled Apache socache_shmcb module Enabled Apache ssl module Deploying Certificate to VirtualHost /etc/apache2/sites-available/your_domain-le-ssl.conf Enabling available site: /etc/apache2/sites-available/your_domain-le-ssl.conf Enabled Apache rewrite module Redirecting vhost in /etc/apache2/sites-enabled/your_domain.conf to ssl vhost in /etc/apache2/sites-available/your_domain-le-ssl.conf ------------------------------------------------------------------------------- Congratulations! You have successfully enabled https://your_domain You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=your_domain -------------------------------------------------------------------------------

出力は、証明書がインストールされ、Apacheがhttp://your_domainからhttps://your_domainにリクエストをリダイレクトするように構成されていることを示しています。

これで、Webminの安全で動作するインスタンスがセットアップされました。 使い方を見てみましょう。

ステップ3–Webminを使用する

Webminには、BIND DNSサーバーから、システムにユーザーを追加するだけの簡単なものまで、すべてを制御できるモジュールがあります。 新しいユーザーを作成する方法を見てから、Webminを使用してソフトウェアパッケージを更新する方法を見てみましょう。

Webminにログインするには、http://your_domainに移動し、rootユーザーまたはsudo権限を持つユーザーのいずれかでサインインします。

ユーザーとグループの管理

サーバー上のユーザーとグループを管理しましょう。

まず、システムタブをクリックし、ユーザーとグループボタンをクリックします。 ここから、ユーザーを追加するか、ユーザーを管理するか、グループを追加または管理することができます。

Webアプリケーションのホスティングに使用できるdeployという新しいユーザーを作成しましょう。 ユーザーを追加するには、usersテーブルの上部にある Create a newuserをクリックします。 これにより、ユーザーの作成画面が表示され、ユーザー名、パスワード、グループ、およびその他のオプションを指定できます。 次の手順に従って、ユーザーを作成します。

  1. ユーザー名deployを入力します。
  2. ユーザーID自動を選択します。
  3. 本名Deployment userのようなわかりやすい名前を入力します。
  4. ホームディレクトリで、自動を選択します。
  5. Shell の場合、ドロップダウンリストから / bin /bashを選択します。
  6. パスワードには、通常パスワードを選択し、お好みのパスワードを入力してください。
  7. プライマリグループで、ユーザーと同じ名前の新しいグループを選択します。
  8. セカンダリグループの場合、すべてのグループリストから sudo を選択し、->ボタンを押してグループをに追加します。 ]グループリスト。
  9. Create を押して、この新しいユーザーを作成します。

ユーザーを作成するときに、パスワードの有効期限、ユーザーのシェル、またはホームディレクトリを許可するかどうかのオプションを設定できます。

次に、システムにアップデートをインストールする方法を見てみましょう。

パッケージの更新

Webminを使用すると、ユーザーインターフェイスを介してすべてのパッケージを更新できます。 すべてのパッケージを更新するには、ダッシュボードリンクをクリックし、パッケージ更新フィールドを見つけます。 利用可能な更新がある場合は、次の図に示すように、利用可能な更新の数を示すリンクが表示されます。

Webmin shows the number of package updates available

このリンクをクリックし、選択したパッケージの更新を押して更新を開始します。 サーバーの再起動を求められる場合があります。これは、Webminインターフェイスからも実行できます。

結論

これで、セキュリティで保護されたWebminのインスタンスが作成され、インターフェイスを使用してユーザーを作成し、パッケージを更新しました。 Webminを使用すると、通常はコンソールからアクセスする必要のある多くのものにアクセスでき、直感的な方法でそれらを整理できます。 たとえば、Apacheがインストールされている場合は、サーバーApacheの順に構成タブが表示されます。

インターフェイスをさらに詳しく調べるか、公式Webmin wiki をチェックして、Webminを使用したシステムの管理の詳細を確認してください。