Порты TCP / IP, необходимые для работы CIFS / SMB

44

Если я хочу разрешить сетевые диски Windows между двумя компьютерами, защищенными брандмауэром, нужно ли открывать порты 137-139 или достаточно порта 445? Я должен отправить форму и получить разрешение на открытие портов брандмауэра, и я не хочу просить больше открытых портов, чем мне нужно. Все машины здесь - Windows XP или более поздняя.

Примечание: когда я говорю «сетевые диски Windows», я не совсем уверен, имею ли я в виду SMB или CIFS, и я не совсем понимаю разницу между этими двумя протоколами.

Джонатан
источник

Ответы:

58

Порты 137-139 предназначены для разрешения имен NetBios / Name. Без этого вам придется обращаться к машинам по IP-адресу, а не по имени NetBIOS. Пример \\192.168.1.100\share_nameпротив\\my_file_server\share_name

Так что порта 445 достаточно, если вы можете работать только с IP-адресами.

Тим
источник
На моем сайте имена NetBIOS всегда совпадают с именами DNS. Поэтому, если я ссылаюсь на машины по имени хоста, сможет ли Windows найти машину через DNS без использования NetBIOS?
Джонатан
5
Пока у вас есть работающий DNS, доступный для клиента, этого должно быть достаточно.
Тим
1
это также работает с публичными IP-адресами? Достаточно ли открыть порт 445 в брандмауэре модема / маршрутизатора ADSL?
Hrqls
11
@Hrqls Теоретически, да, но AFAIK открывать свой SMB всему миру - очень плохая идея.
Сэмюэль Хармер
@ Styne666, полностью согласен. Более того: открывать все, что не имеет адекватной поддержки безопасности, всему Интернету - это вообще плохая идея. Я бы порекомендовал использовать транспортный режим IPsec, чтобы хотя бы защитить его.
дес
7

Эта конфигурация работала для меня: 137 / UDP, 138 / UDP, 139 / TCP и 445 / TCP. Источник и дополнительная информация по адресу: http://www.icir.org/gregor/tools/ms-smb-protocols.html .

Итак, вот правила iptables для моего сервера Samba:

# 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
Juan
источник
4
Учитывая, что ОП спрашивал о компьютерах с Windows, и их уровень понимания iptables совершенно неизвестен, это было бы лучше записать, чем файл конфигурации совершенно другой системы.
DarkMoon
1
Простым английским, UDP 137 и 138, TCP 139 и 445
Арлен Бейлер