CIFS / SMB 작동에 필요한 TCP / IP 포트


44

두 방화벽 컴퓨터간에 Windows 네트워크 드라이브를 허용하려면 포트 137-139를 열어야합니까, 아니면 포트 445로 충분합니까? 방화벽 포트를 열려면 양식을 제출하고 승인을 받아야하며 필요한 것보다 더 많은 열린 포트를 요청하고 싶지 않습니다. 여기에있는 모든 컴퓨터는 Windows XP 이상입니다.

참고 : "Windows 네트워크 드라이브"라고 말하면 SMB 또는 CIFS를 참조하는지 확실하지 않으며 두 프로토콜의 차이점에 대해 명확하지 않습니다.

답변:


58

포트 137-139는 NetBios / 이름 확인을위한 것입니다. 이것이 없으면 NetBIOS 이름이 아닌 IP 주소로 컴퓨터에 액세스해야합니다. \\192.168.1.100\share_name반대되는 예\\my_file_server\share_name

따라서 IP 주소로만 작업 할 수있는 경우 포트 445로 충분합니다.


내 사이트에서 NetBIOS 이름은 항상 DNS 이름과 동일합니다. 따라서 호스트 이름으로 컴퓨터를 참조하면 Windows가 NetBIOS를 사용하지 않고 DNS를 통해 컴퓨터를 찾을 수 있습니까?
Jonathan

5
클라이언트가 사용할 수있는 DNS 기능이 있으면 충분합니다.
Tim

1
이것은 공용 IP 주소에서도 작동합니까? ADSL 모뎀 / 라우터의 방화벽에서 포트 445를 여는 것으로 충분합니까?
Hrqls

11
이론, 그래,에서 @Hrqls 하지만 AFAIK는 전 세계에 SMB를 개방하는 것은 아주 나쁜 생각이다.
Samuel Harmer

@ Styne666은 완전히 동의합니다. 더 많은 것 : 적절한 보안 지원이없는 것을 인터넷 전체에 공개하는 것은 일반적으로 나쁜 생각입니다. 최소한 IPsec 전송 모드를 사용하여 보호하는 것이 좋습니다.
에 데스

7

이 구성은 나를 위해 일했습니다 : 137 / UDP, 138 / UDP, 139 / TCP 및 445 / TCP. 소스 및 추가 정보에 : http://www.icir.org/gregor/tools/ms-smb-protocols.html .

내 Samba 서버의 iptables 규칙은 다음과 같습니다.

# The router doesn't need SMB access.
-A INPUT -s 192.168.1.1 -p udp --dport 137 -j REJECT
-A INPUT -s 192.168.1.1 -p udp --dport 138 -j REJECT
-A INPUT -s 192.168.1.1 -p tcp --dport 139 -j REJECT
-A INPUT -s 192.168.1.1 -p tcp --dport 445 -j REJECT

# Actual Samba ports
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 137 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 138 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 139 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 445 -j ACCEPT

4
OP가 Windows 컴퓨터에 대해 물었고 iptables에 대한 이해 수준을 완전히 알지 못한다는 것을 감안할 때 이것은 완전히 다른 시스템의 구성 파일보다 작성하는 것이 좋습니다.
DarkMoon

1
일반 영어, UDP 137 및 138, TCP 139 및 445
Arlen Beiler
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.