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.