DSMには2種類のWebベースアプリケーションがあります。
- システム(デスクトップ自体、PhotoStation、VideoStation、TimeMachineなど)
- カスタム。 WebStationサービスが有効になっているときに機能します。 例:dokuWiki、mediaWiki、RSSリーダーなど)
外部からのアクセスに対する最も簡単な保護は、アプリケーションを非標準ポートに転送することです。 システムアプリケーションでこれを行うことは難しくありません。コントロールパネルには適切な設定があります。
ユーザーの場合は少し複雑で、HTTPSプロトコル経由でアクセスできる標準の443ポートに残したい場合があります(HTTPの使用を完全に拒否するのは理にかなっています)。
したがって、特定の「重要な」構成について説明します。 与えられた:
-Synology DSM 5.2-5592アップデート4
-WebStationサービスが有効になり、実行されます:
- DokuWiki(内部ユーザーを含むWiki)
- 小さなRSS(RSSリーダー)
- 警官(電子図書館ディレクトリ)
-DSM自体へのアクセスは、外部および内部ネットワークから可能です。
DSMシステムアプリケーションの信頼レベルは非常に高く、システムセキュリティアップデートが頻繁にリリースされることに注意してください。 ユーザーアプリケーションについて言えないこと。 私の意見では、システム全体および特定のアプリケーションのユーザーデータのセキュリティに対する主な脅威をもたらすのは、それらの脆弱性(潜在的)です。 したがって、それらへのアクセスを制限する必要があります。 繰り返しますが、一部のアプリケーションは、内部ネットワークのみでの使用に依存して、データへのアクセス権の許可または制限を意味しません。
次のようにアクセスを制限します。
DokuWiki-内部ネットワークからの無料アクセス。 外部からのアクセスには証明書が必要です。 apache mod_sslモジュールが使用されます。 次に、内部認証システムが有効になります。 上で書いたように、DokuWikiには独自のユーザーと記事へのアクセス権の独自のシステムがあります。
小さなRSS-内部ネットワークからの無料アクセス。 外部からのアクセスには証明書が必要です。 apache mod_sslモジュールが使用されます。 追加の制限は必要ありません。
警官 -内部ネットワークからの無料アクセス。 名前とパスワードによる外部アクセスから。 apacheモジュールmod_auth_digestが使用されます。 あらゆる種類の「電子書籍」を外部から接続できることは理解されており、ユーザー証明書をアップロードしてWebブラウザーで使用できるかどうかはわかりません。
したがって、アクセスを制限するために、Apache Webサーバーのさまざまなモジュールが使用されます。
実装、証明書認証の設定
ここでの考え方は、CAによって署名された証明書を持つユーザーのみがサイトの特定の部分にアクセスできるということです。
- 自己署名CA(証明書機関)を作成し、それを使用してクライアント証明書を作成する必要があります。 これを行う方法については説明しません。たとえば、 www.opennet.ru / base / sec / ssl_cert.txt.htmlのように多くの指示があります。一部の人々は、おそらく私たちの目的に使用できる独自のCAをすでに持っています。 はい、現実に対応するために、タスクを少し複雑にし、中間CAを追加します。 チェーンを作成しましょう:ルートCA-中間CA-クライアント:
- 自己署名のRootCA.crtを作成します
- RootCA.crtによって署名されたInterCA.crtを作成します
- クライアントを作成します:client.crt、中間者によって署名された
- 作成された証明書から、バンドルコマンドを作成します。cat RootCA.crt InterCA.crt> ca-bundle.crt
- Synologyのca-bundle.crtおよびInterCA.crtを/usr/syno/etc/ssl/ssl.crt/フォルダーにコピーします
- 対応するapache設定(/etc/httpd/conf/extra/httpd-ssl.conf-cipher)を編集し、次の行を追加します。
SSLCACertificatePath "/usr/syno/etc/ssl/ssl.crt" # SSLCACertificateFile "/usr/syno/etc/ssl/ssl.crt/ca-bundle.crt" # , SSLCADNRequestFile "/usr/syno/etc/ssl/ssl.crt/InterCA.crt"
- DokuWikiをカスタマイズします。 /volume1/web/dokuwiki/.htaccessファイルを作成するか、既存の行に追加します。
# mod_revrite , . SSLVerifyClient require <IfModule mod_rewrite.c> # SSLVerifyClient optional # . .. bundle 2 - . SSLVerifyDepth 2 # : RewriteCond %{SSL:SSL_CLIENT_VERIFY} !^SUCCESS$ # : 192.168.1.x RewriteCond %{REMOTE_ADDR} !^192.168.1.[0-9]*$ # - 403 RewriteRule ^ - [F] </IfModule>
- 次のコマンドでhttpd-userサービスを再起動します:synoservicectl --restart httpd-user
- DokuWikiで、すべて。
- 同様に、 TynyRSSの .htaccessを処方します
次に、パスワード名で認証を設定します。
- / etc / httpd / passwddg -c / etc / httpd / passwddg“ Books Library” bookuserコマンドを使用して、ユーザーとパスワードを含むファイルを作成します。 したがって、bookuserのユーザーはサービスに接続できます。 同じファイルに他のユーザーを追加する場合は、-cスイッチを削除する必要があります。削除しないと、パスワードファイルが上書きされることに注意してください。
- 警官をカスタマイズします。 /volume1/web/cops/.htaccessファイルを作成するか、既存の行に追加します。
# PHP . . <FilesMatch "\.php$"> Order allow,deny # 192.168.1.x Allow from 192.168.1 # Digest AuthDigestProvider file # , AuthUserFile /etc/httpd/passwddg AuthType Digest # , AuthName "Books Library" # , Require valid-user # . # IP , # Satisfy Any </FilesMatch>
- httpd-userサービスの再起動:synoservicectl --restart httpd-user
- C Copsも完了しました!
使用される認証方法についてのいくつかの言葉
auth_digest: auth_basicは置き換えられ、前のバージョンとは異なり、パスワードがクリアな形式で送信されないため、HTTPの上で使用できます。
SSL: mod_sslモジュールの一部として。 主なもの:CAによって署名されたクライアント証明書を持つすべての人は、必要なアプリケーションにアクセスできます。
証明書で認証を改善するにはどうすればよいですか?
-アプリケーションごとに異なるCAを使用できます
-証明書のさまざまなフィールドに基づいてユーザーへのアクセスを許可できます
-クライアント証明書を短期間(たとえば、1週間または1か月間)発行できます。
-個々のユーザーをすばやくブロックするために、CRL(失効した証明書のリスト)へのパスを構成に追加できます(必要な場合でも)
-クライアント証明書をパスワードで閉じたり、USB eTokenに保存したりできます
素敵な設定をしてください!