1. SMB (Server Message Block)의 개요

SMB(Server Message Block)는 네트워크 상에서 파일, 프린터, 직렬 포트 등의 자원을 공유하기 위해 사용되는 애플리케이션 계층 프로토콜입니다. 주로 Windows 시스템 간 파일 공유에 널리 사용되며, 클라이언트-서버 모델 기반으로 동작합니다.

SMB는 원래 IBM에 의해 개발되었고, 이후 Microsoft가 이를 확장하여 Windows OS에 통합하면서 널리 퍼지게 되었습니다. 현재는 다양한 운영체제에서 사용되며, 특히 Linux/Unix에서는 Samba라는 구현체를 통해 SMB 프로토콜을 지원합니다.

2. SMB의 상세 설명

2.1 SMB의 기본 동작 방식

SMB는 클라이언트-서버 모델로 동작합니다. 클라이언트가 서버에게 특정 자원(파일, 프린터 등)에 대한 작업을 요청하면, 서버는 이를 처리하여 결과를 응답합니다.

기본 동작 흐름

  1. 클라이언트가 TCP 445 포트로 서버에 접속
  2. 인증 과정 수행 (Windows 인증 / 사용자 계정 / 도메인 기반)
  3. 공유 리소스(공유 폴더, 프린터 등) 목록 요청
  4. 사용자가 선택한 리소스에 접근 (열기, 읽기, 쓰기 등)
  5. 작업 완료 후 연결 종료

이 과정은 SMB의 여러 명령어(예: NT_CREATE, READ, WRITE, CLOSE)를 통해 이뤄지며, 실제로는 패킷 단위로 복잡한 통신이 이뤄집니다.

2.2 SMB의 내부 구조 및 구성요소

1) Session

  • 하나의 SMB 연결(Session)은 인증된 사용자에 의해 생성되며, 여러 공유 리소스를 동시에 사용할 수 있습니다.

2) Tree Connect

  • 클라이언트가 특정 공유 폴더에 접근 요청할 때 Tree ID(Tree Connect ID)가 생성됩니다.

3) File ID

  • 열려 있는 파일이나 리소스마다 고유한 파일 핸들(File ID)을 부여받습니다.

2.3 SMB 명령어 예시

SMB 통신은 여러 종류의 명령어로 구성됩니다.

명령어설명
NEGOTIATESMB 버전 협상
SESSION_SETUP사용자 인증 과정
TREE_CONNECT공유 리소스에 대한 연결 요청
CREATE파일 또는 디렉토리 열기
READ/WRITE파일 읽기 및 쓰기
CLOSE열린 파일 핸들 종료
LOGOFF세션 종료

이러한 명령어들은 SMB의 각 동작을 세부적으로 제어합니다.

2.4 SMB의 전송 계층

SMB는 전송 계층으로 주로 다음 두 가지를 사용합니다.

  • TCP 445: 현재 대부분의 SMB 통신은 이 포트를 사용 (Windows 2000 이상부터 SMB Direct 사용)
  • NetBIOS over TCP/IP (137~139): 과거 SMB 1.0 시절에 사용되던 포트 (현재는 비권장)

2.5 SMB 버전별 변화 상세

SMB 1.0 (CIFS)

  • 기능: 파일 공유, 잠금, 이름 조회 등 기본 기능
  • 문제점: 보안 취약점 많고, 통신량 과다

SMB 2.0~2.1

  • 개선점: 명령어 수 대폭 축소 (100+ → 19), 파일 핸들 효율화, 대용량 전송

SMB 3.0

  • 도입 기능:
    • End-to-End 암호화
    • SMB Multichannel: 여러 NIC를 통한 병렬 전송
    • SMB Direct (RDMA): 고속 전송
    • VSS 통합: 볼륨 섀도우 복사본 연동

SMB 3.1.1

  • 보안 강화:
    • Pre-authentication integrity
    • AES-128-GCM 암호화
    • Downgrade 공격 방지

