공유기 외부접속, 시놀로지 SSH 터널링 세팅

최근 시놀로지 NAS에 해외 여러 국가에서 접속하려는 시도가 부쩍 늘었다. 딱히 훔쳐갈 정보도 없는데 말이다. 이런 불필요한 시도들을 보며 집 네트워크 보안에 대해 다시 한번 생각하게 되었다.

이전에는 외부에서 공유기 관리자 페이지에 접속할 수 있도록 포트를 열어두었지만, 이제는 그럴 필요가 없어졌다. 얼마 전 시놀로지 NAS에 [SSH 공개키 기반 접속 설정을 완료](/시놀로지-ssh-보안-공개키-기반-로그인/)했는데, 이 SSH 연결을 ‘터널’처럼 활용하여 모든 내부망 서비스에 안전하게 접속하는 방법을 찾았기 때문이다.

이 방법은 **외부 인터넷에 단 하나의 SSH 포트만 노출**하고, 그 통로를 통해 공유기, NAS DSM, 다른 PC 등 모든 내부망 서비스에 접속하는 방식이다. 보안을 한 단계 끌어올리고 싶은 분들에게 강력히 추천한다.

최종 목표

1. 외부 인터넷에서 우리 집 공유기 관리자 페이지에 접속하고 싶다.
2. 이때, 공유기 포트는 직접 열지 않고 시놀로지 NAS의 SSH 터널링을 이용한다.
3. 웹 브라우저 주소창에 `localhost`를 입력하여 마치 집에서 접속하는 것처럼 공유기 관리자 페이지를 연다.

사전 준비 (Prerequisites)

SSH 터널링을 설정하기 전, 아래의 준비가 필요하다.

1. 시놀로지 NAS에서 SSH 서비스 활성화: [제어판] > [터미널 및 SNMP] > [터미널] 탭에서 SSH 서비스를 활성화한다.
2. SSH 접속 포트 변경 (필수!): 기본 포트인 22번은 공격에 매우 취약하다. 1024~65535 사이의 사용하지 않는 임의의 포트(예: 23456)로 변경하는 것을 강력히 권장한다.
3. SSH 공개키 기반 접속 설정 (권장): 비밀번호 대신 암호화된 키를 사용해 접속하여 보안을 대폭 강화한다. 관련 내용은 이전 포스팅을 참고.
4. 공유기 포트포워딩 설정: 공유기 설정에서 외부에서 접속할 SSH 포트(예: 23456)를 NAS의 내부 IP와 SSH 포트로 연결해 준다. (예: 외부 23456번 포트 → NAS IP의 23456번 포트로)
5. DDNS 설정: 유동 IP 환경이라면 외부에서 NAS에 접속할 수 있도록 DDNS(동적 DNS) 주소를 미리 설정해 두어야 한다.

1. 시놀로지 NAS에서 터널링 허용 설정

먼저 NAS가 SSH 터널링 요청을 처리할 수 있도록 설정을 변경해야 한다.

Bash

Copy

# 1. SSH로 NAS에 접속한 후 root 권한으로 전환
sudo -i

# 2. sshd 설정 파일 편집
vi /etc/ssh/sshd_config

# 3. AllowTcpForwarding 항목을 찾아 yes로 변경
# (만약 주석처리(#) 되어 있다면 #을 제거)
AllowTcpForwarding yes

# 4. sshd 서비스 재시작하여 설정 적용
synosystemctl restart sshd

2. SSH 터널링 명령어로 접속하기

이제 터널을 뚫을 차례다. PC의 터미널(macOS)이나 PuTTY, Windows Terminal(Windows) 등에서 아래와 같이 명령어를 입력한다.

예시: 공유기 관리자 페이지(192.168.0.1:80)에 접속하고 싶을 때
- ssh -L [로컬 포트]:[접속할 내부 IP]:[접속할 내부 포트] [NAS 계정]@[NAS DDNS 주소] -p [NAS SSH 포트]

실행
- ssh -L 8080:192.168.0.1:80 myuser@mynas.synology.me -p 23456
- 명령어를 입력하면 평소처럼 NAS에 SSH로 접속된다. 하지만 보이지 않는 터널이 함께 생성된 상태다.

옵션
- -L: 로컬 포트 포워딩 옵션.
- 8080: 내 PC(로컬)에서 사용할 포트 번호다. 아무거나 사용해도 되지만, 다른 서비스와 겹치지 않는 1024 이상의 포트를 추천한다.
- 192.168.0.1:80: 터널을 통해 최종적으로 접속할 목표 주소다. 192.168.0.1은 공유기 내부 IP, 80은 웹서버(HTTP) 포트다.
- myuser@mynas.synology.me -p 23456: 시놀로지 NAS의 SSH 접속 정보다.

3. 웹 브라우저로 접속 확인

이제 웹 브라우저를 열고 주소창에 http://localhost:8080을 입력한다. 위에서 지정한 로컬 포트 8080을 사용해야 한다.

마치 집 안에서 접속한 것처럼 공유기 로그인 화면이 나타나면 성공!

다양한 활용 예시

이 터널링은 공유기 접속 외에도 무궁무진하게 활용할 수 있다.

시놀로지 DSM 접속: ssh -L 5001:localhost:5001 myuser@mynas.synology.me -p 23456 입력 후, 웹 브라우저에서 https://localhost:5001 접속

내부망의 다른 PC 원격 데스크톱(RDP) 접속: ssh -L 33890:192.168.0.100:3389 myuser@mynas.synology.me -p 23456 입력 후, 원격 데스크톱 클라이언트에서 localhost:33890으로 접속

문제 해결 (Troubleshooting)

접속이 거부될 경우(Connection Refused):

- 공유기 포트포워딩 설정이 올바른지 (외부 포트 → NAS IP, NAS 포트) 확인.
- 시놀로지 NAS의 방화벽이 해당 SSH 포트를 허용하는지 확인.

SSH 접속은 되는데 브라우저에서 localhost 접속이 안 될 경우:

- ssh -L 명령어의 내부 IP와 포트가 정확한지 확인.
- 로컬 포트가 다른 프로그램에서 이미 사용 중이지 않은지 확인. (다른 번호로 변경 시도)

결론: 더 이상 포트는 열지 말자

SSH 터널링은 외부의 불필요한 접근은 원천 차단하면서, 나에게는 모든 내부 서비스를 열어주는 가장 강력하고 안전한 방법 중 하나다. 이제부터 새로운 서비스를 추가할 때마다 공유기 포트를 열지 말자. 대신, SSH 터널을 통해 안전하게 접속하는 습관을 들이는 것을 추천한다.