0

mod_wsgi を介して Apache で web2py アプリケーションを実行しています。 ソース IP に基づいて管理ページ (www.myapp.com/admin) へのアクセスを制限するにはどうすればよいですか?

理想的には、Apache 内で直接行うのが 2 つの理由です: 1) Apache はソース IP へのより効果的なアクセスを持っていると思います [要出典] 2) 特定の IP をブロックするために web2py のストック管理ページを変更したくありません。 .

私の(要約された)構成は次のようになります。

<VirtualHost *:80>
  WSGIDaemonProcess web2py user=myapp group=myapp
  WSGIProcessGroup web2py
  WSGIScriptAlias / /home/myapp/myapp/wsgihandler.py

  TimeOut 45

  ServerName myapp.com
  ServerAlias www.myapp.com


  <Directory /home/myapp/myapp>

    AllowOverride None
    Order Allow,Deny
    Deny from all

    <Files wsgihandler.py>
      Allow from all
    </Files>

  </Directory>

  #======================================
  # THIS IS WHAT I TRIED THAT DIDN'T WORK
  <Directory /home/myapp/myapp/admin>
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1
  </Directory>
  #======================================

  AliasMatch ^/static/(.*) \
           /home/myapp/myapp/applications/myapp/static/$1
  <Directory /home/myapp/myapp/applications/myapp/static/>
    Options -Indexes 
    Order Allow,Deny
    Allow from all
  </Directory>

  # HTTPS enforcement
  # Out of convenience, forward /a* to https, covers /admin /appadmin and /a (front facing admin)
  RedirectMatch ^/a(.*) https://myapp.com/a$1
  RedirectMatch ^/c/(.*) https://myapp.com/c/$1
  RedirectMatch ^/w/user/login(?:/(.*)|$) https://myapp.com/w/user/login/$1
  RedirectMatch ^/w/user/register(?:/(.*)|$) https://myapp.com/w/user/register/$1

  CustomLog /var/log/apache2/access.log common
  ErrorLog /var/log/apache2/error.log
</VirtualHost>

ポート 443 に同様の VirtualHost があることに注意してください。冗長性のために含めていません。

通常、ディレクトリ表記のようなものを使用して特定のディレクトリへのアクセスを拒否できることを理解しています。ただし、上記は機能しませんでした。WSGIScriptAlias ディレクティブと関係があるのでしょうか。

4

1 に答える 1