서버 메시지 블록
Server Message BlockSMB(Server Message Block)는[1] 1983년 Barry A가 개발한 통신 프로토콜입니다.IBM의[2] Feigenbaum은 IBM의 OS/2를 실행하는 시스템 네트워크의 노드 간에 파일 및 프린터에 대한 공유 액세스를 제공하고자 했습니다.또, Authenticated Inter-Process Communication(IPC; 인증 프로세스간 통신) 메카니즘도 제공합니다.1987년 Microsoft와 3Com은 OS/2용 LAN Manager에 SMB를 구현했습니다.이때 SMB는 NetB를 사용했습니다.NetB 상단의 IOS 서비스IOS 프레임프로토콜의 기본 전송입니다.그 후, Microsoft는 Windows NT 3.1 에 SMB 를 실장해, 새로운 기본 트랜스포트(TCP/IP 및 NetBT)와 연동하도록 적응해 왔습니다.SMB 의 실장은, 애매한 이름의 Windows 서비스 「서버」(ID:LanmanServer
및 "워크스테이션" (ID:LanmanWorkstation
)[3] 사용자 인증에는 NTLM 또는 Kerberos 프로토콜을 사용합니다.
1996년에 Microsoft는 Common Internet File System(CIFS /sfsfs/)이라는 별명으로 SMB 1.0 버전을[4] 발표했습니다.CIFS는 LAN Manager를 [4]포함한 최초의 SMB와도 호환성이 있었습니다.심볼릭 링크, 하드 링크 및 더 큰 파일 크기를 지원하지만 SMB 2.0 [4][5]이상의 기능은 지원하지 않습니다.그러나 마이크로소프트의 제안은 인터넷 드래프트로 남아 표준 지위를 [6]획득하지 못했다.이후 Microsoft는 CIFS Moniker의 사용을 중단했지만 SMB의 개발과 후속 사양 공개를 계속하고 있습니다.
특징들
SMB(Server Message Block)를 사용하면 컴퓨터 네트워크를 통한 파일 공유, 프린터 공유, 네트워크 브라우징 및 프로세스 간 통신(이름 있는 파이프를 통한)이 가능합니다.SMB는 마이크로소프트 분산 파일 시스템 구현의 기반 역할을 합니다.
SMB는 전송에 TCP 및 IP 프로토콜을 사용합니다.이 조합에 의해, 퍼블릭 인터넷을 포함한 복잡한 상호 접속 네트워크상에서 파일 공유가 가능하게 됩니다.SMB 서버 컴포넌트는 TCP 포트 445 를 사용합니다.SMB는 원래 NetB에서 운영되었습니다.NetB 상의 IOS(IEEE 802.2 및 IPX/SPX 경유) 이후IOS over TCP/IP(NetBT)는, 그 후 Microsoft 에서는 이러한 프로토콜을 사용하지 않게 되었습니다.(Windows Vista 이후 NetBIOS는 사용할 수 없습니다).NetBT 에서는, 서버 컴퍼넌트는, 137(NETBIOS Name Service), 138(NETBIOS 데이터그램 서비스), 및 139(NETBIOS 세션 서비스)의 3 개의 TCP 또는 UDP 포토를 사용합니다.
Microsoft Windows 에서는, 애매한 이름의 Windows 서비스 2개가 SMB 를 실장합니다."서버" 서비스(ID:LanmanServer
)는, 공유 자원의 제공을 담당합니다.워크스테이션 서비스(ID:LanmanWorkstation
)는 컴퓨터 이름을 유지하며 다른 [3]컴퓨터의 공유 리소스에 액세스할 수 있도록 지원합니다.SMB는 Kerberos 프로토콜을 사용하여 Windows 도메인 네트워크의 Active Directory에 대해 사용자를 인증합니다.단순한 피어 투 피어 네트워크에서는 SMB는 NTLM 프로토콜을 사용합니다.
Windows NT 4.0 SP3 이후에는 SMB 메시지에 디지털 서명하여 중간자 공격을 [7][8][9]방지할 수 있습니다.SMB 서명은, 착신 SMB 접속(「Lanman Server」서비스)과 발신 SMB 접속(「Lanman Workstation」서비스)용으로 개별적으로 설정할 수 있습니다.윈도우즈 서버 2003 이상을 실행하는 윈도우즈 도메인 컨트롤러의 기본 설정은 서명되지 않은 수신 [10]연결을 허용하지 않습니다.따라서 Windows 9x를 포함하여 처음부터 SMB 서명을 지원하지 않는 이전 버전의 Windows는 Windows Server 2003 도메인 [8]컨트롤러에 연결할 수 없습니다.
SMB는 성능 향상을 위해 파일 잠금(아래 참조)을 지원합니다.각 Windows Server 릴리스에 따라 기회주의적 잠금 지원이 변경되었습니다.
기회성 잠금
SMB 프로토콜에서 기회주의적 잠금은 클라이언트에 [11]의한 네트워크 파일의 캐싱을 제어함으로써 성능을 향상시키도록 설계된 메커니즘입니다.기존 잠금과 달리 OpLocks(Opportunistic Locks)는 엄격하게 파일 잠금이거나 상호 배제를 위해 사용되지 않습니다.
네 가지 유형의 기회성 잠금 장치가 있습니다.
- 배치 잠금
- Batch OpLocks는 원래 DOS 배치 파일 실행 동작의 특정 동작을 지원하기 위해 작성되었으며, 단기간에 여러 번 파일을 열고 닫으면 성능 문제가 발생합니다.이 문제를 해결하기 위해 클라이언트는 "batch" 유형의 OpLock을 요구할 수 있습니다.이 경우 클라이언트는 클로즈 요구 송신을 지연하고 후속 오픈 요구가 발생하면 두 요구는 [12]서로 취소됩니다.
- 레벨 1 OpLocks / 전용 잠금 장치
- 응용 프로그램이 "공유 모드"로 열리면 다른 프로세스(또는 다른 클라이언트)에 의해 열리지 않는 SMB 서버에서 호스트되는 파일이 클라이언트에서 배타적인 OpLock을 수신합니다.즉, 클라이언트는 이 특정 파일에 액세스할 수 있는 유일한 프로세스로 간주하여 서버에 커밋하기 전에 파일의 모든 변경을 캐시할 수 있습니다.이는 파일 읽기 및 쓰기에 필요한 라운드 트립이 적기 때문에 성능이 향상되었습니다.다른 클라이언트/프로세스가 같은 파일을 열려고 하면 서버는 클라이언트에 메시지를 보냅니다(브레이크 또는 해지라고 함).이 메시지는 클라이언트에 이전에 부여되었던 배타적 잠금이 무효가 됩니다.그런 다음 클라이언트는 모든 변경 내용을 파일에 플러시합니다.
- 레벨 2 OpLocks
- 클라이언트가 배타적 OpLock을 보유하고 있고 잠긴 파일이 서드파티에 의해 열려 있는 경우 클라이언트는 다른 클라이언트의 쓰기/읽기 액세스를 허용하기 위해 배타적 OpLock을 포기해야 합니다.그러면 클라이언트는 서버로부터 "Level 2 OpLock"을 수신할 수 있습니다.레벨 2 OpLock에서는 읽기 요청을 캐싱할 수 있지만 쓰기 캐싱은 제외됩니다.
- OpLocks 필터링
- Windows NT 4.0에서 추가된 필터 Oplocks는 레벨 2 OpLocks와 비슷하지만 파일 오픈과 잠금 수신 사이의 공유 모드 위반을 방지합니다.Microsoft 에서는, 그 외의 상황에서는 복수의 리더와 레벨 2의 OpLock을 허가하는 것이 중요한 경우에만 필터 OpLocks 를 사용하는 것을 추천합니다.OpLock을 보유하고 있는 클라이언트는 실제로 파일을 잠그지 않고 다른 클라이언트가 자신의 잠금과 일치하지 않는 방식으로 파일에 액세스하려고 할 때 중단 시간을 통해 알림을 받습니다.다른 클라이언트의 요청은 브레이크 처리 중에 보류됩니다.
- 브레이크
- SMB 프로토콜의 "표준" 동작과 달리 중단 요청이 서버에서 클라이언트로 전송될 수 있습니다.OpLock이 더 이상 유효하지 않음을 클라이언트에 알립니다.예를 들어 다른 클라이언트가 OpLock을 무효화하는 방법으로 파일을 열려고 할 때 이 문제가 발생합니다.그런 다음 첫 번째 클라이언트는 OpLock 브레이크가 전송되고 로컬 변경(배치 또는 배타적 OpLock의 경우)을 모두 전송하고 OpLock 브레이크에 대해 확인해야 합니다.이 확인 응답을 받으면 서버는 두 번째 클라이언트에 일관된 방법으로 응답할 수 있습니다.
성능
SMB 프로토콜의 사용은 네트워크상의 브로드캐스트트래픽의 현저한 증가와 관련이 있는 경우가 많습니다.단, SMB 자체는 브로드캐스트를 사용하지 않습니다.SMB와 관련된 일반적인 브로드캐스트 문제는 실제로는 NetB에서 발생합니다.IOS 서비스 [clarification needed]로케이션프로토콜디폴트에서는, Microsoft Windows NT 4.0 서버는 NetB 를 사용했습니다.서비스를 애드버타이즈 및 검색하기 위한 IOS.NetBIOS는 특정 호스트에서 정기적으로 사용할 수 있는 브로드캐스트 서비스를 통해 작동합니다.이것에 의해, 통상, 호스트수가 적은 네트워크에서는 디폴트로는 허용되지만, 브로드캐스트트래픽이 증가하면, 네트워크상의 호스트수가 증가하면 문제가 발생할 가능성이 있습니다.Windows Internet Naming Service(WINS; 인터넷네임 서비스) 또는 Domain Name System(DNS; 도메인네임 시스템) 형식의 이름 해결 인프라스트럭처를 실장하면 이 문제가 해결됩니다.WINS는 Windows NT 4.0 네트워크에서 사용되는 독자 사양의 실장입니다만, Microsoft 네트워크의 설계와 유지보수에 있어서 독자적인 문제와 복잡함을 초래했습니다.
Windows 2000 의 릴리스 이후, Microsoft 에서는 이름 해결에 WINS 를 사용하는 것을 권장하고 있지 않습니다.계층형 다이내믹 DNS 는 모든 Windows 운영체제의 디폴트 이름 해결 프로토콜로 설정되어 있습니다.DNS에 의한 (짧은) NetBIOS 이름을 해결하려면 DNS 클라이언트가 일반적으로 DNS 검색 쿼리에 연결 고유의 DNS 접미사를 추가하여 짧은 이름을 확장해야 합니다.WINS 는, 종래의 Windows 환경 및 애플리케이션과의 상호 운용성을 확보하기 위한 세컨더리 이름 해결 프로토콜로서 클라이언트상에서 설정할 수 있습니다.게다가 Microsoft DNS 서버는, DNS 를 서포트하지 않는 레거시(Windows 2000 이전의) 환경과의 이름 해결 통합을 서포트하기 위해서, 이름 해결 요구를 레거시 WINS 서버에 전송 할 수 있습니다.
네트워크 설계자들은 대기 시간이 SMB 1.0 프로토콜의 성능에 상당한 영향을 미치며 FTP와 같은 다른 프로토콜보다 성능이 더 떨어진다는 것을 발견했습니다.모니터링을 통해 호스트 [13]간의 네트워크 지연 시간을 무시하고 높은 수준의 "일시성"을 확인할 수 있습니다.예를 들어 인터넷을 통한 VPN 접속에서는 네트워크 지연이 발생하는 경우가 많습니다.Microsoft는 SMB 1.0이 당초 소규모 LAN용으로 설계된 스트리밍 프로토콜이 아닌 블록 수준이기 때문에 성능 문제가 발생한다고 설명했습니다.블록 사이즈는 64K로 제한되어 있습니다.SMB 서명은 추가 오버헤드를 발생시키고 TCP 윈도 사이즈는 WAN [14]링크용으로 최적화되지 않았습니다.이 문제에 대한 해결책으로는 SMB 1.0 및[16] 2.0을 [17]캐시 및 최적화하는 다양한 네트워크 벤더의 업데이트된 SMB 2.0 프로토콜,[15] 오프라인 파일, TCP 창 확장 및 WAN 최적화 장치가 있습니다.
역사
SMB 1.0
Barry Feigenbaum은 1983년 초 DOS INT 21h 로컬 파일 액세스를 네트워크 파일 [2]시스템으로 전환하기 위해 IBM에서 SMB를 설계했습니다.Microsoft는 가장 일반적으로 사용되는 버전을 대폭 수정하여 1990년경 3Com을 탑재한 OS/2용 개발을 시작한 LAN Manager 운영체제에서 SMB 프로토콜을 구현하였으며, Windows c.for Workgroups(1992) 및 Windows 이후 버전에서 계속해서 이 프로토콜에 기능을 추가하였습니다.LAN Manager 인증은 IBM "LAN Manager" 비밀번호를 사용하기 위한 기존 SMB 사양의 요건에 따라 구현되었지만 DES를 잘못된 방식으로 구현하여 비밀번호를 [18]해독할 수 있었습니다.그 후 Kerberos 인증도 추가되었습니다.Windows 도메인 로그온 프로토콜은 더 강력한 128비트 암호화에[19] 대한 수출 제한 때문에 처음에는 미국 밖에서 40비트 암호화를 사용했습니다(1996년 빌 클린턴 대통령이 행정명령 13026에[20] 서명했을 때 해제됨).
SMB 1.0(또는 SMB1)은 원래 NetB 상에서 동작하도록 설계되어 있습니다.IOS 프레임(NetBIOS over IEEE 802.2).그 후, NetB에 대응하고 있습니다.IOS over IPX/SPX(NBX) 및 NetBIOS over TCP/IP(NetBT)또, Windows 2000 이후, SMB 는 TCP 포토 445 를 사용해 TCP 상에서 동작합니다.이 기능은 「다이렉트 호스트 SMB」[21]라고 불립니다.SMB와 [21]TCP 사이에는 아직 씬 레이어(NetBT의 세션서비스의 세션메시지 패킷과 유사)가 존재합니다.Windows Server 2003 및 레거시 NAS 기기는 SMB1을 기본적으로 사용합니다.
SMB1은 매우 수다스러운 프로토콜로 지연 시간이 짧은 LAN(Local Area Network)에서는 문제가 되지 않습니다.WAN(Wide Area Network)에서는, 이러한 네트워크의 본래의 높은 레이텐시가 확대되기 때문에, WAN(Wide Area Network)에서는 매우 느려집니다.이후 버전의 프로토콜은 많은 핸드쉐이크 교환 수를 줄였습니다.프로토콜의 비효율성을 완화하기 위한 한 가지 방법은 Riverbed, Silver Peak 또는 Cisco에서 제공하는 WAN 최적화 제품을 사용하는 것입니다.더 나은 방법은 최신 버전의 SMB로 업그레이드하는 것입니다.여기에는 Windows Server 2003뿐만 아니라 NAS 기기 업그레이드도 포함됩니다.SMB1 트래픽을 식별하는 가장 효과적인 방법은 Wireshark 등의 네트워크 분석 도구를 사용하는 것입니다.Microsoft는 Windows Server 2016에서 SMB1을 [22]사용하는 디바이스를 추적하기 위한 감사 도구도 제공합니다.
Microsoft는 [23]SMB1을 2013년 6월에 폐지된 것으로 표시했습니다.Windows Server 2016 및 Windows 10 버전 1709 에는, SMB1 이 [24]디폴트로 인스톨 되어 있지 않습니다.
CIFS
1996년 Sun Microsystems가 WebNFS를 [25]발표했을 때 Microsoft는 SMB의 이름을 Common Internet File System(CIFS)[2]으로 변경하는 이니셔티브를 시작하여 심볼릭 링크, 하드 링크, 대용량 파일 크기 지원, NetB를 필요로 하지 않는 TCP 포트 445를 통한 직접 접속 지원 등의 기능을 추가했습니다.트랜스포트로서의 IOS(대부분의 실험적인 작업으로 한층 더 개선이 필요).Microsoft는 인터넷 초안으로서 일부 사양을 IETF에 [6]제출했습니다.그 후, 이러한 제출은 기한이 만료되었습니다.
SMB 2.0
Microsoft는 2006년에 Windows Vista 및 Windows Server [26]2008에서 새로운 버전의 프로토콜(SMB 2.0 또는 SMB2)을 발표했습니다.이 프로토콜은 독점적이지만, 이 프로토콜의 [27]사양은 다른 시스템이 새 프로토콜을 사용하는 마이크로소프트 운영 체제와 상호 운용할 수 있도록 하기 위해 공개되었습니다.
SMB2는 명령 및 하위 명령 수를 100개 이상에서 [13]19개로 줄임으로써 SMB 1.0 프로토콜의 '동작성'을 줄입니다.파이프라인, 즉 이전 요청에 대한 응답이 도착하기 전에 추가 요청을 전송하기 위한 메커니즘을 갖추고 있기 때문에 지연 시간이 긴 링크보다 성능이 향상됩니다.여러 액션을 하나의 요구에 조합할 수 있는 기능이 추가되어 클라이언트가 서버에 대해 실행해야 하는 라운드 트립 횟수가 대폭 감소하여 [13]결과적으로 성능이 향상됩니다.SMB1에는 AndX라고 불리는 복합 메커니즘이 있어 여러 액션을 복합화하지만 Microsoft 클라이언트는 [citation needed]AndX를 거의 사용하지 않습니다.또, 「내구성 있는 파일 핸들」의 개념도 소개합니다.이것에 의해, SMB 서버에의 접속은, 무선 네트워크의 일반적인 것과 같이, 새로운 세션의 재네고시에이션의 오버헤드를 발생시키지 않고, 네트워크의 단시간 정지로부터도 존속할 수 있습니다.
SMB2에는 심볼릭 링크 지원이 포함되어 있습니다.기타 기능에는 파일 속성 캐시, HMAC SHA-256 해시 알고리즘에 의한 메시지 서명 향상, 서버당 사용자 수, 공유 수 및 열린 파일 수를 [13]늘림으로써 확장성 향상 등이 있습니다.SMB1 프로토콜은 16비트 데이터 크기를 사용하며, 특히 최대 블록 크기를 64K로 제한합니다.SMB2는 32비트 또는 64비트 와이드 스토리지 필드를 사용하고 파일 핸들에서는 128비트를 사용하기 때문에 블록 크기에 대한 기존 제약이 없어져 고속 [13]네트워크를 통한 대용량 파일 전송으로 성능이 향상됩니다.
Windows Vista/Server 2008 이후 운영 체제는 SMB2를 사용할 수 있는 다른 시스템과 통신할 때 SMB2를 사용합니다. SMB1은 이전 버전의 Windows 및 다양한 벤더의 NAS 솔루션과의 연결에 계속 사용됩니다.Samba 3.5에는 SMB2에 [28]대한 실험적인 지원도 포함되어 있습니다.Samba 3.6은 Windows 쿼터 관리 [29]툴을 사용한 사용자 쿼터 변경을 제외하고 SMB2를 완전히 지원합니다.
SMB2가 도입되었을 때 타사 SMB 프로토콜 구현자에게 SMB1보다 많은 이점을 가져다 주었습니다.원래 IBM이 설계한 SMB1은 역설계되었으며, 이후 Xenix, OS/2 및 VMS(패스웍스)와 같은 다양한 비 Windows 운영 체제의 일부가 되었습니다.X/Open은 부분적으로 표준화했습니다.Microsoft는 2000년 12월에 IETF RFC [30]3010으로서 네트워크 파일 시스템 버전4의 정식 IETF 표준화에 대응하여 SMB2를 기술한 인터넷 초안을 IETF에 제출했습니다.그러나 이러한 SMB 관련 인터넷 드래프트는 IETF 표준 트랙 승인 또는 기타 IETF 승인을 얻지 못한 채 만료되었습니다(이력에 대한 자세한 내용은 http://ubiqx.org/cifs/Intro.html 참조).SMB2는 과거와의 관계도 비교적 깨끗합니다.마이크로소프트의 SMB1 코드는 다양한 SMB 클라이언트 및 서버에서 작동해야 합니다.SMB1에는 Unicode 지원 등의 기능이 나중에 다시 적용되었기 때문에 (특정 요청에 대해 반환할 구조 선택) 명령어에 대한 많은 버전의 정보가 포함되어 있습니다.SMB2에는 프로토콜 구현자에 대한 호환성 테스트가 대폭 줄어듭니다.SMB2 코드는 변동성이 훨씬 적기 때문에 복잡성이 상당히 낮습니다(예를 들어, SMB2에 Unicode 지원이 필요하기 때문에 Unicode 이외의 코드 경로가 중복됩니다).
Apple은 OS X 10.9 "Mavericks"[31] 이후 SMB2(현재는 레거시인 Apple Filing Protocol)로 마이그레이션했습니다.이 이행에는 호환성 문제가 많이 있었습니다.[32][33]SMB2에 대한 기본 지원이 아닌 지원은 실제로 OS X 10.7에서 나타났는데, 당시 애플은 SMBX라는 [31]자체 SMB 구현을 위해 Samba를 포기했습니다. Samba가 GPLv3를 [34][35]채택한 후 Apple은 자체 SMBX 구현으로 전환했습니다. MacOS는 2021년 동안 IETF 네트워크 파일 시스템(NFS)도 지원했습니다.
Linux 커널의 CIFS 클라이언트 파일 시스템은 버전 3.[36]7 이후 SMB2를 지원합니다.
SMB 2.1
Windows 7 및 Server 2008 R2에서 도입된 SMB 2.1은 새로운 기회주의적 잠금 [37]메커니즘을 통해 약간의 성능 향상을 도입했습니다.
SMB 3.0
SMB 3.0(이전의 SMB 2.2)[38]은 Windows[38] 8 및 Windows Server [38]2012에서 도입되었습니다.특히 가상화된 데이터 센터에서 기능을 추가하고 SMB2 [39]성능을 개선하기 위해 다음과 같은 몇 가지 중요한 변화를 가져왔습니다.
- SMB Direct Protocol(SMB over Remote Direct Memory Access(RDMA))
- SMB 멀티채널(SMB [40][41]세션당 여러 연결),
- SMB 트랜스페어런트페일오버[42][43]
또한 엔드 투 엔드 암호화 및 새로운 AES 기반 서명 알고리즘 [44][45]등 몇 가지 보안 강화도 도입되었습니다.
SMB 3.0.2
SMB 3.0.2(당시 3.02로 알려짐)는 Windows 8.1 및 Windows Server 2012 R2에서 [46][47]도입되었습니다.이들 이후의 릴리스에서는 보안을 [48][49]강화하기 위해 옵션으로 이전 SMB 버전 1을 비활성화할 수 있습니다.
SMB 3.1.1
SMB 3.1.1은 Windows 10 및 Windows Server [50]2016과 함께 도입되었습니다.이 버전에서는 SMB3에 추가된 AES-128 CCM 암호화와 더불어 AES-128 GCM 암호화를 지원하며 SHA-512 해시를 사용한 사전 인증 무결성 검사를 구현합니다.SMB 3.1.1에서는 SMB 2.x [citation needed]이후를 사용하는 클라이언트에 접속하는 경우에도 시큐어 네고시에이션이 필수적입니다.
사양
SMB의 사양은 독자 사양이며, 처음에는 폐쇄되어 있었기 때문에 다른 벤더와 프로젝트에서는 프로토콜을 리버스 엔지니어링하여 SMB와 상호 운용할 수 밖에 없었습니다.SMB 1.0 프로토콜은 리버스 엔지니어링된 지 얼마 지나지 않아 공개되었으며,[51] SMB 2.0 프로토콜은 처음부터 마이크로소프트의 개방형 사양 개발자 센터에서 제공되었습니다.
서드파티 도입
삼바
이 섹션은 업데이트해야 합니다.. (2016년 4월) 하여 이 할 수 있도록 |
1991년 Andrew Tridgell은 Unix와 유사한 시스템용 SMB/CIFS 네트워킹 프로토콜의 자유 소프트웨어 재실장(리버스 엔지니어링을 사용)인 Samba의 개발을 시작했습니다.Samba는 처음에 SMB 서버를 구현하여 DEC Pathworks 클라이언트를 실행하는 PC 클라이언트가 SunOS [2][52]머신 상의 파일에 액세스할 수 있도록 했습니다.널리 보급된 Microsoft Windows 플랫폼과의 상호 작용에서 SMB 프로토콜의 중요성 때문에 Samba는 Unix와 같은 Windows 운영 체제와 Windows가 아닌 운영 체제를 상호 운용할 수 있도록 호환되는 SMB 클라이언트 및 서버의 무료 소프트웨어 구현으로 널리 보급되었습니다.
버전 3(2003)에서 Samba는 Microsoft Windows 클라이언트에 파일 및 인쇄 서비스를 제공하며 PDC(Primary Domain Controller) 또는 도메인 구성원으로 Windows NT 4.0 서버 도메인과 통합할 수 있습니다.Samba4 의 인스톨은, Windows 2008 도메인 [53]및 포레스트의 기능 레벨로 Active Directory 도메인 컨트롤러 또는 멤버 서버로서 동작할 수 있습니다.
Linux 배포 패키지 관리자는 cifs-utils 패키지를 검색할 수 있습니다.이 패키지는 Samba 유지 관리자의 것입니다.
Netsmb
NSMB(Netsmb 및 SMBFS)는 BSD 운영체제에서의 커널 내 SMB 클라이언트[54] 및 서버 구현 패밀리입니다.Boris Popov에 의해 FreeBSD 4.4에 처음 기여했으며, 현재는 NetBSD 및 macOS를 [55]포함한 다양한 BSD 시스템에서 찾아볼 수 있습니다.그 [56]이후로 구현이 크게 달라졌습니다.
NSMB의 macOS 버전은 심볼링크를 나타내는 현재 일반적인 방식으로 알려져 있습니다.이 "Minshall-French" 형식은 심볼링크를 텍스트 파일로 표시합니다..symlink
내선번호와 aXsym\n
매직 넘버는 항상 1067바이트입니다.이 형식은 단순 SMB 서버 또는 지원되지 않는 파일 시스템에 심볼 링크를 저장하는 데도 사용됩니다.Samba는 이 형식을 지원합니다.mfsymlink
옵션을 선택합니다.[57]Windows 도커도 사용하고 있는 [citation needed]것 같습니다.
NQ
NQ는 Siemens Data Communications의 CEO였던 Sam Widerman이 1998년에 설립한 이스라엘 소재 기업 Visuality Systems가 개발한 휴대용 SMB 클라이언트 및 서버 구현 제품군입니다.NQ 패밀리는 임베디드 SMB 스택(C로 작성), Pure Java SMB 클라이언트 및 스토리지 SMB 서버 구현으로 구성됩니다.모든 솔루션은 최신 SMB 3.1.1 사투리를 지원합니다.Linux용 NQ, WinCE용 NQ, iOS, Android, VxWorks 및 기타 실시간 운영체제는 모두 구성 가능한 NQ 솔루션으로 지원됩니다.
MoSMB
MoSMB는 Ryussi Technologies가 개발한 Linux 및 기타 Unix 계열 시스템 전용 SMB 구현입니다.SMB 2.x 및 SMB 3.x만 지원합니다.[58]
Fusion File Share by Tuxera는 커널 [59]또는 사용자 공간에서 실행할 수 있는 Tuxera가 개발한 SMB 서버 구현입니다.SMB 3.1.1 및 모든 이전 버전, 지속적인 가용성(영구적 핸들) 스케일아웃, RDMA(SMB Direct), SMB 멀티채널, 투과적 압축, 섀도 복사 등의 고급 SMB 기능을 지원합니다.
저도 마찬가지예요.
마찬가지로 2009년에 CIFS/SMB 구현(버전 1.0, 2.0, 2.1 및 NFS 3.0)을 개발하여 Linux/Unix 기반 OEM 스토리지 제품에 사용되는 파일에 대한 네트워크 액세스를 위한 멀티프로토콜 ID 인식 플랫폼을 제공하였습니다.이 플랫폼은 기존 NAS, 클라우드 게이트웨이 및 클라우드 캐싱 장치에 사용되어 네트워크를 통해 파일에 안전하게 액세스할 수 있습니다.마찬가지로 EMC Isilon도 2012년에 구입했습니다.
CIFSD
CIFSD는 Linux 커널용 오픈소스 인커널 CIFS/SMB 서버 구현입니다.사용자 공간 구현에 비해 다음과 같은 이점이 있습니다. 더 나은 성능을 제공하며 SMB Direct와 같은 일부 기능을 쉽게 구현할 수 있습니다.SMB 3.1.1 및 이전 버전을 지원합니다.
보안.
수년간 Microsoft가 직접 [60][61]의존하는 프로토콜 또는 컴포넌트의 구현에는 많은 보안 취약성이 있었습니다.다른 공급업체의 보안 취약성은 주로 NTLMv1, LanMan 또는 일반 텍스트 암호와 같은 프로토콜을 선호하는 NTLMv2 및 Kerberos와 같은 새로운 인증 프로토콜을 지원하지 않는 데 있습니다.실시간 공격[62] 추적 결과 SMB는 2014년 Sony Pictures [64]공격 및 2017년 [65]WannaCry 랜섬웨어 공격과 같은 침입 [63]시도의 주요 공격 벡터 중 하나입니다.2020년에는 SMB의 높은 심각도 취약성이 2개 공개되어 SMBGhost(CVE-2020-0796) 및 SMBleed(CVE-2020-1206)로 불리고 있습니다.이 취약성은 체인으로 연결되어 있으면 [66]공격자에게 RCE(Remote Code Execution) 권한을 제공할 수 있습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ "Microsoft SMB Protocol and CIFS Protocol Overview". Microsoft. October 22, 2009. Archived from the original on August 2, 2016. Retrieved April 10, 2019.
- ^ a b c d Tridgell, Andrew. "Myths About Samba". Archived from the original on October 20, 2017. Retrieved January 3, 2016.
- ^ a b "Lan Manager Networking Concepts". Support. Microsoft. Archived from the original on December 30, 2012. Retrieved September 18, 2014.
- ^ a b c "Common Internet File System". Windows 2000 Web and Application Services Technical Overview. Microsoft. 18 July 2012 – via Microsoft Docs.
- ^ Coulter, David; Satran, Michael; Batchelor, Drew (8 January 2021). "Microsoft SMB Protocol and CIFS Protocol Overview". Windows App Development. Microsoft – via Microsoft Docs.
- ^ a b 참조:
- Heizer, I.; Leach, P.; Perry, D. (June 13, 1996). "Common Internet File System Protocol (CIFS/1.0)". Archived from the original on August 8, 2019.
- Leach, Paul J.; Naik, Dilip C. (January 3, 1997). "CIFS Logon and Pass Through Authentication".
- Leach, Paul J.; Naik, Dilip C. (January 10, 1997). "CIFS/E Browser Protocol".
- Leach, Paul J.; Naik, Dilip C. (January 31, 1997). "CIFS Printing Specification".
- Leach, Paul J.; Naik, Dilip C. (February 26, 1997). "CIFS Remote Administration Protocol".
- Leach, Paul J.; Naik, Dilip C. (December 19, 1997). "A Common Internet File System (CIFS/1.0) Protocol".
- ^ "Overview of Server Message Block signing". Windows Server troubleshooting. Microsoft. 24 November 2021 – via Microsoft Docs.
- ^ a b Johansson, Jesper M. (20 May 2005). "How to Shoot Yourself in the Foot with Security, Part 1". Security Guidance. Microsoft – via Microsoft Docs.
This article addresses [...] Server Message Block (SMB) message signing.
- ^ Barreto, Jose (1 December 2010). "The Basics of SMB Signing (covering both SMB1 and SMB2)". Jose Barreto's Blog Archive. Microsoft. Archived from the original on 2 December 2012 – via Microsoft Docs.
This security mechanism in the SMB protocol helps avoid issues like tampering of packets and "man in the middle" attacks. [...] SMB signing is available in all currently supported versions of Windows, but it’s only enabled by default on Domain Controllers. This is recommended for Domain Controllers because SMB is the protocol used by clients to download Group Policy information. SMB signing provides a way to ensure that the client is receiving genuine Group Policy.
- ^ "MSKB887429: Overview of Server Message Block signing". Microsoft. November 30, 2007. Archived from the original on November 20, 2010. Retrieved October 24, 2012.
By default, SMB signing is required for incoming SMB sessions on Windows Server 2003-based domain controllers.
- ^ "Opportunistic Locks". Microsoft. May 31, 2018. Retrieved August 19, 2021.
- ^ "All About Opportunistic Locking". Sphere IT. 2014. Retrieved August 19, 2021.
- ^ a b c d e Jose Barreto (December 9, 2008). "SMB2, a Complete Redesign of the Main Remote File Protocol for Windows". Microsoft Server & Management Blogs. Archived from the original on January 12, 2013. Retrieved November 1, 2009.
- ^ Neil Carpenter (October 26, 2004). "SMB/CIFS Performance Over WAN Links". Microsoft. Archived from the original on February 13, 2020. Retrieved February 13, 2020.
- ^ "What's New in SMB in Windows Server". Microsoft. Archived from the original on February 11, 2017. Retrieved 6 February 2017.
- ^ Mark Rabinovich, Igor Gokhman. "CIFS Acceleration Techniques" (PDF). Storage Developer Conference, SNIA, Santa Clara 2009. Retrieved July 6, 2020.
- ^ Mark Rabinovich. "Accelerating SMB2" (PDF). Storage Developer Conference, SNIA, Santa Clara 2011. Retrieved July 6, 2020.
- ^ Christopher Hertel (1999). "SMB: The Server Message Block Protocol". Archived from the original on March 10, 2010. Retrieved November 1, 2009.
- ^ "Description of Microsoft Windows Encryption Pack 1". Microsoft. November 1, 2006. Archived from the original on October 2, 2009. Retrieved November 1, 2009.
- ^ "US Executive Order 13026" (PDF). United States Government. 1996. Archived (PDF) from the original on October 10, 2009. Retrieved November 1, 2009.
- ^ a b "Direct hosting of SMB over TCP/IP". Microsoft. October 11, 2007. Archived from the original on March 26, 2011. Retrieved November 1, 2009.
- ^ Kyttle, Ralph (13 May 2017). "SMB1 – Audit Active Usage using Message Analyzer". Microsoft TechNet. Microsoft. Archived from the original on March 28, 2019. Retrieved 28 March 2019.
- ^ "The Deprecation of SMB1 – You should be planning to get rid of this old SMB dialect – Jose Barreto's Blog". blogs.technet.microsoft.com. Archived from the original on May 21, 2017. Retrieved 2019-10-09.
- ^ "SMBv1 is not installed by default in Windows 10 Fall Creators Update and Windows Server, version 1709 and later versions". support.microsoft.com. Archived from the original on October 10, 2019. Retrieved 2019-10-09.
- ^ "WebNFS - Technical Overview". Archived from the original on 2007-05-18.
- ^ Navjot Virk and Prashanth Prahalad (March 10, 2006). "What's new in SMB in Windows Vista". Chk Your Dsks. Microsoft. Archived from the original on May 5, 2006. Retrieved May 1, 2006.
- ^ Server Message Block (SMB) Protocol Versions 2 and 3. Windows Protocols. Open Specifications (Technical report). Microsoft Docs. Microsoft. MS-SMB2. Retrieved 2020-11-29.
- ^ "Samba 3.5.0 Available for Download". Archived from the original on July 24, 2011. Retrieved July 8, 2011.
- ^ "Samba 3.6.0 Available for Download". Archived from the original on September 24, 2011. Retrieved August 10, 2011.
- ^ "http://www.ietf.org/rfc/rfc3010.txt"
- ^ a b Eran, Daniel (June 11, 2013). "Apple shifts from AFP file sharing to SMB2 in OS X 10.9 Mavericks". Appleinsider.com. Archived from the original on February 12, 2017. Retrieved January 12, 2014.
- ^ Vaughan, Steven J. (October 28, 2013). "Mavericks' SMB2 problem and fixes". ZDNet. Archived from the original on January 5, 2014. Retrieved January 12, 2014.
- ^ MacParc. "10.9: Switch the SMB stack to use SMB1 as default". Mac OS X Hints. macworld.com. Archived from the original on January 12, 2014. Retrieved January 12, 2014.
- ^ Topher Kessler (March 23, 2011). "Say adios to Samba in OS X". CNET. Archived from the original on January 15, 2014. Retrieved January 12, 2014.
- ^ Thom Holwerda (March 26, 2011). "Apple Ditches SAMBA in Favour of Homegrown Replacement". Archived from the original on November 2, 2013. Retrieved January 12, 2014.
- ^ "Linux 3.7 - Linux Kernel Newbies". Archived from the original on September 11, 2016. Retrieved September 4, 2016.
- ^ "Implementing an End-User Data Centralization Solution". Microsoft. October 21, 2009. pp. 10–11. Archived from the original on September 6, 2010. Retrieved November 2, 2009.
- ^ a b c Jeffrey Snover (April 19, 2012). "SMB 2.2 is now SMB 3.0". Windows Server Blog. Retrieved July 6, 2020.
- ^ Chelsio Communications. "40G SMB Direct". Archived from the original on September 7, 2013. Retrieved June 18, 2013.
- ^ Jose Barreto (October 19, 2012). "SNIA Tutorial on the SMB Protocol" (PDF). Storage Networking Industry Association. Archived (PDF) from the original on June 3, 2013. Retrieved November 28, 2012.
- ^ Thomas Pfenning. "The Future of File Protocols: SMB 2.2 in the Datacenter" (PDF). Archived from the original (PDF) on 2012-07-20.
- ^ Joergensen, Claus (2012-06-07). "SMB Transparent Failover – making file shares continuously available". Microsoft TechNet. Archived from the original on January 11, 2019. Retrieved February 1, 2017.
- ^ Savill, John (2012-08-21). "New Ways to Enable High Availability for File Shares". Windows IT Pro. Archived from the original on November 27, 2016. Retrieved February 1, 2017.
- ^ "SMB Security Enhancements". Microsoft Technet. January 15, 2014. Archived from the original on October 9, 2014. Retrieved June 18, 2014.
- ^ Jose Barreto (May 5, 2013). "Updated Links on Windows Server 2012 File Server and SMB 3.0". Microsoft TechNet Server & Management Blogs. Archived from the original on August 3, 2016. Retrieved August 14, 2016.
- ^ Jose Barreto (July 7, 2014). "Updated Links on Windows Server 2012 R2 File Server and SMB 3.02". Microsoft TechNet Server & Management Blogs. Archived from the original on August 26, 2016. Retrieved August 14, 2016.
- ^ Jose Barreto (December 12, 2013). "Storage Developer Conference – SDC 2013 slides now publicly available. Here are the links to Microsoft slides…". Microsoft TechNet Server & Management Blogs. Archived from the original on August 26, 2016. Retrieved August 14, 2016.
- ^ Eric Geier (December 5, 2013). "WindowsNetworking.com: Improvements in the SMB 3.0 and 3.02 Protocol Updates". WindowsNetworking.com. Archived from the original on April 9, 2015. Retrieved April 6, 2015.
- ^ Jose Barreto (April 30, 2015). "SMB3 Networking Links for Windows Server 2012 R2". Microsoft TechNet Server & Management Blogs. Archived from the original on August 26, 2016. Retrieved August 14, 2016.
- ^ Jose Barreto (May 5, 2015). "What's new in SMB 3.1.1 in the Windows Server 2016 Technical Preview 2". Microsoft TechNet Server & Management Blogs. Archived from the original on October 8, 2016. Retrieved August 14, 2016.
- ^ "Windows Protocols". Archived from the original on September 26, 2009. Retrieved October 13, 2009.
- ^ Tridgell, Andrew (June 27, 1997). "A bit of history and a bit of fun". Archived from the original on July 17, 2011. Retrieved July 26, 2011.
- ^ "Samba 4 functional levels". February 25, 2011. Archived from the original on July 29, 2014. Retrieved January 12, 2014.
- ^ "SMB (Server Message Block): definitions, tasks, and applications". IONOS Digitalguide. Retrieved 2022-04-27.
- ^ "netsmb(4)". NetBSD 8.0 manual pages. Retrieved 5 January 2020.
- ^ FreeBSD 파일 포맷 매뉴얼 – Darwin 및 macOS 파일 형식 설명서. –
- ^ "UNIX Extensions". SambaWiki. Archived from the original on June 12, 2020. Retrieved March 15, 2020.
- ^ Dr. Sunu Engineer. "Building a Highly Scalable and Performant SMB Protocol Server" (PDF). Archived (PDF) from the original on September 27, 2016. Retrieved September 25, 2016.
- ^ "Microsoft and Tuxera strengthen partnership through Tuxera SMB Server". Microsoft. Microsoft News Center. 14 September 2016. Archived from the original on November 17, 2016. Retrieved 6 February 2017.
- ^ "MS02-070: Flaw in SMB Signing May Permit Group Policy to Be Modified". Microsoft. December 1, 2007. Archived from the original on October 8, 2009. Retrieved November 1, 2009.
- ^ "MS09-001: Vulnerabilities in SMB could allow remote code execution". Microsoft. January 13, 2009. Archived from the original on October 5, 2009. Retrieved November 1, 2009.,
- ^ "Sicherheitstacho.eu". Deutsche Telekom. March 7, 2013. Archived from the original on March 8, 2013. Retrieved March 7, 2013.
- ^ "Alert (TA14-353A) Targeted Destructive Malware". US-CERT. Archived from the original on December 20, 2014. Retrieved December 20, 2014.
- ^ "Sony Hackers Used Server Message Block (SMB) Worm Tool". Archived from the original on December 20, 2014. Retrieved December 20, 2014.
- ^ "WannaCry Ransomware Attack Hits Victims With Microsoft SMB Exploit". eWeek. Retrieved 13 May 2017.
- ^ "SMBleedingGhost Writeup: Chaining SMBleed (CVE-2020-1206) with SMBGhost". ZecOps Blog. 2020-06-09. Retrieved 2020-11-19.
추가 정보
SMB 사양
- "[MS-CIFS]: Common Internet File System (CIFS) Protocol". Open Specifications. Microsoft. 30 October 2020.
- CIFS(Common Internet File System) 프로토콜을 지정합니다.이 프로토콜은 클라이언트 시스템이 네트워크를 통해 서버 시스템에서 사용할 수 있는 파일 및 인쇄 서비스를 사용하는 메커니즘을 제공하는 크로스 플랫폼의 전송에 의존하지 않는 프로토콜입니다.
- "[MS-SMB]: Server Message Block (SMB) Protocol". Open Specifications. Microsoft. 25 June 2021.
- Server Message Block(SMB; 서버 메시지 블록) 프로토콜을 지정합니다.이 프로토콜은 CIFS 규격 공개 이후 Microsoft에 의해 구현된 기존 Common Internet File System(CIFS; 공통 인터넷파일 시스템) 규격에 대한 확장을 정의합니다.
- "[MS-SMB2]: Server Message Block (SMB) Protocol Versions 2 and 3". Open Specifications. Microsoft. 14 December 2021.
- 시스템 간의 파일 및 인쇄 리소스 공유를 지원하고 서버 메시지 블록 프로토콜에서 개념을 확장하는 SMB(Server Message Block) 프로토콜 버전 2 및 3을 지정합니다.
- "[MS-SMBD]: SMB2 Remote Direct Memory Access (RDMA) Transport Protocol". Open Specifications. Microsoft. 25 June 2021.
- SMB2 RDMA(Remote Direct Memory Access) Transport Protocol을 지정합니다.이 프로토콜은 iWARP 또는 Infiniband와 같은 RDMA 지원 전송을 통해 SMB2 패킷을 전송하면서 이러한 전송의 DDP(Direct Data Placement) 기능을 사용할 수 있도록 합니다.CPU 오버헤드 감소, 지연 시간 단축, 처리량 향상 등의 이점이 있습니다.
여러가지 종류의
- Hertel, Christopher(2003)CIFS 구현– 공통 인터넷 파일 시스템.프렌티스 홀.ISBN 0-13-047116-X. (Open Publication License, v1.0 이후 라이선스를 취득한 텍스트는 위의 링크에서 입수할 수 있습니다.)
- 스티븐 M.프랑스어, 새로운 네트워크 파일 시스템 탄생: SMB2, CIFS 및 NFS 비교, Linux 심포지엄 2007
- Steve French, 파일 프로토콜의 미래: SMB2가 Linux, Linux 콜라보레이션 서밋 2012를 만나다