Nginx와 LDAP를 연동하여 사용자 인증을 구현하는 방법을 설명드리겠습니다. LDAP( Lightweight Directory Access Protocol)은 디렉터리 서비스에 접근하기 위한 프로토콜로, 사용자 정보와 인증 정보를 저장하고 검색하는 데 사용됩니다. 이를 통해 Nginx 웹 서버를 보호하고 액세스를 제어할 수 있습니다.
이제 순서대로 설치와 설정을 진행해보겠습니다.
1. 필요한 패키지 설치
먼저 Nginx와 LDAP 모듈이 필요합니다. Nginx를 설치하고 컴파일하기 전에 다음 패키지를 설치합니다:
- Nginx
- Nginx 개발 헤더 (Nginx를 컴파일할 때 필요)
- LDAP 라이브러리 및 개발 헤더
2. Nginx 컴파일
LDAP 모듈을 포함하여 Nginx를 컴파일합니다. 다음은 컴파일 단계입니다.
# Nginx 소스 코드 다운로드
wget http://nginx.org/download/nginx-x.x.x.tar.gz
tar -zxvf nginx-x.x.x.tar.gz
cd nginx-x.x.x
# LDAP 모듈 다운로드 (예: ldap2_module)
# ldap2_module을 사용하는 것을 추천합니다. 필요한 모듈에 따라 변경할 수 있습니다.
wget https://github.com/kvspb/nginx-auth-ldap/archive/master.tar.gz
tar -zxvf master.tar.gz
# Nginx 컴파일 (LDAP 모듈 추가)
./configure --add-module=path/to/nginx-auth-ldap-master
make
sudo make install
3. Nginx 구성
이제 Nginx를 설치했으므로 구성 파일을 작성합니다. 아래는 예시 Nginx 구성 파일 (/etc/nginx/nginx.conf) 입니다.
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 1024;
}
http {
# 기존 설정 내용...
ldap_server my_ldap_server {
url ldap://ldap.example.com/ou=users,dc=example,dc=com?uid?sub?(objectClass=posixAccount);
binddn "cn=nginx,ou=services,dc=example,dc=com";
binddn_passwd "password";
group_attribute uniquemember;
require valid_user;
}
server {
listen 80;
server_name mydomain.com;
location / {
auth_ldap "Forbidden";
auth_ldap_servers my_ldap_server;
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
# 기존 설정 내용...
}
위 구성에서 주의해야 할 점:
- ldap_server: LDAP 서버 정보를 지정하는 블록입니다. url은 LDAP 서버 주소를 설정하고, binddn과 binddn_passwd는 Nginx가 LDAP 서버에 연결할 때 사용할 사용자 계정 정보를 지정합니다.
- auth_ldap: 인증에 실패했을 때 반환할 메시지를 지정합니다.
- auth_ldap_servers: 사용할 LDAP 서버 블록을 선택합니다.
4. Nginx 재시작
Nginx 구성 파일을 수정한 후, 변경 사항을 적용하기 위해 Nginx를 재시작합니다.
sudo nginx -t # 구성 파일 오류 확인
sudo service nginx restart # Nginx 재시작
이제 Nginx와 LDAP가 연동되었습니다. 웹 서버에 접속할 때 LDAP 인증이 필요하며, LDAP에 있는 사용자 계정으로 로그인해야 합니다.
참고: 이 예시에서는 LDAP 서버 주소, 사용자 계정 정보 등 실제 정보를 제공하지 않았습니다. 실제 서버에 적용할 때는 올바른 정보로 변경해야 합니다. 또한 auth_ldap 메시지 등을 필요에 따라 수정하거나 개선할 수 있습니다.
728x90
댓글