Authy TOTP 인증 토큰 데이터 백업하기

인터넷에서 2FA(2-Factor Authentication) 사용이 일반화 되어가면서 점점 종류가 늘어간다.

 

보통은 구글 OTP보단 백업 및 복원을 위해 Authy를 사용하는데, 이것도 단점이 하나가 있다.

 

물론 Authy가 백업, 복원이 가능한 앱이므로 큰 문제는 안되겠지만, 가끔 인증 토큰이 필요한 경우가 있다.

 

얼마전에 썼던 글 중에 bitwarden (https://xeriars.com/251) 같은 경우도 TOTP (Time-based One-time Password)를

 

자체적으로 지원하나, 이 기능을 사용하기 위해서는 인증토큰을 백업해두거나, 패스워드 데이터 생성 시

 

인증토큰도 같이 넣어 주어야 아래와 같이 작동한다.

 

 



 

 

문제는 Authy에 생각없이 등록할땐 좋았는데, Authy 자체 서버에 인증토큰이 백업되어있을뿐,

 

이걸 별도로 조회 할 방법이 없어서, bitwarden에 넣고 쓰려면 애로사항이 발생한다. 알수가 없으니….

 

이 문제뿐만 아니라 Authy 외 다른 앱을 사용하게 될 때도 마찬가지다. 이 경우 등록된 각 사이트마다

 

전부 재발급 받는 방법말곤 없어서 매우 골치가 아파진다.

 

 

그래서 인증토큰을 조회 할 수 있는 방법을 찾아봤는데, 다행히 답을 찾았고 현재는 bitwarden에서 사용중이며

 

등록된 인증토큰도 안전하게 백업해두었다.

 

 

이제 나와 같은 어려움을 겪지 않도록 많은 이들이 볼 수 있게 글로써 해법을 남겨둔다.

 

준비물 : Authy 계정, Chrome 브라우저, Authy 계정정보(전화번호)와 일치하는 스마트폰 그리고

Authy 앱 내부에서 “Allow multi-device”를 켜둘 것. (Settings → Devices)

 

 

1. Chrome 정도는 설치되있다고 간주하고, 일단 Authy 확장 프로그램을 받기 위해 아래주소로 접속.

s.xeriars.com/EmPg

 

 

 



 

2. “Chrome에 추가” 를 눌러 설치한다.

 

 



 

3. Authy를 실행하고, 인증을 거쳐 2FA 리스트가 나오도록 설정해준다.

앱 상단에 더 이상 지원되지 않는다고 기술되어있으나, 신경쓰지 않아도 된다. 지금 이 글처럼 인증토큰을

유출하는 문제 때문에 더 이상 지원되지 않는거니 일단 무시.

 

 

 



 

4. 일단 2FA 데이터 중 아무거나 하나 클릭한다.

 

 



 

5. 백업 비밀번호를 입력하라고 나온다. 이건 Authy를 재설치하고 클라우드에서 TOTP 데이터를 복원할때

입력하는 그 비밀번호이므로, 정확히 입력해준 뒤 Decrypt Account를 클릭

 

 



 

7. 인증키가 나오면 일단 이제 이것은 설정이 끝났다. 하지만 앱을 닫지 말고 아래단계를 진행한다.

 

 

 



 

8. chrome://extensions/ 에 접속하여 확장 프로그램 목록을 열고, 오른쪽 상단 “개발자 모드” 를 활성화 

 

 

 



 

9. “1개 더보기…”를 클릭한다. 아까 앱을 닫았다면 이 메뉴가 뜨지 않으므로 앱을 실행해준 후 시도한다.

 

 



 

10. 뷰 검사 메뉴에서 “main.html”을 클릭한다.

 

 

 



 

11. 개발자 도구가 열리면 “Console” 탭으로 이동한다.

 

 

12. 아래의 코드를 > 표시 된 곳에 입력해준 후 앤터

var charTable = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'
function quintetCount (buff) {
  var quintets = Math.floor(buff.length / 5)
  return buff.length % 5 === 0 ? quintets : quintets + 1
}

const encode = function (plain) {
  var i = 0
  var j = 0
  var shiftIndex = 0
  var digit = 0
  var encoded = new Array(quintetCount(plain) * 8)
  /* byte by byte isn't as pretty as quintet by quintet but tests a bit faster. will have to revisit. */
  while (i < plain.length) {
    var current = plain[i]; if (shiftIndex > 3) {
      digit = current & (0xff >> shiftIndex)
      shiftIndex = (shiftIndex + 5) % 8
      digit = (digit << shiftIndex) | ((i + 1 < plain.length) ? plain[i + 1] : 0) >> (8 - shiftIndex)
      i++
    } else {
      digit = (current >> (8 - (shiftIndex + 5))) & 0x1f
      shiftIndex = (shiftIndex + 5) % 8
      if (shiftIndex === 0) i++
    }
    encoded[j] = charTable.charCodeAt(digit); j++
  }
  for (i = j; i < encoded.length; i++) {
    encoded[i] = 0x3d // '='.charCodeAt(0)
  }
  return encoded.join('')
}
/* base32 end */

var hexToInt = function (str) {
  var result = []
  for (var i = 0; i < str.length; i += 2) {
    result.push(parseInt(str.substr(i, 2), 16))
  }
  return result
}
function hexToB32 (str) {
  return encode(hexToInt(str))
}

const getTotps = function () {
  var totps = []
  console.warn("Here's your Authy tokens:")
  appManager.getModel().forEach(function (i) {
    var secret = (i.markedForDeletion === false || !i.secretSeed) ? i.decryptedSeed : hexToB32(i.secretSeed)
    console.group(i.name)
    console.log('TOTP Secret: ' + secret)
    totps.push({
      name: i.name,
      secret: secret
    })
    console.groupEnd()
  })
  console.log(JSON.stringify(totps))
  return totps
}
getTotps()

 

 



 

환경에 따라 코드 복사가 어려운 경우 s.xeriars.com/qOX3에 접속한 뒤 복사해서 쓰면 되며, 

무진장 복잡해보이지만 그냥 복사해서 붙여넣고 엔터만 해주면 되는 작업이다.

 

 

 



 

13. 끝났다. TOTP 인증 토큰값을 주르륵 뱉어내므로, 이걸로 백업해두거나 타 OTP앱에 활용할 수 있다.

원하는 데이터도 얻었고 더 이상 필요가 없다면 보안을 위해 앱을 삭제해주자.

 

 

 



 

14. bitwarden에서 TOTP까지 관리하고 싶으면 조금전에 뽑아낸 인증토큰을 빨간색 네모 쳐둔곳에 입력후

“저장”해주면 오른쪽에 흐리게 보이는 TOPT 인증번호가 활성화되며 잘 나온다.

 

 

Authy가 분명 편리하고 백업도 되는 건 사실이지만, 그건 Authy 서버에 되는 것 뿐 사용자가 백업 할 수

없기 때문에 여태까지 발급된 2FA 토큰은 이렇게 백업해두고, 앞으로 발급될 토큰들은

차근차근 백업하는 습관을 들이면 토큰 데이터가 날라가서 피눈물 흘릴 일은 없을 것으로 기대한다.

Synology NAS에 bitwarden 설치/운영하기

가입을 요구하는 웹사이트는 계속 늘어나는데, 패스워드는 사이트마다 각각이다보니 기억력의 한계를 느낀다.

패스워드 관리프로그램을 쓰고 있긴 하나, 이것도 불안하긴 마찬가지라 좀 알아보던 중에 bitwarden을 NAS에

설치하여 운영하는 방법을 찾았다.

 

NAS에 설치하고, 마스터계정 로그인을 통해 저장된 패스워드를 조회할 수 있게 만들 수 있으며,

자신의 NAS에 설치되는 것이므로, NAS 관리만 잘 하면 되므로, 불안하게 남의 서버에 저장되는 것 보단

훨씬 심리적인 안정감을 준다.

 

 

준비물 : 시놀로지 NAS (docker 설치상태), 개인 도메인(필요 시), 약간의 지식 (포트포워딩, DNS설정 등)

 

 

1. 제일 먼저 할 일은 NAS에 docker를 설치하는 일이다. 설치방법은 인터넷에 많으니 그것을 참조한다.

 

 

 



2. docker → 레지스트리에서 bitwarden을 검색하여 맨 위에 나온 bitwardenrs/server를 더블클릭한다.

 

 

 

 



3. 특별한게 없다면 lastest로 선택하고 “선택”을 누르면 다운로드가 시작된다. 조금 걸리니 기다리자.

다운로드가 완료되면 알림창에 별도 메시지가 뜨므로 조금만 기다리면 된다.

 

 

 

 



4. docker → 이미지로 이동 후 bitwardenrs/server를 선택하고 “실행”을 클릭하면 이미지가 실행되며 컨테이너

설정창이 열린다.

 

 

 

 



5. 컨테이너 이름은 적당히 설정해두면 되고, 사양이 낮은 NAS를 쓰는 경우 “리소스 제한 활성화”를 체크한뒤

적절히 제한사항을 설정할 수 있다. 몇가지 더 설정해야하므로 “고급설정” 클릭

 

 

 

 



 

6. 항시 사용가능해야 하므로, NAS가 재부팅 되거나 컨테이너가 오류로 종료되더라도 자동 실행될 수

있게 “자동 재시작 활성화” 체크

 

 

 



 

7. 데이터가 저장될 경로를 지정해준다. “폴더추가”를 클릭하여 적당한 폴더를 지정하고,

하위 폴더에 “/”를 포함하여 적당한 이름을 붙인 경로를 만들어주면 된다.

 

 

 



 

8. “자동”으로 되어 있긴 한데, 포트를 지정해두어야 나중에 역방향 프록시 등 여러모로 설정할때

편해지므로 포트를 적절히 지정해둔다.

 

 

 



 

9. 공유기 포트포워드 설정에서 위에서 지정했던 포트를 열어준다. 아까 포트를 지정해주지 않았다면,

이 단계서부터 막혀서 진행이 매우 골때려진다. 포트를 열어주었으니 공유기 단계서 할일은 끝났다.

 

 

 



10. 고급설정까지 다 끝났으니, “다음” 을 클릭하고 “적용”해주면 일단 50% 이상 완료다.

 

 

 



 

11. docker → 개요에서 컨테이너가 제대로 실행중인지 확인한다. 지금까지 잘 따라왔다면 큰 문제는 없다.

혹시 실행이 안되어있다면, “컨테이너”로 이동해서 실행해주면 된다.

 

 

 



12. NAS 내부 IP와 아까 열어둔 포트 (컨테이너 포트 80에 지정되었던 포트)를 이용하면 접속이 가능하다만,

여기까지다. https로 접속하지 않으면 로그인이 불가능하므로 정상작동하는 것만 참고한다.

 



13. 이제 개인 도메인 DNS을 설정해줄 차례다. CNAME을 써도 되고, A레코드를 써도 되고, 서브도메인으로 쓸

이름을 지정해주고 NAS 주소를 목적지로 지정해준다.

 

그리고 와일드카드 인증서(ex : *.xeriars.com)를 발급받은게 아니라면, 반드시 해당 서브도메인에 대한 인증서를

발급해두어야 원할히 접속가능하다.

인증서 없이 https로 접속시도하는 경우 크롬 브라우저의 경우 보안경고가 똻!

 

서브도메인으로 bitwarden이 설정되어 있기 때문에 실제 접속 주소는 bitwarden.xeriars.com 가 될 것이고,

나는 구글 DDNS를 쓰고 있기 때문에 CNAME으로 설정한 상태이다. (구글DDNS 설정법 : https://xeriars.com/243)

IP로 지정해야 하는 경우에는 A레코드를 사용한다.

 

개인도메인 없이 DDNS로만 이용하는 경우에는 보통 synology.me를 사용할테니 다음과 같이 접속하면된다.

https://ㅇㅇㅇ.synology.me:지정한 포트번호 (ex : https://ㅇㅇㅇ.synology.me:13569)

 

이 경우 역방향 프록시 설정은 건너뛴다.

 



 

14. 이제 역방향 프록시를 설정해줄 차례다. https://ㅇㅇㅇ 으로 접속하면 http://192.0.0.0 와 같은 내부 ip로

접속을 돌려줄 수 있기 때문에, 아까 설정해둔 포트로 연결해주면 https로 접속한 것과 같아진다.

“생성”을 클릭해서 신규 항목을 만든다.

 

 



15. 역방향 프록시는 아래와 같이 설정해준다.

 

소스 설정

설명 : 적당한 이름을 설정해준다.

프로토콜 : https로 설정해준다. bitwarden은 http로 로그인이 허용되지 않는다.

호스트 이름 : 설정했던 서브도메인을 넣어준다. (ex : bitwarden.xeriars.com)

포트 : https 포트 443을 넣어준다. 그리고 http로 접속해도 자동으로 https로 바꿔 주도록 “HSTS 활성화”와

“HTTP/2 활성화”를 체크해준다.

 

대상 설정

프로토콜 : http로 설정해준다.

호스트 이름 : NAS 내부 IP를 넣어준다. (ex : 192.168.1.10)

포트 : 아까 설정해주었던 포트를 넣어준다. 컨테이너 포트 80으로 지정했던 포트다.

 

 



16. 이제 거의 다 왔다. 정상적으로 설정되었다면 https로 접속되었기 때문에 주소 옆에 자물쇠가 보일거고,

로그인에 큰 문제가 없을 것이다. 이제 서비스를 이용하기 위해서는 마스터 계정을 만들어야 한다.

“계정 만들기”를 클릭한다.

 

 



17. 이건 사실 넣을 필요가 없다고 보는데.. 회원가입하듯 적당히 넘어간다.

 

 



18. 마스터 계정을 생성하고 로그인하면 완료된 것이다. 이제 패스워드를 입력하고 적당히 운영하면 끝.

설정에 따라서 2FA 설정도 가능하기 때문에 보안을 한층 더 강화 할 수 있다.

 

 



19. 혹시 다른 패스워드 관리 프로그램을 쓰고 있다면, 데이터를 옮겨올 수도 있다. 왠만한건 있으니,

적당한 파일 형식을 맞춰서 불러오면 된다. 개인적으로는 enpass를 쓰고 있다가 데이터를 옮겨와서 사용중.

 



20. 크롬이나 파폭같은 브라우저는 스토어에서 익스텐션을 설치 할 수 있고, 이 경우에는 크롬처럼 비밀번호를

자동으로 입력하도록 만들어 줄 수 있다. 안드로이드 앱도 있으니 편할때로 운영하면 된다.

 

 

lastpass가 털린 전적도 있고, 아무래도 남의 서버에 내 패스워드를 전부 보관하기엔 불안불안하고,

2FA도 지원하기 때문에, 서버 관리만 충실히 잘 해준다면 조금 더 안전하게 운영 할 수 있다.

구글 서치 콘솔 퓨어스팸 문제 해결



블로그 주소 이전 후 뭔가 문제가 발생했다.

서치 콘솔에 주소만 등록했는데, 퓨어스팸을 달고 시작이라니;

 

구글 가이드라인 위배로 일단 퓨어스팸으로 등록되면, 구글 검색엔진의 해당 도메인의 검색결과가 전부

사라져버리므로, 한 번이라도 더 노출되어야 하는 블로그로선 치명타인 셈이므로 빠른 조치가 필요하다.

 

스팸발송 용도로 쓰고 버린 휴대폰번호 마냥 전 도메인 주인이 수작을 부리고 버린건지,

아무튼 뭔가 있으니 리스트에 있나 싶다.

 

내 블로그엔 죄가 없으니 적절히 DNS에 블로그 주소 물어주고, 사이트맵 추가해서 검토요청을 했다.

 



재검토 요청을 하면, 위와같이 재검토 요청을 했다고 접수메일이 오고,

일단 뭐 구글에서 조치 해줄때까지 기다리는 것 외에는 방법이 없다.

 



큰 문제가 없다면 몇시간 뒤, 혹은 며칠 뒤 위와 같이 메일이 도착하며, 조치가 해제된다.

다만 서치콘솔에 반영되는데는 조금 더 시간이 필요한 듯 하다.

아직까지 퓨어스팸 메시지는 제일 위에 있는 스크린샷처럼 계속 뜨고 있다.

 

일단 해제해준다 했으니, 글도 올리고 정상적인 활동을 하다보면 풀릴 듯 싶으나,

무언가 변화가 생기면 이 글은 다시 업데이트 하는 걸로.

 

내용추가



승인 메일을 받은 뒤 24시간이 된 시점에 다시 확인해보니 문제가 해결 된 것으로 나왔다.

역시 예상대로 반영되는데 시간이 좀 걸리는 것으로 확인되었다.

 

도메인이 다시 깨끗해졌으니 이제 잘 운영하는 일만 남았다.

개인도메인 이용한 단축url 만들기

** 2020-09-20 수정. 설치형 단축 URL 애플리케이션 YOURLS 설치를 통해 단축 URL을 만들려면 xeriars.com/260 를 참고. **

요즘은 악성코드때문에 조금 시들시들해지긴 했는데, 여전히 단축url은 빈번하게 사용되고 있다.

구글에서 지원하던걸 쓰다가, 서비스가 종료되버려서 bit.ly를 써볼까 했더니 이것도 유료..

개인 도메인을 단축주소로 하는게 유로플랜으로 바뀌어 버려서,

몇군데를 알아봤는데 죄다 개인 도메인은 유료 플랜….

그러다가 신생업체에서 개인 도메인을 이용해 단축주소를 무료로 등록 할 수 있다는 것을 찾아냈다.

오늘은 해당 서비스를 이용한 개인 도메인 이용 단축 url을 만드는 방법을 소개한다.

준비물 : 도메인, ushort.io 회원가입

1. s.xeriars.com/YShR에 접속해서 회원가입을 하고, 로그인. 회원 가입절차는 생략한다.



2. 정상적으로 로그인 한 후에는 custom domain을 클릭



3. 사용하고자 하는 도메인을 적어준다. 엉뚱한거 적어도 어차피 DNS 설정이 필요하므로, 본인 도메인을

사용한다. 스크린샷에 보이는 것 처럼, 서브도메인을 이용해도 된다.



4. 스샷에 보이는 것 처럼 https로 사용이 가능한데, 인증서 발급이 필요하므로 이 부분은 Help 란에서

별도로 요청을 하면 사이트 관리자가 발급해준다.

단, 네임서버를 cloudflare를 통해 관리하는 경우에는 별도로 인증서 발급이 필요없다.

cloudflare로 관리되지 않는 경우에만 관리자에게 요청하면 된다.



5. 사이트 이름까지 추가 했으면 이제 ushort.io에서 설정은 끝났고, DNS설정으로 이동.

사용중인 도메인 등록업체에서 DNS 설정으로 이동한다. 개인적으론 cloudflare를 이용중.



CNAME으로 원하는 서브(또는 네이키드) 주소를 지정해주고 target으로 ushort.io를 지정해주면 끝.

단, DNS를 Cloudflare로 할 때 네이키드를 CNAME으로 쓸 수 있는 것이고, 보통은 A type으로만 지정가능하므로, 기술적 문제가 발생한다면 서브도메인을 사용하는 것이 가장 쉽고 빠른 방법이다.

6. DNS설정이 완료된 후, 적용시간 고려해서 10분정도 지나면 사용이 가능해진다.

7. 구글에서 xeriars.com 를 검색한 결과는 다음과 같이 url이 매우 길다.

www.google.com/search?newwindow=1&sxsrf=ALeKk037GgREbLGAYivGz0o7Rp1_s95M6A%3A1612624420712&source=hp&ei=JLIeYPTmKNvm-Ab3p6CICA&q=xeriars.com&oq=xeriars.com&gs_lcp=CgZwc3ktYWIQAzoECAAQCjoCCAA6BQgAELEDOgQIABADOggIABCxAxCDAToECAAQHjoECAAQDToGCAAQDRAeUN8BWM0KYPQLaABwAHgAgAGeAYgBsgySAQQwLjExmAEAoAEBqgEHZ3dzLXdpeg&sclient=psy-ab&ved=0ahUKEwj0iICOxtXuAhVbM94KHfcTCIEQ4dUDCAc&uact=5

이걸 다음과 같이 단축 시켜 줄 수 있다.

개인 도메인을 추가했으니, 드랍다운 메뉴를 누르면 본인 도메인이 나오므로 선택.



아무튼 원하는 주소를 넣고 “Shorten”을 클릭해주면 잠시 후 아래와 같은 결과가 나온다.

xeria.rs는 도메인 핵으로 만들어둔 도메인이다.



아까 그 긴 주소는 s.xeriars.com/YhDs라는 짧은 url로 대체되며, 이것을 사용하면 된다.

다만 원본 주소가 https인 경우, 단축 url로 접속 시 인증서 관련 경고가 뜨므로, 4번 항에 나온 것 처럼

cloudflare를 사용하지 않는 경우 별도로 사이트 운영자에게 연락하여 신청해두는 것이 좋다.

8. 추가한 url들은 Recent link에서 보이며, 몇번 클릭했는지도 카운트된다.

본래 이 서비스는 광고목적으로 쓰라고 만들어진거라 추적성을 위해 만들어진거긴 한데,

어찌되었든, url 단축 목적으로 쓰는데는 지장이 없으니까 개인적으로는 이렇게 사용하고있다.



단축 url은 그대로 두고 원본 url을 수정하려면 edit를 누르면 되며, 누군가에게 url을 공유해야 할 때도

단축 url만 끊어버리면 그만이므로 편리하게 이용 가능하다.

9. 무료서비스는 광고 외에 몇가지 제한이 있긴 하지만, 단축 url만 쓸것이라면 크게 문제점은 없다.



지금은 무료플랜에 개인 도메인을 한개 등록해서 쓸 수 있도록 열어두고는 있으나,

다른 곳처럼 나중에는 또 어찌 변할지는 모르는 노릇. 그래서 유료플랜을 생각하고 있다면 공식홈에서

구독하지말고 stacksocial에서 lifetime으로 구매하는게 더 나을 수도 있다. (s.xeriars.com/Xe4F)



저 사이트는 보통 VPN 등을 lifetime subscription으로 판매하곤 하는데, 회원 확보를 목적으로

프로모션 차원에서 평생(내 수명이 아니라… 업체의 수명으로 봐야한다) 구독권을 판매하는 경우가 많다.

어느정도 회원이 확보되면, 평생구독권은 판매종료 시키는게 일반적인 수순.

이 글이 쓰여진 2020년 6월 15일까진 판매되고 있으나 추후 종료는 언제 될 지 모르겠다.

직접 url 단축 서비스를 만드는 것도 좋지만, 호스팅도 별도로 해야하고 귀찮기도 해서 ushort를 이용중.

개발자 힘내라고 개인적으론 Growth plan을 구매해서 개발자를 혼내(!?)줬다. (마침 적립금도 있었고…)

도메인을 몇개 가지고 있어서 다용도로 사용중이긴 하다만, 개인 도메인을 하나라도 갖고 있으면

여러가지로 다양하게 써먹을 곳이 많아 매우 좋다.

해외 발 해킹시도



카페에서 놀고 있는데, 갑자기 스마트폰에서 메일알림이 연달아 울린다.

확인해보니, VPN서버에 누가 로그인시도를 계속 한 모양.

IP 바꿔가면서 시간 텀 없이 계속 날아온걸 보니 bot으로 해킹시도를 한 듯 하다.



일단 IP확인해보니 러시아에서 들어온 시도였는데, 서버 설정보니 해외 접속이 가능하도록 설정;;;

내 실수가 맞네;;



독일 출장가면서 풀어놓고 깜빡한게 생각났다. IP바꿔가면서 화려하게 시도해댔네.

봇(bot)으로 로그인 시도를 계속 해댄것으로 추정된다.

국내만 접속이 가능하도록 방화벽 설정을 바꿨다.



해외 발 접속 차단 후 VPN 통해서 접속시도하여 다시 한 번 차단이 완료된 것을 확인하였고,

로그 상에도 더 이상의 접속 시도는 확인되지 않는 것을 재차 확인했다.

에휴… 가끔 해외 가거나 하면 현지 wifi가 불안해서 VPN을 쓰곤 했는데,

차단해제하지 말고 국내용으로만 쓰든지 해야지…

구글 도메인 이용 시놀로지 NAS DDNS 등록방법

도메인을 여러개 갖고 있다보니 문득 이런 생각이 든다.

“아니.. 난 왜 도메인을 여러개 갖고 있는데 ddns는 굳이 남이 지정해준걸 쓰지?”

개인 도메인을 갖고 있다면 어떤 형태든 써먹는게 가장 폼도 나고 맘에도 든다.

보통 ddns를 쓰는 환경이라면 유동 IP일테고, 공유기에서 지원해줘서 그걸 쓰거나,

아니면 시놀로지 NAS의 경우 .synology.me 도메인 등 몇가지 제공하는 것을 쓰게 된다.

근데 공유기에서 쓰는거나, 시놀로지에서 제공하는것이나 공통점은 너무 길고, 맘에 안든다.

그래서 이것저것 방법을 찾아보니 구글 도메인에서 구매(등록)한 도메인은 ddns로 nas에 등록할 수 있었다.

방법도 어렵지 않아서 앞으로는 .synology.me나 공유기에서 제공하는 .iptime.org를 빼고선

개인 도메인을 ddns로 쓰기로 결정.



먼저 구글도메인(s.xeriars.com/bB0O)에 접속해서 구매한 내 도메인을 확인한다.



DNS 설정메뉴에서 종합레코드란에 가면, 드롭다운버튼으로 “동적DNS”를 설정할 수 있다.

하위 도메인란에는 원하는 서브도메인을 등록해준다. 예를 들어 내 도메인이 xxxx.com이라고 치면

ddns.xxxx.com이나 ip.xxxx.com 등으로 설정해주면 그 주소가 ddns 주소가 된다.

네이키드 도메인으로 설정하려면 하위도메인에 @을 입력해주면 xxxx.com이 ddns 도메인이 된다.

하위 도메인을 입력해주고 “추가” 클릭

예제로 서브도메인을 ip.xxxx.com으로 설정해두었으나 사실 개인적으론 @로 사용중..



이제 “동적 DNS”라는게 추가되었을것이고 스샷의 빨간 네모칸에 보이는 > 모양버튼을 클릭.

하위 메뉴가 펼쳐지면서 사용자 이름과 비밀번호가 보인다.

“사용자 인증 정보 보기”를 클릭하면 마스킹(****) 된 것이 해제되면서 문자로 보이는데, 이건 잠시 후 사용.

일단 여기까지 설정되었으면, dns단에서 설정할 것은 끝났다.

TTL을 고려하여 5분정도 기다렸다가 시놀로지 NAS에 접속한다.



시놀로지 NAS에 접속이 완료되면, 제어판에서 “외부 엑세스”(스크린샷 빨간색 박스) 클릭



ddns를 설정할 수 있는 창이 나오는데 보통은 시놀로지에서 제공되는 ddns를 쓰고 있을 듯 하다.

아무튼 내 도메인을 추가해서 쓰고 싶으니 “추가” 클릭



이 부분이 가장 중요한 부분인데, 여기 설정을 잘 해줘야 한다.

서비스 공급자는 Google로 해주고 사용자 이름은 아까 dns설정해줄때 마스킹처리되어있던

“사용자 이름”란에 있던 문자열을 입력. 패스워드 란은 마찬가지로 “비밀번호”를 에 있던 문자열을

입력해준 뒤 확인 클릭.



확인 버튼을 누르면 사용자 이름과 비밀번호가 맞는지 확인하느라 잠시 “로드 중…”으로 상태가 나오며

몇초 지나면 바로 밑에 있는 글자처럼 “정상”으로 표기되면 완료.



nslookup 명령으로 내 도메인을 검색했을 때 Address란에 출력된 IP와 외부 IP가 일치하면 설정 끝.

구글 도메인을 사용하지 않는 경우는 dnszi.com 에서 등록하여 사용하는 방법이 있으나,

나는 이 방법을 사용하지 않으므로, 관련 자료는 인터넷에서 찾아 보면 수두룩하게 나올 듯 하다.

이제 DNS 설정 시 CNAME 같은데 내 DDNS를 입력해주면 외부 IP를 참조하기 되므로 매우 편리하다.

이제 공유기나 시놀로지에서 준 맘에도 안드는 도메인에서 해방이다.

Logitech K480 구입

집에서 쓸 수 있는 기기가 늘면서 덩달아 키보드를 사용해야 하는 수요가 생기기 시작했다.

내 방에서 쓰고 있는 Shield TV, 노루북, 태블릿 PC 3개의 수요가 생겼기 때문에 하나 구매해도 괜찮겠다는

생각이 들어서 쿠폰이랑 카드 할인 등등 이것저것 붙여서 나름 싸게 구매.



사무실에서는 내 돈주고 좀 더 좋은 모델(MK850)을 쓰고 있지만 그건 하루종일 쓰니까 그런거고,

집에서는 그정도로 좋은건 필요없고, 유니파잉 없이 블루투스만 가능한 모델로 골랐다.

수요가 있는 기기들이 모두 블루투스를 지원하기 때문에 그런것도 있지마는…

외형은 라임색이 들어간 투톤 컬러로 나름 예쁘장하게 생겼다.



배터리는 AAA사이즈 2발이 들어가며 건전지는 연단위로 지속되니 별도로 끄고 켜고 하지 않아도

안심할 수 있을 듯 하다. 맨 처음 무선 입력도구에 거부감을 느꼈던 것은 건전지가 들어가기 때문이었는데,

매번 돈을 먹는다고 착각을 했었다만, 막상 써보니 큰 지장은 없는 수준.. 1년 이상 가면 뭐..



다이얼이 달려있어서 각 기기에 연결후 다이얼을 돌려주면 해당 기기에 연결이 된다.

마치 채널조정하는 것 같은 느낌이 드는데, 전환되는데 대략 2~3초정도 후 연결이 완료된다.

단점도 있는데, F1~F12키를 Fn 키를 누르고 써야해서 이게 좀 단점이다.

물론 해결할 방법도 있는데, Logitech options라는 앱을 설치하면 된다.

근데 이 앱이 또 멍청해서 제대로 로그인이 안되고 하는건 덤.



인터넷에서 보면 여러가지 방법이 나와있던데, 난 계속 에러가 나다가 얼결에 설치되었다.

아무튼 설치가 되면 “표준 기능 키로 F1~F12 사용”에 체크하고 사용하면 된다.

이러면 기존에는 기능키(검색키, 스크린샷키, 볼륨조절키 등등)는 Fn을 눌러야 작동되고

F1~F12키는 그냥 누르면 누르는데로 입력이 가능해진다.





라임색으로 강조되어있는 거치대는 태블릿이나, 스마트폰을 거치해서 쓸 수 있는데 무겁다.

이렇게 쓰라고 일부러 무겁게 만든거라, 무게는 810g이나 되서 휴대성은 좋질 않지만..

일하다말고 뭐 다이얼 티릭 하고 돌려서 카톡 답장을 한다던가 그런 농땡이가 가능해져서 좋다.

다만 카톡을 쓰려면 다음의 옵션에 체크를 해줘야, 엔터키를 쳤을때 바로 메시지가 전송된다.

설정 → 채팅 → “Enter키로 메시지 전송”



그리고 일부 PC에서는 한/영키 전환이 거지같은데, fn 키를 누르고 한/영키를 눌러야 해서 매우 불편.

이건 레지스트리를 추가해주면 해결된다. (윈도우 8이하)

Logitec K480 KOR_ENG

윈도우 10에서는 키보드 레이아웃을 101키 TYPE 1로 바꿔주면 해결된다.



안드로이드 / 아이폰에서는 Shift + space bar를 입력하면 한영변환이 가능하다.

여러모로 손이 좀 가는 키보드이긴 한데 키감도 괜찮고, 나한테는 딱 맞는 듯.

결론 : 이 글은 모두 K480으로 작성됨.

티스토리 도메인 연결방법

최근에 도메인 관련 포스팅을 했더니 유입경로 중 티스토리 도메인 연결방법을 찾는 사람들이 보인다.

생각보다 되게 간단한데, 모르는 사람들을 위한 포스팅

준비물 : 티스토리 블로그, 보유 도메인, 약간의 지식

먼저 보유도메인이 있어야 한다. 도메인이 없으면 국내업체에서 구해도 되고,

어제 포스팅했던 구글도메인에서 구매해도 된다 https://xeriars.com/239 참조

도메인을 구했다면, 블로그 주소를 무엇으로 할지 정해야 한다.

서브도메인으로 할지, 네이키드(Naked)로 할지 정해야 하는데 이건 다음과 같다.

네이키드 도메인 : xeriars.com

서브도메인 : blog.xeriars.com

앞에 blog. 이 붙어있는게 서브도메인을 뜻한다.

도메인 하나가지고 여러가지 서비스를 물어둘 수 있기 때문에, 서브도메인을 쓰는 경우가 많다.

예를 들면, 예전의 경우 도메인이 하나밖에 없었기 때문에 이런식으로 썼었다.

NAS : nas.xeriars.com

Blog : blog.xeriars.com

뭐 이런식으로 서브도메인을 쭉 만들어서 쓸수도 있고, 지금 이 블로그는 네이키드로 잡혀있다.

블로그랑 메일만 쓰는 도메인이기 때문에 xeriars.com로 접속하면 바로 블로그 접속.

이러한 서브도메인은 도메인 등록업체의 DNS 설정항목에서 설정이 가능하며,

통상적으로 CNAME을 이용해서 설정한다.

별도의 블로그를 다른 목적으로 쓰고 있는데, 설명을 위해 의도적으로 도메인 연결을 끊어둔 상태이며,

도메인 관리는 cloudflare에서 하고 있어 이것을 기준으로 설명한다.



어떤 도메인 관리 업체나 비슷하긴 할텐데, 위와 같은 방식으로 설정된다.

Type : CNAME 이걸 설정하면 Name에 설정한 별칭으로 접속하면 설정 목적지로 연결한다.

Name : 서브도메인 명칭을 적는다. blog 라고 적으면 blog.xeriars.com이 되고 @를 하면 xeriars.com으로 설정된다.

Content : 접속할 주소를 설정한다. 티스토리 블로그를 설정하기 위해서는 blog.tistory.com 을 입력한다.

정보출처 : s.xeriars.com/SCYz

TTL(Time-To-Live) : 레코드 변경사항이 적용될 때까지 걸리는 시간을 의미한다. Auto 또는 600으로 설정.

서브도메인으로 쓰려면 Name 란에 원하는 서브도메인을 입력해주고 조금 기다리면 설정이 완료된다.

TTL을 너무 크게 주면 갱신시간이 길어져, 테스트할땐 짧게 해주는게 좋다. (서버 부담은 덜해진다.)

제일 어려운 DNS 설정이 끝났다. 이제 티스토리 관리 페이지로 넘어간다.



블로그 관리페이지에서 “블로그”를 클릭



도메인 연결하기를 클릭한다.



CNAME에서 설정한 주소를 입력해준다. 아까 DNS 레코딩 설정시 Name란에서 설정한 값이다.

값을 @으로 해놨으면 네이키드니까 xeriars.com이고, blog 또는 다른 단어로 설정해주었으면,

설정한단어.xeriars.com 을 입력하면 된다. (예 : blog.xeriars.com, b.xeriars.com 등등…)

그리고 “변경사항 저장” 클릭



CNAME을 정상적으로 설정해두었다면 DNS 설정정보가 “확인완료”라고 되어있을 것이고,

티스토리 정책이 SSL 보안접속이 의무적으로 적용되도록 바뀌었으므로 인증서 발급은 자동으로 진행된다.

인증서 발급은 짧게는 5~10분 길게는 일주일까지 걸리기도 하니 조금 기다렸다가 다시 확인해보면 된다.



SSL 인증서 발급이 되기 전까지는 http로 접속이 가능하므로 일단 이렇게 사용하면 된다.

다만 “주의요함” 이라고 신경쓰이게 뜨는 것 말곤 특별한건 없다.

사실 이 상태에서 써도 일반사용 기준으론 특별한 것도 없고, https 적용 안된 사이트도 부지기수로 많다.

(당장 우리 회사 홈페이지도……. 다른 계열사에서 홈페이지 관리를 하니 전산 담당자가 관심이 없나보다.)



보안 접속 인증서가 발급 완료되면 이제 https로 접속이 가능해진다.

http로 접속해도 자동으로 https로 변경되므로 큰 신경 쓸 필요는 없다.



이렇게 주소창에 자물쇠가 걸리면 보안접속이 된 것으로 완전히 설정이 끝난 것이다.

DNS 설정 빼면 어려울 것도 없으니, 차근차근 해보자.

구글 도메인 구매(등록)방법

최근에 커스텀 도메인 메일 등록방법을 포스팅해두었더니 유입키워드로 “도메인 등록방법”이 많아져서,

오늘은 많은 도메인 등록대행업체 중 구글 도메인 등록방법에 대해서 포스팅을 해보려고 한다.

일단 구글 도메인 url은 s.xeriars.com/73a2로 접속가능하며 newTLD(Top Level Domain)으로 .google을 사용하고 있다.



해당 url에 접속하면 도메인 검색창이 나오며, 생각해둔 도메인을 입력하고 Get it을 누르면



마치 우리나라는 서비스가 전혀 되질 않는 것 처럼 보이나 사용 가능한 상태이다.

다만 원화결제가 안되서 서비스가 안되는 것 처럼 보일뿐..



좌측 “도움말 및 지원” 밑에 보면 대한민국(US$)이라고 되어있는데 이걸 클릭해서 미국으로 바꿔주면 되며,

이후 원하는 도메인을 검색해볼 수 있다.



추천이름으로 나오는건 검색결과가 시원찮아서 개인적으론 “모든 최상위 도메인”으로 보는 편이다.

여기서 모든 최상위 도메인(TLD)을 구매 할 수 있는건 아니고, 가능한 TLD는 s.xeriars.com/SIFa에서 참조.



뭐… 단어가 단어인 만큼 선점되어있는게 당연 할 것 같지만, newTLD의 경우는 아직 남아있는 경우도 있다.

우측 상단에 필터가 있는데, “관련성순”에서 “가격순”으로 변경하면 구매할 수 있는 가장 싼 도메인부터

정렬해준다. (보통 사고 싶지 않게 생긴 도메인이 제일 먼저 나온다…..)



물론 딱 봐도 매우 구매하고 싶지 않게 생긴 도메인이 한가득이다.

이런식으로 재주껏 도메인을 검색하면 되며, .app이나 .dev 도메인(이 도메인들은 SSL접속이 강제된다)도

등록이 가능하기 때문에, 개발자라면 관련 도메인을 구해보는것도 좋다.

.app($14/연)과 .dev($12/연) 도메인의 발급기관도 구글인지라 여기서 구매하는게 싼편이기도 하고..



원하는 도메인을 골랐으면 장바구니에 담고선, 우측 최상단의 장바구니 아이콘을 클릭하여 결제할 수 있다.

자동갱신 옵션을 켜두면 결제정보를 등록하고 1년마다 자동갱신이 이루어지므로 편리하게 이용가능하다.

갱신일자 놓쳐서 괜히 복구비용내거나 도메인을 놓칠 염려가 없어진다는 뜻이다.

구매시에는 whois 조회 시 나오는 관리자 성명, 연락처, 주소를 입력하는 란이 나오는데,

개인정보보호 옵션이 무료로 제공되므로, 정확히 적어줘도 무방하다. (일부 도메인 제외)



구매가 완료되면 도메인 등록이 자동으로 등록되며 위 스샷처럼 구매 영수증이 메일로 날라온다.

개인적으론 싼맛에 .pw (팔라우 국가도메인) 하나 등록해서 쓰고 있다.

다만 .pw 도메인은 과거에 스팸메일의 주요 근원지 이력이 있기 때문에 이유없이 상대 메일서버에서

스팸메일로 처리/등록될 수도 있으니, 해당 도메인을 메일주소로 사용하는 경우에는 주의가 필요하다.

관련 정보 출처 : s.xeriars.com/Ky1f



구매가 완료되면 “내 도메인”란에 이렇게 등록한 도메인이 출력되며, 만료/갱신일도 표시해준다.

등록된지 5일이 되지 않은 도메인은 구글 환불 정책에 의해 환불이 가능하며 방법은 다음과 같다.

아까 구매할때 “환불 약관”에 대해서 확인 한걸로 나올텐데, 환불은 1년에 3번만 가능하다.

환불을 하기 위해서는 s.xeriars.com/eb9q로 접속하면 가능하다.



이곳에서 진행이 가능 한 것처럼 보이나, 글을 작성한 2020.05.06 기준으로는 한국어 페이지에서

환불은 불가능하다. 링크가 잘못되었는지 계속 고객센터로만 연결이 무한루프..

그래서 화면 맨 하단에서 영어로 언어를 바꿔준 뒤 진행을 해야 한다. (s.xeriars.com/AcZv)



상기 url로 접속하면 환불 정책 페이지로 연결되며 화면 하단에 “Google Domains support”를 클릭.



Contact Us 페이지에서 우리가 필요한건 환불(refund)이므로 검색어에 refund를 입력한다.

그러면 Next step 버튼이 활성화되므로 클릭해준다.



여러 이슈중에 refund request (환불 요청)을 클릭해준 뒤 Next step 버튼을 클릭

환불 정책이나, 도메인 이름 변경, 도메인 삭제 관련 문서가 추천문서로 나오지만 읽을 사람만 읽는걸로.

아무튼 Next step을 눌러주면 다음과 같은 화면이 출력된다.



편한 방법을 택해서 연락을 하면 되며 (영어만 가능하다.) 이메일보단, 채팅을 추천한다.

이메일은 상담원이 확인을 해야만 가능하기 때문에 처리가 지연되는 반면, 채팅은 바로바로 처리된다.

도메인 이름을 알려주고 환불을 원한다고 하면, 상담원이 확인해보겠다고 하면서

등록기간(5일 이내)과 환불 횟수 제한(1년 내 3회)을 체크하고 PIN을 불러주면 환불이 처리된다.

처리시간은 5분~10분내로 아주 빠르게 처리가 가능하므로, 영어가 서툴러도 가급적 채팅을 추천.



 환불처리가 완료되면, 도메인 등록과 마찬가지로 환불 영수증이 메일로 날라오며,

카드결제의 경우 며칠 후 승인취소가 처리되며 완전히 해당 이슈가 종결된다.

이로써 구글 도메인 (구매)등록방법에 대해서 포스팅을 마치며,

DNS설정이나 리디렉션 같은 세부 설정사항은 나중에 다시 포스팅하는걸로.

변경 도메인으로 리다이렉트 하기

지금은 femto.me로 블로그 주소를 쓰고 있으나, 잠시 블로그주소로 썼던 것이 있어서

이게 검색엔진에 크롤링되면서 내 블로그로 접속할 수 있는 주소가 3개가 되어버렸다.



구글에 도메인으로 검색해보니, 도메인마다 검색결과가 상이한데 검색엔진에서 한곳에 몰아줄리도 없고.

도메인 자체를 티스토리에서 다른 곳으로 옮긴다면 Google search console을 이용하여 301리다이렉션을

걸어주면, 검색결과를 몰아줄 수 있지만 내 경우는 도메인만 바뀐 상태이므로 저 방법 사용이 불가능하다.

전에 쓰던주소나 femto.me나 둘다 cloudflare를 이용해서 관리하고 있는데, 이 경우 간단히 리다이렉션을

통해 전의 주소에서 검색된 결과를 femto.me로 옮겨줄 수 있고, 티스토리는 자바스크립트를 쓰면 가능하다.

먼저 티스토리 도메인 (xeriars.tistory.com)에서 변경 도메인(femto.me)로 옮겨주는 방법이다.

티스토리 관리페이지에서 꾸미기 → 스킨편집 → html 편집으로 들어간다.

<head>
    <link rel="canonical" href="https://femto.me">
	
    <script language = javascript>
        var from_url = 'xeriars.tistory.com';
        var dest_url = 'femto.me';
        var online = document.URL;
        if(online.match(from_url)) document.location.href = online.replace(from_url, dest_url);
    </script>
</head>

상기 코드를 이용해서 canonical 설정을 이용해서 변경 도메인으로 설정해주면,

xeriars.tistory.com으로 접속해도 자동으로 femto.me로 간단하게 넘겨 줄 수 있다.

두번째로는 검색엔진에서 검색된 전에 쓰던 주소에서 femto.me로 넘겨주는 방법이다.

두 도메인 다 cloudflare.com를 사용하고 있으므로 해당 기준으로 설명.



DNS 설정으로는 A레코드를 추가해주어야 하며, 내용으로는 192.0.2.1로 지정해준다.

이 내용은 cloudflare에서 설명된 방법이며, DNS설정을 하지 않으면 올바르게 리다이렉션 되질 않는다.

다음으로는 Page Rules를 설정해주어야 하며, 이곳에서 리다이렉트 지정을 해줄 수 있다.



If the URL matches는 말 그대로 “다음 URL이 일치하면” 이란 뜻이므로, 변경 전 도메인을 적어주되,

와일드카드(*)를 지정해주면 하위 주소까지 연결해올 수 있으므로, 검색결과에 나온 글을 그대로 보여주려면

반드시 지정해주어야 한다.

Then the settings are에는 Fowarding URL / 301 (영구 리다이렉트)를 골라주고,

변경 도메인에 $1을 넣어주면 와일드카드에서 받아온 경로를 그대로 연결해 줄 수 있다. 예를들면

https://blog.xxxxxxx.kr/3000 → https://femto.me/3000

이런식으로 하위경로를 그대로 연결해줄 수 있게 되는 것이므로 반드시 설정해준다.

이 상태에서도 일단 사용은 되지만, https 연결상태에서는 HSTS 설정이 되지 않으면 보안연결 풀리므로

이것 역시 다음과 같이 설정해주는 것이 좋다.

SSL/TLS → Edge Certificates → HTTP Strict Transport Security (HSTS) → Change HSTS Settings

I understand 체크 후 Enable HSTS (Strict-Transport-Security) ON



설정 후 이제 도메인과 상관없이 검색엔진에서 크롤링된 검색결과가 변경 도메인으로 리다이렉팅되므로

변경 전 도메인이 검색엔진에서 노출되어도 크게 신경쓸 필요가 없게 된다.

구글 도메인을 사용하는 경우는 조금 더 쉬운데, DNS설정에서 간단하게 설정할 수 있다.



서브도메인을 사용하는 경우 (예 : blog.xxxxxxx.kr) DNS 메뉴에서 설정가능하며,

네이키드(Naked) 도메인으로 시도하는 경우에는 웹페이지 메뉴에서 설정할 수 있다.

영구 리디렉션(301) / 경로전달 / SSL 사용설정을 골라주고 저장만 해주면 끝나므로 더 간단하고 쉽다.

URL이 3개로 포크 되버려서 한동안 구글 검색결과를 어떻게 통합해주나 조금 스트레스를 받았었는데,

생각해보니 리다이렉트 해주면 되는걸 괜한 걱정을 했다.