ค้นหาเว็บไซต์

วิธีหยุดและปิดการใช้งานบริการที่ไม่ต้องการจากระบบ Linux


เราสร้างเซิร์ฟเวอร์ตามแผนและข้อกำหนดของเรา แต่ฟังก์ชันที่ตั้งใจไว้คืออะไรในขณะที่สร้างเซิร์ฟเวอร์เพื่อให้ทำงานได้อย่างรวดเร็วและมีประสิทธิภาพ เราทุกคนรู้ดีว่าในขณะที่ติดตั้งระบบปฏิบัติการ Linux แพ็คเกจและแอปพลิเคชันที่ไม่ต้องการบางตัวจะถูกติดตั้งโดยอัตโนมัติโดยที่ผู้ใช้ไม่รู้

เมื่อสร้างเซิร์ฟเวอร์ เราต้องถามตัวเองว่าเราต้องการอะไรจากกล่องจริงๆ ฉันจำเป็นต้องมี เว็บเซิร์ฟเวอร์ หรือ เซิร์ฟเวอร์ 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 เป็น daemon ของ Samba Process คุณจำเป็นต้องส่งออกส่วนแบ่ง smb บน windows หรือเครื่องอื่นจริงๆ หรือไม่ ถ้าไม่! เหตุใดกระบวนการเหล่านี้จึงทำงานอยู่ คุณสามารถฆ่ากระบวนการเหล่านี้ได้อย่างปลอดภัยและปิดการใช้งานไม่ให้เริ่มทำงานโดยอัตโนมัติเมื่อเครื่องบู๊ตในครั้งต่อไป

2. เทลเน็ต

คุณต้องการการสื่อสารแบบข้อความเชิงโต้ตอบแบบสองทิศทางผ่านอินเทอร์เน็ตหรือเครือข่ายท้องถิ่นหรือไม่? ถ้าไม่! ฆ่ากระบวนการนี้และปิดไม่ให้เริ่มตอนบูท

3. เข้าสู่ระบบ

คุณจำเป็นต้องเข้าสู่ระบบโฮสต์อื่นผ่านเครือข่ายหรือไม่ ถ้าไม่! ฆ่ากระบวนการนี้และปิดการใช้งานไม่ให้เริ่มโดยอัตโนมัติเมื่อบู๊ต

4. เร็กซ์

Remote Process Execution หรือที่เรียกว่า rexec ช่วยให้คุณสามารถรันคำสั่งเชลล์บนคอมพิวเตอร์ระยะไกลได้ หากคุณไม่ต้องการรันคำสั่งเชลล์บนเครื่องระยะไกล เพียงแค่ปิดกระบวนการนั้น

5. เอฟทีพี

คุณจำเป็นต้องถ่ายโอนไฟล์จากโฮสต์หนึ่งไปยังโฮสต์อื่นผ่านทางอินเทอร์เน็ตหรือไม่? ถ้าไม่คุณสามารถหยุดบริการได้อย่างปลอดภัย

6. ติดตั้งอัตโนมัติ

คุณจำเป็นต้องติดตั้งระบบไฟล์ต่างๆ โดยอัตโนมัติเพื่อเรียกใช้ระบบไฟล์เครือข่ายหรือไม่? ถ้าไม่! เหตุใดกระบวนการนี้จึงทำงานอยู่ เหตุใดคุณจึงปล่อยให้แอปพลิเคชันนี้ใช้ทรัพยากรของคุณ ฆ่ากระบวนการและปิดการใช้งานไม่ให้เริ่มโดยอัตโนมัติ

7.ตั้งชื่อ

คุณจำเป็นต้องรัน NameServer (DNS) หรือไม่? หากไม่ใช่สิ่งที่โลกบังคับให้คุณดำเนินการตามกระบวนการนี้และยอมให้กินทรัพยากรของคุณจนหมด ฆ่ากระบวนการที่กำลังทำงานอยู่ก่อนแล้วจึงปิดไม่ให้รันตอนบู๊ต

8.แอลพีดี

