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

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

5 ответов

Решение

Убить nmbd

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

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

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

Просто используя disable netbios = yes в вашем конфигурационном файле не остановит запуск nmbd из скрипта init.d. Вам нужно вручную закомментировать опции nmbd из скрипта после уничтожения nmbd, потому что nmbd снова запустится после перезапуска служб samba или перезагрузки.

Вы можете проверить, не запущен ли netbios, с помощью следующей команды:

netstat -an | grep 137 (or 138)

Это покажет, есть ли в вашей системе активные прослушиватели, использующие номера портов 137 (имя netbios) и 138 (датаграмма Netbios).

Для меня в Debian 10 даже после добавленияdisable netbios = yesк/etc/init/nmbd.confв[global]раздел,sudo netstat -an | grep 137иsudo netstat -an | grep 138все еще показывалось, что он работает и использует эти порты.

Мне пришлось сделать это, чтобы отключитьnmbd:

      sudo systemctl stop nmbd
sudo systemctl disable nmbd
sudo systemctl mask nmbd

Я на самом деле сделал некоторые приемлемые правила для 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

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

Другие вопросы по тегам