2.6 SMB 인증 방식

  • NTLM: 오래된 인증 프로토콜, 보안에 취약
  • Kerberos: Active Directory 환경에서 사용하는 기본 인증 방식
  • Guest Access: 인증 없이 접근 가능 (보안상 비추천)
  • Signed SMB: 패킷 위조 방지를 위한 서명

기업 환경에서는 반드시 Kerberos + Signed SMB 조합을 권장합니다.

2.7 SMB와 Samba의 관계

  • Samba는 Linux/Unix에서 SMB 프로토콜을 구현한 오픈소스 소프트웨어입니다.
  • SMB 프로토콜을 구현해 Windows 네트워크와 파일 공유를 가능하게 만듭니다.
  • Samba는 다음의 핵심 데몬으로 구성됩니다.
    • smbd: 파일 및 프린터 공유 서비스 제공
    • nmbd: NetBIOS 이름 서비스 제공
    • winbindd: Windows 사용자/그룹 정보 통합

실제 구성 예시

2.8 SMB의 보안 설정 포인트

  • SMB 1.0 비활성화 (특히 Windows Server에서)
  • TCP 445 포트에 대한 방화벽 제어
  • 파일 공유 권한 최소화 (읽기 전용, 특정 사용자 제한)
  • Signed SMB 및 암호화 설정
  • 접근 로그 및 감사 기능 활성화

3. 정리

SMB(Server Message Block)는 로컬 네트워크에서 자원 공유를 간편하게 만들어 주는 강력한 프로토콜입니다. Windows 기반 네트워크 환경에서 표준처럼 활용되고 있으며, Samba를 통해 리눅스 환경에서도 융합 운용이 가능합니다.

그러나 SMB는 버전별 보안 이슈가 존재하기 때문에, 항상 최신 버전 사용과 보안 설정 강화가 필요합니다. 특히 기업 환경에서는 방화벽 설정, 접근 제어 정책, 인증 방식 등을 종합적으로 고려하여 안전하게 운용해야 합니다.

zerg96

Recent Posts

충격! 코스피 8% 폭락에 SK텔레콤 AI 차단까지 – 한국의 AI 도박이 터졌다

코스피 8% 폭락, 서킷브레이커 발동, SK텔레콤 Claude AI 차단까지. 한국의 AI 레버리지 버블이 단 하루…

2주 ago

당신 얼굴이 이미 쓰이고 있다… AI 딥페이크 범죄, 생각보다 훨씬 심각합니다

SNS 사진 1장으로 30초 만에 딥페이크 영상이 완성됩니다. 당신의 얼굴이 이미 범죄에 악용되고 있을 수…

3주 ago

당신 얼굴이 이미 쓰이고 있다 — AI 딥페이크 범죄, 생각보다 훨씬 심각합니다

SNS 사진 1장으로 30초 만에 딥페이크 영상이 완성됩니다. 당신의 얼굴이 이미 범죄에 악용되고 있을 수…

3주 ago

달러·원 환율 급등, 지금 당신이 꼭 알아야 할 것들

달러/원 환율이 급등하는 이유와 실생활 영향을 정리했습니다. 지금 당장 활용할 수 있는 환전·투자 대응 전략까지…

3주 ago

미래에셋·미래에셋벤처투자·미래에셋생명 동반 급등, 스페이스X와 무슨 관계?

미래에셋·미래에셋벤처투자·미래에셋생명이 동반 급등한 이유는 스페이스X 상장 기대감입니다. 세 회사가 스페이스X와 어떻게 연결되어 있는지 상세히 분석했습니다.

3주 ago

스페이스X 상장 D-데이? 일론 머스크가 절대 말 안 하는 진짜 이유

스페이스X 상장이 계속 미뤄지는 진짜 이유를 파헤쳤습니다. 화성 계획, 스타링크 분리, 국방 계약... 머스크가 절대…

3주 ago