我怎样才能合理地避免安装我没有要求的网络服务?

我怎样才能合理地避免安装我没有要求的网络服务?

是否有一些我可能错过的明智建议,关于如何在我没有要求的情况下警惕 Debian 悄悄安装网络服务?

我使用基于 Debian 的发行版,如果您安装网络服务,它会立即启用并启动。具体来说,我现在使用的是 Debian 9(stretch)。

这实在是太难处理了,以至于openssh-server添加了一个特殊的钩子来阻止服务器运行,但无论是谁做的,似乎都无法说服 Debian 的其他部分全面解决这个问题。例如

  1. 这个问题已在以下位置讨论过:Debian 用户。遗憾的是,竞争条件尚未解决。 Debian 维护者建议配置policy-rc.d为阻止invoke-rc.d ssh start程序包中的调用postinstall。有笨重的细节,但这是可以实现的。不幸的是,事实并非如此。它不会阻止竞争条件。 与包也运行的命令policy-rc.d无关。update-rc.d ssh enable这可能会因错误时间的电源故障或系统崩溃而暴露。

引发这个问题的例子是icinga2whichRecommended monitoring-plugins

例如monitoring-plugins-standard间接推荐的icinga-common-1.13.4-2。或者,它可以故意安装,例如用于check_dig.一般来说,描述说“这个包提供了最有可能在中央监控主机上有用的插件套件。”

反过来,安装monitoring-plugins-standard也会安装并启用,rpcbind.即使在我相信之后rpcbindDebian 进行了有意的更改,从默认安装中删除了网络服务,最终追随 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-freeVmWare 虚拟机不需要它。我还将几个与 systemd 相关的软件包固定为 -1,但是在几个主要版本升级中,即使将其固定为 -1 也无法阻止它尝试重新出现。

我会使用 Ansible 策略来控制它,无法将rpcbind包固定为 -1。

然而,我敢打赌,即使将每个服务器中的rpcbind包固定到-1也无法解决问题。随着时间的推移,Debian 变得越来越复杂。我可以发誓我尝试过,但不确定。

当我需要在工作之外紧急做某件事,或者需要通过手机做几次时,拥有一个可以通过 VPN+ssh 访问的 Jumpbox 也很有用。有趣的是,甚至有一次在为期 1 天的 AWS 会议上,我通过手机进行了一次小型紧急干预,否则我就需要离开手机。

如果您强烈反对使用跳转盒,您始终可以从笔记本电脑/工作计算机运行脚本 + Ansible。 Ansible 不需要客户端虚拟机中的代理。

其他访问者的相关问题: Linux 相当于 PowerShell 的“一对多”远程处理

相关内容