جلسه هشتم
سلام
این جلسه میرسیم به کنتل پنل محبوب خودم : دایرکت ادمین
این کنترل پنل که طریقه نصبش رو در جلسات اول گفتم و آموزش نصب فایروال و ELS هم براش گفته شد .
دایرکت ادمین در موقع نصب با تنظیمات پیشفرض خودش امنیت و کارایی خیلی قوی تری نسبت به سی پنل داره و کارایی که باید انجام بشه خیلی کمتره
برای بهینه سازی و ایمن سازی دایرکت ادمین مراحل زیر رو طی میکینم
1- نصب فایروال CSF
2- نصب ELS که هر دوش در جلسات قبل گفته شده
و بعد بریم تو دایرکت ادمین
اگه دقت کنید در قسمت admin level (جایی که به طور پیشفرض هم توش هستید) در پاییناش یه گزینه ConfigServer Security&Firewall اضافه شده .
برید توش
از سومین قسمت (csf - ConfigServer Firewall) دومین دکمه یعنی firewall configuration رو بزنید
هول نکنید چیزی نیست کلا دو تا عدد رو میخوایم تغییر بدیم
در همون اولش یه جا داره که مقدار TESTING = رو تغییر میده
این مقدار رو به 0 تغییر بدید و بعد یه کم بیاید پایینتر تا مورد Allow incoming TCP ports رو ببنید در اینجا میتونید پورت های مورد نظرتون رو باز یا بسته کنید ....
اگه یادتون باشه تو جلسه 5.5 تاکید کردم که پورت اس اس اچ رو عوض نکنید چون حتما باید پورت در فایروال باز بشه
برای بستن یه پورت که کافیه اونو از قسمت های TCP_IN = و TCP_OUT = حذف کنید (دقت کنید که کاما (,) مربوط به اون پورت هم بردارید در کل باید بین هر پورت یه کاما باشه) که اگر اطلاعات کامل ندارید قویا پیشنهاد میکنم پورتی از این لیست حذف نکنید
برای اینکه یه پورت رو باز کنید (مثلا پورتی که در نظر دارید به اس اس اچ بدید باید مراحل زیر رو طی کنید)
مثلا من میخوام پورت 1234 رو به اس اس اچ اختصاص بدم برای اینکار باید در همین قسمت های TCP_IN = و TCP_OUT = بعد آخرین عدد یه علامت کاما بزنیم (,) و عدد مورد نظر رو اضافه کنیم
حالا عبارت CT_LIMIT = رو در صفحه پیدا کنید با تغییر این مقدار میشه جلوی بعضی از حملات دی داس رو گرفت
مقدارش رو به 250 تغییر بدید (این یعنی تعداد کانکشن های همزمانی که یه ایپی میتونه به سرور داشته باشه)
حالا عبارت AUTO_UPDATES رو پیدا کنید و مقدارش رو 1 بزارید
عبارت SAFECHAINUPDATE رو هم پیدا کنید و مقدارشو 1 بزارید
حالا صفحه رو تا آخر بیارید پایین و change رو بزنید بعد هم restart csf+lfd رو بزنید
حالا هم return رو بزنید
بر میگردید به همون صفحه اصلی فایروال
حالا بزارید یه کم گزینه های این صفحه رو توضیح بدم و ببینیم چی به چیه
اولین گزینه که نوشته Check server security یه گزینه بسیار مهم وپر کاربرده این گزینه امنیت و کارایی سرور شما رو از جهت های مختلف چک میکنه و همه رو بره شما لیست میکنه و مواردی که اوکی نباشه راه حل هم میگه بعدا از این قسمت استفاده خواهیم کرد
دیگه تو قسمت اول چیز پر کاربردی نیست
در قسمت آپگرید هم اگه ورژن جدیدی از فایروال موجود باشه یه دکمه ظاهر میشه و با زدن اون فایروال آپدیت میشه
در سومین قسمت (csf - ConfigServer Firewall) سه تا گزینه پشت سر هم داریم Quick allow و Quick deny و Quick Ignore که کنار همه شون هم یه کادر هست
اگه در کادر سبز رنگ Quick allow یه آیپی رو بزنید و بعد دکمه Quick allow رو بزنید این آیپی برای همیشه در لیست سبز میمونه و هیچ وقت بلاک نمیشه و اگه بلاک شده باشه هم آزاد میشه
اگه در کادر قرمز رنگ Quick deny یه آیپی رو بزنید و دکمه Quick deny رو بزنید دسترسی اون آیپی برای همیشه رو سرور بسته میشه
Quick Ignore هم بره عدم برسی یه آیپیه
قسمت Firewall allow IPs دقیقا معادل همون Quick allow هست با این تفاوت که یه لیست باز میکنه و لیست تمام آیپی هایی که رو سرور در لیست سبز هستن رو میاره و میتونید هر چند تا آیپی رو که خواستید از لیست بردارید یا به لیست اضافه کنید
قسمت Firewall Deny IPs دقیقا معادل همون Quick Deny هست با این تفاوت که یه لیست باز میکنه و لیست تمام آیپی هایی که رو سرور واسه همیشه بلاک هستن رو میاره و میتونید هر چند تا آیپی رو که خواستید از لیست بردارید یا به لیست اضافه کنید
گزینه های Enable و Disable هم که مشخصه : برای فعال و غیر فعل کردن فایروال
گزینه Remove Deny هم بره اینه که آیپی بلاک شده رو از لیست حذف کنید
Temporarily allow/deny هم بره بلاک یا allow کردن یه آیپی برای یه زمان مشخصه
بقیه گزینه ها زیاد کاربرد ندارن یا حرفه ای هستن یا شاید من حال ندارم توضیح بدم ...
حالا که یاد گرفتید پورتی رو در فایروال باز کنید وقتشه پورت اس اس اچ رو تغییر بدیم
وارد اس اس اچ بشید حالا یه راه خیلی ساده داریم ویه راه طولانی
اگه ELS نصب کرده باشید کافیه دستور زیر رو بزنید و پورت مورد نظر بدید و اینتر کنید
ولی اگه نصب نکرده باشید باید اول دستور زیر رو بزنید
کد:
nano /etc/ssh/sshd_config
بعد مقدار Port رو پیدا کنید و # کنارشو بردارید و به جای 22 هر عددی که میخواهید رو بزنید و سیو کنید
حالا چه از روش ای ال اس و چه از روش دوم رفته باشید یه بار دستور زیر رو بزنید
حالا باید یه ایمیل به سرور بدید تا سی اس اف از طریق اون با شما در ارتباط باشه
برای این کار در اس اس اچ بزنید
و آدرس ایمیلتون رو داخلش بنویسید و سیوش کنید
هنوز خیلی کار داریم ولی بره این جلسه کافیه
بازم تاکید میکنم زدن دکمه تشکر فراموش نشه و همچنین هر طور سوال ممکن ، پیشنهاد و انتقاد رو در تاپیک بحث و برسی و بیان مشکلات در مورد آموزش مدیریت سرور مطرح کنید.
با سپاس
---------- Post added at 03:15 PM ---------- Previous post was at 02:33 PM ----------
جلسه هشت و نیم
سلام
این جلسه هم به ادامه امنیت دایرکت ادمین میرسیم
دستور زیر رو بزنید
کد:
cd /usr/local/directadmin/custombuild
بزنید
حالا مقادیر رو به شکل زی تغییر بدید
default_php=5
php5_ver=5.2
php4_cli=no
php4_cgi=no
php5_cli=yes
php5_cgi=no
zend=yes
mysql=5.1
mysql_inst=no
mysql_backup=yes
apache_ver=2.2
phpmyadmin=yes
atmail=no
squirrelmail=yes
roundcube=yes
uebimiau=no
exim=no
spamassassin=no
mail-header-patch=yes
dovecot=yes
awstats=no
webalizer=no
proftpd=no
pureftpd=yes
و به بقیه موارد دست نزنید
سیو کنید و بیاید بیرون
حالا دستور زیر رو بزنید و صبر کنید تا کارش انجام بشه
حالا برید تو دایرکت ادمین برید به قسمت File Editor و از منوی کشویی که میاد /usr/local/lib/php.ini رو انتخاب کنید و show file رو بزنید حالا disable_functions رو پیدا کنید و بکنیدش مثل شکل زیر
کد:
disable_functions = symlink,shell_exec,exec,proc_close,proc_open,popen,pclose,system,dl,passthru,escapeshellarg,escapeshellcmd,readfile
حالا سه تا مقدار زیر رو حتما و حتما برابر off قرار بدید (ممکنه بعضی ها در حالت پیشفرض خاموش باشه)
کد:
allow_url_fopen = Off
register_globals = Off
enable_dl=Off
موارد زیر رو هم قویا پیشنهاد میشه به صورتی که جلوشون نوشتم تغییر بدید
کد:
display_errors = Off
display_startup_errors = Off
safe_mode = On
log_errors = On
expose_php = Off
magic_quotes_gpc = On
magic_quotes_sybase = Off
در پایان save رو بزنید
برگردید به صفحه اصلی دایرکت ادمین
برید به Administrator Settings و تیک گزینه های زیر رو بردارید
Enable User Demo. Login: demo_user Password : demo
Enable Reseller Demo. Login: demo_reseller Password : demo
Enable Admin Demo. Login: demo_admin Password : demo
حالا گزینه ها رو به صورتی که میدم تغییر بدید
Max Request/Upload Size (bytes) ---->1048576000
Warn Admin's at 95 % partition usage ---> 95 , Day
Enable Automatic Lost Password Recovery --->NO
Blacklist IPs for excessive login attempts ---> عدد رو بزارید 30 و تیک رو هم بزنید
Prevent 127.0.0.1 from being Blacklisted --- > تیک بزنید
Time before failed login count resets --->10
Check domain owner for Subdomain creation ---->yes
Daily Email Limit per DirectAdmin User ---->100
و بعد سیو کنید
برگردید صفحه اصلی دایرکت ادمین و Php Safe Mode Settings رو بزنید
Default Safe Mode for new domains: رو ON کنید و Default Open BaseDir for new domains رو OFF و سیو کنید
حالا اس اس اچ رو باز کنید و دستور زیر رو بزنید
کد:
nano /etc/ssh/sshd_config
با زدم دکمه CTRL + W از کیبرد عبارت UseDNS رو پیدا کنید اگر کنار # بود بردارید و مقدارشو به no تغییر بدید (اگه جلوش نوشته بود no به هیچی دست نزنید و اگه نوتشه yes فقط اون yes رو به no تبدیل کنید و فایل رو سیو کنید و بیاید بیرون
دستور
رو بزنید
اگه عبارت local-infile وجود داشت مقدارشو به 0 و اگه نبود در خط اخر که خالیه اینو اضافه کنید
فایل رو سیو کنید و بیاید بیرون
حالا در صفحه اصلی دایرکت ادمین به ConfigServer Security&Firewall برید و CHECK SERVER SECURITY رو بزنید
اولا یاد آوری کنم قرار نیست همه گزینه ها سبز بشه (شاید در آخر یه تعداد قرمز بمونه که هیچ مشکلی نداره)
برید به آخرین قسمتش که نوشته Server Services Check و پایینش حدود 10-12 مورد رو چک کرده
اگه همش سبز باشه که خدا رو شکر اگه یکی یا چند تا یا همش قرمز باشه اگه دقت کنید کنار هر کدوم دو تا دستور نوشته اون دو تا دستور رو در اس اس اچ بزنید و اگر هم دستور ها اروری داد ارورش رو بیخیال شید :D
اگه سرور مجازی با OpenVZ یا Virtuzu دارید کار تمومه و یه reboot بزنید (و قسمت بعد که سکیو کردن /tmp هست رو بیخیال شید و فقط بیاید سراغ خطوط پایانی
اگه سرور اختصاصی دارید یا سرور مجازی با Vmware و Xen یه مرحله دیگه هم دارید ...
ولی خب با توجه به اینکه دیگه حوصله تایپ ندارم و در سایت Linuxtalk.ir آقای پیمان قربانی این مطلب رو به خوبی آموزش داده من مال ایشون رو براتون کپی پیست میکنم
امن کردن /tmp:ساخت 2000 مگابایت فضا ذخیره سازی:
کد:
dd if=/dev/zero of=tmpMnt bs=1024 count=2000000
ساخت فایل سیستم ext :
کد:
/sbin/mke2fs /dev/tmpMnt
ایجاد یک پشتیبان:
کد:
cp -R /tmp/ /tmp_backup
mount کردن فایل سیستم جدید با noexec:
کد:
mount -o loop,rw,nosuid,noexec /dev/tmpMnt /tmp
سطح مجوز را هم تغییر دهید:
پشتیبانی را که تهیه کرده بودیم، کپی میکنیم:
کد:
cp -R /tmp_backup/* /tmp/
پشتیبان را حذف میکنیم:
امن کردن /var/tmp :
تهیه یک پشتیبان:
کد:
mv /var/tmp /var/tmpbck
آدرس دهی میکنیم:فایل های داخل پشتیبان را کپی میگیریم:
کد:
cp /var/tmpbck/* /tmp/
امن کردن /dev/shm :
فایل زیر را با ویرایشگر باز میکنیم:
اگر ویرایشگر nano را نصب ندارید، با دستور زیر نصب کنید.
مقدار زیر را پیدا کنید :
کد:
none /dev/shm tmpfs defaults,rw 0 0
مقدار زیر را جایگزین مقدار فوق میکنیم:
کد:
none /dev/shm tmpfs defaults,nosuid,noexec,rw 0 0
مجددا” mount میکنیم:
کد:
mount -o remount /dev/shm
و حالا یه بار سرور رو با دستور reboot ریبوت کنید
قابل توجه همه (هم وی پی اس دارا هم سرور دارا)
من در نظر داشتم دایرکت ادمین رو تا همین حد اموزش بدم ، یادتون باشه هیچ وقت به اموزش های چرت و پرت من متکی نباشید و در گوگل سرچ کنید و از فروم هم بهره ببرید و سوال بپرسید ...
بازم حرف تکراری هر جلسه رو تکرار میکنم
از کل آموزش ها و حرف هام یه جلسه بیشتر نمونده و بعد اون این آموزش بالاخره تموم میشه ....
هر طور سوال ممکن ، پیشنهاد و انتقاد رو در تاپیک بحث و برسی و بیان مشکلات در مورد آموزش مدیریت سرور مطرح کنید و تشکر هم فراموش نشه
با سپاس
آرش