我正在为办公室内托管的网站实施身份验证,我有一个 PAM 身份验证模块来验证用户身份,到目前为止效果很好。
问题是我只需要对来自 Internet(外部)的用户进行身份验证,在本例中是 IP 192.168.12.1,它是将所有外部流量路由到内部 Web 服务器的网关设备。
我到目前为止的相关配置是这样的:
server {
listen 80;
server_name xxxxxxxxxx;
access_log /var/log/nginx/xxxxxxxx.log;
location / {
satisfy any;
allow 192.168.1.0/24; ##Office subnet
allow 192.168.11.0/24; ##Office subnet
##Inside this subnet is the IP that needs to have auth 192.160.12.1
allow 192.168.12.0/24; ## Office subnet
auth_pam "XXXXXXXXXX";
auth_pam_service_name "nginx";
proxy_pass http://xx.xx.xx.xx/; ## Redirects to desired web server
}
}
如果我使用
满足所有;
这将要求每个用户(内部和外部)进行身份验证,这不是我需要的
如果我这样拒绝 192.168.12.1 :
deny 192.168.12.1;
allow 192.168.1.0/24; ##Office subnet
allow 192.168.11.0/24; ##Office subnet
allow 192.168.12.0/24; ## Office subnet
我立即得到 403 禁止
如果我这样拒绝 192.168.12.1 :
allow 192.168.1.0/24; ##Office subnet
allow 192.168.11.0/24; ##Office subnet
allow 192.168.12.0/24; ## Office subnet
deny 192.168.12.1;
它只是绕过身份验证
我需要一种方法来强制 192.168.12.1 通过身份验证但不阻塞整个子网 192.168.12.0/24,因为那里还有其他设备应该能够在没有身份验证的情况下登录。