lpd คือพรินเตอร์ daemon ซึ่งทำให้สามารถพิมพ์ไปยังเซิร์ฟเวอร์นั้นได้ หากคุณไม่ต้องการพิมพ์จากเซิร์ฟเวอร์ โอกาสที่ทรัพยากรระบบของคุณจะถูกกินหมด

9. เนท

คุณกำลังใช้บริการ inetd อยู่หรือไม่? หากคุณกำลังใช้งานแอปพลิเคชันสแตนด์อโลน เช่น ssh ซึ่งใช้แอปพลิเคชันสแตนด์อโลนอื่นๆ เช่น Mysql, Apache ฯลฯ คุณไม่จำเป็นต้องมี inetd ควรฆ่ากระบวนการและปิดการใช้งานโดยเริ่มในครั้งต่อไปโดยอัตโนมัติ

10. พอร์ตแมป

Portmap ซึ่งเป็น Open Network Computing Remote Procedure Call (ONC RPC) และการใช้งาน daemon rpc.portmap และ rpcbind หากกระบวนการเหล่านี้กำลังทำงานอยู่ หมายความว่าคุณกำลังใช้งานเซิร์ฟเวอร์ NFS หากเซิร์ฟเวอร์ NFS ทำงานโดยไม่มีใครสังเกตเห็น หมายความว่าทรัพยากรระบบของคุณถูกใช้หมดโดยไม่จำเป็น

วิธีฆ่ากระบวนการใน Linux

หากต้องการหยุดกระบวนการที่กำลังทำงานอยู่ใน Linux ให้ใช้คำสั่ง 'Kill PID' แต่ก่อนที่จะรันคำสั่ง Kill เราต้องทราบ PID ของกระบวนการก่อน ตัวอย่างเช่น ฉันต้องการค้นหา PID ของกระบวนการ 'cupsd'

[avishek@tecmint]# ps ax | grep cupsd

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

ดังนั้น PID ของกระบวนการ 'cupsd' คือ '1511' หากต้องการฆ่า PID นั้นให้รันคำสั่งต่อไปนี้

[avishek@tecmint]# kill -9 1511

หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับคำสั่ง kill พร้อมตัวอย่าง โปรดอ่านบทความ A Guide to Kill Command เพื่อยุติกระบวนการใน Linux

วิธีปิดการใช้งานบริการใน Linux

ในการกระจายแบบ Red Hat เช่น Fedora และ CentOS ให้ใช้สคริปต์ที่เรียกว่า 'chkconfig' เพื่อเปิดใช้งานและปิดใช้งานบริการที่ทำงานอยู่ใน Linux .

ตัวอย่างเช่น ให้ปิดการใช้งานเว็บเซิร์ฟเวอร์ Apache เมื่อเริ่มต้นระบบ

[avishek@tecmint]# chkconfig httpd off
[avishek@tecmint]# chkconfig httpd --del

ในการแจกแจงแบบอิง Debian เช่น Ubuntu, Linux Mint และการแจกแจงแบบอิง Debian อื่นๆ จะใช้สคริปต์ที่เรียกว่า update-rc.d แข็งแกร่ง>.

ตัวอย่างเช่น หากต้องการปิดใช้งานบริการ Apache เมื่อเริ่มต้นระบบ ให้รันคำสั่งต่อไปนี้ ตัวเลือก '-f' ในที่นี้หมายถึงบังคับ

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

หลังจากทำการเปลี่ยนแปลงเหล่านี้ ระบบจะบูตในครั้งต่อไปโดยไม่มีกระบวนการที่จำเป็นของ UN ซึ่งอันที่จริงแล้วจะช่วยประหยัดทรัพยากรระบบของเรา และเซิร์ฟเวอร์จะใช้งานได้จริง รวดเร็ว ปลอดภัย และปลอดภัยยิ่งขึ้น

นั่นคือทั้งหมดที่สำหรับตอนนี้. ฉันจะมาที่นี่อีกครั้งพร้อมกับบทความที่น่าสนใจอื่น จนกว่าจะคอยติดตามและเชื่อมต่อกับ Tecmint อย่าลืมให้ข้อเสนอแนะอันมีค่าของคุณในส่วนความคิดเห็น