如何使用 systemd 重启时禁用 CUPS 服务?

如何使用 systemd 重启时禁用 CUPS 服务?

我经常连接到有很多打印机的网络。当打印机发现正在进行时,GNOME 中会弹出许多分散注意力的消息。我很少使用打印机,所以我宁愿大部分时间禁用 CUPS。停止 CUPS 可以发挥作用并消除烦人的通知:

systemctl stop cups

我想在启动时禁用它。令人惊讶的是,禁用后

systemctl disable cups

重新启动后 CUPS 仍然运行。状态命令

systemctl status cups

产生

● cups.service - CUPS Scheduler
   Loaded: loaded (/lib/systemd/system/cups.service; disabled; vendor preset: enabled)
  Drop-In: /etc/systemd/system/cups.service.d
   Active: active (running) since Tue 2018-11-06 02:35:50 PST; 11s ago

我预计禁用服务将阻止其在重新启动后运行。激活是否因预设而发生?我试图用 预设“禁用”状态--preset-mode,但它不起作用。

我的操作系统是 Debian Stretch。

systemctl --version
systemd 232
+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN

答案1

不,由于预设,不会发生激活。

systemctl disable cups只会阻止它自动启动。

它可能无论如何都会启动,因为其他服务需要它。

这将证实;

systemctl --reverse list-dependencies cups.service

如果是这种情况,那么您也应该评估并禁用这些服务。

或者,如果您不关心后果并希望完全阻止其启动,请将其掩盖。

systemctl mask cups

答案2

cups 包附带了三个 systemd 单元文件:cups.servicecups.socketcups.path.

后两者用于套接字激活和路径激活,即使未启用,最终也会触发服务。

您应该禁用所有三个以确保杯子不会由于重新启动时套接字或路径激活而启动:

systemctl disable cups.service cups.socket cups.path

答案3

禁用未使用的网络服务作为安全漏洞和风险

一般情况下,只需 6 个步骤即可禁用恶意服务或处于活动状态但未使用的服务,并且关联的监听端口通常会带来安全风险!请注意,您可以替换“杯子“例如,大多数其他 systemd Linux 服务的服务删除SSH在易受攻击的端口上22。即使以前无害dbus服务已被数据挖掘犯罪分子武器化,窃取用户数据。

我使用的是额外简单的Linux防火墙乌夫沃,但高级用户可以使用 SeLinux 端口和服务安全过滤器。建议您查看链接港口风险清单

Cups 和 cupsd 端口(如 631(及其他))与安全风险相关。您可以使用以下命令检测活动的 Linux 网络连接服务网络统计

1) 检测流氓或不需要的服务及其有风险的端口

  $ sudo netstat -utpln      #  Activity     PID/Service
  tcp   127.0.0.1:631           LISTEN      9132/cupsd

如果您不知道列表中的每个服务是什么,例如 cupsd,请查找它以查看是否需要它。端口 631 与漏洞相关。

2) 防火墙阻止高风险 Linux 端口和服务

当然,高级用户会应用 selinux 规则,但简单的防火墙也能起到很好的作用。

 $ sudo apt install ufw  #  and **dnf** applies to Red-Hat/Fedora/Centos
 $ sudo ufw enable       #  ... Activate the ufw firewall.
 $ sudo ufw deny 631     #  ... block port using the ufw firewall.
 $ sudo ufw status numbered  # Show your ufw firewall rules.
 $ sudo ufw reload  # Reload the above rules that were changed.

可悲的是,打印机因其故意墨水订购贪婪的嵌入式恶意软件以及黑客恶意软件而闻名。不需要使用服务(如打印机)的办公室和家庭设备应该有这个'否定'应用。

3)暴露要禁用的Linux Service子服务

   $ systemctl --reverse list-dependencies cups.*  # Notice the .* is important.
    cups.service
    ● └─cups-browsed.service
    
    cups.socket
    ● ├─cups.service
    ● └─sockets.target
    ●   └─basic.target
    ●     └─multi-user.target
    ●       └─graphical.target
    
    cups.path
    ● ├─cups.service
    ● └─multi-user.target
    ●   └─graphical.target

4)先停止您暴露的服务,然后再禁用它

$ sudo systemctl stop cups cups.service cups.socket cups.path  # 'stop' is NOT enduring!
$ systemctl --reverse list-dependencies cups.*  # What else hangs onto the service?
$ sudo systemctl disable cups cups.service cups.socket cups.path  # long term setting.

所以现在蟑螂是“不活动,(死)”,正确的?
错误的是它有服务伙伴导致它消失“活跃(运行)” 几个小时后,当你不看的时候!它的腿还在抽搐,它会站起来跑,所以你还有更多的杀戮要做!通常情况下系统启动服务并且它们自动运行,您可以通过>>仅附加一次“手动”一词来手动覆盖它们。

$ sudo echo "manual" >> /etc/init/cups.override
$ sudo echo "manual" >> /etc/init/cups-browsed.override

5) 删除恶意恶意软件 Linux 服务包

您会惊讶地发现,即使在步骤 4 中设置为“禁用”,cups 也会有其他坏人服务自动恢复它,特别是在安装了库存 Debian 的 HP 服务器上。在这种情况下,“cups”有许多挂起的服务可以删除。笔记易于或者apt-get适用于 Debian/Mint/Ubuntu 和dnf适用于 Fedora/Red-Hat/Centos。

$ dpkg -l | grep -i "cups\|print\|hp"   #  Shockingly lots.
$ sudo apt remove --auto-remove cups  # then repeat: dpkg -l as above
   OR purge the service package WITH all its config files:-
$ sudo apt-get purge --auto-remove cups

如果清除,您还会丢失该服务的非默认设置。确实可能已被黑客入侵的设置。请谨慎行事。优点是,如果您的配置被黑客攻击,那么该黑客攻击也会被“清除”。

6) 重启后测试更多 Rogue Linux 服务

“cups”是一个示例服务,请使用以下信息查找其他服务。

$ sudo shutdown -r now  # just reboot
$ systemctl --reverse list-dependencies cups.*  # Not there?
$ sudo netstat -utpln  # No sign of rogue service?
$ sudo ps aux | grep -i "cups"  # Nothing there running?
$ dpkg -l | grep -i "cups"  # Is the service running removed?
$ sudo systemctl status cups  # should say "inactive (dead)"
  Or not be present in any way.
$ pstree  # cups gone, but there is so much that can be removed.
$ systemctl list-units --type=service --state=running
$ systemctl --type=service --state=running

Desperado 删除服务:systemd 使用 /etc/systemd/system/<service_name>、/etc/systemd/system/<some_directory>/<service_name> 和 /etc/init.d/<service_name> 来设置它们。将这些文件和链接从其目录中移走虽然是蛮力,但确实有效。

如果您将此用于非 cups 漏洞,请在下面分享您如何阻止它。

相关内容