클라우드플레어 도메인 외부 접속 문제 (프록시 서버)

SFTP가 안되는 이유

클라우드플레어 Cloudflare에서 도메인을 구매1해서 서브 도메인을 운용 하다보면 일반적인 접속은 아무 문제가 없지만 유독 보안FTP, 즉 SFTP 접속 때 인증서 불일치 문제로 보이는 현상이 발생할때가 있다. SSL2 관련 트러블이야 워낙 흔하지만 항상 그 해결은 쉽지 않은 편이지만 다행히도 이번에는 간단하게 원인을 파악 할 수 있었다. 이 글에서 그 해법을 빠르게 알아보도록 하자.

문제는 프록시?

클라우드 플레어에서 구매한 도메인에는 기본적으로 프록시 서비스를 제공한다. 대부분 도메인이 DNS를 통해 연결 되는 것에 비해서 클라우드플레어는 DNS 앞에 자체 프록시 서버 레이어로 내세워 IP의 직접 유출이라든지, DDoS 방어, 캐싱 같은 보안에 특화된 기능들을 제공한다. 아마 해외 서비스를 이용하다가 종종 해당 문구를 본 유저들이 많을 것이다. 평소에는 굉장히 편리한 기능이고 무료라서 그냥 사용하는 게 무조건 이득이 되겠지만 SFTP처럼 인증서를 직접 대조하고 이를 로그인에 활용하는 서비스는 조금 문제가 생긴다.

프록시 인증서와 내 인증서가 다르다.

프록시 서버를 거치면서 실제 내가 발급한 SSL 인증서가 아닌 클라우드플레어 자체에서 제공하는 별도의 SSL 인증서를 전면에 내세우는 것으로 보인다. 그러니까 나는 Let’s Encrypt SSL 인증서를 받았지만 프록시 서버를 거친 뒤에는 클라우드플레어 자체의 구글 인증서가 작동한다는 것이다. 이렇게 되면 본인처럼 시놀로지 서버를 운용하며 자체 인증서를 사용하는 유저들에게 살짝 문제가 생긴다. 자체 발급한 인증서와 실제 외부 접속 때 뜨는 인증서가 일치하지 않는 결과가 나오기 때문이다.

해결법은 간단. 스위치 OFF면 끝.

그래서 SFTP를 해당 도메인으로 원활하게 사용하기 위해서는 어쩔 수 없이 프록시 기능을 꺼야 한다. 방법은 간단하다. DNS 메뉴를 찾아서 해당 서브 도메인의 Proxy status를 클릭해서 DNS Only로 바꾸면 끝이다. 그럼 이제부터는 내가 발급한 인증서를 사용하게 된다.

클라우드플레어
해결 방법은 간단했다. Proxy status에서 토글 스위치를 눌러 DNS Only 상태로 만들면 된다.

만약 이걸 끄기 싫다면 클라우드플레어의 SSL 관리 메뉴에서 상태를 FULL(strict)로 바꾸면 된다. 이러면 자체 인증서 대신 내가 발급한 인증서를 다이렉트로 꽂아준다.

클라우드플레어
사이트 언어를 한글로 했더니 “전체”라고 표시된다. 영어판에서 FULL 로 표기되는 이것을 FULL(strict)로 바꾸면 된다.

여담이지만 시놀로지 서버에 프록시를 거쳐서 접속해 보니 다이렉트때보다 미묘하게 반응속도나 접속 속도가 느려졌음을 체감했다. 사용에 문제가 될 수준은 아니지만 어쨌든 체감은 확실히 되는 부분이니 알아서 잘 판단 하도록 하자. 좋은 서비스이지만 이미 SSL 인증서를 사용 중이라면, 그리고 크게 외부에 노출될 일이 없다면 굳이 속도 저하나 이러한 불편함을 감수하면서까지 사용 할 필요는 없는게 아닐까 싶다.

  1. 클라우드플레어는 도메인도 직접 판매중이다. 가격도 저렴한 편이고 각종 유무료 서비스가 제공되어 굳이 국내 도메인 업체를 고집하는게 아니라면 구글과 함께 선택지에 넘어볼만한 곳이다. ↩︎
  2. SSL(Secure Sockets Layer)은 웹 브라우저와 서버 간의 데이터를 암호화하여 인터넷 연결을 보호하는 표준 보안 기술. 인터넷 주소 제일 앞에 열쇠 모양이 있으면 암호화된 것이다. ↩︎

댓글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다