Назад | Перейти на главную страницу

Как я могу отключить функции вещания SAMBA?

Мне не нужны никакие трансляции / автообнаружения, в моих сетях все детерминировано и строго настроено. Я все равно отбрасываю мусорные широковещательные сообщения SAMBA через брандмауэр, нельзя ли просто отключить их, чтобы мой сетевой трафик был чистым?

По крайней мере, в Debian вы можете использовать опцию disable netbios = yes в вашем файле smb.conf. Я думаю, что это лучший вариант, чем редактировать скрипты инициализации. Таким образом, вам не придется редактировать сценарии инициализации каждый раз, когда они перезаписываются обновлениями.

Убить nmbd

отредактируйте свои сценарии rc / init, запускающие smbd и nmbd, чтобы они не запускали nmbd. nmbd - это компонент автоматического обнаружения samba. Отключение его сократит трафик.

http://www.samba.org/samba/docs/man/manpages-3/nmbd.8.html

Просто используя 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

Это блокирует:

  • UDP-порт 137 для службы имен NetBios
  • UDP-порт 138 для сервисов дейтаграмм NetBios
  • TCP-порт 139 для сервисов сеансов NetBios
  • TCP-порт 445 для NetBios Microsoft Discovery Service

Во-вторых, вы разрешите всем локальным (или 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

Надеюсь, это поможет.