• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
가이드

ASUS 공유기에 CloudFlare DDNS 적용하기

ExpBox ExpBox 656

3

7

안녕하세요 Expbox입니다.

 

갑작스럽게 서버를 사용하지 못하는 일이 발생해서 나스라도 집에 설치하여 사용하려고 준비중입니다. 집에서는 기존에 사용하던 OPNsense를 사용하는게 아니라 ASUS RT-AX56U 공유기를 사용하고 있습니다. ASUS에서 시놀로지처럼 자체적인 DDNS를 제공해주긴 하나 가끔 문제가 생기는 것으로 알고있습니다. 또한 저는 이미 CloudFlare에 등록된 도메인을 가지고 있어 제 도메인을 사용하는 것이 더 편하니 제 ASUS RT-AX56U에 제 도메인을 연결해보도록 하겠습니다.

 


 

참고

 

CloudFlare 도메인을 사용하기 위해서는 ASUS 공유기에 Asuswrt-Merlin 펌웨어를 올려야합니다. 정식 펌웨어에서는 사용할 수 없기 때문에 꼭 펌웨어를 교체하였는지 확인하는 과정이 필요합니다. 멀린펌을 설치하는 부분은 크게 어렵지 않으니 [자신이 가지고있는 ASUS 공유기 모델 + Merlin(멀린펌)]으로 검색하시면 잘 나옵니다. 요청하시는 분들이 있다면 나중에 다루는 것으로 하겠습니다.

 

아래는 참고한 깃허브 주소입니다.

 

 

 


 

준비 사항

 

  1. 정식펌웨어가 아닌 멀린펌웨어를 설치한 ASUS 공유기(이 게시물에서는 멀린펌웨어 384.7 버전 이상을 사용하셔야 가능한 방법을 소개하고있습니다. - 저는 388.2_2 버전을 사용했습니다.)
  2. SSH를 접속할 수 있는 클라이언트(아무 클라이언트 사용해도 됩니다. - 저는 맥북에 iterm2를 사용하였습니다.)
  3. CloudFlare에 등록되어있는 아이디와 도메인

 


 

1. JFFS2 파티션 및 SSH 활성화

 

멀린펌을 사용하게 되면 JFFS2 파티션을 사용할 수 있게됩니다. 저 또한 자세히 아는 것은 아니지만 공유기 또한 하나의 컴퓨터라고 볼 수 있어서 CPU, RAM, 저장장치 등이 존재합니다. 저장장치에서 펌웨어, OS 등을 설치하고 남은 부분을 스크립트, 설정 파일 등을 저장할 수 있도록 만들어주는 과정을 거쳐야합니다.

 

또한 SSH는 헤놀로지 혹은 서버를 운영하고 계신분들은 아시겠지만 원격 콘솔입니다. 앞서 공유기가 하나의 컴퓨터라고 말씀드렸는데 이 공유기에 원격으로 접속해서 설정 파일을 만들고 명령을 실행해야하기에 SSH를 활성화해야합니다.

 

image.png.jpg

 

ASUS 공유기에서 고급 설정을 보면 [관리] 버튼을 찾아 클릭합니다.

 

image.png.jpg

 

그리고 위에서 [시스템]이라는 탭을 클릭합니다.

 

image.png.jpg

 

[Persistent JFFS2 partition] 부분에서 [Enable JFFS custom scripts and configs] 의 라디오 버튼 부분을 [예] 로 바꿉니다.

 

image.png.jpg

 

또한 아래의 [서비스] 부분에서 [Enable SSH]를 [LAN only]로 변경해주고 SSH 포트를 원하는 포트(저는 22로 했습니다.)로 변경합니다.

 

그리고 맨 아래에 [적용]을 클릭하고 저장되면 맨 위에서 [재시작] 버튼을 클릭하면 됩니다.

 


 

2. CloudFlare API Token 생성하기

 

CloudFlare에서 DDNS를 사용하기 위해서 다른 클라이언트 등은 이메일과 패스워드를 입력하거나 Global API Key를 입력할 때도 있긴한데 이 경우 CloudFlare 계정 보안에 큰 문제가 생길 수 있어 API Token을 생성하여 그런 문제를 해결하는 방법을 사용합니다. 특정 권한만 사용할 수 있는 API Token을 생성하여 사용합니다.

 

https://dash.cloudflare.com/login

위 링크에 접속하여 CloudFlare에 로그인합니다.

 

https://dash.cloudflare.com/profile/api-tokens

그 후 위 링크에 접속하여 API Token 생성 창으로 이동합니다.

 

image.png.jpg

 

[Create Token]을 클릭합니다.

 

image.png.jpg

 

