![我怎样才能合理地避免安装我没有要求的网络服务?](https://linux22.com/image/132781/%E6%88%91%E6%80%8E%E6%A0%B7%E6%89%8D%E8%83%BD%E5%90%88%E7%90%86%E5%9C%B0%E9%81%BF%E5%85%8D%E5%AE%89%E8%A3%85%E6%88%91%E6%B2%A1%E6%9C%89%E8%A6%81%E6%B1%82%E7%9A%84%E7%BD%91%E7%BB%9C%E6%9C%8D%E5%8A%A1%EF%BC%9F.png)
是否有一些我可能错过的明智建议,关于如何在我没有要求的情况下警惕 Debian 悄悄安装网络服务?
我使用基于 Debian 的发行版,如果您安装网络服务,它会立即启用并启动。具体来说,我现在使用的是 Debian 9(stretch)。
这实在是太难处理了,以至于openssh-server
包添加了一个特殊的钩子来阻止服务器运行,但无论是谁做的,似乎都无法说服 Debian 的其他部分全面解决这个问题。例如
引发这个问题的例子是icinga2
whichRecommended monitoring-plugins
。
例如monitoring-plugins-standard
间接推荐的icinga-common-1.13.4-2
。或者,它可以故意安装,例如用于check_dig
.一般来说,描述说“这个包提供了最有可能在中央监控主机上有用的插件套件。”
反过来,安装monitoring-plugins-standard
也会安装并启用,rpcbind
.即使在我相信之后rpcbind
Debian 进行了有意的更改,从默认安装中删除了网络服务,最终追随 Ubuntu 的脚步。
即使您看到作为依赖项安装的软件包列表,我也不会说“rpcbind”是一个附加的网络服务。
我还想知道这种特定情况是否应该被视为可以修复的错误...Debian 政策中是否有关于这种对网络服务包的非明显依赖的内容?
# apt install monitoring-plugins
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libnet-snmp-perl libradcli4 libtirpc1 monitoring-plugins-standard rpcbind
Suggested packages:
libcrypt-des-perl nagios-plugins-contrib qstat
The following NEW packages will be installed:
libnet-snmp-perl libradcli4 libtirpc1 monitoring-plugins monitoring-plugins-standard rpcbind
0 upgraded, 6 newly installed, 0 to remove and 0 not upgraded.
Need to get 432 kB of archives.
After this operation, 1,901 kB of additional disk space will be used.
Do you want to continue? [Y/n]
...
# systemctl status rpcbind
● rpcbind.service - RPC bind portmap service
Loaded: loaded (/lib/systemd/system/rpcbind.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2018-05-04 20:44:39 BST; 49s ago
Docs: man:rpcbind(8)
Main PID: 20930 (rpcbind)
Tasks: 1 (limit: 4915)
CGroup: /system.slice/rpcbind.service
└─20930 /sbin/rpcbind -f -w
May 04 20:44:39 brick systemd[1]: Starting RPC bind portmap service...
May 04 20:44:39 brick systemd[1]: Started RPC bind portmap service.
完全公开:monitoring-plugins-standard
说“有些脚本需要安装更多软件包才能工作,这是按照建议实现的。”并monitoring-plugins-basic
说“这个包提供了一组基本的插件,具有最小的外部依赖性。”
答案1
我设置并用于维护一个由数百台 Debian 服务器(不大)组成的网络。
我使用了 Jumpbox VM,它很有用,因为您可以离开一天,让某些东西在那里运行,或者设置自动的内务管理任务。
从那里我为我运行自动脚本和 Ansible,为管理员运行 Rundeck。
rpcbind
特别有害,如果我没记错的话,它会在系统更新中重新出现。内核更新中经常出现的另一个问题是firmware-linux-free
VmWare 虚拟机不需要它。我还将几个与 systemd 相关的软件包固定为 -1,但是在几个主要版本升级中,即使将其固定为 -1 也无法阻止它尝试重新出现。
我会使用 Ansible 策略来控制它,无法将rpcbind
包固定为 -1。
然而,我敢打赌,即使将每个服务器中的rpcbind
包固定到-1也无法解决问题。随着时间的推移,Debian 变得越来越复杂。我可以发誓我尝试过,但不确定。
当我需要在工作之外紧急做某件事,或者需要通过手机做几次时,拥有一个可以通过 VPN+ssh 访问的 Jumpbox 也很有用。有趣的是,甚至有一次在为期 1 天的 AWS 会议上,我通过手机进行了一次小型紧急干预,否则我就需要离开手机。
如果您强烈反对使用跳转盒,您始终可以从笔记本电脑/工作计算机运行脚本 + Ansible。 Ansible 不需要客户端虚拟机中的代理。
其他访问者的相关问题: Linux 相当于 PowerShell 的“一对多”远程处理