EC2 Ubuntu에 Vaultwarden 설치하기 (feat Docker + nginx )


Vaultwarden 은 패스워드매니저로써 Bitwarden 을 오픈소스로 똑같이 만든거라 


Vaultwarden 이 경량이기도 하고 사용할 인원수가 많지 않기 때문에 t3.nano 에서도 돌리는게 문제가 없을것 같지만 일단 t3.nano 에서는 설치 구성할때 시간이 오래 걸리니 t3.medium 으로 만들어서 시작을 합니다. 

기본적은 Ubuntu 구성을 하고 (라고 해봐야 사실 뭐 로그인 설정같은거 정도 뿐이지만) 

sudo apt update && sudo apt upgrade -y  
sudo apt install -y docker.io docker-compose ufw

로 도커를 설치 합니다. 

Vaultwarden 의 데이터가 들어갈 디렉토리를 생성하고 권한을 조정해준뒤

sudo mkdir -p /opt/vaultwarden/data
sudo chown -R 1000:1000 /opt/vaultwarden/data

도커를 실행해 줍니다. (어차피 이 서버에선 이거 하나 돌릴거라 80 을 그냥 매핑해줍니다)

sudo docker run -d  --name vaultwarden  -v /opt/vaultwarden/data:/data  -e ADMIN_TOKEN=$(openssl rand -hex 16)  -p 80:80  vaultwarden/server:latest

토큰값을 확인해야 하니. 

sudo docker exec vaultwarden printenv ADMIN_TOKEN

로 토큰값을 확인합니다. 

아직 도메인 연결등은 안했으나 80 포트를 통해 ec2 의 퍼블릭 IP에 접속하면 Vaultwarden 의 로고를 보실수 있습니다.  /admin 으로 접속한뒤 위에서 확인한 토큰값을 입력하면 관리자 페이지에 진입할수 있습니다. 

토큰의 경우 환경변수로 들어가기 때문에 컨테이너를 새로 띄우게 되면 새로 확인해야 하니 불편합니다. 

/opt/vaultwarden/data/config.json 에 



이렇게 저장한뒤 
sudo docker run -d  --name vaultwarden  -v /opt/vaultwarden/data:/data  -p 80:80  vaultwarden/server:latest
이렇게 ADMIN_TOKEN 값을 빼면 위의 화일에서 지정한 토큰이 적용됩니다. 

그런데...
도메인도 연결해야 하고 인증서도 적용해야 하고.. 하려면 아무래도 Nginx 를 사용하는것이 좋을것 같습니다.
sudo apt install -y nginx
Nginx 를 설치해주고. 
/etc/ssl/certs/ 에 ssl 인증서 키파일(폴체인과 프라이빗)을 넣어준뒤

 



어차피 한개만 돌릴거니 그냥 /etc/nginx/sites-available/default 에 직접 위의 설정을 넣어주고
(80 으로 오면 443으로 리다이렉션 44으로 오면 내부 8080 포트로 연결)

당연히 도메인은 해당 서버의 퍼블릭 IP 또는 프라이빗 호스티드존을 이용해 프라이빗IP 를 지정해줘야함.

sudo docker run -d  --name vaultwarden --restart=always -v /opt/vaultwarden/data:/data  -p 8080:80  vaultwarden/server:latest

8080을 도커80 포트로 연결시켜서 컨테이너는 실행해준뒤 

도메인으로 연결하면 



접속이 짜잔~

/admin 으로 토큰값을 입력하여 접속을 하면 admin 페이지를 볼수 있습니다.



근데 경고가 하나 보이네요, 토큰값을 그냥 텍스트로 저장했기에 보이는것 같습니다.

일단  sudo apt install -y argon2  설치합니다.

 echo -n "토큰값" | argon2 somesalt -id -e 을 하면 나오는 해시값을 복사한뒤
아까 설정했던 /opt/vaultwarden/data/config.json 에 원래 토큰값에 붙여넣습니다.

컨테이너를 다시 실행한뒤 접속해보면 (해시값이 아닌 원래 토큰값으로 접속합니다)

경고가 사라졌습니다.


간단 요약 하자면.

sudo apt update && sudo apt upgrade -y  
sudo apt install -y docker.io docker-compose ufw

sudo mkdir -p /opt/vaultwarden/data
sudo chown -R 1000:1000 /opt/vaultwarden/data

sudo apt install -y argon2
echo -n "임의로 만든 토큰값" | argon2 somesalt -id -e

nano /opt/vaultwarden/data/config.json

{
    "admin_token" : "위에서 나온 해시값"
}

저장

sudo apt install -y nginx

/etc/ssl/certs/ 에 ssl 인증서 키파일(폴체인과 프라이빗)을 넣기

/etc/nginx/sites-available/default 에 

도메인 연결

sudo docker run -d  --name vaultwarden --restart=always  -v /opt/vaultwarden/data:/data  -p 8080:80  vaultwarden/server:latest

https:// 도메인 /admin 접속
임의로 만든 토큰값 으로 로그인.



댓글

이 블로그의 인기 게시물

비만 오면 C103 통신에러 걸리는 삼성 무풍 에어컨

CT6 겉벨트를 갈아 봅시다. | Cadillac CT6 serpentine belt replacement

CT6 고스트도어(소프트 클로징) 장착 | Installing Soft-Close Doors (Ghost Doors) on a Cadillac CT6