آموزش های امنیت سرور ها و مدریت آنها

سلام دوستان و مدیران گرامی
من حق توهین رو اصلا ندارم و فقط دوست دارم اطلاع رسانی کنم همین ممنونتون میشم
 
HTML clipboard
10 نکته برای بالا بردن ضریب امنیت در CPanel

توجه داشته باشيد اين توصيه ها فقط به صورت يک ژيشنهاد هستند. همان طور که مي دانيد امنيت يک سرور به مسائل بسيار پيچيده اي مرتبط هست و با ?? مورد نميشه اونها رو خلاصه کرد. لذا موارد زير رو مي تونيد درصورت تمايل ري سرور خودتون اعمال کنيد.
1- از کلمات عبور پيچيده استفاده کنيد
کلمات عبور ساده بزرگترين مشکل امينتي را براي سرور شما به وجود مي آورند. داشتن کلمات عبور امن و پيچيده (چه براي خود سرور و چه براي کاربراني که روي سرور قرار دارند) بسيار با اهميت است.به عنوان مثال اگر کاربر شما ازکلمه ي عبور ي استفاده کند که به راحتي توسط هکر ها قابل حدث زدن باشد در وحله ي اول باعث deface شدن سايت خود شده و اعتبار شرکت شما رو زير سوال مي برد دوم ممکن است از طريق اين سايت براي ارسال ويروس و هرزنامه استفاده بشه يا بويسله ي local exploit ها به بقيه سايت ها آسيب برسونه.
* شما مي تونيد با ويرايش تنظيمات مربوط به کلمات عبور در فايل /etc/login.defs بر اساس نوع کار شما با سرور و درجه ي امنيتي که براي خود در نظر مي گيريد کاربران مجبور به داشتن کلمات عبور ايمن کنيد.توضيحات کامل در مورد هر يک از پارامتر هاي فايل login.defs داخل خود فايل و در بالاي هر کدام از پارامتر ها موجود مي باشد.
معمولا کلمات عبور بايد حداقل 8 حرفي و شامل حرف - عدد و علائم باشند. هيچ وقت از کلمات معني دار يا تاريخ هاي مهم استفاده نکنيد. اگر مي خواهيد امن بودن کلمه عبور خود را بررسي کنيد مي تونيد اون را با استفاده از اين نرم افزار (http://www.openwall.com/john) تست کنيد . اگر ظرف ? - ? ساعت کلمه عبور شما crack شد يعني کلمه عبور شما امن نيست.
همين سايت يک ابزار ديگه براي بررسي طول کلمات عبور کاربران سرور ساخته است بوسيله ي (http://www.openwall.com/passwdqc) مي توانيد ليست کاربراني که از کمات عبور نا امن استفاده ميکنند را پيدا کنيد و به آنها هشدار دهيد .
?- پروتکل SSH شما Secure است؟
سعي کنيد هميشه از براي ورود به سرور از public key authentication استفاده کنيد وهيچ وقت دسترسي SSH را براي عموم باز نگذاريد. اگر از puttyاستفاده مي کنيد مي توانيد نرم افزار putty agent را نصب کرده و key هاي SSH خود را مديريت کنيد.
هميشه پورت SSH را عوض کنيد .معمولا طرف ابتدا به دنبال پورت 22 مي گرده و اگر اطلاعات کافي در مورد سرور شما نداشته باشه از دسترسي به ssh نا اميد خواهد شد . لذا هيچ وقت ssh را روي پورت 22 باز نگذاريد. مي توانيد پورت ssh را از طريق ويرايش فايل etc/ssh/sshd_config به يک پورت باز ديگر مثلا ???? تغيير دهيد. port 1654
از پروتکل 2 استفاده کنيد . اگر از putty استفاده مي کنيد اين نرم افزار قابليت پشتيباني از هر دو پروتکل را دارست پس نگراني وجود ندارد . در همين فايل etc/ssh/sshd_config مي توانيد خط Protocol 2. را تايپ کنيد.
در اکثر سيستم هاي لينوکس ميتوانيد محدوديت هايي را روي دستري هاي shell اعمال کنيد . با استفاده از تنظيماتي که در /etc/security/limits.conf وجود دارد مي توانيد محدوديت هاي بسيار جالب را براي تک تک کاربران shell ايجاد کنيدتا استفاده ي نابجاي آنها با استفاده وارد آوردن فشار بيش از حد به سرور شما و down شدن آن نشود .
3- وب سرور خود را secure کنيد
مهمترين قسمتي که با عموم کاربران در ارتباط است و بيشتر مورد حمله و نفوذ قرار مي گيرد همان webserver است .
يکي از بهترين ماژول هايي که براي جلوگيري از استفاده ي نابجا از وب سرور استفاده مي شود mod_security است که در همين وب لاگ بار ها در موردش صحبت کرديم. البته خود اون فقط يک ابزاره و بقيش برميگرده به هنر مدير سرور در طراحي يک سري rule مناسب مخصوص اون سرور براي اطلاعات بيشتر به سايت هاي http://www.modsecurity.org و http://www.gotroot.com سر بزنيد.
توجه کنيد که هميشه موقع compile کردن apache گزينه ي suexec حتما فعال باشد. فعال کردن اين گزينه به معني اجرا شدن اسکريپت هاي CGI تحت owner خود (مالک فايل) مي باشد. اين گزينه باعث جلوگيري از دسترسي فايل هاي CGI به فايل هاي سيستم ميشه و همچنين براي جلوگيري از فايل هايي که باعث در سرور مي شود بسيار مناسب است.
همچنين بعضي ها اعتقاد داند که بايد PHPsuexec هم روي سرور فعال باشه اين گزينه باعث ميشه که فايل هاي php هم تحت کاربر خودشون اجرا بشن و با عث بالا بردن امنيت فايل هاي سيستمي و جلوگيري از استفاده نا بجا از اين گونه اسکريپت ها ميشه .
مي تونيد apache رو بوسيله ي دستور /scripts/easyapach که به شما محيط نيمه گرافيکي ميده يا با استفاده از خود whm که محيط کاملا گرافيکي داره compile کنيد.
با استفاد از فعال کردن گزينه ي open_basedir در قسمت Tweak Security در WHM دسترسي کاربران را از مشاهده ي فايل هايي که خارج پوشه ي مربوط به خودشون هست بگيريد.
اگر خيلي از امنيت سرور خود حراس داريد و نمي توانيد تک تک دسترسي ها مسدود کنيد مي توانيد به راحتي در فايل php.ini گزينه ي safe mode را فعال کنيد . Safe_mode=on اين گزينه هر لحظه چکميکنه که آيا کسيکه داره اين فايل رو اجرا ميکنه مالک اون قسمتهست يا نه و خيلي دستورات را خود به خود مسدود ميکنه . و راحت ترين راه براي بستن دسترسي هاي اضافي روي سروره . البته بايد گم که با فعال کردن اين گزينه حدود 60 درصد از scriptها و کاربران به مشکل برمي خورند.
 
HTML clipboard
- پارتيشن tmp را secure کنيد
بله . مخصوصا گفتم پارتيشن چون بعضي ها اصلا براش partision نمي سازند . البته اگر سرورتون را از يک ديتا سنتر درست حسابي گرفته باشيد خودشون موقع نصب سيتم عامل اين کار رو انجام ميدن.
ولي بازهم کافي نيست در قسمت fstab سيستم بايد tmp حتما با گزينه ي nosetuid بسازيد يا به اصطلاح mount کنيد. اين گزينه باعث ميشه که تک تک proccess ها با سطح دسترسي executor اجرا شوند .اين سطوح دسترسي قبلا در کرنل لينوکس تعريف شده. همچنين بعد از نصب cpanel مي توانيد گزينه ي noexec رو هم فعال کنيد. اين گزينه باعث ميشه که هيچ فايل اجرايي داخل tmp اجازه ي اجرا شدن نداشته باشه . بعد از اينکه اين کار و انجام داديد بوسيله script از پيش آماده ي خود cpanel در آدرس /scripts/securetmp براي پارتيشن tmp خود يک symlink يا شبه لينک به /var/tmp بسازيد اين خودش براي حفظ امنيت tmp موثره .
5- غير فعال کردن compiler ها براي کاربران ديگر
99 درصد کاربران نمي دونن compiler ها روي هاست به چه درد مي خوه و اصلا استفاده اي از اونها ندارند پس چه بهتره براي همه ي کاربراني که استفاده ندارند اون رو disable کنيد . اين کار رو مي تونيد در whm در قسمت Compilers Tweak انجام بديد . اکثر باگ هاي امينتي کشف شده نيار دارند تا همون موقع روي سرور compile بشن با غير فعال کردن اون حال بسياري از هکر ها رو ميگيريد.
6- از maildir به جاي mailbox استفاده کنيد
ما دونوع ذخيره سازي روي لينوکس داريم براي ايميل ها . اولي به صورت mail box هست و دومي maildir که گزينه ي دوم بسيار از لحاظ امنيتي بهتره و باعث افزايش سرعت ميل سرورتون هم ميشه . البته در نسخه ي جديد cpanel به صورت پيش فرض maildir نصب ميکنه ولي اگر سرورتون بيش از يک سال عمر داره و روش خاک نشسته بهتره همين حالا به maildir ارتقا بديد. قبلش از اطلاعاتتون backup بگيريد . بنده هيچ مسئوليتي در قبل از دست دادن اونها ندارم . مي تونيد از پشتيباني ديتا سنترتون بخوايد تا اين کار رو انجام بده.
7- سرويس هاي اضافي(services and daemons) را غير فعال کنيد
هر سرويس که روي سرور شما فعال باشه و به ديگران اجازه ي وصل شدن به اون وگرفتن اطلاعات به کاربران ميده داراي باگ امينتي هست و اگر از اون استفاده نمي کنيد بايد اون رو ببنديدش . خود لينوکس هم يک سري سرويس هاي زائد(daemons) داره که براي يک سريس دهنده ي وب نيازي به اونها نيست .
سرويس هاي رو مي تونيد در /etc/xinetd.con ويرايش کنيد .براي مثال سيستم اشتراک فايل (nfs/statd) يا سيستم مديريت پرينت (cupsd) و خيلي daemonهاي ديگه که توي آموزش مختصر مثل اين نمي گنجه همش روبگم. از داخل whm در قسمت Service Manager مي تونيد سرويس هايي که نيار نداريد رو غير فعال کنيد . مثلا اگر از chat server خود cpanel استفاده نمي کنيد اون رو غير فعالش کنيد چون خودش باعث مشکلاتي امنيتي خواهد شد .
اين بخش از مهمترين کار هايي که بايد يک مدير سرور انجام بده .
 
HTML clipboard- سرور خود را تحت کنترل داشته باشید
یک مدیر سرور باید به صورت 24 ساعته کلیه قسمت های سرور (نرم افزار ها - فایل های کاربران و ...) را تحت کنترل داشته باشد
اینکه نرم افزار های مورد استفاده روی سرور بروز هستند یا خیر و خیلی مسائل دیگر بسیار مهم هستند که این امر فقط با بررسی مداوم و سرکشی به صورت روزانه روی سرور ها عملی است.
البته اگر زرنگ باشید می تونید حداقل 90 درصد این کار ها را با نوشتن script های دلخواه انجام دهید و شما فقط لوگ های مربوطه را چک کنید و فقط در مواقع ضروری روی سرور لوگین کنید . در این جا برخی از command های پر استفاده رو در این ضمینه ارائه می کنم:

netstat -anp : لیست کلیه connection های باز سرور را به شما می دهد تا به دنبال پورت ها یا نرم افزار های مشکوکی که روی سرور run هستند ولی شما اجاره اجرا شدن به انها نداده اید مشاهده کنید و در صورت لزوم بوسیله firewall دسترسی انها را مسدود کنید.
find / \( -perm -a+w \) ! -type l >> world_writable.txt : این دستور لیست کلیه فایل هایی را که permission 777 دارند و توسط کلیه کاربران روی سرور قابلیت ویرایش دارند را به شما نشان میدهد (داخل فایل txtذخیره می کند) اکثر مشکلات امینی داخل همین فولدر ها اتفاق می افتد.
ls /var/log/ : اکثر لوگ فایل ها داخل پوشه var هستند شما در صورت نیاز به لوگی از از هر سرویس خاصیمی توانید در این فولدر به آن مراجعه کنید (البته لوگ های apache در فولدر /usr/local/apache/logs هست)
در کنار تمامی موارد script های زیادی هستندکه به شما در این کار ها کمک می کنند . البته چیزی که بر حسب نیاز خودتون برای خودتون بنویسید مسلما یک چیز دیگس. یک سری برنامه ها اسمشون رو می نویسم که به درد می خورند .
* Tripwire - این نرم افزاری هست که md5 کلیه فایل های مربوط به سیستم را چک می کنه و در صورتی که این فایل ها تغییر کند به شما هشدار می دهد.
http://tripwire.com or http://sourceforge.net/projects/tripwire
* Chrookit - نرم افزاری برای پیدا کردن trojan - backdoor و غیره بر روی سرور.
http://www.chkrootkit.org
* Rkhunter - نرم افزاری برای پیدا کردن trojan - backdoor و غیره بر روی سرور.
http://www.rootkit.nl/projects/rootkit_hunter.html
* Logwatch - نرم افزاری برای بررسی لوگ ها و فعالیت های سرور به صورت روزانه و تهیه گزارش کامل برای شما
http://logwatch.org

9- حتما یک firewall نرم افزاری داشته باشید !!
اگر firewall سخت افزاری هم دارید باید یک فایروال جداگانه روی سرور داشته باشید . با استفاده از firewall می تونید لیست پورت هایی که استفاده نمی شوند رو محدود کنید و با این کار حجم زیادی از نرم افزار های backdoor و ... را از کار بیاندازید . همچنین با استفاده از firewall می توانید ادرس های ip خاصی را block کنید و حتی در مقابل حملات dos اسیب ناپذیر باشید.
در زیر لیست پورت های مورد نیاز cpanel امده است( اگر سرویس دیگری ندارید می توانید بقیه پورت ها را به غیر از این ها ببندید . چون نیازی به انها ندارید ) : http://faq.cpanel.net/show.cgi?qa=10468918040763
بهترین firewall از نظر من روی cpanel هم نصب میشه و خوب جواب میده همون APF هست که با rule های خود لینوکس iptables کار می کنه.
اگر شما هم با این نرم افزار کار می کنید اینجا رو مطالعه کنید : http://faq.cpanel.net/show.cgi?qa=108499296901804
 
در اين آموزش کليه تنظيمات و کار هاي لازم براي secure و optimize کردن سرور هاي لينوکس است .

مديريتformmail
Formmail برنامه است در cpanel که هکر ها و spammer ها با ان امکان ارسال هرزنامه يا spam را بوسيله inject کردن اين سرويس بدست مي آورند. براي ايمن سازي اين script ها به راحتي انها را جستجو کنيد :
find / -name "[Ff]orm[mM]ai*"
find / -name "[Cc]giemai*"
اين دو command کليه فايل هاي با اين نام رو روي سرور جستجو مي کند . سپس بايد همه ي اين فعال ها را غير قابل دسترس کنيد :
chmod a-rwx ادرس فايل مورد نظر
حتما مي پرسيد –rwx چي کاري انجام مي دهد :
- يعني اين امکان حذف شود. r مخفف read يعني خواندن اين فايل . w مخفف write يعني نوشتن برروي اين فايل و x مخفف execute يعني اجراي کردن اين فايل . کل دستور دسترسي به اين فايل رو از بين مي برد.
فراموش نکيند حتما به مشتريانتون هشدار بديد که سرور formmail پشتيباني نمي کند به دلايل امنيتي .
نصب Root kit checke
يک هکر هميشه اولين کاري که روي يک سرور انجام ميده نصب برنامه هايي هست که راه رو براي ارتباط هاي بعدي هکر به سرور هموارتر و اسان تر کنه . اين برنامه به صورت روزانه سرور رو چک مي کنه که ايا چنين برنامه هايي روي سررو نصب شدن يا نه !؟
فراموش نکنيد چند وقت يک بار اين برنامه را update کنيد تا نسخه هاي جديدتر رو در اختيار داشته باشيد.
براي نصب مراحل زير رو انجام بديد :
cd /root/
wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz
tar xvzf chkrootkit.tar.gz
cd chkrootkit*
make sense

براي اجراي برنامه command زير را اجرا کنيد :
/root/chkrootkit-0.44/chkrootkit
حتما چک کنيد که ايا در cron tab نصب شده يا نه (crontab –e)
اين هم يکسري دستور هاي پرکربرد براي استفاده از اين برنامه :
./chkrootkit
./chkrootkit -q
./chkrootkit -x | more

نصب Warning و پيغام هشدار وقتي کسي به سرور شما connect ميشه
اين تنظيم باعث ميشه به محض اينکه کسي به سرور شما از طريق ssh وصل بشه براي شما ايميل اخطار بياد که اگر دسترسي به سرور مسکوک بود اون رو Kill کرده يا به IP اون شخص اخطار بديد :
ابتدا :
Cd ~
pico .bash_profile
اخر صفحه باز شده خط زير رئ اضافه کنيد :
echo 'ALERT - Root Shell Access on:' `date` `who` | mail -s "Alert: Root Access from `who | awk '{print $6}'`" [email protected]This email address is being protected from spam bots, you need Javascript enabled to view it
فراموش نکنيد به جاي [email protected]This email address is being protected from spam bots, you need Javascript enabled to view it ايميل خودتون رو جايگزين کنيد .
Ctrl + X و Save و بعد خارج مي شويد.
حال براي تنظمي پيغام هشدار در موقع وصل شدن :
pico /etc/motd
اين پيغامي که تمايل داريد نمايش داده بشه رو وارد کنيد و بعد تنظميات رو Save کنيد .
 
سلام دوست عزیزبله یادم رفته بود باعرض شرمندگی اما من نگفتم همه این مطالب رو من گفتم من فقط کمک می کنم از این طرف و ان طرف یک چیز خوب پیدا کنم
باشه اگر منبع هم می خواهید مشکلی نداریم ذکر می کنم
 

Cyber-DL

Member
کسی در مورد پرمیشن صحیح برای فایل و فولدر های مهم سرور اطلاعاتی نداره !؟

در ضمن Secure کردن MySql چه طوری است ؟ بیشتر در مورد Apache بحث شده . در مورد MySQL کسی بلد نیست !؟
 

جدیدترین ارسال ها

بالا