[WEB] NGINX에서 HTTP 기본 인증을 통한 접속 제한 설정하기

SHARE:

NGINX에서 HTTP 기본 인증 설정 방법을 알아보고, 실습을 통해 쉽게 적용하고 사용할 수 있습니다.



[WEB] NGINX에서 HTTP 기본 인증을 통한 접속 제한 설정하기



NGINX에서 HTTP 기본 인증 설정 방법을 알아보고, 실습을 통해 쉽게 적용하고 사용할 수 있습니다.

NGINX를 사용해서 웹 서비스를 사용하고 있을 경우 특정 URL이나 디렉터리를 HTTP 기본 인증을 통해 로그인을 성공한 사용자에게만 접근을 허용할 수 있습니다.
웹 서비스를 통해 전체 공개되지 않고, 특정 사용자에게만 필요한 CMS와 같이 컨텐츠 혹은 데이터 파일의 접속을 허용하는 경우 사용됩니다.
NGINX HTTP Basic Authentication


실습 환경

  • 운영 체제(OS) : CentOS 8
  • root 계정으로 실행
  • IP 설정 및 인터넷이 가능한 환경
  • nginx version: nginx/1.18.0


NGINX에서 HTTP 기본 인증을 사용하기 위해서 ngx_http_auth_basic_module 모듈을 사용하며, dnf나 yum을 사용해서 패키지로 설치 시 기본으로 추가되어 있습니다.
이 ngx_http_auth_basic_module 모듈은 HTTP 기본 인증 프로토콜을 사용하여 사용자 계정과 비밀번호를 검증하여 자원에 대한 접속를 제한 할 수 있습니다.

NGINX HTTP 모든 접속 시 로그인 요청 설정

http { } 블럭에 설정 시 모든 가상 호스트의 웹 페이지 접속 시 HTTP 기본 인증을 요구합니다.

