Synology DSMでWebアプリケーションへのアクセスを制限する

Synologyストレージシステムは、今日非常に一般的です。 快適で、静かで、コンパクトで、多くの機能を備えています。 ただし、独自のクラウドは優れていますが、セキュリティについて真剣に考える必要があります。 次に、Synology Webユーザーアプリケーションへのアクセスを柔軟に制限する方法を見ていきます。 証明書、ユーザー名とパスワード、およびIPアドレスの制限でx509認証を使用します。



DSMには2種類のWebベースアプリケーションがあります。



外部からのアクセスに対する最も簡単な保護は、アプリケーションを非標準ポートに転送することです。 システムアプリケーションでこれを行うことは難しくありません。コントロールパネルには適切な設定があります。



ユーザーの場合は少し複雑で、HTTPSプロトコル経由でアクセスできる標準の443ポートに残したい場合があります(HTTPの使用を完全に拒否するのは理にかなっています)。



したがって、特定の「重要な」構成について説明します。 与えられた:



-Synology DSM 5.2-5592アップデート4

-WebStationサービスが有効になり、実行されます:



-DSM自体へのアクセスは、外部および内部ネットワークから可能です。



DSMシステムアプリケーションの信頼レベルは非常に高く、システムセキュリティアップデートが頻繁にリリースされることに注意してください。 ユーザーアプリケーションについて言えないこと。 私の意見では、システム全体および特定のアプリケーションのユーザーデータのセキュリティに対する主な脅威をもたらすのは、それらの脆弱性(潜在的)です。 したがって、それらへのアクセスを制限する必要があります。 繰り返しますが、一部のアプリケーションは、内部ネットワークのみでの使用に依存して、データへのアクセス権の許可または制限を意味しません。



次のようにアクセスを制限します。



DokuWiki-内部ネットワークからの無料アクセス。 外部からのアクセスには証明書が必要です。 apache mod_sslモジュールが使用されます。 次に、内部認証システムが有効になります。 上で書いたように、DokuWikiには独自のユーザーと記事へのアクセス権の独自のシステムがあります。



小さなRSS-内部ネットワークからの無料アクセス。 外部からのアクセスには証明書が必要です。 apache mod_sslモジュールが使用されます。 追加の制限は必要ありません。



警官 -内部ネットワークからの無料アクセス。 名前とパスワードによる外部アクセスから。 apacheモジュールmod_auth_digestが使用されます。 あらゆる種類の「電子書籍」を外部から接続できることは理解されており、ユーザー証明書をアップロードしてWebブラウザーで使用できるかどうかはわかりません。



したがって、アクセスを制限するために、Apache Webサーバーのさまざまなモジュールが使用されます。



実装、証明書認証の設定



ここでの考え方は、CAによって署名された証明書を持つユーザーのみがサイトの特定の部分にアクセスできるということです。



  1. 自己署名CA(証明書機関)を作成し、それを使用してクライアント証明書を作成する必要があります。 これを行う方法については説明しません。たとえば、 www.opennet.ru / base / sec / ssl_cert.txt.htmlのように多くの指示があります。一部の人々は、おそらく私たちの目的に使用できる独自のCAをすでに持っています。 はい、現実に対応するために、タスクを少し複雑にし、中間CAを追加します。 チェーンを作成しましょう:ルートCA-中間CA-クライアント:
    1. 自己署名のRootCA.crtを作成します
    2. RootCA.crtによって署名されたInterCA.crtを作成します
    3. クライアントを作成します:client.crt、中間者によって署名された
    4. 作成された証明書から、バンドルコマンドを作成します。cat RootCA.crt InterCA.crt> ca-bundle.crt
    5. Synologyのca-bundle.crtおよびInterCA.crtを/usr/syno/etc/ssl/ssl.crt/フォルダーにコピーします
  2. 対応する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"
          
          





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





  4. 次のコマンドでhttpd-userサービスを再起動します:synoservicectl --restart httpd-user
  5. DokuWikiで、すべて。
  6. 同様に、 TynyRSSの .htaccessを処方します




次に、パスワード名で認証を設定します。



  1. / etc / httpd / passwddg -c / etc / httpd / passwddg“ Books Library” bookuserコマンドを使用して、ユーザーとパスワードを含むファイルを作成します。 したがって、bookuserのユーザーはサービスに接続できます。 同じファイルに他のユーザーを追加する場合は、-cスイッチを削除する必要があります。削除しないと、パスワードファイルが上書きされることに注意してください。
  2. 警官をカスタマイズします。 /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>
          
          





  3. httpd-userサービスの再起動:synoservicectl --restart httpd-user
  4. C Copsも完了しました!




使用される認証方法についてのいくつかの言葉



auth_digest: auth_basicは置き換えられ、前のバージョンとは異なり、パスワードがクリアな形式で送信されないため、HTTPの上で使用できます。

SSL: mod_sslモジュールの一部として。 主なもの:CAによって署名されたクライアント証明書を持つすべての人は、必要なアプリケーションにアクセスできます。



証明書で認証を改善するにはどうすればよいですか?

-アプリケーションごとに異なるCAを使用できます

-証​​明書のさまざまなフィールドに基づいてユーザーへのアクセスを許可できます

-クライアント証明書を短期間(たとえば、1週間または1か月間)発行できます。

-個々のユーザーをすばやくブロックするために、CRL(失効した証明書のリスト)へのパスを構成に追加できます(必要な場合でも)

-クライアント証明書をパスワードで閉じたり、USB eTokenに保存したりできます



素敵な設定をしてください!



All Articles