tinavps
June 23rd, 2011, 12:34
با سلام
بنده سعی کردم برخی از مواردی رو که تشخیص دادم می توانند مفید باشد را ذکر کنم
هرچند موارد دیگر هم وجود دارد و بزودی تکمیل می گردد
از مد cfd در انتهای whm لینک ان security and firewall هست می توانید کمک بگیرید خودش پیشنهاد هم می دهد
مربوط به نظیمات teak و فایروال و محدودیت در php و وادار کردن به لاگین با Https برای cpanel و خواندن ایمیل ها
ضمنا سایت ها فقط با دامنه شان کار کنند و با ~user نتواند کار کند.
هر سایت به دامنه خودش محدود شود و از public_html خودش عقب تر را دسترسی نداشته باشد
open_basedir = /home/users/you/public_html
timeout کمتر از 60 ثانیه باشد
در php.ini فانکشن هایی را باید منع کنید عبارت disabled function
disable_functions = show_source, system, shell_exec, passthru, exec, phpinfo, popen, proc_open
چند تنظیم خوب دیگر:
Enable PHP basedir
safe_mode = 0
register_globals = 0
allow_url_fopen = 0
magic_quotes_gpc = 1
برای سطح دسترسی فولدرهای سایتتان :
chmode خوب
* PHP files: 644
* Config files: 666
* Other folders: 755
داخل فولدر مثلا ایمیج نتواند پی اچ پی آپلود شود مثلا توسط ویزیتور سایت لذا قابلیت اجرایی آن را بگیرید:
<Files ~ "\.(gif|jpe?g|png)$">
اینجا می توانیم یک شرط بگذاریم که در صورت اجرای فایل غیر معتبر به آدرس یکی از صفحات وب سایت ریدایرکت شود تا پیغام ما را ببیند
</Files>
فرض کنید صفحات با php نوشته شده ولی می خواهید الکی عنوان کنید که Asp است و بجای index.php می توانید بزنید index.asp هرچند پسوند asp در عمل در سایت شما وجود ندارد ولی با زدن هر asp معادل آن یعنی php اچرا می شود. لذا یک مایم تایپ جدید باید تعریف کنید
AddType application/x-httpd-php .asp .jsp
محدود کردن فقط به متدهای get و post در آپاچی
<Limit POST PUT DELETE>
</Limit>
<LimitExcept POST GET>
</LimitExcept>
چند تنظیم خوب در آپاچی هر کدام رو که خواستی اعمال کن:
<Directory>
options -Indexes
options -Includes
Options -ExecCGI
Options -FollowSymLinks
</Directory>
می گوید در هر فولدر دستور زیر را اعمال کن:
خط یک محتویات فولدر را نشان ندهد پس لازم نیست یه ایندکس خالی در هر فولدر بگذارید
حط 2 اینکلود سمت سرور از طریق آپاچی و htaccess ناممکن شود
خط سوم توانایی اجرا و رویت cgi را بگیرید و کلا در easyapache cgi را انتخاب نکنید و کامپایل کنید
خط آخر سیملینک را منع کنید
اگر خواستید توانایی تنظیم مجدد یا .htaccess را بگیرید در آچاپی باید تنظیم کنید
AllowOverride None
در آپاچی و اجرای php نیازی به این ماژول ها نیست می توانید غیرفعالشان کنید
mod_imap, mod_include, mod_info, mod_userdir, mod_status, mod_cgi, mod_autoindex.
اگر می خواهید در هدر اطلاعات آپاچی و ورژن و ماژول آن رویت نشود از تگ زیر در آپاچی یا در .htaccess استفاده کنید
<IfModule mod_headers.c>
Header unset Server
RequestHeader unset Server
expose_php = Off
</IfModule>
mysql را به 5 بروزرسانی کنید این آپشن در whm نیز هست. برخی از دوستان گفتند وقتی اینکار رو می کنند در ساختن دیتابیس جدید یا نام کاربری برای دیتابیس مشکل دارند توصیه می شود درین صورت آپاچی و php را با Easyapache ری کامپایل کنید
cpanel را بروزرسانی کنید با /scripts/upcp
وقتی از vnc استفاده کردید و پورت های 1 2 3 4 ... رو باز کردید و کارتان تمام شد هم service vncserver stop کنید هم پورت هایش را ببندید
پورت های whm cpanel را در صورت امکان از 286 287 , 283 به پورتهای شخصی تغییر دهید
مطمئن باشید در php.ini شل کردن را منع کرده اید
اگر رسلر ساخته اید در resseler center مطمئن شوید شل کردن را به وی نداده اید
از اکانت root استفاده نکنید و یک گروه جدید بسازید و تحت آن بالا بیایید و apache را اجرا کنید
در easyapache مراقب باشید webdav را فعال نکرده باشید برای کسانی گفتم که الکی هرچیزی رو فعال میکنند با این کار علاوه بر توانایی Read در سرور توانایی نوشتن را هم به وی داده اید + توضیحات دیگر که فعلا وقتشو نداریم.
قبل از ارتقا پکیج یا مثلا php به آخرین نسخه مراقب باشید نسخه کامل پاشد هرچند بروزرسانی فراموش نشود.
اگر از یک آی پی استاتیک در منزل یا محل کار بهره می برید در آپاچی همه را محدود کنید و آی پی خود را فعال کنید جهت لاگین به root
قبل از بکاپ پیری اول مطمئن شوید همه چی خوب کار می کند اصولا در زمان رستور ما فکر می کنیم بکاپ قبلی یعنی آخر سلامت. پس سلامت سرویس خود را بررسی کنید و بکاپ بگیرید
از کافینت برای شل کردن یا remote استفاده نکنید
موارد تکمیلی دیگر بزودی تکمیل خواهد شد
با احترام
:53:
---------- Post added at 12:34 PM ---------- Previous post was at 11:47 AM ----------
تنظیمات سری 2:
پورت mysql رو به پورت دلخواه تغییر دهید و در فایروال نیز ان پورت را باز نمایید
vi /etc/my.cnf
port=5123
service mysqld restart
iptables -I INPUT -p tcp --dport 5905123 -j ACCEPT
پورت ssl رو از 22 به دلخواه تغییر داده و در فایروال پورت جدید را باز نمایید
در php.ini مقدار enable_dl برابر off باشد تا هر کاربر نتواند به ماژول های آپاچی دسترسی غیرمستقیم داشته باشد
بجای استفاده از ftp از secure ftp=sftp استفاده کنید و به کلیه مشتری ها تغییر را اطلاع دهید
مموری لیمیت و سی پی یو لیمیت داشته باشید تا هر کاربر کل سی پی یو و رم را نگیرد تا سرور دان شود RlimitCPU و RLINITRAM در مورد مقادیر آن باید بحث شود اما بنابه توانایی سرور خود و نوع مشتری ها ممکن است تنظیم متفاوت باشد
بنده سعی کردم برخی از مواردی رو که تشخیص دادم می توانند مفید باشد را ذکر کنم
هرچند موارد دیگر هم وجود دارد و بزودی تکمیل می گردد
از مد cfd در انتهای whm لینک ان security and firewall هست می توانید کمک بگیرید خودش پیشنهاد هم می دهد
مربوط به نظیمات teak و فایروال و محدودیت در php و وادار کردن به لاگین با Https برای cpanel و خواندن ایمیل ها
ضمنا سایت ها فقط با دامنه شان کار کنند و با ~user نتواند کار کند.
هر سایت به دامنه خودش محدود شود و از public_html خودش عقب تر را دسترسی نداشته باشد
open_basedir = /home/users/you/public_html
timeout کمتر از 60 ثانیه باشد
در php.ini فانکشن هایی را باید منع کنید عبارت disabled function
disable_functions = show_source, system, shell_exec, passthru, exec, phpinfo, popen, proc_open
چند تنظیم خوب دیگر:
Enable PHP basedir
safe_mode = 0
register_globals = 0
allow_url_fopen = 0
magic_quotes_gpc = 1
برای سطح دسترسی فولدرهای سایتتان :
chmode خوب
* PHP files: 644
* Config files: 666
* Other folders: 755
داخل فولدر مثلا ایمیج نتواند پی اچ پی آپلود شود مثلا توسط ویزیتور سایت لذا قابلیت اجرایی آن را بگیرید:
<Files ~ "\.(gif|jpe?g|png)$">
اینجا می توانیم یک شرط بگذاریم که در صورت اجرای فایل غیر معتبر به آدرس یکی از صفحات وب سایت ریدایرکت شود تا پیغام ما را ببیند
</Files>
فرض کنید صفحات با php نوشته شده ولی می خواهید الکی عنوان کنید که Asp است و بجای index.php می توانید بزنید index.asp هرچند پسوند asp در عمل در سایت شما وجود ندارد ولی با زدن هر asp معادل آن یعنی php اچرا می شود. لذا یک مایم تایپ جدید باید تعریف کنید
AddType application/x-httpd-php .asp .jsp
محدود کردن فقط به متدهای get و post در آپاچی
<Limit POST PUT DELETE>
</Limit>
<LimitExcept POST GET>
</LimitExcept>
چند تنظیم خوب در آپاچی هر کدام رو که خواستی اعمال کن:
<Directory>
options -Indexes
options -Includes
Options -ExecCGI
Options -FollowSymLinks
</Directory>
می گوید در هر فولدر دستور زیر را اعمال کن:
خط یک محتویات فولدر را نشان ندهد پس لازم نیست یه ایندکس خالی در هر فولدر بگذارید
حط 2 اینکلود سمت سرور از طریق آپاچی و htaccess ناممکن شود
خط سوم توانایی اجرا و رویت cgi را بگیرید و کلا در easyapache cgi را انتخاب نکنید و کامپایل کنید
خط آخر سیملینک را منع کنید
اگر خواستید توانایی تنظیم مجدد یا .htaccess را بگیرید در آچاپی باید تنظیم کنید
AllowOverride None
در آپاچی و اجرای php نیازی به این ماژول ها نیست می توانید غیرفعالشان کنید
mod_imap, mod_include, mod_info, mod_userdir, mod_status, mod_cgi, mod_autoindex.
اگر می خواهید در هدر اطلاعات آپاچی و ورژن و ماژول آن رویت نشود از تگ زیر در آپاچی یا در .htaccess استفاده کنید
<IfModule mod_headers.c>
Header unset Server
RequestHeader unset Server
expose_php = Off
</IfModule>
mysql را به 5 بروزرسانی کنید این آپشن در whm نیز هست. برخی از دوستان گفتند وقتی اینکار رو می کنند در ساختن دیتابیس جدید یا نام کاربری برای دیتابیس مشکل دارند توصیه می شود درین صورت آپاچی و php را با Easyapache ری کامپایل کنید
cpanel را بروزرسانی کنید با /scripts/upcp
وقتی از vnc استفاده کردید و پورت های 1 2 3 4 ... رو باز کردید و کارتان تمام شد هم service vncserver stop کنید هم پورت هایش را ببندید
پورت های whm cpanel را در صورت امکان از 286 287 , 283 به پورتهای شخصی تغییر دهید
مطمئن باشید در php.ini شل کردن را منع کرده اید
اگر رسلر ساخته اید در resseler center مطمئن شوید شل کردن را به وی نداده اید
از اکانت root استفاده نکنید و یک گروه جدید بسازید و تحت آن بالا بیایید و apache را اجرا کنید
در easyapache مراقب باشید webdav را فعال نکرده باشید برای کسانی گفتم که الکی هرچیزی رو فعال میکنند با این کار علاوه بر توانایی Read در سرور توانایی نوشتن را هم به وی داده اید + توضیحات دیگر که فعلا وقتشو نداریم.
قبل از ارتقا پکیج یا مثلا php به آخرین نسخه مراقب باشید نسخه کامل پاشد هرچند بروزرسانی فراموش نشود.
اگر از یک آی پی استاتیک در منزل یا محل کار بهره می برید در آپاچی همه را محدود کنید و آی پی خود را فعال کنید جهت لاگین به root
قبل از بکاپ پیری اول مطمئن شوید همه چی خوب کار می کند اصولا در زمان رستور ما فکر می کنیم بکاپ قبلی یعنی آخر سلامت. پس سلامت سرویس خود را بررسی کنید و بکاپ بگیرید
از کافینت برای شل کردن یا remote استفاده نکنید
موارد تکمیلی دیگر بزودی تکمیل خواهد شد
با احترام
:53:
---------- Post added at 12:34 PM ---------- Previous post was at 11:47 AM ----------
تنظیمات سری 2:
پورت mysql رو به پورت دلخواه تغییر دهید و در فایروال نیز ان پورت را باز نمایید
vi /etc/my.cnf
port=5123
service mysqld restart
iptables -I INPUT -p tcp --dport 5905123 -j ACCEPT
پورت ssl رو از 22 به دلخواه تغییر داده و در فایروال پورت جدید را باز نمایید
در php.ini مقدار enable_dl برابر off باشد تا هر کاربر نتواند به ماژول های آپاچی دسترسی غیرمستقیم داشته باشد
بجای استفاده از ftp از secure ftp=sftp استفاده کنید و به کلیه مشتری ها تغییر را اطلاع دهید
مموری لیمیت و سی پی یو لیمیت داشته باشید تا هر کاربر کل سی پی یو و رم را نگیرد تا سرور دان شود RlimitCPU و RLINITRAM در مورد مقادیر آن باید بحث شود اما بنابه توانایی سرور خود و نوع مشتری ها ممکن است تنظیم متفاوت باشد