Bitwarden은 오픈소스 암호관리 프로그램이다. Bitwarden에서 제공해주는 서버를 사용해도 되고 직접 구축을 해도 되기 때문에 오라클 클라우드 프리 티어에 구성을 해본다.
bitwarden 사이트에서 보다 많은 정보를 볼 수 있다.
Bitwarden Open Source Password Manager
1. 준비사항
- 오라클 클라우드 프리티어 VM
- SSL 인증서를 위한 Let's Encrypt 인증서
- Docker
- Ngnix reverse proxy
2. 오라클 클라우드 프리티어 VM
기존에 VM은 그대로 생성을 하면 되고, IP변경이 될 수 있으니 고정 IP를 받아둔다.
Networking → IP Management
생성된 VM으로 가서 Compute → Instances → Instance Details → Attached VNICs → VNIC Details → IP Addresses 로 이동 한 뒤 해당 VNIC에 대한 Public IP를 변경해준다. 만약 기존에 할당된 IP가 있으면 No Public IP를 선택 후 저장한 뒤 위에서 만든 고정 IP를 붙여주면 된다.
3. Docker 설치
# apt로 설치 시
$ sudo apt install docker.io
$ sudo usermod -aG docker $USER
# snapd으로 설치시
ubuntu@ubuntu01:~$ sudo snap install docker
docker 19.03.11 from Canonical✓ installed
ubuntu@ubuntu01:~$ sudo snap connect docker:home
ubuntu@ubuntu01:~$ sudo addgroup --system docker
Adding group `docker' (GID 119) ...
Done.
ubuntu@ubuntu01:~$ sudo adduser $USER docker
Adding user `ubuntu' to group `docker' ...
Adding user ubuntu to group docker
Done.
ubuntu@ubuntu01:~$ newgrp docker
ubuntu@ubuntu01:~$ sudo snap disable docker
docker disabled
ubuntu@ubuntu01:~$ sudo snap enable docker
docker enabled
ubuntu@ubuntu01:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4. Let's Encrypt SSL 인증서 설치
ubuntu 서버 자체 방화벽을 허용해준다
# iptable을 저장하기 위해 iptables-persistent를 사용한다.
$ sudo systemctl start netfilter-persistent.service
$ sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT
$ sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT
$ sudo iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
$ sudo iptables -I INPUT -p tcp --dport 8081 -j ACCEPT
$ sudo iptables -I INPUT -p tcp --dport 8443 -j ACCEPT
$ sudo netfilter-persistent save
$ sudo netfilter-persistent reload
5. bitwarden 설치
$ docker run -d --restart always --name bitwarden -v /home/ubuntu/bitwarden/:/data/ -p 9090:80 -e ADMIN_TOKEN="Token_Key" bitwardenrs/server:latest
6. bitwarden 설정
Nginx Proxy Manager로 설정한 리버스 프록시로 접속을 한다.
https://<mydomain>.duckdns.org/admin 으로 접속한 뒤 위에서 설정한 ADMIN_TOKEN을 넣어준다
General settings에서 Domain URL과 Allow new signups는 체크 해제, Require email verification on signups는 체크한다.
Advanced Settings에서 Require new device emails는 체크한다.
7. 테스트
Email 설정이 잘 되지 않아서 위에서 설정한 이메일 체크 해제랑 사인업 기능은 허용을 한 뒤 계정을 우선 생성한다.
내용을 채워넣고 난 뒤 로그인을 하면 이렇게 정상적으로 로그인이 된다.