http { auth_basic "runit.cloud HTTP Basic Authentication"; # 로그인 팝업창에서 요청자 표시 내용 auth_basic_user_file /etc/nginx/.htpasswd; # 로그인 시 필요한 사용자 계정과 비밀번호가 저장된 파일 }

도메인으로 접속 시 로그인 요청 설정

server { } 블럭에 설정 시 도메인의 웹 페이지 접속 시 HTTP 기본 인증을 요구합니다. 아래와 같이 설정시 test.runit.cloud 도메인으로 접속 시 HTTP 기본 인증을 요구합니다.

server { listen 80; listen 443 ssl http2; server_name test.runit.cloud; auth_basic "runit.cloud HTTP Basic Authentication"; # 로그인 팝업창에서 요청자 표시 내용 auth_basic_user_file /etc/nginx/.htpasswd; # 로그인 시 필요한 사용자 계정과 비밀번호가 저장된 파일 location / { ... } }

특정 페이지 접속 시 로그인 요청 설정

location { } 블럭에 설정 시 특정 페이지 접속 시 HTTP 기본 인증을 요구합니다. 아래와 같이 설정 시 test.runit.cloud/google 주소로 접속 시 HTTP 기본 인증을 요구합니다.

server { listen 80; listen 443 ssl http2; server_name test.runit.cloud; location / { ... (생략) } location /google { root /usr/local/src/; charset utf-8; auth_basic "runit.cloud HTTP Basic Authentication"; # 로그인 팝업창에서 요청자 표시 내용 auth_basic_user_file /etc/nginx/.htpasswd; # 로그인 시 필요한 사용자 계정과 비밀번호가 저장된 파일 autoindex on; # 디렉터리 파일 목록 표시 설정 autoindex_exact_size off; # 파일 용량 표시 숨김 설정 (on, off) autoindex_format html; # 인덱스 파일 표시 형식 설정 (html, xml, json, jsonp) autoindex_localtime on; # 인덱스 파일 로컬 시간 표시 설정 (on, off) } }


.htpasswd 파일 설정하기

사용자 계정과 비밀번호의 정보를 가지고 있는 .htpasswd 파일은 계정:패스워드 와 같은 구조로 이루어져 있습니다. 비밀번호를 암호화해서 저장하는 방법은 리눅스에 내장되어 있는 openssl을 사용하거나 아파치에서 제공하는 httpd-tools 패키지를 설치해서 사용할 수 있습니다.

htpasswd 명령어로 사용자 계정과 비밀번호 설정하기

/etc/nginx/.htpasswd 파일을 생성하기 위해 -c 옵션을 사용하고, 추가 사용자를 생성할 경우 -c 옵션을 사용하지 않습니다.

[root@runit.cloud ~]# dnf install httpd-tools -y [root@runit.cloud ~]# htpasswd -cm /etc/nginx/.htpasswd test # test 계정 추가 New password: # test 계정 비밀번호 입력 Re-type new password: # 비밀번호 재입력 Adding password for user test

htpasswd 계정생성
위 이미지와 같이 .htpasswd 파일을 cat 명령어로 열어보면 비밀번호가 암호화 된 것을 알 수 있습니다.

openssl 명령어로 사용자 계정과 비밀번호 설정하기

리눅스 서버에 기본적으로 openssl이 설치되어 있어 추가 설치가 필요하지 않습니다. 아래와 같이 사용할 비밀번호를 입력하면 암호화된 텍스트로 변환해서 보여줍니다.

[root@runit.cloud ~]# openssl passwd -1 Password: # 비밀번호 입력 Verifying - Password: # 비밀번호 재입력 $1$mDmfrV6J$iyDoGP.Vmbg6o7c5EXXON.
/etc/nginx/.htpasswd 파일에 vi 에디터를 사용해서 계정과 비밀번호를 입력 후 저장하면 HTTP 기본 인증에 사용할 수 있습니다.

[root@runit.cloud ~]# vi /etc/nginx/.htpasswd test:$1$mDmfrV6J$iyDoGP.Vmbg6o7c5EXXON.

NGINX HTTP Basic Authentication Login Access Page
HTTP 기본 인증 로그인 성공 페이지

NGINX에서 HTTP 기본 인증 설정 작업이 완료되었습니다.
간단한 로그인이 필요한 페이지나 사이트를 NGINX 설정을 통해 쉽게 설정할 수 있습니다.

COMMENTS

이름

#/boot,1,#가상 머신 만들기,1,#가상 머신 자동 시작,2,#가상화,1,#게이트웨이 프로세스,1,#그라파나,1,#그라파나 패스워드 초기화,1,#데이터 시각화,1,#데이터베이스 설치,1,#로컬 ISO 저장소 만들기,1,#리눅스,18,#리눅스 명령어,3,#리눅스 명령어 자동 완성,1,#리눅스 서버 보안 취약점 점검,1,#리눅스 설치,1,#리눅스 한글 설정,1,#리눅스에서 php-fpm 설치,1,#마리아db,1,#모니터링,1,#모바일 페이지,1,#모바일 페이지 보여주기,1,#모바일 페이지 연동,1,#백업 자동화,1,#버추얼박스,1,#버추얼박스 설치,1,#사설 인증서,1,#사설 인증서 생성,1,#서버 가상화,1,#쉘 스크립트,1,#스크립트,1,#스크립트 개발,2,#슬랙,1,#슬랙 가이드,1,#슬랙 가입,1,#슬랙 로그인,1,#슬랙 매뉴얼,1,#슬랙 활용법,1,#시작 오류,1,#시트릭스,1,#시트릭스 하이퍼바이저,1,#오픈 소스 가상화,1,#원격 데스크톱 클립보드 차단 레지스트리,1,#원격데스크톱 클립보드 차단,1,#웹서버,2,#윈도우,2,#윈도우 10,3,#윈도우 10 전원 옵션,1,#윈도우 10 환경변수 추가,1,#윈도우10 환경변수 바로 적용,1,#자동 완성,1,#자체 서명,1,#자체 서명 인증서,1,#자체 서명 인증서 만들기,1,#전원 옵션 비활성화,1,#커널 삭제,1,#태블로,1,#파이썬,1,#파이썬 3.7.6,1,#파이썬 설치,1,#파일 업로드,1,#파일 업로드 용량 제한,1,#파티션 용량 부족,1,#프록시 설정,1,#하이퍼바이저,1,#한글 깨짐,1,#환경변수 편집창,1,#환경변수 path 여러개,1,#admin,1,#admin password reset,1,#apm,1,#Auth_basic,1,#backup,1,#bash,2,#bash shell,1,#bash-compilation,1,#centos,12,#centos 6,5,#centos 6에서 python 3설치,1,#centos 8,6,#centos 8 설치,1,#centos 8 한글,1,#centos 8 한글 설정,1,#centos 8 character set,1,#centos 8 install,1,#centos 8 locale set,1,#centos 설치,1,#centos repo,1,#centos-base.repo,1,#citrix,1,#citrix hyperviosr install,1,#citrix hypervisor,2,#Cmd 경로 설정,1,#Command autocomplete,1,#ctirix,1,#ctrix,1,#database,1,#db,1,#db 설치,1,#dropping packet,1,#grafana admin reset,1,#host key verification fail,1,#host only network,1,#http 기본 인증,1,#http 인증,1,#http authentication,1,#https,1,#hypervisor,1,#iptables,1,#isms,1,#iso 저장소,1,#jennifer 5,1,#jennifer 5 admin,1,#jennifer admin,1,#jennifer admin password,1,#jennifer password reset,1,#linux,3,#local ISO storage,1,#maria,1,#mariadb 설치,1,#mariadb install,1,#monitoring,1,#mysql,1,#nf_conntrack,1,#nginx 1.16,1,#nginx 1.16 install,1,#nginx 1.18,1,#Nginx 로그인,1,#nginx 로그인 페이지,1,#nginx 모바일,1,#nginx 모바일 연동,1,#nginx 설치,2,#nginx 접속 제한,1,#nginx 최신 버전,1,#Nginx basic auth login form,1,#Nginx basic auth security,1,#nginx basic http authentication,1,#Nginx check basic auth,1,#nginx htpasswd,1,#nginx http authentication,1,#nginx install,2,#nginx mobile redirect,1,#nginx reverse proxy setting#nginx 리버스 프록시 설정,1,#nginx ssl,1,#Ngx_http_auth_basic_module,1,#only sftp account,1,#password reset,1,#php-fpm,1,#php-fpm 설치,1,#php-fpm install,1,#proxy,1,#putty 눈아픔,1,#putty 파란색,1,#putty 환경설정,1,#python 3.7.6,1,#python install,1,#RDP 파일 복사 차단,1,#rdp접속시 클립보드 사용제한,1,#reverse proxy,1,#rsync,1,#rsync 백업,1,#security,1,#sftp,1,#sftp 계정,1,#shell script,2,#ssh,3,#ssh 배치모드,1,#ssh 자동 로그인,1,#ssh 자동화 스크립트,1,#sshpass,3,#sshpass 로그인,1,#sshpass 자동 로그인,1,#ssl,1,#swap,1,#swap 메모리 사용,1,#swap 메모리 확인,1,#swap check,1,#swap memory,1,#table full,1,#tableau 시각화,1,#tmux,1,#tmux 명령어,1,#tmux 명령어 옵션,1,#tmux 설치,2,#tmux 소스 컴파일,1,#tmux 자동 완성,1,#tmux bash autocomplete,1,#tmux install,2,#tmux source install,1,#tmux soure,1,#Virtualization,6,#vm,3,#vm 운영,1,#vm 자동 시작,2,#vm auto start,1,#vm create,1,#was monitoring,1,#web,4,#windows 10,2,#Windows path 추가,1,#xencenter,1,#xenserver 설치,1,#xenserver install,1,#yum install tmux,1,#yum.conf,1,#zabbix 그래프 한글 깨짐,1,#zabbix 5.0,1,#zabbix 그래프,1,#zabbix 한글 깨짐,1,리눅스,1,메모리,1,사용법,1,서버 관리,1,슬랙 사용법,1,윈도우 10 암호분실,1,윈도우 10 administrator 암호,1,윈도우 로컬 계정 비밀번호,1,윈도우 로컬 계정 비밀번호 분실,1,윈도우 비밀번호 변경,1,프로세스,1,한국어 설정,1,한글 설정,1,backup,1,CentOS 8,1,grafana,1,htpasswd,1,jennifer,1,linux,24,linux#tmux rpm,1,mariadb,1,nginx,8,php,1,putty,1,python,1,SLACK,1,ssl 인증서,1,tableau,1,tmux,3,virtualbox,3,virtualbox install,1,windows,6,Windows 10,5,xcp-ng,2,xenserver,3,zabbix,1,
ltr
item
시스템 엔지니어의 세상: [WEB] NGINX에서 HTTP 기본 인증을 통한 접속 제한 설정하기
[WEB] NGINX에서 HTTP 기본 인증을 통한 접속 제한 설정하기
NGINX에서 HTTP 기본 인증 설정 방법을 알아보고, 실습을 통해 쉽게 적용하고 사용할 수 있습니다.
https://1.bp.blogspot.com/-6pf7yuc6UEo/X758QGFzHWI/AAAAAAAAMoM/Q_JmSbuWAKw87yO8h4jWcFn5q0AT34ScwCLcBGAsYHQ/s0/%255BWEB%255D%2BNGINX%25E1%2584%258B%25E1%2585%25A6%25E1%2584%2589%25E1%2585%25A5%2BHTTP%2B%25E1%2584%2580%25E1%2585%25B5%25E1%2584%2587%25E1%2585%25A9%25E1%2586%25AB%2B%25E1%2584%258B%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%258C%25E1%2585%25B3%25E1%2586%25BC%25E1%2584%258B%25E1%2585%25B3%25E1%2586%25AF%2B%25E1%2584%2590%25E1%2585%25A9%25E1%2586%25BC%25E1%2584%2592%25E1%2585%25A1%25E1%2586%25AB%2B%25E1%2584%258C%25E1%2585%25A5%25E1%2586%25B8%25E1%2584%2589%25E1%2585%25A9%25E1%2586%25A8%2B%25E1%2584%258C%25E1%2585%25A6%25E1%2584%2592%25E1%2585%25A1%25E1%2586%25AB%2B%25E1%2584%2589%25E1%2585%25A5%25E1%2586%25AF%25E1%2584%258C%25E1%2585%25A5%25E1%2586%25BC%25E1%2584%2592%25E1%2585%25A1%25E1%2584%2580%25E1%2585%25B5%2B%25281%2529.png
https://1.bp.blogspot.com/-6pf7yuc6UEo/X758QGFzHWI/AAAAAAAAMoM/Q_JmSbuWAKw87yO8h4jWcFn5q0AT34ScwCLcBGAsYHQ/s72-c/%255BWEB%255D%2BNGINX%25E1%2584%258B%25E1%2585%25A6%25E1%2584%2589%25E1%2585%25A5%2BHTTP%2B%25E1%2584%2580%25E1%2585%25B5%25E1%2584%2587%25E1%2585%25A9%25E1%2586%25AB%2B%25E1%2584%258B%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%258C%25E1%2585%25B3%25E1%2586%25BC%25E1%2584%258B%25E1%2585%25B3%25E1%2586%25AF%2B%25E1%2584%2590%25E1%2585%25A9%25E1%2586%25BC%25E1%2584%2592%25E1%2585%25A1%25E1%2586%25AB%2B%25E1%2584%258C%25E1%2585%25A5%25E1%2586%25B8%25E1%2584%2589%25E1%2585%25A9%25E1%2586%25A8%2B%25E1%2584%258C%25E1%2585%25A6%25E1%2584%2592%25E1%2585%25A1%25E1%2586%25AB%2B%25E1%2584%2589%25E1%2585%25A5%25E1%2586%25AF%25E1%2584%258C%25E1%2585%25A5%25E1%2586%25BC%25E1%2584%2592%25E1%2585%25A1%25E1%2584%2580%25E1%2585%25B5%2B%25281%2529.png
시스템 엔지니어의 세상
https://www.runit.cloud/2020/07/basic-http-authentication-with-nginx-on-centos8.html
https://www.runit.cloud/
https://www.runit.cloud/
https://www.runit.cloud/2020/07/basic-http-authentication-with-nginx-on-centos8.html
true
7559506062450536879
UTF-8
Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS PREMIUM CONTENT IS LOCKED STEP 1: Share to a social network STEP 2: Click the link on your social network Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy Table of Content