Authelia 설치 및 NPM 연동 가이드 4부로 이어갑니다. 번호는 계속 이어집니다.

 

 

11) NPM에서 Authelia에 적용할 설정 샘플 복사 및 서버 환경에 맞게 수정

11-1) https://dbt3ch.com/books/authelia-for-nginx-proxy-manager/page/authelia-conf 접속

11-2) 1~34라인 전체 복사

더보기
location / {
set $upstream_authelia http://192.168.1.25:9091; # This example assumes a Docker deployment. Change the IP and Port to your setup
proxy_pass $upstream_authelia;
client_body_buffer_size 128k;

#Timeout if the real server is dead
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;

# Advanced Proxy Config
send_timeout 5m;
proxy_read_timeout 360;
proxy_send_timeout 360;
proxy_connect_timeout 360;

# Basic Proxy Config
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Uri $request_uri;
proxy_set_header X-Forwarded-Ssl on;
proxy_redirect  http://  $scheme://;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_cache_bypass $cookie_session;
proxy_no_cache $cookie_session;
proxy_buffers 64 256k;

# If behind reverse proxy, forwards the correct IP, assumes you're using Cloudflare. Adjust IP for your Docker network.
set_real_ip_from 192.168.1.0/24#make sure this IP range matches your netowrk setup
real_ip_header CF-Connecting-IP;
real_ip_recursive on;
}

// 예제 Advance 설정 수정

11-3) [2라인] set $upstream_authelia 값을 서버의 주소로 변경 (docker network 사용 시 container name 지정)
예) set $upstream_authelia http://authelia:9091/api/verify;

11-4) [31라인] set_real_ip_from 값을 서버의 주소로 변경
예) set_real_ip_from 192.168.0.0/16;

11-5) 수정한 내용 복사 (CTRL + C)

 

 

12) NPM 에서 Authelia에 설정 적용

* START -> NPM 관리 페이지 접속 -> [Dashboard] -> [Proxy Hosts] ->

-> 7)에서 생성한 auth.test1234.duckdns.org -> 맨 오른쪽... 옵션 -> Edit -> 1) Advanced 탭 -> 

-> 수정한 내용을 2) "Custom Nginx Configuration" 박스에 붙여넣기 (CTRL + V) -> 3) Save -> END

 

 

13) NPM 에서 Authelia와 연동할 서비스 설정 샘플 복사 및 서버 환경에 맞게 수정

13-1) https://dbt3ch.com/books/authelia-for-nginx-proxy-manager/page/protected-domain-conf 접속

13-2) 1~77라인 전체 복사

더보기
location /authelia {
internal;
set $upstream_authelia http://192.168.1.25:9091/api/verify; #change the IP and Port to match the IP and Port of your Authelia container
proxy_pass_request_body off;
proxy_pass $upstream_authelia;    
proxy_set_header Content-Length "";

# Timeout if the real server is dead
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
client_body_buffer_size 128k;
proxy_set_header Host $host;
proxy_set_header X-Original-URL $scheme://$http_host$request_uri;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr; 
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Uri $request_uri;
proxy_set_header X-Forwarded-Ssl on;
proxy_redirect  http://  $scheme://;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_cache_bypass $cookie_session;
proxy_no_cache $cookie_session;
proxy_buffers 4 32k;

send_timeout 5m;
proxy_read_timeout 240;
proxy_send_timeout 240;
proxy_connect_timeout 240;
}

location / {
set $upstream_uptime-kuma $forward_scheme://$server:$port; #change uptime-kuma to match your container name: $upstream_some-container-name or $upstream_somecontainername
proxy_pass $upstream_uptime-kuma#change uptime-kuma to match your container name: $upstream_some-container-name or $upstream_somecontainername

auth_request /authelia;
auth_request_set $target_url https://$http_host$request_uri;
auth_request_set $user $upstream_http_remote_user;
auth_request_set $email $upstream_http_remote_email;
auth_request_set $groups $upstream_http_remote_groups;
proxy_set_header Remote-User $user;
proxy_set_header Remote-Email $email;
proxy_set_header Remote-Groups $groups;

error_page 401 =302 https://auth.yourdomain.com/?rd=$target_url; #change this to match your authentication domain/subdomain

client_body_buffer_size 128k;

proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;

send_timeout 5m;
proxy_read_timeout 360;
proxy_send_timeout 360;
proxy_connect_timeout 360;

proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection upgrade;
proxy_set_header Accept-Encoding gzip;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Uri $request_uri;
proxy_set_header X-Forwarded-Ssl on;
proxy_redirect  http://  $scheme://;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_cache_bypass $cookie_session;
proxy_no_cache $cookie_session;
proxy_buffers 64 256k;

set_real_ip_from 192.168.1.0/16#make sure this matches your network setup
real_ip_header CF-Connecting-IP;
real_ip_recursive on;

}

// 예제 Advance 설정 수정

13-3) [3라인] set $upstream_authelia 값을 서버의 주소로 변경 (docker network 사용 시 container name 지정)
예) set $upstream_authelia http://authelia:9091/api/verify;

13-4) [33~34라인] set $upstream_uptime-kuma 값을 수정
예)
set $upstream_app $forward_scheme://$server:$port;
proxy_pass $upstream_app;

13-5) [45라인] auth.yourdomain.com 값을 서버의 주소로 변경
예) error_page 401 =302 https://auth.test1234.duckdns.org/?rd=$target_url;

13-6) [71~72라인] set_real_ip_from 값을 서버의 주소로 변경
예)
set_real_ip_from 192.168.0.0/16;
set_real_ip_from 172.19.0.0/16;

13-7) 수정한 내용 복사 (CTRL + C)

 

 

14) NPM 에서 Authelia와 연동할 서비스 설정 적용

* START -> NPM 관리 페이지 접속 -> [Dashboard] -> [Proxy Hosts] ->

-> Authelia 인증 적용할 metube.test1234.duckdns.org -> 맨 오른쪽... 옵션 -> Edit -> 1) Advanced 탭 -> 

-> 수정한 내용을 2) "Custom Nginx Configuration" 박스에 붙여넣기 (CTRL + V) -> 3) Save -> END

 

 

15) Authelia와 NPM 연동 확인

15-1) http://metube.test1234.duckdns.org 접속

15-2) http://auth.test1234.duckdns.org 사이트로 re-direction 접속됨

15-3) Authelia 로그인 수행

15-4) 로그인 성공시 -> http://metube.test1234.duckdns.org 접속됨

15-5) 로그인 실패시 -> http://metube.test1234.duckdns.org 접속 불가능

 

 

16) Reference

참고로 가이드를 작성하기 위해 참고했던 원문들을 reference로 첨부합니다.

 

 

17) 마치면서...

가이드를 정리해 보니, 너무 내용이 길어져서 4부로 걸쳐서 내용을 정리했습니다.

로그인 기능이 없는 도커 서비스들을 오픈된 개인 서버에서 사용하기 어려웠던 부분을
Authelia를 이용해서 나만의 로그인 서비스를 사용할 수 있게 되었습니다.
대문이 활짝 열러 있던 서버에 자물쇠 하나 달아주어 셀프 보안을 적용할 수 있게 되었으니
앞으로 안심하고 사용할 할 수 있을 듯합니다.

이상으로 가이드를 마치겠습니다.
2FA에 대한 내용은 나중에 포스팅 예정입니다.

FINISH

 

PS. 본 포스팅이 도움이 되셨다면 소중한 리플로 후기 공유해주세요. 광고 클릭도 큰 도움이 됩니다.

 

+ Recent posts