所需模块安装
Nginx通过PAM进行简单认证的模块
ngx_http_auth_pam_module
Ubuntu(18.04)可通过apt安装
1 | root@jp-vps:~$apt-get install libnginx-mod-http-auth-pam |
安装OK的话会在/etc/nginx/modules-enabled
看到一个50-mod-http-auth-pam.conf
链接文件
1 | rootvps:~$cat /etc/nginx/modules-enabled/50-mod-http-auth-pam.conf - |
LDAP认证模块pam_ldap.so
1 | root@jp-vps:~$apt-get install libpam-ldap |
为了更加灵活, 使用pam_listfile.so
模块控制哪些用户可以登录
配置
Nginx配置: 下载目录需要认证
1 | server { |
名为nginx-download
PAM相关配置,只允许/etc/nginx/download-users中的用户登录
1 | root@jp-vps:~$cat /etc/pam.d/nginx-download |
pam_ldap
配置详情
1 | root@jp-vps:~$cat /etc/ldap-nginx.conf |
测试
可用之前章节配置的OpenLDAP服务进行测试,预期结果:
- /etc/nginx/download-users的用户(tom)可登录
- peter不可登录
怎样排错
可能出现问题的地方
- 拼写错误或参数错误,需认真核查;必要的话一项一项比对
man pam_ldap
man pam_listfile
- /etc/ldap-nginx.conf中的base和pam_filter最有可能出错
- 将ldap服务端的日志打开,通过日志比对filter信息是否符合预期