Apacheをリバースプロキシとして使用するため、内部開発/テストサーバーの一部は、UAT / CAT目的でパブリックインターネットからアクセスできます。
LDAPサーバーを介した基本認証設定がありますが、認証なしでサーバーにアクセスできるようにホワイトリストに特定のIPを追加する必要があるサイトがいくつかあります。
現在のセクションの上にこのような他のセクションを追加することが可能かどうかはわかりません。
<proxy *>
Require all granted
Require ip x.x.x.x y.y.y.y
</proxy>
現在のファイルは次のとおりです.conf
。
<VirtualHost *:80>
ServerName some.server.url
## Vhost docroot
DocumentRoot "/var/www"
## Directories, there should at least be a declaration for /var/www
<Directory "/var/www">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Require all granted
</Directory>
## Logging
ErrorLog "/var/log/httpd/some.server.url_error.log"
ServerSignature Off
CustomLog "/var/log/httpd/some.server.url_access.log" combined
## Proxy rules
ProxyRequests Off
ProxyPreserveHost Off
ProxyPass /robots.txt !
ProxyPassReverse /robots.txt !
ProxyPass / https://some.server.url/ acquire=3000 keepalive=On retry=0 timeout=1800
ProxyPassReverse / https://some.server.url/
## Custom fragment
<proxy *>
AuthBasicProvider ldap-client-websites ldap-sidlee-dig
AuthType Basic
AuthName "GRM CRHA UAT"
Require valid-user
</proxy>
</VirtualHost>
答え1
<proxy *>
いいえ。 2番目のブロックは最初のブロックと衝突するので、追加しないでください。
代わりに、<proxy *>
既存のブロックを次に変更してください。
## Custom fragment
<proxy *>
AuthBasicProvider ldap-client-websites ldap-sidlee-dig
AuthType Basic
AuthName "GRM CRHA UAT"
<RequireAny>
Require ip x.x.x.x y.y.y.y
Require valid-user
</RequireAny>
</proxy>
</VirtualHost>
Require
これにより、ディレクティブの 1 つだけを満たしても<RequireAny>
アクセスが許可されます。だから、誰でも一致するIPアドレスがありますまたはアクセスを許可するには、成功した認証が必要です。
答え2
私はApacheでプロキシを使ってこのようなことをすることができませんでした。
別のTCPポート専用の追加プロキシを設定し、同様の方法で2番目のポートを定義したいと思う誘惑を受け取ります。その後、2番目のポートの認証を無効にできます。
その後、システムに許可するIPへのアクセスを制限する2番目のポートのIPTablesルールを作成できます。
私はこれがやや複雑なプロセスであることに注意し、あなたがこの道を行きたい場合は慎重に検討します。