帮助中心 >
  关于网络安全 >
  停止和禁用Linux系统中不需要的服务
停止和禁用Linux系统中不需要的服务
时间 : 2024-12-16 13:50:13
编辑 : Jtti

Linux操作系统的安装时,会有一些不需要的软件包和应用程序会在用户不知情的情况下自动安装。不需要的应用程序或者服务器在操作系统期间被默认安装,会消耗系统资源。使用服务器我们会依照计划和需求来构建服务器,为实现更高效的系统运行建议卸载或者禁用无用的程序或服务。

先用以下命令了解系统上正在运行哪些类型的服务:

[avishek@tecmint]# ps ax

如:

PID TTY      STAT   TIME COMMAND

2 ?        S      0:00 [kthreadd]

3 ?        S      0:00  \_ [migration/0]

4 ?        S      0:09  \_ [ksoftirqd/0]

5 ?        S      0:00  \_ [migration/0]

6 ?        S      0:24  \_ [watchdog/0]

7 ?        S      2:20  \_ [events/0]

8 ?        S      0:00  \_ [cgroup]

9 ?        S      0:00  \_ [khelper]

10 ?        S      0:00  \_ [netns]

11 ?        S      0:00  \_ [async/mgr]

12 ?        S      0:00  \_ [pm]

13 ?        S      0:16  \_ [sync_supers]

14 ?        S      0:15  \_ [bdi-default]

15 ?        S      0:00  \_ [kintegrityd/0]

16 ?        S      0:49  \_ [kblockd/0]

17 ?        S      0:00  \_ [kacpid]

18 ?        S      0:00  \_ [kacpi_notify]

19 ?        S      0:00  \_ [kacpi_hotplug]

20 ?        S      0:00  \_ [ata_aux]

21 ?        S     58:46  \_ [ata_sff/0]

22 ?        S      0:00  \_ [ksuspend_usbd]

23 ?        S      0:00  \_ [khubd]

24 ?        S      0:00  \_ [kseriod]

.....

再使用netstat命令快速查看接收连接端口的进程:

[avishek@howtoing]# netstat -lp

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   

tcp        0      0 *:31138                     *:*                         LISTEN      1485/rpc.statd      

tcp        0      0 *:mysql                     *:*                         LISTEN      1882/mysqld         

tcp        0      0 *:sunrpc                    *:*                         LISTEN      1276/rpcbind        

tcp        0      0 *:ndmp                      *:*                         LISTEN      2375/perl           

tcp        0      0 *:webcache                  *:*                         LISTEN      2312/monitorix-http

tcp        0      0 *:ftp                       *:*                         LISTEN      2174/vsftpd         

tcp        0      0 *:ssh                       *:*                         LISTEN      1623/sshd           

tcp        0      0 localhost:ipp               *:*                         LISTEN      1511/cupsd          

tcp        0      0 localhost:smtp              *:*                         LISTEN      2189/sendmail       

tcp        0      0 *:cbt                       *:*                         LISTEN      2243/java           

tcp        0      0 *:websm                     *:*                         LISTEN      2243/java           

tcp        0      0 *:nrpe                      *:*                         LISTEN      1631/xinetd         

tcp        0      0 *:xmltec-xmlmail            *:*                         LISTEN      2243/java           

tcp        0      0 *:xmpp-client               *:*                         LISTEN      2243/java           

tcp        0      0 *:hpvirtgrp                 *:*                         LISTEN      2243/java           

tcp        0      0 *:5229                      *:*                         LISTEN      2243/java           

tcp        0      0 *:sunrpc                    *:*                         LISTEN      1276/rpcbind        

tcp        0      0 *:http                      *:*                         LISTEN      6439/httpd          

tcp        0      0 *:oracleas-https            *:*                         LISTEN      2243/java         

....

上面输出中,可以看到有些不需要的应用程序在服务器上,且仍在运行。

smbd 和 nmbd 是 Samba 的守护进程。若无需在其他设备上访问Samba共享,这些进程可能不必要。你可以安全地停止它们,并阻止其在系统启动时自动运行。Telnet是用于互联网或局域网进行双向交互式文本通信。如果不需要可以把这项进程从启动时关闭。

关于远程登录,如果不需要通过网络登录到另外一台主机,可以终止并禁用在启动时自启动。

Rexec是远程进程执行,可以运行用户咋远程服务器上执行shell命令。如果不需要此项功能可以终止该进程。

FTP属于互联网文件传输协议,如果没有使用用互联网从一个主机传输到另外一个主机可以停止该服务。

关于自动挂载,如果不需要自动挂载不同文件来自启动网络文件系统,可以禁用该系统自启动,避免占用过多系统资源。

是否需要运行名称服务器,如果不需要可以禁用这个进程,可以减少消耗资源,关闭其启动时运行功能。

Lpd是打印机守护进程,使用打印服务器功能才会使用到此项,如果不需要可以禁用不让系统资源被其消耗。

如果您正在运行独立应用程序(如 ssh),而该应用程序使用其他独立应用程序(如 Mysql、Apache 等),则您不需要 inetd。最好终止该进程并禁用它下次自动启动。

Portmap 是一种开放网络计算远程过程调用 (ONC RPC),使用守护进程 rpc.portmap 和 rpcbind。如果这些进程正在运行,则意味着您正在运行 NFS 服务器。如果 NFS 服务器在无人注意的情况下运行,则意味着您的系统资源正在被不必要地消耗。

为了在 Linux 中终止正在运行的进程,请使用“ Kill PID ”命令。但是,在运行 Kill 命令之前,我们必须知道该进程的PID。例如,想找到“ cupsd ”进程的 PID。

[avishek@howtoing]# ps ax | grep cupsd

1511 ? SS 0:00 cupsd -C /etc/cups/cupsd.conf

“ cupsd ”进程的 PID为“ 1511 ”。要终止该 PID,请运行以下命令。

[avishek@howtoing]#kill -9 1511

在基于Red Hat的发行版(例如Fedora和CentOS)中,使用名为“ chkconfig ”的脚本来启用和禁用 Linux 中正在运行的服务。

例如,让我们在系统启动时禁用 Apache Web 服务器。

[avishek@howtoing]# chkconfig httpd 关闭

[avishek@howtoing]# chkconfig httpd --del

在基于Debian的发行版(例如Ubuntu、Linux Mint和其他基于 Debian 的发行版)中,使用名为update-rc.d 的脚本。

例如,要在系统启动时禁用 Apache 服务,请执行以下命令。此处的“ -f”选项代表强制。

[avishek@tecmint]#update-rc.d -f apache2 删除

经过这些更改后,系统下次启动时将不需要这些不必要的进程,这实际上将节省我们的系统资源,并且服务器将更加实用、快速、安全。

JTTI-Defl
JTTI-COCO
JTTI-Selina
JTTI-Ellis
JTTI-Eom