Kako ustaviti in onemogočiti neželene storitve iz sistema Linux


Strežnik izdelujemo v skladu z našim načrtom in zahtevami, vendar katere so predvidene funkcije, medtem ko gradimo strežnik, da bo deloval hitro in učinkovito. Vsi vemo, da se med namestitvijo operacijskega sistema Linux nekateri neželeni paketi in aplikacije samodejno namestijo brez vednosti uporabnika.

Pri gradnji strežnika se moramo vprašati, kaj dejansko potrebujemo iz škatle. Ali potrebujem spletni strežnik ali strežnik FTP, strežnik NFS ali strežnik DNS, strežnik zbirke podatkov ali kaj drugega.

V tem članku bomo razpravljali o nekaterih neželenih aplikacijah in storitvah, ki jih morda ne potrebujete, vendar so med namestitvijo operacijskega sistema privzeto nameščene in nevede začnejo jesti vaše sistemske vire.

Najprej vemo, katere storitve se izvajajo v sistemu z naslednjimi ukazi.

 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]
   .....

Zdaj pa si na hitro oglejmo procese, ki sprejemajo povezavo (vrata) z uporabo ukaza netstat, kot je prikazano spodaj.

 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         
....

V zgornjem izhodu opazite, da nekatere aplikacije morda niso potrebne na vašem strežniku, vendar se še vedno izvajajo na naslednji način:

smbd in nmbd sta demon Samba procesa. Ali res želite izvoziti delnico smb v okno ali drug računalnik. Če ne! zakaj se ti procesi izvajajo? Te procese lahko varno ubijete in onemogočite samodejni zagon, ko se računalnik naslednjič zažene.

Ali potrebujete dvosmerno interaktivno besedilno usmerjeno komunikacijo prek interneta ali lokalnega omrežja? Če ne! ukinite ta postopek in ga izklopite od zagona.

Ali se morate prijaviti v drugega gostitelja prek omrežja. Če ne! Ubijte ta postopek in mu onemogočite samodejni zagon ob zagonu.

Remote Process Execution aka rexec vam omogoča izvajanje ukazov lupine na oddaljenem računalniku. Če na oddaljenem računalniku ne želite izvršiti ukaza lupine, preprosto uničite postopek.

Ali morate po internetu prenesti datoteke z enega gostitelja na drugega? V nasprotnem primeru lahko varno ustavite storitev.

Ali morate samodejno namestiti različne datotečne sisteme, da odprete omrežni datotečni sistem? Če ne! Zakaj ta postopek teče? Zakaj dovolite tej aplikaciji, da uporablja vaše vire? Ubijte postopek in mu onemogočite samodejni zagon.

Ali morate zagnati NameServer (DNS)? Če ne, kaj vas na zemlji sili, da zaženete ta postopek in dovolite, da pojeste svoje vire. Najprej umorite tekoči postopek in ga nato izklopite, da se ne zažene ob zagonu.

lpd je demon tiskalnika, ki omogoča tiskanje na ta strežnik. Če vam ni treba tiskati s strežnika, je verjetno, da so vaši sistemski viri pojedeni.

Ali izvajate storitve inetd? Če uporabljate samostojno aplikacijo, kot je ssh, ki uporablja drugo samostojno aplikacijo, kot je Mysql, Apache itd., Potem ne potrebujete inetd. bolje ubiti postopek in ga naslednjič samodejno onemogočiti.

Portmap, ki je klic oddaljenega postopka odprtega omrežja (ONC RPC) in uporablja demona rpc.portmap in rpcbind. Če se ti procesi izvajajo, pomeni, da uporabljate strežnik NFS. Če strežnik NFS deluje neopaženo, pomeni, da se vaši sistemski viri porabljajo nepotrebno.

Kako ubiti postopek v Linuxu

Če želite ubiti tekoči postopek v Linuxu, uporabite ukaz 'Kill PID'. Preden zaženemo ukaz Kill, moramo poznati PID postopka. Na primer, tukaj želim najti PID procesa 'cupsd'.

 ps ax | grep cupsd

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

Torej, PID postopka "cupsd" je "1511". Če želite ubiti ta PID, zaženite naslednji ukaz.

 kill -9 1511

Če želite izvedeti več o ukazu kill z njihovimi primeri, preberite članek Vodnik po ukazu Kill za zaključek procesa v Linuxu

Kako onemogočiti storitve v Linuxu

V distribucijah, ki temeljijo na Red Hat, kot sta Fedora in CentOS, uporabite skript, imenovan "chkconfig", da omogočite in onemogočite delujoče storitve v Linuxu.

Omogoča na primer onemogočanje spletnega strežnika Apache ob zagonu sistema.

 chkconfig httpd off
 chkconfig httpd --del

V distribucijah, ki temeljijo na Debianu, kot so Ubuntu, Linux Mint in drugih distribucijah, ki temeljijo na Debianu, se uporablja skript, imenovan update-rc.d.

Če želite na primer onemogočiti storitev Apache ob zagonu sistema, izvedite naslednji ukaz. Tu je možnost '-f' kratica za silo obvezna.

 update-rc.d -f apache2 remove

Po teh spremembah se bo sistem naslednjič zagnal brez postopka, potrebnega za ZN, kar bo dejansko prihranilo sistemske vire, strežnik pa bo bolj praktičen, hiter, varen in varen.

To je vse za zdaj. Tukaj bomo ponovno z drugim zanimivim člankom. Do takrat ostanite z nami in povezani s Tecmintom. Ne pozabite nam v oddelku za komentarje posredovati vaše dragocene povratne informacije.