시놀로지 NAS에서 SSH를 통한 접속, Docker 컨테이너 관리, 그리고 폴더 매핑 기능에 대해 정리한 문서입니다.
SSH로 시놀로지 접속하기
SSH를 통해 시놀로지에 접속하는 방법은 크게 두 가지가 있습니다.
1. CMD를 이용한 접속
기본 접속 형식은 다음과 같습니다.
ssh synology-id@domain -p port
도메인이 없는 경우 IP 주소를 사용하시면 됩니다. 예를 들어
- 도메인: test.synology.me
- 아이디: id123
- 포트: 22
이런 경우 아래와 같이 접속합니다.
ssh id123@test.synology.me -p 22
2. PuTTY를 이용한 접속
PuTTY에서 위 정보를 입력하고 접속하시면 됩니다.
SSH 보안 강화 팁
- 기본 포트(22) 변경
- 대부분의 자동화된 공격은 22번 포트를 타겟팅합니다
- DSM의 ‘제어판 > 터미널 및 SNMP’에서 변경 가능합니다
- 접속 실패시 확인사항
- SSH 서비스가 활성화되어 있는지 확인
- 방화벽에서 해당 포트가 열려있는지 확인
- 사용자 계정에 SSH 접근 권한이 있는지 확인
관리자 권한 획득하기
시놀로지는 보안을 위해 기본적으로 root 계정을 비활성화해둡니다. 따라서 일반 사용자로 로그인 후 관리자 권한을 획득해야 합니다.
sudo -i
이 명령어를 입력하면 root 권한으로 변경됩니다.
저는 대충 쓰긴하지만 보안을 생각하신다면 아래 내용을 지켜주세요.
- sudo 권한은 필요한 경우에만 사용
- 작업 완료 후에는 일반 사용자 권한으로 돌아가기
- sudo 로그 정기적으로 확인하여 비정상적인 접근이 없는지 모니터링하기
Docker 컨테이너 관리하기
기본 명령어
컨테이너 목록 확인:
# 실행 중인 컨테이너만 보기
docker ps
# 모든 컨테이너 보기 (중지된 것 포함)
docker ps -a
# 컨테이너 로그 확인
docker logs [container_name]
# 실시간 로그 보기
docker logs -f [container_name]
컨테이너 접근하기
컨테이너에 접근하기 위한 기본 명령어는 다음과 같습니다:
docker exec -it [container_name] /bin/sh
각 옵션의 의미는 다음과 같습니다:
docker
: Docker 명령어 실행exec
: 실행 중인 컨테이너에 명령 전달-it
: 상호작용 가능한 터미널 제공[container_name]
: 접속할 컨테이너 이름/bin/sh
: 컨테이너의 쉘 실행
보통 컨테이너에 작업이 필요하면 여기까지는 고정인 것 같습니다.
폴더 매핑 활용하기
컨테이너 내부 디렉터리는 NAS DSM에서 직접 접근이 불가능합니다. 이때 폴더 매핑 기능을 활용할 수 있습니다.
기본 매핑 예시
예를 들어, NAS volume의 /docker/n8n
폴더와 컨테이너 내부의 /n8n
폴더를 매핑한다면 이렇게 하면 되는데요.
매핑이 제대로 되었는지 확인해보겠습니다.
먼저 File Station에서 /docker/n8n
위치에 테스트 파일 (mount.txt)를 생성합니다.
매핑이 잘 되었다면 컨테이너 내부 /n8n
폴더에도 이 파일이 있어야합니다.
cd /
ls
루트로 이동한 후 모든 파일을 확인해보면
n8n폴더가 보인다
cd n8n
ls
n8n
으로 이동 후 ls
하면,
매핑된 폴더의 파일 mount.txt
가 보입니다.
Docker Compose를 통한 매핑
docker-compose.yml 파일을 사용하여 볼륨을 매핑할 수도 있습니다.
version: "3"
services:
myapp:
image: myapp:latest
volumes:
- /docker/myapp:/app/data
- /docker/myapp/config:/app/config
매핑된 폴더 활용 사례
- 설정 파일 관리
- 컨테이너 재생성시에도 설정 유지
- 설정 파일 백업 용이
- 로그 모니터링
- File Station에서 직접 로그 확인 가능
- 로그 파일 백업 및 분석 용이
- 데이터 이전
- 컨테이너 업그레이드시 데이터 보존
- 다른 시스템으로 데이터 이전시 활용
주의사항
-
권한 설정
- 매핑된 폴더의 권한 설정 확인
- 컨테이너 실행 사용자와 폴더 권한 일치 필요
-
데이터 관리
- 매핑된 폴더 삭제시 컨테이너 내부 데이터도 영향받음
- 중요 데이터는 정기적으로 백업 필요
활용 할 방법이 꽤나 많은 기능입니다. 😎