اطلاعیه

بستن
No announcement yet.

متوقف کردن و غیر فعال کردن سرویس های ناخواسته در لینوکس

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    متوقف کردن و غیر فعال کردن سرویس های ناخواسته در لینوکس

    سرور های ما معمولا با توجه به طرح ها و نیاز هایمان ساخته می شوند، اما کدام فانکشن های های در نظرگرفته شده در هنگام ساخت به سرور سرعت و کارایی میدهد. همه ما میدانیم در زمان نصب سیستم عامل های لینوکسی، برخی از بسته های ناخواسته بدون اگاهی کابر نصب می شود.

    هنگامی که ما در حال ساخت یک سرور هستیم، باید از خودمان بپرسیم که ما به چه چیزهایی نیاز داریم. آیا من به یک Web Server یا یک FTP Server ، NFS Server DNS Server ، Database Server یا ...... احتیاج دارم.

    در این مقاله ما در مورد برخی از برنامه های ناخواسته و خدمات که ممکن است مورد احتیاج نباشد اما به طور پیشفرض در هنگام نصب سیستم عامل نصب شده و ندانسته شروع به خوردن منابع سیستم شما می کنند،بحث خواهیم کرد.


    همچنین توصیه میشود مقالات زیر را مطالعه کنید :
    راهنمای دستورات Kill, PKill و Killall برای بستن یک پروسس در لینوکس
    چگونه با استفاده از PID Number نام یک Process را در لینوکس پیدا کنیم
    نحوه پیدا کردن Process های در حال اجرا که CPU و RAM زیادی در Linux مصرف میکنند
    متوقف کردن و غیر فعال کردن سرویس های ناخواسته در لینوکس
    آموزش نحوه پیداکردن پروسس در حال اجرا و kill کردن آن در لینوکس
    چهار راه برای kill نمودن یک فرآیند در گنو/لینوکس
    چه موقعی باید از دستور kill -9 باید استفاده کرد؟
    نحوه Kill کردن Process های بی مسئولیت با استفاده از دستور xkill در لینوکس


    خوب در ابتدا اجازه بدهید که با دستور زیر ببینیم چه سرویس هایی در حال اجرا بر روی سیستم شما هستند.

    کد PHP:
    [bahadori@linuxzone]# ps ax 
    خروجی نمونه
    کد PHP:
    PID TTY      STAT   TIME COMMAND
        2 
    ?        S      0:00 [kthreadd]
        
    ?        S      0:00  \[migration/0]
        
    ?        S      0:09  \[ksoftirqd/0]
        
    ?        S      0:00  \[migration/0]
        
    ?        S      0:24  \[watchdog/0]
        
    ?        S      2:20  \[events/0]
        
    ?        S      0:00  \[cgroup]
        
    ?        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]
       ..... 
    حالا اجازه بدهید مانند زیر یک نگاه سریع به پروسه های پذیرش اتصال (Ports) با استفاده از دستور netsat بندازیم.

    کد PHP:
    [bahadori@linuxzone]# netstat -lp 
    خروجی نمونه

    کد PHP:
    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 and nmbd

    smb مانند پروسه nmbd است. آیا شما واقعا نیاز به اشتراک گذاری SMB در ویندوز یا دستگاه های دیگر دارید؟ اگر نه !پس چرا این پروسه در حال اجراست؟ شما با خیال راحت میتوانید این پروسه را متوقف و شروع خودکار پروسه در بوت بعدی ماشین را غیر فعال کنید.


    2. Telnet

    آیا شما به برقراری ارتباط متن گرا دو طرفه تعاملی احتیاج دارید؟ اگر نه این پروسه را متوقف و بازشدن هنگام بوت این پروسه را خاموش کنید .


    3. rlogin

    آیا شما نیاز به ورود، میزبان دیگری از طریق شبکه دارید؟ اگر نه! این پروسه را متوقف و شروع خودکار هنگام بوتش را غیر فعال کنید.


    4. rexec

    فرایند اجرا از راه دور با نام مستعار rexec به شما اجازه می دهد، دستورات shell را از راه دور بر روی یک کامپیوتر اجرا کنید. اگر شما نیاز به اجرای فرامین shell بر روی کامپیوتر از راه دور ندارید، پس به سادگی این پروسه رو متوقف کنید.


    5. FTP

    آیا شما نیاز به انتقال فایل ها از یک میزبان به میزبان دیگر از طریق اینترنت دارید؟ اگر نه شما با خیال راحت می توانید این سرویس را متوقف کند.


    6. automount

    ایا شما نیاز به mount کردن سیستم فایل های دیگر به طور خودکار در زمان بالا آمدن شبکه سیستم فایل دارید؟ اگر نه! پس چرا این پروسه در حال اجراست؟ چرا به این برنامه اجازه میدهید که از منابع تان استفاده کند؟ این پروسه را متوقف و شروع خودکارش را غیر فعال کنید.


    7. named

    آیا شما نیاز به (NameServer(DNS دارید؟ اگر نه چه چیزی شما را قانع کرده که این پروسه در حال اجرا باشد و منابع شما را بخورد. برای اولین بار این پروسه در حال اجرا را متوقف و اجرا در هنگام بوت را خاموش کنید.


    8. lpd

    lpd مانند printer است که امکان چاپ را به سرور می دهد. اگر شما احتیاج به چاپ کردن در سرورتان ندارید، شانس خورده شدن منابع را به این پروسه ندهید.


    9. Inted

    ایا شما در حال اجرای سرویس inetd هستید؟ اگر شما در حال استفاده از برنامه های پایه مانند SSH به تنهایی با برنامه های پایه دیگر به تنهایی مانند Mysql, Apache, etc هستید، پس شما احتیاج به inetd ندارید. بهتر است که این پروسه را متوقف و شروع خودکار در دفعه ی بعد را غیر فعال کنید.


    10. portmap

    Portmap یک روش اتصال به رایانه راه دور درشبکه باز (ONCRPC) است که کاربردش مانند rpc.portmap و rpcbind است.در حال اجرا بودن این پروسه ها به این معنیست که NFS server در حال اجراست و اگر NFS server در حال اجراست به این معنیست که منابع سیستم شما در حال به هدر رفتن توسط برنامه های غیر ضروری است.



    چگونه یک پروسه را در لینوکس متوقف کنیم

    به منظور بستن یک پروسه در حال اجرا در لینوکس، از دستور ‘Kill PID‘ استفاده کنید. اما قبل از استفاده از این دستور، ما باید PID پروسه را پیدا کنیم. برای مثال، من در اینجا میخوام PID پروسه ‘cupsd‘ رو پیدا کنم.
    کد PHP:
    [bahadori@linuxzone]# ps ax | grep cupsd

    1511 ?        Ss     0:00 cupsd -/etc/cups/cupsd.conf 
    بنابراین، PID پروسه ‘cupsd‘ برابر ‘1511‘ هستش. برای متوقف کردن این PID دستور زیر را اجرا کنید.

    کد PHP:
    [bahadori@linuxzone]# kill -9 1511 


    چگونه یک سرویس را در لینوکس غیرفعال کنیم

    در توضیع های پایه ی Red Hat مانندFedora و CentOS از اسکریپتی به نام ‘chkconfig‘ برای فعال و غیر فعال کردن سرویس های در حال اجرا استفاده می کنیم.

    برای مثال،اجازه بدید وب سرور Apache رو از startup غیر فعال کنم.

    کد PHP:
    [bahadori@linuxzone]# chkconfig httpd off
    [bahadori@linuxzone]# chkconfig httpd --del 

    در توضیع های پایه یDebian مانند Ubuntu, Linux Mint و بقیه ی توضیع های پایه از اسکریپتی به نام 'update-rc.d' استفاده می شود.

    به عنوان مثال،برای غیر فعال کردن سرویس Apache از startup ،دستور زیر را اجرا می کنیم.در اینجا گزینه ی 'f-' برای اجبار است.

    کد PHP:
    [bahadori@linuxzone]# update-rc.d -f apache2 remove 
    بعد از انجام این تغییرات ، سیستم در بوت بعدی بدون این پروسه های بیهوده بارگزاری میشود و در واقع در منابع سیستم صرفه جویی و سرور کاربردی تر، سریع تر، امن تر و مطمئن تر میشود.

    امیدوارم که بتونین از این مقاله استفاده ی درستی بکنید.

    با تشکر از وقتتون
    مصطفی بهادری
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 08-10-2017, 11:31 AM.

درباره انجمن منطقه لینوکسی ها

انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

شبکه های اجتماعی

ایمیل مدیریت

Habili@linux-zone.org

در حال انجام ...
X