MS16-072 업데이트가 기존 GPO 메커니즘을 망가뜨린다는 사실이 알려진 지 얼마 지나지 않아, 6월에 배포된 또 다른 보안 공지 MS16-077과 KB3161949 업데이트에서 새로운 문제가 발생했습니다. 이 업데이트를 서버 시스템에 설치하면 다른 서브넷에 있는 클라이언트가 TCP/IP 기반 NetBIOS(NetBIOS over TCP/IP)를 통해 공유 폴더에 접속할 수 없게 됩니다.
주요 증상
가장 먼저 문제가 드러난 곳은 네트워크 스캐너였습니다. 스캔한 문서를 서버의 네트워크 공유(SMB) 폴더에 저장하던 장비들이 더 이상 문서를 저장하지 못하고 Cannot connect to server(서버에 연결할 수 없음) 오류를 반환하기 시작했습니다. 또한 Samba 클라이언트가 도메인 컨트롤러에 접속할 때도 Access Denied(액세스 거부) 또는 No Logon Server Available(사용 가능한 로그온 서버 없음) 오류가 발생했습니다. 흥미로운 점은 Windows 공유 폴더 접근 문제가 오직 서버와 다른 서브넷에 위치한 클라이언트에서만 나타났다는 사실입니다.
참고로 해당 업데이트(KB3161949)를 제거한 환경에서는 이러한 접근 문제가 전혀 발생하지 않았습니다.
KB3161949 업데이트의 동작 방식
KB3161949 업데이트의 설명에 따르면, 이 업데이트는 로컬 서브넷 외부에서의 NetBIOS 연결을 제한합니다. 그 결과 NetBIOS에 의존하는 네트워크 기능(SMB over NetBIOS, 포트 137~139)은 다른 서브넷의 클라이언트에 대해서는 작동하지 않습니다. 반면 표준 SMB 프로토콜(포트 445)은 양방향 모두 정상적으로 사용할 수 있습니다.
해결 방법
이 동작을 변경하려면 아래 방법 중 하나를 적용해야 합니다.
- 보안 업데이트 KB3161949 제거 — 가장 간단한 방법이지만 보안 취약점에 노출될 수 있어 권장되지 않습니다.
- 레지스트리 값 추가 — 서버의 레지스트리
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters키에 이름이 AllowNBToInternet, 값이 1(업데이트 설치 후 기본값은 0)인 DWORD 값을 생성합니다.
명령 프롬프트(cmd)에서는 다음 명령을 실행합니다:reg add "HKLM\System\CurrentControlSet\Services\NetBT\Parameters" /v "AllowNBToInternet" /t REG_DWORD /d 1 /f
PowerShell을 사용하는 경우:Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\NetBT\Parameters -Name AllowNBToInternet -Type DWord -Value 1 - 서버 재시작 — 레지스트리 값을 생성한 후에는 변경 사항을 적용하기 위해 서버를 다시 시작해야 합니다.
설정을 완료하면 서버가 다른 서브넷에 있는 NetBIOS 클라이언트에 대해서도 정상적으로 접근 가능한 상태가 됩니다.