Мне не нужны никакие трансляции / автообнаружения, в моих сетях все детерминировано и строго настроено. Я все равно отбрасываю мусорные широковещательные сообщения SAMBA через брандмауэр, нельзя ли просто отключить их, чтобы мой сетевой трафик был чистым?
По крайней мере, в Debian вы можете использовать опцию disable netbios = yes в вашем файле smb.conf. Я думаю, что это лучший вариант, чем редактировать скрипты инициализации. Таким образом, вам не придется редактировать сценарии инициализации каждый раз, когда они перезаписываются обновлениями.
Убить nmbd
отредактируйте свои сценарии rc / init, запускающие smbd и nmbd, чтобы они не запускали nmbd. nmbd - это компонент автоматического обнаружения samba. Отключение его сократит трафик.
Просто используя disable netbios = yes
в вашем файле конфигурации не остановит запуск nmbd из сценария init.d. Вам необходимо вручную закомментировать параметры nmbd из сценария после убийства nmbd, потому что nmbd запустится снова после перезапуска служб samba или перезагрузки.
Вы можете проверить, не работает ли netbios больше, используя следующую команду:
netstat -an | grep 137 (or 138)
Это покажет, есть ли в вашей системе активные слушатели, использующие номера портов 137 (имя netbios) и 138 (дейтаграмма Netbios).
Я действительно сделал некоторые правила iptable о netbios вместо того, чтобы отключать его.
(Но, конечно, вы можете отключить его, добавив disable netbios = yes
через smb.conf
файл в [global]
раздел).
У меня был выделенный сервер, но они постоянно говорили мне, что есть атаки netbios, поэтому я сделал VPN для своих клиентов.
(если вы запускаете сервер через маршрутизатор, вам не нужно настраивать VPN, но если вы используете удаленные подключения из TCP / IP для совместного использования сети, я действительно советую вам это сделать).
Итак, есть мое решение (замените диапазон IP-адресов на свой, например 192.168.0.0/24, в зависимости от назначения IP-адресов вашего маршрутизатора):
Сначала отклоните все соединения, используемые портами netbios через iptables:
iptables -A INPUT -p udp -m udp --dport 137 -j REJECT
iptables -A INPUT -p udp -m udp --dport 138 -j REJECT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j REJECT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j REJECT
Это блокирует:
Во-вторых, вы разрешите всем локальным (или VPN) клиентам доступ к портам netbios через iptables:
iptables -A INPUT -p udp -m udp -s 10.8.0.0/24 --dport 137 -j ACCEPT
iptables -A INPUT -p udp -m udp -s 10.8.0.0/24 --dport 138 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp -s 10.8.0.0/24 --dport 139 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp -s 10.8.0.0/24 --dport 445 -j ACCEPT
Согласно этой конфигурации, которая будет принимать соединения со всех ip с 10.8.0.1 через 10.8.0.254.
Здесь вы можете найти дополнительную информацию по IP-маршрутизации: https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation
Надеюсь, это поможет.