NGINX 웹사이트 보안 강화: `.htpasswd`와 Ansible 사용법
카테고리
인프라/DevOps/보안
서브카테고리
보안
대상자
DevOps 엔지니어, 시스템 관리자, 웹 개발자
핵심 요약
.htpasswd
파일 생성과 Basic Auth 적용을 Ansible을 통해 자동화- NGINX 설정 파일은
rsync
로/etc/nginx/
에 동기화 - 보안 강화를 위해 bcrypt 해싱 방식 사용 권장
섹션별 세부 요약
1. 개요 및 목적
.htpasswd
파일을 사용해 NGINX 웹사이트에 Basic Auth를 추가- Ansible을 활용해 설정 자동화 및 재사용 가능한 역할 구축
- 보안 강화를 위해
.htpasswd
파일을 자동 생성 및 관리
2. Ansible 역할 설정
ansible-galaxy init
명령어로 역할 생성nginx-conf-sync
역할 내main.yml
,create-nginx-confs.yml
,certbot-setup-playbook.yml
등 주요 태스크 정의.htpasswd
파일 생성을 위한hhtpasswd -bc
명령어 사용
3. NGINX 설정 파일 구성
nginx.conf.j2
템플릿 파일에auth_basic
및auth_basic_user_file
설정 추가rsync
를 통해/etc/nginx/sites-available/
에 파일 동기화sites-enabled/
에 시스mlink 생성
4. Ansible 플레이북 실행
ansible-playbook
명령어로 플레이북 실행.htpasswd
파일 재생성 시htpasswd -B
사용 권장- 보안 강화를 위해 Ansible Vault로 비밀번호 저장 가능
5. 보안 고려사항 및 추가 팁
.htpasswd
파일 생성 시 bcrypt 해싱 사용 권장- 특정 경로(예:
/admin
)에만 Basic Auth 적용 가능 - Ansible Vault 사용을 통해 CI/CD 환경에서의 보안 강화
결론
.htpasswd
와 Ansible을 활용한 NGINX 보안 설정은 간단하고 재사용 가능한 방식으로 웹사이트 보안을 강화할 수 있음- 보안을 위해 bcrypt 해싱 방식 사용 및 Ansible Vault를 통해 비밀번호를 안전하게 저장하는 것이 권장됨