API Token을 만드는 템플릿이 존재하는데 맨 위에 있는 [Edit zone DNS] 부분에서 [Use template]를 클릭합니다.

 

image.png.jpg

 

[Token name] 부분은 원하는 이름으로 변경하시고 아래 [Permissions]과 [Zone Resources] 부분은 이미지와 동일하게 맞춰주시면 됩니다. 도메인이 여러개라면 [Zone Resources]에서 [All zones]로 하지 마시고 [Specific zone]으로 변경하시고 원하는 도메인으로 해둘 수도 있습니다.

 

이후 [Continue to summary]를 클릭, [Create Token]을 클릭합니다.

 

image.png.jpg

 

그러면 이렇게 Token이 생성되는데 이 페이지에서 나가게 되면 Token을 더 이상 확인할 수 없기 때문에 메모장에 저장해두시거나 기억(?)을 해두시면 됩니다. 토큰을 공개하는건 좀 그렇고 일부 가렸습니다. 아마 게시글이 올라갈 때 쯤이면 토큰 자체가 삭제되긴 할테지만 괜히 긁어 부스럼 만들긴 좀 그래서요.

 


 

3. ASUS 공유기에 SSH 접속하기

 

이제 공유기에 SSH로 접속해서 DDNS를 연결할 차례입니다. 이것도 어렵지 않아요. 복사 붙여넣기만 잘하면 됩니다.

 

앞서 멀린펌웨어 384.7 버전 이상을 사용해야한다고 했는데 이제부터 사용해야할 In-a-Dyn(inadyn) 클라이언트가 멀린펌웨어 384.7 버전부터 탑재되었기 때문입니다. 한번 더 강조드리는데 멀린펌웨어 384.7 이상의 버전을 사용하셔야합니다.

 

먼저 사용해야할 설정 파일을 만들어야합니다. 위에서 생성해둔 CloudFlare API Token을 사용하게 되는겁니다.

 

provider cloudflare.com {
    username = zone.name
    password = api_token
    hostname = hostname.zone.name
    ttl = 1 # optional, value of 1 is 'automatic'.
    proxied = false # optional.
}

 

위의 내용을 아무 메모장에 붙여넣기합니다. 그리고 내용을 수정합니다.

 

zone.name 는 자신이 가지고 있는 도메인으로 수정합니다.

- 예시: example.com

api_token 은 2에서 생성한 CloudFlare API Token 으로 수정합니다.

- 예시: qwertyuiopasdfghjklzxcvbnm1234567890

hostname.zone.name 은 자신이 사용할 (서브)도메인으로 수정합니다.

- 예시: asus.example.com

나머지 ttl과 proxied는 굳이 바꿀 필요없으나 CloudFlare의 DNS를 사용하시는 분은 proxied의 false를 true로 바꿔주시면 될 것 같습니다.

 

# ssh [본인이 설정한 공유기 ID]@[공유기 IP] -p [1에서 설정한 SSH 포트]

ssh id@192.168.0.1 -p 22

 

저는 공유기의 아이디가 id 이고 공유기의 ip가 192.168.0.1이며 포트는 22입니다. 따라서 아래의 명령어를 이용하여 로그인 할 수 있습니다. 아이디는 공유기 관리자 페이지에서 사용하는 아이디, 비밀번호는 공유기 관리자 페이지에 접속할 수 있는 비밀번호를 사용하면 됩니다.

 

vi /jffs/configs/inadyn.conf

 

공유기에 SSH로 접속되었다면 위의 명령어를 사용합니다.

 

provider cloudflare.com {
    username = example.com
    password = qwertyuiopasdfghjklzxcvbnm1234567890
    hostname = asus.example.com
    ttl = 1 # optional, value of 1 is 'automatic'.
    proxied = false # optional.
}

 

그리고 vi 편집기가 실행되면 i 를 눌러 편집모드로 변경한 뒤 위에서 메모장에 만들어둔 내용을 붙여넣습니다. 내용이 정상적으로 붙여넣어졌다면 ESC를 누르고 :wq 혹은 :x를 입력하여 저장 후 빠져나옵니다.

 

참고: 내용이 정상적으로 붙여넣어지지 않았다면 ESC를 누르고 :q!를 입력하여 저장하지 않고 빠져나옵니다.

 

inadyn -f /jffs/configs/inadyn.conf

 

그리고 위의 명령어를 붙여넣고 엔터를 누른 후 시간이 좀 지나고 CloudFlare Dashboard를 확인하면 A 네임으로 정상적으로 DDNS가 연결되어있는 것을 확인할 수 있습니다.

 

exit

 

이후 위의 명령어를 사용하여 SSH 접속을 해제하시면 됩니다.

 

참고: 만약 작동하지 않는다면 API Token, 도메인 등을 다시 한번 확인해보시고 그래도 안된다면 아래의 링크를 확인해보시기 바랍니다.

 

 

 


 

