MeshCentral 구축 대작전
1. 개요
- 자산 관리 및 원격 제어를 위한 오픈소스 솔루션 MeshCentral 구축함.
- Cloudflare Tunnel 등 중계 레이어를 배제하고 공유기 포트포워딩을 활용한 다이렉트 HTTPS 통신 최적화 수행함.
2. 시스템 아키텍처 및 네트워크 (Network Topology)
- 도메인: sleepzz.xyz (Cloudflare DNS Proxy 비활성화 권장)
- 포트 매핑 체계:
- 외부 수신(Public): TCP 8003
- 내부 전송(Internal): TCP 8086 (N100 서버 타겟)
- 서비스 엔진(Container): TCP 443 (HTTPS 기본 포트)
- 인증 보안: 자체 서명 인증서(Self-signed)를 통한 구간 암호화 적용함.
3. 서버 측 구성 (Server-side Setup)
3.1 Docker 서비스 정의
- 컨테이너 내부 443(HTTPS) 포트를 호스트 8086 포트에 바인딩함.
- 데이터 무결성을 위해 볼륨 마운트 경로(/data001/...)를 명시적으로 지정함.
services:
meshcentral:
image: typhonragewind/meshcentral
container_name: meshcentral
restart: unless-stopped
ports:
- "8086:443"
- "4433:4433/udp"
volumes:
- /data001/meshcentral/meshcentral-data:/opt/meshcentral/meshcentral-data
- /data001/meshcentral/meshcentral-files:/opt/meshcentral/meshcentral-files
- /data001/meshcentral/meshcentral-backups:/opt/meshcentral/meshcentral-backups
networks:
- cfd-net
3.2 핵심 엔진 설정 (config.json)
aliasPort: 공유기 외부 포트(8003)를 지정하여 에이전트 접속 주소 일치시킴.tlsOffload: false 설정으로 서버 엔진이 직접 SSL 핸드쉐이크를 수행하도록 함.wanhost: 외부 접속용 FQDN 도메인 주소 할당함.
{
"settings": {
"cert": "sleepzz.xyz",
"wanhost": "sleepzz.xyz",
"port": 443,
"aliasPort": 8003,
"redirPort": 80,
"tlsOffload": false,
"webRTC": true
}
}
4. 단말 에이전트 배포 및 최적화 (Agent Deployment)
4.1 권한 승격 및 서비스 등록
- 관리자 권한 앱(UAC, 게임 등) 제어를 위해 시스템 서비스 등록 필수적임.
- 관리자 권한 CMD 환경에서
-fullinstall파라미터를 사용하여 배포함.
meshagent64-home.exe -fullinstall
4.2 실행 상태 검증
- 서비스 관리자(
services.msc) 내 로그온 계정이 Local System임을 확인함. - 프로세스 세부 정보 내 사용자 이름이 SYSTEM으로 구동되는지 검증함.
5. 운영 이슈 대응 (Troubleshooting)
5.1 다중 입력 및 IME 동기화 이슈
- 한영 전환: 브라우저 키보드 이벤트 한계로 일반 한영키 작동 불확실함. 오른쪽 Alt 키 또는 작업표시줄 언어바 직접 클릭을 통한 전환 유도함.
- 입력 포커스: 아이콘 상태와 실 입력이 불일치할 경우, 원격지 창(메모장 등)을 재클릭하여 포커스 갱신함.
5.2 보안 모듈(nProtect 등) 간섭 이슈
- nProtect GameGuard 등 커널 레벨 보안 프로그램이 적용된 앱은 API 기반 가상 마우스 입력을 차단함.
- 해결 방안: 고사양 그래픽 및 게임 제어 필요 시, 가상 드라이버를 지원하는 Moonlight/Sunshine 솔루션과 혼합 운영 권장함.
작성일: 2024년 5월 비고: 본 가이드는 Direct DNS 환경의 MeshCentral 최적화 구성안을 바탕으로 작성됨.