Fedora 25 и отключение того, что слушает на порте 111

9

У меня есть отдельная рабочая станция Fedora 25 x86_64. Что-то прослушивает порт 111 (идентифицированный с помощью сканирования nmap):

$ sudo lsof -i :111
COMMAND PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
systemd   1 root   36u  IPv4  15170      0t0  TCP *:sunrpc (LISTEN)
systemd   1 root   37u  IPv4  15171      0t0  UDP *:sunrpc
systemd   1 root   38u  IPv6  15172      0t0  TCP *:sunrpc (LISTEN)
systemd   1 root   39u  IPv6  15173      0t0  UDP *:sunrpc

Я отключил механизм Sun на порту с помощью следующих команд:

$ sudo systemctl disable rpcbind
$ sudo systemctl disable sunrpc
Failed to disable unit: No such file or directory

После перезагрузки порт все еще открыт.

Похоже, что что-то кроме Sun gear хочет прослушивать через порт 111. Или, возможно systemd, не соблюдает мои желания отключить неиспользуемую службу. Или, может быть, что-то еще ...

Как определить, что пытается прослушивать порт, и как его отключить?


Снизу:

$ sudo systemctl -a | grep -E "rpc|port"
  var-lib-nfs-rpc_pipefs.mount          loaded    active   mounted   RPC Pipe File System
  abrtd.service                         loaded    active   running   ABRT Automated Bug Reporting Tool
  auth-rpcgss-module.service            loaded    inactive dead      Kernel Module supporting RPCSEC_GSS
  fedora-import-state.service           loaded    active   exited    Import network configuration from initramfs
  fedora-readonly.service               loaded    active   exited    Configure read-only root support
  rpc-gssd.service                      loaded    inactive dead      RPC security service for NFS client and server
  rpc-statd-notify.service              loaded    inactive dead      Notify NFS peers of a restart
  rpc-statd.service                     loaded    inactive dead      NFS status monitor for NFSv2/3 locking.
● rpc-svcgssd.service                   not-found inactive dead      rpc-svcgssd.service
  rpcbind.service                       loaded    inactive dead      RPC Bind
  rpcbind.socket                        loaded    active   listening RPCbind Server Activation Socket
  rpc_pipefs.target                     loaded    active   active    rpc_pipefs.target
  rpcbind.target                        loaded    active   active    RPC Port Mapper

источник

Ответы:

8

При запуске sudo systemctl disable rpcbindна Fedora 25я думаю , что есть предупреждение:

Warning: Stopping rpcbind.service, but it can still be activated by:
rpcbind.socket

Таким образом, вы можете попробовать следующее:

sudo systemctl stop rpcbind.socket
sudo systemctl disable rpcbind.socket
taliezin
источник
1
Я не видел это сообщение, когда тестировал сам. Я думаю, что проблема в том, что rpcbind.service не включен или не запущен в первую очередь (по умолчанию, и если он не активирован)? Таким образом, он видит, что служба уже отключена, и завершает работу, прежде чем получить сообщение. Вероятно, должно быть улучшено.
sourcejedi
Исправление: я не видел это сообщение, потому что я только бежал disable. Сообщение появляется только на stop(и оно появляется, если служба уже остановлена). Я все еще могу сопереживать, но я не уверен, каким будет лучший способ улучшить этот опыт.
sourcejedi
8

Это активация сокета :). И ты был прав, чтобы быть подозрительным.

Вам нужно отключить rpcbind.socket. Отключение rpcbind.service- то, что systemctl disable rpcbindпредполагает - не имеет никакого эффекта.

Кроме того, disableздесь будет влиять только то, что происходит во время загрузки. Так что, если вы хотите увидеть немедленное изменение, вы также хотите запустить systemctl stop rpcbind.socket.

РЕДАКТИРОВАТЬ: Этот вопрос выглядит очень похоже на меня. Джефф Шаллер указывает, что вы можете использовать команду systemctl list-socketsдля просмотра портов и служб, для которых systemdосуществляется активация сокетов.


