Библиотека сайта rus-linux.net
Как отключить ненужные службы в Linux
Оригинал: How to Stop and Disable Unwanted Services from Linux SystemАвтор: Avishek Kumar
Дата публикации: 7 марта 2014 года
Перевод: А. Кривошей
Дата перевода: октябрь 2014 г.
Когда мы настраиваем сервер, необходимо спросить себя, что нам действительно необходимо. Нужен ли нам веб-сервер или FTP-сервер, NFS-сервер или DNS-сервер, сервер базы данных или что-то другое.
В этой статье мы поговорим о некоторых ненужных приложениях и службах, которые могут быть вам без надобности, но устанавливаются по умолчанию при инсталляции системы и незаметно потребляют ваши системные ресурсы.
Сначала давайте посмотрим, какие службы работают в системе:
[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@tecmint]# 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
В показанном выше выводе вы можете найти приложения, которые не требуются вашему серверу, но, тем не менее, работают:
1. smbd и nmbd
smbd и nmbd - это демон Samba Process. Действительно ли вам нужно предоставлять общий доступ к ресурсам для машин, работающих под windows? Если нет, почему эти процессы работают? Вы можете их безопасно завершить и убрать из автозагрузки.
2. Telnet
Нужна ли вам связь по протоколу Telnet (bidirectional interactive text-oriented communication) в интернете или в локальной сети? Если нет, завершайте этот процесс и исключайте его из автозагрузки.
3. rlogin
Требуется вам авторизация на удаленной машине по сети? Если нет, завершаем этот процесс и убираем из автозагрузки.
4. rexec
Remote Process Execution или rexec позволяет вам выполнять команды оболочки на удаленном компьютере. Если вам это не нужно, просто завершите процесс.
5. FTP
Вы передаете файлы через интернет? Если нет, эту службу спокойно можно отключить.
6. automount
Вам нужно автоматически монтировать различные файловые системы, чтобы подключить сетевую файловую систему? Если нет, почему этот процесс работает? Завершите процесс и уберите его из автозагрузки.
7. named
Вам нужен запущенный DNS-сервер? Тогда что мешает вам освободить занимаемые им системные ресурсы. Завершите процесс и уберите его из автозагрузки.
8. lpd
lpd - это демон принтера, который позволяет печатать с сервера. Если вы не собираетесь этого делать, он вам не нужен.
9. Inetd
Используете ли вы какие-нибудь службы inetd? Если вы запускаете отдельное приложение, такое как ssh, которое в свою очередь использует другое отдельное приложение, например Mysql, Apache и так далее, то вам не нужен inetd. Лучше отключить его автоматическую загрузку.
10. portmap
Portmap - это Open Network Computing Remote Procedure Call (ONC RPC), использующий демоны rpc.portmap и rpcbind. Если у вас работают эти процессы, значит запущен NFS-сервер. В противном случае ваши системные ресурсы расходуются напрасно.
Как завершить процесс в Linux
Для того, чтобы завершить работающий процесс в Linux, используется команда "Kill PID". Но сначала нам необходимо узнать PID процесса. Например, я хочу узнать PID процесса "cupsd":
[avishek@tecmint]# ps ax | grep cupsd 1511 ? Ss 0:00 cupsd -C /etc/cups/cupsd.conf
Итак, PID процесса cupsd 1511. Для того, чтобы завершить этот процесс, используем команду:
[avishek@tecmint]# kill -9 1511
Как отключать службы в Linux
В дистрибутивах на базе Red Hat, таких как Fedora и CentOS для отключения и включения служб используется скрипт "chkconfig".
Например, давайте отключим автозагрузку сервера Apache:
[avishek@tecmint]# chkconfig httpd off [avishek@tecmint]# chkconfig httpd --del
В дистрибутивах на базе Debian, таких как Ubuntu, Linux Mint, для этой цели используется скрипт update-rc.d.
Например, для отключения автозагрузки сервера Apache используется следующая команда:
[avishek@tecmint]# update-rc.d -f apache2 remove
Опция "-f" здесь используется для того, чтобы скрипт не запрашивал подтверждения выполнения команды.