4. 마치며 ASUS RT-AX56U의 SSH 접속 비활성화

 

DDNS 연결이 완료된 것을 확인했다면 보안상 SSH의 접속을 비활성화하는 것이 좋습니다. 1번에서 적용했던 대로 [관리] - [시스템] 탭으로 접속합니다.

 

image.png.jpg

 

아래의 [서비스] 부분에서 [Enable SSH]를 [아니오]로 변경합니다.

 

그리고 맨 아래에 [적용] 버튼을 클릭하면 끝입니다.

 


 

사실 스크립트를 사용하는 등의 다른 깃허브 레포도 있긴 한데 제가 찾아본 것들에서는 Global API를 써야하는 경우가 있기도하고 너무 오래 방치된 등의 문제가 있었습니다. 그래서 ip가 엄청 자주 바뀌는 것도 아니고 공유기 특성상 재부팅을 자주하는 것도 아니라 그냥 간단하게 적용해봤는데 정상적으로 잘 작동하는 것 같습니다.

 

궁금한 점이나 틀린 내용 등이 있으시면 댓글 남겨주시면 감사하겠습니다.

 

읽어주셔서 감사합니다.

신고공유스크랩
7
profile image 1등
달소 2023.09.03. 02:12
와우,, 정성스러운글 잘봤습니다👍
멀린펌을 올려도 UI 자체는 크게 바뀌지않는군요??
profile image
ExpBox 글쓴이 2023.09.03. 02:13
달소
맞습니다. 일부 기능이 추가되는 정도라고 보시면 될 것 같아요.
profile image
ExpBox 글쓴이 2023.09.03. 02:34
전라도의힘
잘 적용되었으면 좋겠네요. 멀린펌 384.7 버전 이후 탑재된 In-a-Dyn 기능 덕분에 쉽게 할 수 있었습니다.
순수이성비판 2024.01.18. 03:53
이 글을 보고 in-a-dyn을 적용해 봤습니다.
글에서 잘 정리해주신 부분이 도움이 많이 됐습니다.
직접 해 보니 추가적으로 설정해야 할 부분이 있어 댓글 남깁니다.

https://github.com/RMerl/asuswrt-merlin.ng/wiki/DDNS-services#using-one-of-the-services-supported-by-in-a-dyn-but-not-by-the-asuswrt-merlin-webui
에서 configuration file check 부터의 부분을 적용하시면 A 레코드 생성이 정상적으로 진행되는 것을 확인할 수 있었습니다.

좋은 글 감사드립니다. DNS/DDNS가 뭔지도 모르고 넙죽넙죽 다른 게시글들 받아먹으면서 설정하다가, 이번 계기로 많이 배웠습니다.
Rcircle 2024.05.12. 00:44

CloudFlare에서 도메인 받아놓고 못 쓰고 있었는데 비록 시간은 오래 걸렸지만 덕분에 해결되어 감사합니다.

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story
번호 분류 제목 글쓴이 날짜 조회 추천
잡담 서브 미니PC Proxmox로 집합시켰습니다.. 5 EXP 23시간 전21:58 235 +1
가이드 나만의 구독 관리하기 Wallos 서버 구축하기. 8 달소 3일 전17:19 263 +2
후기 네트워크 구성도와 상세 스펙 공유 3 맘맘 3일 전16:17 266 +1
133 가이드
image
달소 3일 전17:19 263 +2
132 가이드
image
klayf 24.05.12.14:16 289 +14
131 가이드
image
달소 24.05.01.22:22 486 +3
130 가이드
image
ljr10 24.05.01.08:20 211 0
129 가이드
image
달소 24.05.01.06:46 263 +1
128 가이드
image
달소 24.04.26.19:06 224 0
127 가이드
image
달소 24.04.26.18:33 391 +1
126 가이드
image
달소 24.04.26.18:09 480 0
125 가이드
image
달소 24.04.26.17:40 392 +2
124 가이드
image
달소 24.04.25.23:10 196 +1
123 가이드
image
달소 24.04.25.22:54 154 0
122 가이드
image
달소 24.04.25.07:24 462 0
121 가이드
file
펜타네스트 24.04.15.18:39 343 +1
120 가이드
image
달소 24.04.11.23:10 790 +3
119 가이드
image
opq! 24.04.02.21:25 510 +9
118 가이드
image
ExpBox 24.03.30.18:06 162 +3
117 가이드
normal
DarkAcid 24.03.30.13:09 228 +1
116 가이드
normal
minis 24.03.22.14:20 191 0
115 가이드
image
달소 24.02.20.21:38 172 0
114 가이드
image
달소 24.02.20.15:37 150 0