Docker로 이런저런 서비스들을 설치하다 보면, 로그인 기능이 없는 서비스들이 간간이 보이는데
예를 들면 metube가 로그인 기능을 제공하지 않아서, OCI 서버에 셋팅해놓고 쓰기가 좀 그랬습니다.

오라클 서버가 내부 망도 아니어서 192.168. 같은 local only로 사용 할 수 없고...
로그인 기능이 없으면 아무나 접속 할 수 있기 때문에 OCI 같은 오픈된 서버에서 사용하기에는
누군가 volume 맵핑 된 파일이나 자료에 접근할 수 있는 위험(?)이 노출된 상태이기 때문에
보안 측면에서 로그인 없는 docker 서비스를 OCI에서 사용하기 어려운 부분이 있었습니다.

뭔가 나만의 로그인 서비스에 대한 필요성이 있었는데 방법이나 키워드를 모르고 있었는데
서버 포럼에서 Authelia 라는걸 알게 되어서, 주말 내내 삽질하고 공부해서 세팅을 완료할 수 있었습니다.

주말 동안 검색해서 공부해보니 개념은 이렇습니다.

대문이 활짝 열려있던 로그인 기능 없는 서비스에 Authelia라는 자물쇠 달아주어 
셀프 보안(?)을 적용해주니 앞으로 안심하고 도커 서비스들을 사용할 수 있게 된 듯합니다.
그동안 너무 필요했던 기능이었는데 주말동안 공부해서 세팅을 완료해주니 속이 다 시원해지네요.

오랜만에 새로 독학하느라 애먹은 만큼 잊어 버리기 전에 가이드로 남겨봤습니다.

Tip. 리눅스 console에서 command 실행 결과는 "접은 글"로 숨겨 놓았습니다.
     실행 결과에 대한 참고가 필요한 경우 "더보기"를 클릭해서 확인 할 수 있습니다.

Tip. vim 편집 내용은 표로 정리 하였는데, 표 안의 // 주석은 편집해야 할 위차나 설명이니
     // 까지 함께 copy & paste 하시면 에러 날 수 있으니 잘 필터링 해주세요.

 

 

3-5. Authelia 설치 및 NPM 연동

1) 컨테이너 볼륨 디렉토리 생성

// 도커 NPM 설치 경로 생성

  • $ mkdir -pv ~/docker/authelia/
  • $ cd ~/docker/authelia/

 

// 볼륨 경로 생성

  • $ mkdir -pv ./volume/config

 

 

2) docker compose 작성

  • $ cd ~/docker/authelia/
  • $ vim docker-compose.yml
version: '3.3'
services:
  authelia:
    image: authelia/authelia
    container_name: authelia
    restart: always
# Do not need to open ports if container use same docker network with NPM
#   ports:
#     - 9091:9091
    volumes:
      - ./volume/config:/config
    environment:
      - PUID=<UID>
      - PGID=<GID>
      - TZ=Asia/Seoul

# Use same docker network with NPM
networks:
  default:
    external:
      name: nginx-proxy-manager

Tip. 앞서 설정한 NPM과 동일한 "nginx-proxy-manager" docker network를 사용할 경우
     ports에 포트 오픈을 명시할 필요가 없어 # 주석 처리해 두었습니다.
     NPM에서는 authelia container 이름으로 Proxy Host 연동이 가능하기 때문입니다.

주의! 만약 NPM과 동일한 "nginx-proxy-manager" docker network를 사용하지 않는 환경이라면
     이전에 알려진 방식대로 ports: 에 필요한 포트를 명시하여 포트 포워딩 설정을 해주셔야 합니다.

 

 

가이드 내용이 길어져서, 다음 내용은 2부로 분리합니다.

CONTINUE

 

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

 

+ Recent posts