Если я хочу разрешить сетевые диски Windows между двумя компьютерами с брандмауэром, нужно ли мне открывать порты 137–139 или достаточно порта 445? Мне нужно отправить форму и получить разрешение на открытие портов брандмауэра, и я не хочу запрашивать больше открытых портов, чем мне нужно. Все машины здесь под управлением Windows XP или новее.
Примечание: когда я говорю «сетевые диски Windows», я не совсем уверен, имею в виду SMB или CIFS, и не совсем понимаю разницу между двумя протоколами.
Порты 137–139 предназначены для разрешения NetBios / имени. Без него вам придется получать доступ к машинам по IP-адресу, а не по имени NetBIOS. пример \\192.168.1.100\share_name
в отличие от \\my_file_server\share_name
Так что порта 445 достаточно, если вы можете работать только с IP-адресами.
Эта конфигурация сработала для меня: 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