
۱- از کلمات عبور
پیچیده استفاده کنید
کلمات عبور ساده بزرگترین
مشکل امینتی را برای سرور شما
به وجود می آورند. داشتن
کلمات عبور امن و پیچیده (چه
برای خود سرور و چه برای
کاربرانی که روی سرور قرار
دارند) بسیار با اهمیت است.به
عنوان مثال اگر کاربر شما
ازکلمه ی عبور ی استفاده کند
که به راحتی توسط هکر ها قابل
حدث زدن باشد در وحله ی اول
باعث deface شدن سایت خود شده
و اعتبار شرکت شما رو زیر
سوال می برد دوم ممکن است از
طریق این سایت برای ارسال
ویروس و هرزنامه استفاده بشه
یا بویسله ی local exploit ها
به بقیه سایت ها آسیب برسونه.
* شما می تونید با ویرایش
تنظیمات مربوط به کلمات عبور
در فایل /etc/login.defs بر
اساس نوع کار شما با سرور و
درجه ی امنیتی که برای خود در
نظر می گیرید کاربران مجبور
به داشتن کلمات عبور ایمن
کنید.توضیحات کامل در مورد هر
یک از پارامتر های فایل
login.defs داخل خود فایل و
در بالای هر کدام از پارامتر
ها موجود می باشد.
معمولا کلمات عبور باید حداقل
۸ حرفی و شامل حرف – عدد و
علائم باشند. هیچ وقت از
کلمات معنی دار یا تاریخ های
مهم استفاده نکنید. اگر می
خواهید امن بودن کلمه عبور
خود را بررسی کنید می تونید
اون را با استفاده از این نرم
افزار (http://www.openwall.com/john)
تست کنید . اگر ظرف ? – ?
ساعت کلمه عبور شما crack شد
یعنی کلمه عبور شما امن نیست.
همین سایت یک ابزار دیگه برای
بررسی طول کلمات عبور کاربران
سرور ساخته است بوسیله ی (http://www.openwall.com/passwdqc)
می توانید لیست کاربرانی که
از کمات عبور نا امن استفاده
میکنند را پیدا کنید و به
آنها هشدار دهید .
?- پروتکل SSH شما
Secure است؟
سعی کنید همیشه از برای ورود
به سرور از public key
authentication استفاده کنید
وهیچ وقت دسترسی SSH را برای
عموم باز نگذارید. اگر از
puttyاستفاده می کنید می
توانید نرم افزار putty agent
را نصب کرده و key های SSH
خود را مدیریت کنید.
همیشه پورت SSH را عوض کنید
.معمولا طرف ابتدا به دنبال
پورت ۲۲ می گرده و اگر
اطلاعات کافی در مورد سرور
شما نداشته باشه از دسترسی به
ssh نا امید خواهد شد . لذا
هیچ وقت ssh را روی پورت ۲۲
باز نگذارید. می توانید پورت
ssh را از طریق ویرایش فایل
etc/ssh/sshd_config به یک
پورت باز دیگر مثلا ????
تغییر دهید. port
1654
از پروتکل ۲ استفاده
کنید . اگر از putty استفاده
می کنید این نرم افزار قابلیت
پشتیبانی از هر دو پروتکل را
دارست پس نگرانی وجود ندارد .
در همین فایل
etc/ssh/sshd_config می
توانید خط Protocol 2.
را تایپ کنید.
در اکثر سیستم های لینوکس
میتوانید محدودیت هایی را روی
دستری های shell اعمال کنید .
با استفاده از تنظیماتی که در
/etc/security/limits.conf
وجود دارد می توانید محدودیت
های بسیار جالب را برای تک تک
کاربران shell ایجاد کنیدتا
استفاده ی نابجای آنها با
استفاده وارد آوردن فشار بیش
از حد به سرور شما و down شدن
آن نشود .
۳- وب سرور خود را
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 این
گزینه هر لحظه چکمیکنه که آیا
کسیکه داره این فایل رو اجرا
میکنه مالک اون قسمتهست یا نه
و خیلی دستورات را خود به خود
مسدود میکنه . و راحت ترین
راه برای بستن دسترسی های
اضافی روی سروره . البته باید
گم که با فعال کردن این گزینه
حدود ۶۰ درصد از scriptها و
کاربران به مشکل برمی خورند.
۴- پارتیشن tmp را
secure کنید
بله . مخصوصا گفتم پارتیشن
چون بعضی ها اصلا براش
partision نمی سازند . البته
اگر سرورتون را از یک دیتا
سنتر درست حسابی گرفته باشید
خودشون موقع نصب سیتم عامل
این کار رو انجام میدن.
ولی بازهم کافی نیست در قسمت
fstab سیستم باید tmp حتما با
گزینه ی nosetuid
بسازید یا به اصطلاح mount
کنید. این گزینه باعث میشه که
تک تک proccess ها با سطح
دسترسی executor اجرا شوند
.این سطوح دسترسی قبلا در
کرنل لینوکس تعریف شده.
همچنین بعد از نصب cpanel می
توانید گزینه ی noexec
رو هم فعال کنید. این گزینه
باعث میشه که هیچ فایل اجرایی
داخل tmp اجازه ی اجرا شدن
نداشته باشه . بعد از اینکه
این کار و انجام دادید بوسیله
script از پیش آماده ی خود
cpanel در آدرس
/scripts/securetmp برای
پارتیشن tmp خود یک symlink
یا شبه لینک به /var/tmp
بسازید این خودش برای حفظ
امنیت tmp موثره .
۵- غیر فعال کردن
compiler ها برای کاربران
دیگر
۹۹ درصد کاربران نمی دونن
compiler ها روی هاست به چه
درد می خوه و اصلا استفاده ای
از اونها ندارند پس چه بهتره
برای همه ی کاربرانی که
استفاده ندارند اون رو
disable کنید . این کار رو می
تونید در whm در قسمت
Compilers Tweak
انجام بدید . اکثر باگ های
امینتی کشف شده نیار دارند تا
همون موقع روی سرور compile
بشن با غیر فعال کردن اون حال
بسیاری از هکر ها رو میگیرید.
۶- از maildir به جای
mailbox استفاده کنید
ما دونوع ذخیره سازی روی
لینوکس داریم برای ایمیل ها .
اولی به صورت mail box هست و
دومی maildir که گزینه ی دوم
بسیار از لحاظ امنیتی بهتره و
باعث افزایش سرعت میل سرورتون
هم میشه . البته در نسخه ی
جدید cpanel به صورت پیش فرض
maildir نصب میکنه ولی اگر
سرورتون بیش از یک سال عمر
داره و روش خاک نشسته بهتره
همین حالا به maildir ارتقا
بدید. قبلش از اطلاعاتتون
backup بگیرید . بنده هیچ
مسئولیتی در قبل از دست دادن
اونها ندارم . می تونید از
پشتیبانی دیتا سنترتون بخواید
تا این کار رو انجام بده.
۷- سرویس های
اضافی(services and daemons)
را غیر فعال کنید
هر سرویس که روی سرور شما
فعال باشه و به دیگران اجازه
ی وصل شدن به اون وگرفتن
اطلاعات به کاربران میده
دارای باگ امینتی هست و اگر
از اون استفاده نمی کنید باید
اون رو ببندیدش . خود لینوکس
هم یک سری سرویس های
زائد(daemons) داره که برای
یک سریس دهنده ی وب نیازی به
اونها نیست .
سرویس های رو می تونید در
/etc/xinetd.con ویرایش کنید
.برای مثال سیستم اشتراک فایل
(nfs/statd) یا سیستم مدیریت
پرینت (cupsd) و خیلی
daemonهای دیگه که توی آموزش
مختصر مثل این نمی گنجه همش
روبگم. از داخل whm در قسمت
Service Manager
می تونید سرویس هایی
که نیار ندارید رو غیر فعال
کنید . مثلا اگر از chat
server خود cpanel استفاده
نمی کنید اون رو غیر فعالش
کنید چون خودش باعث مشکلاتی
امنیتی خواهد شد .
این بخش از مهمترین کار هایی
که باید یک مدیر سرور انجام
بده .
۸- سرور خود را تحت
کنترل داشته باشید یا مانیتور
کنید
یک ادمین سرور باید به صورت
۲۴ ساعته کلیه قسمت های سرور
(نرم افزار ها – فایل های
کاربران و …) را تحت کنترل
داشته باشد
اینکه نرم افزار های مورد
استفاده روی سرور بروز هستند
یا خیر و خیلی مسائل دیگر
بسیار مهم هستند که این امر
فقط با بررسی مداوم و سرکشی
به صورت روزانه روی سرور ها
عملی است.
البته می توانید حداقل ۹۰
درصد این کار ها را با نوشتن
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 کنید و حتی
در مقابل حملات ddos اسیب
ناپذیر باشید.
در زیر لیست پورت های مورد
نیاز cpanel امده است( اگر
سرویس دیگری ندارید می توانید
بقیه پورت ها را به غیر از
این ها ببندید . چون نیازی به
انها ندارید ) :
http://faq.cpanel.net/show.cgi?qa=10468918040763
بهترین firewall از نظر من
روی cpanel هم نصب میشه و خوب
جواب میده همون APF هست که با
rule های خود لینوکس iptables
کار می کنه.
اگر شما هم با این نرم افزار
کار می کنید اینجا رو مطالعه
کنید :
http://faq.cpanel.net/show.cgi?qa=108499296901804
10 - همیشه بروز
باشید
۸۰ در صد مشکلات امینتی در
روز های اول عمرشون براشون
patch و update امنیتی میاد
یعنی یک bug هرچقدر هم که
underground باشد بالاخره
براش patch نوشته می شود پس
سعی کنید که همیشه از آخرین
نسخه های نرم افزار استفاده
کنید . نسخه ی کرنل حداقل هر
۲ ماه یک بار باید بروز بشه
بقیه نرم افزار ها باید هر
هفته چک بشن و در صورت لزوم
update بشوند. خود cpanel
باید هر روز updateشود به
دلیل اینکه هر روز شرکت سی
پنل به روز می شود .