Я вернулся и посмотрел Fedora-Workstation-Live-x86_64-25-1.3.iso.

Статус rpcbind.service показывает indirect; vendor preset; disabled. (Тоже Active: inactive (dead)). Поэтому ясно, что отключение (или остановка) снова ничего не изменит.

Я предполагаю, что indirectздесь есть подсказка для поиска других юнитов, которые активируют этот (включая, но не ограничиваясь, сокетные юниты). Как только блок сокета также остановлен, он меняется с indirectна disabled.

Странная часть в том, что блок сокета показывает как enabled; vendor preset: disabled. Это означает, что что-то активировало rpcbind.socket в образе Fedora 25, но не было включено /lib/systemd/system-preset/80-workstation.presetили 90-default.preset. Похоже, что это идет вразрез с (текущей) политикой по адресу https://fedoraproject.org/wiki/Packaging:DefaultServices, которая связана с 90-default.preset -

Если служба должна быть включена по умолчанию, ее необходимо добавить в один из файлов предустановок распространения.

Это было решено в какой-то момент. rpcbind.socketбольше не включен в Fedora-Workstation-Live-x86_64-28-1.1.iso.

(Это не означает, что rpcbind / порт 111 автоматически доступен из сети на системах, установленных с диска Fedora 25. Установка также включает в себя брандмауэр, который не позволяет порт 111)

sourcejedi
источник
Спасибо @sourcejedi. Отключил sunrpcи rpcbindне остановил слушателя.
@jww Вам нужно отключить rpcbind.socket. Отключение rpcbind.service ничего не делает.
sourcejedi
Спасибо @sourcejedi. Я должен приступить к работе, поэтому у меня нет времени копаться в этом глубже прямо сейчас. Вы получили мое возражение. Почему люди считают хорошей идеей нарушать простые процессы, которые существовали годами и всегда «просто работали» ... xkcd.com/927
2
Или xkcd.com/1172
GSC
1
@jww Активация сокетов - одна из моих наименее любимых функций systemd; это действительно имеет большой смысл. (Что не имеет смысла, так это чтобы их классифицировали отдельно от обычных сервисов)
user253751
4

Порт 111 связан с картой порта . Если вы используете NFS, скорее всего, вам это понадобится. Вы можете использовать, systemctl -a | grep -E "rpc|port"чтобы увидеть название соответствующего сервиса и отключить его (у меня нет доступа к коробке Fedora в то время).

schaiba
источник
1
Вид шумного просмотра - 13 строк вывода, и выход страдает от невозможности прямого доступа к tty.
sourcejedi
0

Этот порт активируется nfsслужбой, установленной из nfs-utilsпакета. Если вам это не нужно, лучше удалите его. nfs-utilsи iscsi-initiator-utilsобычно устанавливаются как зависимости libvirtпакета. Оба пакета активируют множество сервисов и сокетов, которые вы, возможно, не хотели. Эта команда может использоваться для того, чтобы отключить nfsи iscsi-initiator-utilsсервисы.

systemctl disable nfs-client.target
systemctl stop nfs-client.target
systemctl disable rpcbind.socket
systemctl stop rpcbind.socket
systemctl stop rpc_pipefs.target
systemctl stop rpcbind.target
systemctl stop rpcbind.service
systemctl disable rpcbind.service
systemctl stop var-lib-nfs-rpc_pipefs.mount
systemctl stop proc-fs-nfsd.mount 
systemctl disable gssproxy.service
systemctl stop gssproxy.service
modprobe -r sunrpc
systemctl disable iscsid.socket
systemctl stop iscsid.socket
systemctl disable iscsiuio.socket
systemctl stop iscsiuio.socket
systemctl disable iscsid.service
systemctl stop iscsid.service
systemctl disable iscsiuio.service
systemctl stop iscsiuio.service
user3766846
источник