Zentyal WebサーバーでUserDirとPassword Protect Webディレクトリを有効にする - パート10
Zentyal PDC Active Directory のような複数のユーザー環境で、各ユーザーが自分の家でホストできる個人用 Web ページを持つことを許可したい場合、Web サーバーを実行すると非常に役立ちます。
Zentyal 3.4 の Webserver モジュールは、いくつかの Linux BASH スクリプトを使用して、Users Public HTML をアクティブにするように構成できます。 Web ページのコンテンツを動的に生成し、ユーザーのドメインへのログオンに必要な情報を送信します。
また、Apache には、配信コンテンツのセキュリティに関連する別の機能が長い間付属しています。それは、 を使用するだけで最も簡単な形式の 1 つである Web ディレクトリをパスワードで保護する というものです。 .htaccess ファイルを作成し、リソースへのアクセスに必要なユーザーのリストを作成し、Web コンテンツを検索エンジン クローラーから保護します。
要件
- Zentyal インストールガイド
- Zentyal サーバーに Web サービス (Apache) をインストールする
ステップ 1: ユーザーのパブリック HTML を有効にする
1. https://zentyal_ip を使用して Zentyal PDC Web 管理ツール にログインします。
2. Web サーバー モジュール に移動し、ピア ユーザー public_html を有効にする をチェックし、変更 ボタンをクリックして変更を保存します。 。
3. ブラウザを開き、URL フィールドに「http://mydomain.com/~your_username」と入力します。
ご覧のとおり、Apache にはユーザー ディレクトリごとにアクセスしたり、ユーザーのホームにインデックスを付けたりする権限がありません。この動作を修正するには、/home/$USER ディレクトリに対する実行権限を www-data に提供し、ユーザー パスの下に public_html フォルダを作成する必要があります。
物事を少し単純化するために、public_html ディレクトリを作成し、すべてのシステム ユーザーに正しいアクセス許可を有効にし、すべてのユーザーの HTML Web ページを自動生成する Linux Bash スクリプトを作成します。ユーザーは有効なホーム ディレクトリと別のスクリプト (今回は Windows Bach スクリプト) を持っており、これを既定のドメイン GPO にリンクします。これにより、< からのドメイン資格情報でログオンした後、すべてのユーザーに個人用 Web ページが表示されます。 b>Windows システムがドメインに参加しました。
4. このタスクを完了するには、システムのインストール時に作成された Zentyal 管理アカウントで Putty を使用して Zentyal サーバー にログインし、お気に入りのテキスト エディタを使用して最初のスクリプトを作成します。これに「user-dir-creation」という名前を付けます。
nano user-dir-creation
5. 「user-dir-creation」スクリプトに以下の内容を追加します。
#!/bin/bash
for i in `ls /home | grep -v samba| grep -v lost+found`; do
mkdir /home/$i/public_html
## Make world readable and executable, so that www-data can access it ##
chmod -R 755 /home/$i
chgrp -R www-data /home/$i/public_html/
## Next code should be on a single line ##
echo "<html><body style='background-color:#2DC612'><div align='center'><p><H1 style='color:#fff'>Welcome user $i on <a style='color:#fff' href='https://mydomain.com'>`hostname -f` </a></H1></p></div></body></html>" > /home/$i/public_html/index.html
## List /home/$USER permissions and public_html perm optional ##
echo "......................."
ls -all /home/$i
echo "......................"
ls -all /home/$i/public_html
done;
6. スクリプトを保存して実行可能にし、root 権限で実行します。
chmod +x user-dir-creation
sudo ./user-dir-creation
7. ブラウザを再度開き、上記と同じURL を指定します (ポイント 3 を参照)。
public_html ディレクトリが作成され、すべてのユーザーに対して HTML ファイルが生成されたため、ユーザー全員がパーソナライズされた Web ページを所有できるようになりました (これは単なる単純なテスト ページですが、PHP で何ができるかを想像してください) 、MySQL または CGI スクリプト )。
8. Zentyal 3.4 サーバー がプライマリ ドメイン コントローラでもある場合、ユーザーがドメインに参加している Windows ホストからログオンしたときに、ユーザーごとの Web ページがブラウザで自動的に開かれるようにすることができます。
これを有効にするには、ドメインに参加している Windows システムにログオンし、メモ帳 を使用して次の内容の「public_html.bat」という名前の Windows バッチ スクリプトを作成します。
explorer http://your_domain.tld/~%username%
注: 「~」特殊文字と Windows 環境変数である %username% に注意してください。
9. Zentyal Web 管理ツール (https://zentyal_IP) を開き、ドメイン -> グループ ポリシー オブジェクト -> デフォルト に移動します。ドメイン ポリシー -> GPO エディター。
10. 編集 をクリックし、ユーザー構成 –> 新しいログオン スクリプトの追加まで下にスクロールし、スクリプトが作成されたパスを参照して < を押します。 b>追加します。
おめでとうございます!次回ドメインにログインすると、デフォルトのブラウザでユーザー名に関連するパーソナライズされた Web ページが開きます。
ステップ 2: Web ディレクトリをパスワードで保護する
この部分では、Apache モジュールのより高度な設定が必要です。これはZentyal Web インターフェイス からは実現できず、コマンド ラインと一部のZentyal Apache モジュール テンプレートの変更によってのみ実現できます。
Linux サーバーで通常行うように Apache 設定を直接変更しようとすると、作成した設定はすべて失われます。これは、Zentyal が再起動またはサービスの再起動後に各サービス設定ファイルを書き換えるいくつかのテンプレート フォームを使用するためです。
実際に Apache 認証を使用して Web フォルダを保護し、変更を永続的にするには、「AllowOverride」ディレクティブを変更し、「auth_basic」モジュールを Apache Web サーバーにロードして有効にする必要があります。 。
11. 必要なすべての設定を有効にするには、まずコマンドラインから Putty を使用して Zentyal サーバー にroot アカウントでログインします。
12. 次のコマンドを発行して「auth_basic」を有効にし、zentyal Web サービスを再起動します。
a2enmod auth_basic
service zentyal webserver restart
13. モジュールがロードされたら、「/usr/share/zentyal/stubs/webserver/」パスにある Zentyal Apache Vhost テンプレートを変更し、「」をセットアップします。 >オーバーライドを許可します。
最初に vhost.mas ファイルをバックアップします。
cp /usr/share/zentyal/stubs/webserver/vhost.mas /usr/share/zentyal/stubs/webserver/vhost.mas.bak
次に、エディタを開いてファイルの一番下に移動し、スクリーンショットのように「オーバーライドを許可」ディレクティブ行の「なし」を「すべて」に置き換えます。 。
14. 編集が完了したら、Zentyal Webserver モジュールを再起動して、新しい変更を適用します。
service zentyal webserver restart
AllowOverride ディレクティブの主な目的は、Apache ルート (/etc/apache2/) で使用されるファイルとは異なる他のファイルから Apache 設定をパスごとに動的に変更することです。 .htacess ファイル。
15. 次に、パスワードで保護された Web コンテンツ ディレクトリの閲覧を許可するユーザーを作成します。まず、.htpasswd ファイルがホストされ、保護されるサブドメイン パスの外側にディレクトリを作成する必要があります。
mkdir /srv/www/htpass
chmod –R 750 /srv/www/htpass
chgrp –R www-data /srv/www/htpass
16. 次に、.htpasswd ファイルを作成し、htpasswd コマンドを使用してユーザーを追加します。最初のユーザーを作成するときに、「–c 」 (作成) コマンド スイッチを追加してファイルを作成し、ユーザーを追加してから、ユーザー パスワードを入力して確認します。
htpasswd –c /srv/www/htpass/.htpasswd first_user
htpasswd /srv/www/htpass/.htpasswd second_user
17. これで、.htpasswd ファイルが作成され、MD5 ソルト アルゴリズムを使用して暗号化され、Web フォルダのコンテンツにアクセスするために必要な数のユーザーを必要なだけ追加できます。
18. ここで、http://www.mydomain.com URL を他のユーザーから保護し、htpasswd ファイルで作成したサブドメインへのアクセスを保護するとします。この動作を有効にするには、www.mydomain.com システム パスに .htaccess ファイルを作成し、次のコンテンツを追加します。
AuthType basic
AuthName “What ever message you want”
AuthBasicProvider file
AuthUserFile /path/to/.htpassd file created
Require user your_user1 user2 userN
また、.htacces ファイルがワード読み取り可能に保護されていることを確認してください。
nano /srv/www/www.mydomain.com/.htaccess
chmod 750 /srv/www/www.mydomain.com/.htaccess
chgrp www-data /srv/www/www.mydomain.com/.htaccess
おめでとうございます!これで、Web サイト上の www.mydomain.com サブドメインがパスワード保護 され、ユーザーは Web サイトのコンテンツにアクセスするための資格情報の入力を求められます。
また、すでに作成されている認証情報を使用してサーバー上に作成された他のドメインまたはサブドメインを保護したい場合は、サブドメインの Apache パスに .htaccess ファイルをコピーし、www-data を確認してください。 > には読み取りアクセス権があります。
Apache Web Direcory Password Protect の助けを借りて、Zentyal Weberver はドメインに投稿された機密情報を公開する際に追加のセキュリティ層を偽造できますが、この方法はディレクトリを保護するだけであり、ファイルやパスワードは送信されないことに注意してください。ブラウザでは平文で表示されるため、HTTPS プロトコルを使用してユーザーの資格情報が傍受されないように保護してください。