개인용 호스팅 앱인 넥스트 클라우드나 비트워든과 같은 경우 SSL 인증서가 필요합니다. 외부 접속 시에도 가능한 경우 SSL 인증을 적용하는 것이 좋습니다. 신뢰할 수 있는 유료 도메인을 사용하는 것이 좋지만, 단순히 개인 용도로 사용할 경우 무료 도메인인 DuckDNS를 사용하는 것도 좋습니다. DuckDNS는 무료 동적 DNS 서비스로, 동적 IP 주소에 대한 도메인 이름 업데이트를 제공합니다.
DuckDNS에 가입하면 토큰이 제공됩니다. 이 토큰은 나중에 NPM에서 SSL 인증을 받거나 DDNS(Dynamic DNS)를 설정하는 데 사용됩니다.
DuckDNS는 무료로 제공되는 솔루션으로, 총 5개의 서브도메인을 생성할 수 있습니다. 예를 들어, "memoman.duckdns.org"와 같이 도메인 이름을 만들 수 있습니다. 현재 나스나 서버의 외부 IP를 "current IP"란에 입력하고, "Update IP"를 클릭하면 해당 도메인에 IP 주소가 매핑됩니다.
동적 IP를 사용하는 경우에는 IP 주소가 변경될 때마다 수동으로 입력해주거나 DDNS를 사용하여 자동으로 업데이트해야 합니다. 시놀로지의 경우 작업 스케줄러를 사용하면 간단하게 설정할 수 있으며, DuckDNS 홈페이지 문서에 해당 방법이 나와 있습니다. 큐냅의 경우에는 SSH로 접속하여 직접 크론을 작성해주어야 합니다.
url="https://www.duckdns.org/update?domains=도메인&token=토큰&ip=&verbose=true"
curl $url
필요한 내용을 첨가하여 쉘 스크립트(.sh) 파일을 생성합니다. 아래의 예시 스크립트를 참고하여 도메인 이름과 토큰, IP를 적절히 수정해주세요.
스크립트 파일을 저장한 후 실행 가능하도록 권한을 변경합니다.
chmod 700 duck.sh
크론탭(Crontab)을 사용하여 스크립트가 자동으로 실행되도록 설정합니다. SSH로 접속한 후 아래의 명령어를 실행합니다.
vi /etc/config/crontab
편집기가 열리면 아래의 예시를 참고하여 크론 작업을 추가합니다.
*/5 * * * * ~/duckdns/duck.sh >/dev/null 2>&1
크론을 적용하고 다시 시작하여 설정이 반영되도록 합니다.
crontab /etc/config/crontab
/etc/init.d/crond.sh restart
DDNS 설정이 완료되었으면, 이제 NPM의 설정 웹페이지로 이동하여 DuckDNS 도메인을 연결해야 합니다. NPM은 각 포트마다 서브도메인을 설정할 수 있는 기능을 제공합니다. 예를 들어, aaa.org라는 도메인이 있다고 가정해봅시다. 그러면 역방향 프록시에서는 각 포트에 매칭시킬 서브도메인인 b1.aaa.org, b2.aaa.org와 같은 서브도메인을 사용할 수 있습니다.
DuckDNS는 이미 서브도메인을 가지고 있지만, 서브의 서브도메인을 생성하여 사용할 수 있습니다. 예를 들어, memoman.duckdns.org라는 도메인이 있다고 가정해봅시다. 이 경우, 서브의 서브도메인인 nextcloud.memoman.duckdns.org을 넥스트 클라우드의 포트인 192.168.0.x:5500에 매핑할 수 있습니다. DuckDNS를 사용하면 서브서브도메인을 무제한으로 생성할 수 있습니다. 단지 이름이 길어지는 것뿐입니다.
도메인으로 역방향 프록시를 설정한 후 SSL 인증을 받기 위해 SSL 항목으로 이동합니다. 여기에서 DuckDNS도 Let's Encrypt의 무료 SSL 인증서를 받을 수 있습니다.
SSL 항목으로 이동한 후, "DNS provider"를 DuckDNS로 선택합니다. 입력란에 "your-duckdns-token" 부분에 이전에 발급받은 토큰을 입력합니다. 변경 사항을 저장하고 잠시 후에 인증 과정이 완료됩니다. SSL 인증이 성공적으로 완료되면 연결된 서브서브도메인으로 접속할 때 HTTPS로 접속할 수 있습니다.
'> Server' 카테고리의 다른 글
만화 및 이북 뷰어 Kavita (0) | 2023.05.18 |
---|---|
Gluetun을 사용한 Docker 컨테이너의 VPN 및 킬 스위치 설정 (0) | 2023.05.17 |
역방향 프록시 관리 도구(NPM)의 설정과 주의사항 (0) | 2023.05.17 |
큐냅(QNAP) 나스의 컨테이너 스테이션 활용 가이드 (0) | 2023.05.17 |
나스(NAS) 보안을 강화하는 9가지 핵심 권고사항 (0) | 2023.05.16 |