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 gear на порту за допомогою таких команд:

$ 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

1
Я не бачив цього повідомлення, коли сам тестував його. Я думаю, що проблема rpcbind.service не вмикається або не запускається в першу чергу (за замовчуванням, і якщо вона не активується)? Таким чином, він бачить, що послуга вже відключена та припиняється до досягнення повідомлення. Мабуть, слід вдосконалити.
sourcejedi

Виправлення: Я не бачив цього повідомлення, тому що я лише біг disable. Повідомлення відображається лише увімкнено stop(і воно з’являється, якщо послуга вже зупинена). Я все ще можу співпереживати, але я не впевнений, який найкращий спосіб покращити цей досвід.
sourcejedi

8

Це активація розетки :). І ти мав рацію бути підозрілим.

Вам потрібно відключити rpcbind.socket. Відключення rpcbind.service- що саме systemctl disable rpcbindпередбачає - не має ефекту.

Також disableтут буде впливати лише те, що відбувається під час завантаження. Тож якщо ви хочете побачити негайну зміну, ви також хочете запустити systemctl stop rpcbind.socket.

EDIT: Це питання мені дуже схоже. Jeff Schaller вказує, що ви можете скористатися командою 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-ти за замовчуванням.preset -

Якщо послугу потрібно включити за замовчуванням, її потрібно додати до одного з файлів попередніх налаштувань розповсюдження.

Це було вирішено в якийсь момент. rpcbind.socketбільше не ввімкнено в Fedora-Workstation-Live-x86_64-28-1.1.iso.

(Це не означає, що rpcbind / порт 111 автоматично доступний з мережі в системах, встановлених з диска Fedora 25. Встановлення також включає брандмауер, який не дозволяє порт 111)


Дякую @sourcejedi. Відключення sunrpcі rpcbindне зупинило слухача.

@jww Вам потрібно відключити rpcbind.socket. Вимкнення rpcbind.service нічого не робить.
sourcejedi

Дякую @sourcejedi. Мені потрібно працювати, тому я не встигаю зараз заглиблюватися в цю глибшу. Ви отримали мою пропозицію. Чому люди вважають гарною ідеєю порушити прості процеси, які існують роками і завжди "просто працювали" ... xkcd.com/927

2
Або xkcd.com/1172
gsc

1
@jww Активація розетки - одна з моїх найменш несправедливих системних особливостей; це насправді має багато сенсу. (Що не має сенсу - класифікувати їх до звичайних служб)
користувач253751

4

Порт 111 пов'язаний з портфотографією . Якщо ви використовуєте шанси NFS, то вам це знадобиться. Ви можете використовувати systemctl -a | grep -E "rpc|port"назву відповідної послуги та відключити її (я не маю доступу до вікна Fedora на той час).


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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.