تور لحظه آخری
امروز : چهارشنبه ، 12 دی 1403    احادیث و روایات:  پیامبر اکرم (ص):آيا به چيزى با فضيلت تر از نماز و روزه و صدقه (زكات) آگاهتان نكنم؟ و آن اصلاح ميان م...
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

صرافی ارکی چنج

صرافی rkchange

سایبان ماشین

دزدگیر منزل

اجاره سند در شیراز

armanekasbokar

armanetejarat

صندوق تضمین

Future Innovate Tech

پی جو مشاغل برتر شیراز

خرید یخچال خارجی

موسسه خیریه

واردات از چین

حمية السكري النوع الثاني

ناب مووی

دانلود فیلم

بانک کتاب

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

طراحی سایت تهران سایت

irspeedy

درج اگهی ویژه

تعمیرات مک بوک

دانلود فیلم هندی

قیمت فرش

درب فریم لس

خرید بلیط هواپیما

بلیط اتوبوس پایانه

تعمیرات پکیج کرج

لیست قیمت گوشی شیائومی

خرید فالوور

پوستر آنلاین

بهترین وکیل کرج

بهترین وکیل تهران

خرید از چین

خرید از چین

تجهیزات کافی شاپ

خرید سرور اچ پی ماهان شبکه

کاشت ابرو طبیعی و‌ سریع

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

لوله و اتصالات آذین

قرص گلوریا

نمایندگی دوو در کرج

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

مهاجرت به آلمان

بهترین قالیشویی تهران

بورس کارتریج پرینتر در تهران

تشریفات روناک

نوار اخطار زرد رنگ

ثبت شرکت فوری

تابلو برق

خودارزیابی چیست

فروشگاه مخازن پلی اتیلن

قیمت و خرید تخت برقی پزشکی

کلینیک زخم تهران

خرید بیت کوین

خرید شب یلدا

پرچم تشریفات با کیفیت بالا و قیمت ارزان

کاشت ابرو طبیعی

پرواز از نگاه دکتر ماکان آریا پارسا

پارتیشن شیشه ای اداری

اقامت یونان

خرید غذای گربه

رزرو هتل خارجی

تولید کننده تخت زیبایی

مشاوره تخصصی تولید محتوا

سی پی کالاف

دوره باریستا فنی حرفه ای

چاکرا

استند تسلیت

تور بالی نوروز 1404

سوالات لو رفته آیین نامه اصلی

کلینیک دندانپزشکی سعادت آباد

پی ال سی زیمنس

دکتر علی پرند فوق تخصص جراحی پلاستیک

 






آمار وبسایت

 تعداد کل بازدیدها : 1848306759




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

امنیت برتر در سرورهای Apache


واضح آرشیو وب فارسی:تبیان: امنیت برتر در سرورهای Apacheاین مقاله به صورت قدم به قدم به شما نحوه نصب و تنظیم نمودن وب سرورهای آپاچی نسخه1.3.xجهت امنیت بالاتر را نشان می دهد كه سعی شده جزئیات كار به خوبی مورد بررسی قرار بگیرد .قبل از اینكه ما مرحله امنیت وب سرور آپاچی را مورد بررسی قرار دهیم باید این را مشخص نماییم كه چه استفاده ای از سرور را خواهیم نمود . متنوع بودن استفاده از وب سرورهای آپاچی نوشتن یك روند جهانی جهت امنیت این سرور را بسیار مشكل می سازد . به همین دلیل است كه در این مقاله ما چنین وب سروری با چنین شرایطی را در نظر می گیریم :این وب سرور از طریق اینترنت قابل دسترسی استفقط صفحات اچ-تی-ام-ال ثابت در آن قرار می گیرداین سرور مكانیزم هاستینگ مجازی را پشتیبانی خواهد نمودصفحات مهم وب سایت فقط از طریق یك آدرسIPمخصوص و یا كاربران خاص مورد استفاده قرار می گیرد (Basic authentication)این سرور همه درخواست های دریافتی را ضبط می كند ( شامل اطلاعاتی در مورد مرورگرهای وب نیز خواهد شد ) از این جهت قابل تاكید است كه كه مدل ذكر شده در بالا PHP, JSP, CGI و دیگر تكنولوژی هایی كه امكان تداخل با سرویس های وب سرور را دارد را پشتیبانی نمی كند . استفاده از تكنولوژی هایی كه در بالا ذكر شد با این كه در دنیای امروز مورد احتیاج هسنتد ممكن است یك ریسك امنیتی بزرگ در امنیت باشد كه قابل ذكر است یك اسكریپت كوچك می تواند امنیت سرور را به كلی كاهش دهد . ولی چرا ؟ باید بگم اسكریپت های كاربردی ASP/CGIممكن است دارای حفره های امنیتی باشد ( مانندSQL Injection , CSS ). دوم این تكنولوژی ها ممكن است خود نیز دارای مشكل باشد (  مانند آسیب پذیری های ماژول هایPHP, Perlو ... ) به همین دلیل است استفاده از این تكنولوژی ها را زمانی پیشنهاد می شود كه واقعا مورد احتیاج باشند .فرض های امنیتییكی از مهم ترین موارد در هر پروژه كامپیوتری توجه به فرض های امنیتی است ( با  توجه به توضیحاتی كه در زیر آورده می شود این موضوع به راحتی قابل تحلیل است )  و این فرض ها باید قبل از اینكه یك پروژه به انجام برسد در نظر گرفته شود . فرض های امنیتی كه ما جهت وب سرورمان در نظر گرفته ایم این ها هستند :سیستم عامل باید تا آنجایی كه امكان دارد از نظر امنیت مورد بررسی قرار گرفته باشد و مشكلات امنیتی ان برطرف گردد ( هم در مقابل حملات داخلی و هم ریموت )وب سرور نباید هیچ سرویس دیگری غیر از سرویس اچ-تی-تی-پی را ارائه دهددسترسی ریموت به سرور باید توسط یك فایروال كنترل گرددسرویس آپاچی باید تنها سرویسی باشد كه در سیستم وجود داردفقط ماژول های آپاچی آن هایی كه مورد احتیاج هستند باید فعال باشندپروسه های آپاچی باید دسترسی محدود شده به فایل های سیستمی داشته باشندنصب سیستم عاملقبل از نصب وب سرور آپاچی ما باید یك سیستم عامل را انتخاب نماییم . سرور آپاچی می تواند بر روی بیشتر سیستم عامل ها كامپایل و نصب شود . بیشتر مقاله بر روی امنیت وب سرور آپاچی در سیستم عامل FreeBSD ( نسخه 4.7 ) تاكید دارد ولی سعی شده تا آن جا كه امكان داشته روش های به گونه ای باشند كه در بیشتر سیستم عامل ها قابل استفاده باشد . من استفاده از سیستم عامل ویندوز را پیشنهاد نمی كنم چون جهت بالا بردن امنیت آپاچی سازگاری كمی دارد .اولین قدم در بالا بردن امنیت وب سرور , رفع مشكلات امنیتی سیستم عامل به طور كامل است كه البته مقالات بسیاری بر روی اینترنت جهت این كار موجود است .خوب بعد از اینكه سیستم عامل نصب شد و مشكلات امنیتی آن رفع گردید ما باید یك گروه جدید ( Apache ) را به پروسه ها اضافه كنیم ( مثال زیر این روند را در FreeBSD نشان می دهد ) pw groupadd apache   pw useradd apache -c "Apache Server" -d /dev/null -g apache -s  /sbin/nologin به طور پیش فرض پروسه های آپاچی با سطح دسترسیnobody( به غیر از پروسه اصلی آن كه با سطح دسترسی روت اجرا می شود ) اجرا می شوند كه این نیز خود یك مشكل امنیتی است .اما نرم افزارها ...قدم بعدی دریافت آخرین نسخه http://httpd.apache.org وب سرور آپاچی است . كه بعضی از تنظیمات این سرور در هنگام كامپایل قابل تغییر است به همین دلیل این حائز اهمیت است كه سورس آن را در مقابل نسخه باینری دریافت نمایید .اما بعد از دریافت ما باید تصمیم بگیریم كه چه ماژول هایی از سرور فعال شوند و توضیح كوتاهی در این مورد در http://httpd.apache.org/docs/mod قابل مشاهده است .ماژول های آپاچیانتخاب ماژول های این سرور از موارد مهم در امنیت سرور است. ما باید این قانون را مورد توجه قرار دهیم ( هر چه كم تر , بهتر ! ) . اما جهت روند امنیتی ماژول هایی كه مورد احتیاج هستند در اینجا ذكر شده ‌:نام ماژولشرحhttpd_coreدیگر ماژول های آپاچی باید غیرفعال شوند . این ارزش را دارد كه بگویم دو ماژول آپاچی وجود دارند كه خطرناك تر از دیگر ماژول ها هستند : و mod_autoindex mod_info  . اولین ماژول فراهم كننده directory indexing به صورت خودكار است و صورت پیش فرش فعال شده است . این براحتی قابل متوجه شدن است كه این ماژول نصب شده است یا نه ( برای مثال http://server_name/icons ) و محتوای دایركتوری ها را ببینیم و دومین ماژول mod_info هرگز نیاید از طریق اینترنت قابل دسترسی باشد به این دلیل كهسترسی به تنظیمات سرور را امكان پذیر می سازد.سوال بعدی چگونگی كامپایل ماژول ها است . روش ثابت راه حل مناسب تری به نظر می رسد .كامپایل نمودن نرم افزاراول از همه باید بگویم اگر :: پچ امنیتی جدیدی وجود داشت :: باید بروز رسانده شود بعد از آن باید سرور كامپایل شود و از این طریق نصب شود :./configure --prefix=/usr/local/apache --disable-module=all --server-      uid=apache --server-gid=apache --enable-module=access --enable-      module=log_config --enable-module=dir --enable-module=mime --enable-module=auth make su umask 022 make install chown -R root:sys /usr/local/apacheاما مرحله بعد ...قدم بعدی محدود نمودن دسترسی پروسه های آپاچی به فایل های سیتمی است. ما این كار را از طریق ایجاد یك دایركتوری روت جدید در دایركتوری   /chroot/httpd انجام می دهیم :مالك همه دایركتوری های بالا باید روت باشد و سطح دسترسی باید به 0755 تغییر یابد . بعد ما یك فایل دیوایسرا ایجاد می كنیم :ls -al /dev/null   crw-rw-rw-   1  root wheel   2,  2 Mar 14 12:53 /dev/null mknod /chroot/httpd/dev/null c 2 2 chown root:sys /chroot/httpd/dev/null chmod 666 /chroot/httpd/dev/nullیك روش دیگر نیز باید استفاده شود تا /chroot/httpd/dev/log ایجاد شود كه هم چنین برای اینكه سرور به درستی كار كند . به دلیل اینكه سیستم FreeBSD است این لاین باید به/etc/rc.conf اضافه شود :syslogd_flags="-l /chroot/httpd/dev/log"ما برای اینكه تغییرات انجام بپذیرد باید سیستم را ری استارت نماییم . البته جهت ایجاد /chroot/httpd/dev/log در سیستم عامل های دیگر باید به راهنمای دیگر در مورد syslogd مراجعه كنیم .قدم بعدی كپی httpd به یك دایركتوری جدید همراه با همه باینری ها و فایل لایبرری است  . جهت این كار باید لیستی از فایل های مورد نیاز را تهیه كنیم . ما می توانیم یك لیست را با چنین دستوراتی تهیه نماییم :دستوراجرا در محیطشرحlddهمهمثال هایی از استفاده از دستورهای ldd وstrings و truss :localhost# ldd /usr/local/apache/bin/httpd /usr/local/apache/bin/httpd:         libcrypt.so.2 => /usr/lib/libcrypt.so.2 (0x280bd000)         libc.so.4 => /usr/lib/libc.so.4 (0x280d6000) localhost# strings /usr/local/apache/bin/httpd | grep lib /usr/libexec/ld-elf.so.1 libcrypt.so.2 libc.so.4 localhost# truss /usr/local/apache/bin/httpd | grep open (...) open("/var/run/ld-elf.so.hints",0,00) = 3 (0x3) open("/usr/lib/libcrypt.so.2",0,027757775370)    = 3 (0x3) open("/usr/lib/libc.so.4",0,027757775370) = 3 (0x3) open("/etc/spwd.db",0,00) = 3 (0x3) open("/etc/group",0,0666) = 3 (0x3) open("/usr/local/apache/conf/httpd.conf",0,0666) = 3 (0x3) (...)دستورات بالا نه تنها جهت httpd باید اجرا شوند بلكه جهت همه باینری ها و لایبرری ها مورد احتیاج هستند . به دلیل اینكه سیستم عامل ماcp /etc/hosts /chroot/httpd/etc/ cp /etc/host.conf /chroot/httpd/etc/ cp /etc/resolv.conf /chroot/httpd/etc/ cp /etc/group /chroot/httpd/etc/ cp /etc/master.passwd /chroot/httpd/etc/passwords cp /usr/local/apache/conf/mime.types /chroot/httpd/usr/local/apache/conf/دقت كنید كه در /chroot/httpd/etc/passwords ما باید همه لاین ها را به غیر از nobody و apache را حذف كنیم . در یك جای دیگر ما باید چنین عملی را نیز دوباره در/chroot/httpd/etc/group تكرار كنیم  . سپس ما باید بانك اطلاعاتی پسورد ها را این گونه بسازیم :cd /chroot/httpd/etc pwd_mkdb -d /chroot/httpd/etc passwords rm -rf /chroot/httpd/etc/master.passwdقدم بعدی این است كه تست كنیم كه آیا httpd به درستی كار می كند یا نه . جهت انجام این كار ما باید فایل تنظیمات آپاچی وindex.htmlcp /usr/local/apache/conf/httpd.conf /chroot/httpd/usr/local/apache/co nf/ cp /usr/local/apache/htdocs/index.html.en /chroot/httpd/www/index.htmlبعد از كپی فایل های مورد احتیاج ما باید DocumentRoot رو همین طور كه در زیر نشان داده شده تغییر دهیم :DocumentRoot"/www"سپس سرور را اجرا كنیم :chroot /chroot/httpd /usr/local/apache/bin/httpdاگر با مشكلی برخورد نمودید من پیشنهاد می كنم فایل ضبط كننده وقایع (chroot/httpd/usr/local/apache/logs) را آنالیز كنید . از راه دیگر چنین فرمانی نیز می تواند به كار برده شود:truss chroot /chroot/httpd /usr/local/apache/bin/httpdاین فرمان می تواند دلیل مشكل ایجاد شده را نشان دهد . بعد از رفع مشكل همه خطاها ما می توانیم سرور را تنظیم نماییم .تنظیم نمودن سرورقدم اول حذف فایل/chroot/httpd/usr/local/apache/conf/httpd.conf است و جایگزین یك فایل جدید به جای آن است . محتوای فایل باید :# ================================================= # Basic settings # ================================================= ServerType standalone ServerRoot "/usr/local/apache" PidFile /usr/local/apache/logs/httpd.pid ScoreBoardFile /usr/local/apache/logs/httpd.scoreboard ResourceConfig /dev/null AccessConfig /dev/null # ================================================= # Performance settings # ================================================= Timeout 300 KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 15 MinSpareServers 5 MaxSpareServers 10 StartServers 5 MaxClients 150 MaxRequestsPerChild 0 # ================================================= # Apaches modules # ================================================= ClearModuleList AddModule mod_log_config.c AddModule mod_mime.c AddModule mod_dir.c AddModule mod_access.c AddModule mod_auth.c # ================================================= # General settings # ================================================= Port 80 User apache Group apache ServerAdmin [email protected] UseCanonicalName Off ServerSignature Off HostnameLookups Off ServerTokens Prod     DirectoryIndex index.html DocumentRoot "/www/vhosts" # ================================================= # Access control # =================================================     Options None     AllowOverride None     Order deny,allow     Deny from all     Order allow,deny     Allow from all     Order allow,deny     Allow from all # ================================================= # MIME encoding # =================================================     TypesConfig /usr/local/apache/conf/mime.types DefaultType text/plain     AddEncoding x-compress Z     AddEncoding x-gzip gz tgz     AddType application/x-tar .tgz # ================================================= # Logs # ================================================= LogLevel warn LogFormat "%h %l %u %t /"%r/" %>s %b /"%{Referer}i/" /"%{User-Agent}i/"" combined LogFormat "%h %l %u %t /"%r/" %>s %b" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent ErrorLog /usr/local/apache/logs/error_log CustomLog /usr/local/apache/logs/access_log combined # ================================================= # Virtual hosts # ================================================= NameVirtualHost * DocumentRoot "/www/vhosts/www.ebank.lab" ServerName "www.ebank.lab" ServerAlias "www.e-bank.lab" ErrorLog logs/www.ebank.lab/error_log CustomLog logs/www.ebank.lab/access_log combined DocumentRoot "/www/vhosts/www.test.lab" ServerName "www.test.lab" ErrorLog logs/www.test.lab/error_log CustomLog logs/www.test.lab/access_log combinedتنظیمات ارائه شده در بالا شامل فرمان هایی می گردد كه جهت فعالیت سرور و امنیت آن مورد احتیاج است . دو هاست مجازی وجود دارند كه توسط سرور پشتیبانی شده اند :- http://www.ebank.lab (www.e-bank.lab) - http://www.test.labمحتوای وب سایت های بالا به طور فیزیكی در این دایركتوری ها وجود دارد :- /chroot/httpd/www/vhosts/www.ebank.lab - /chroot/httpd/www/vhosts/www.test.labو هر وب سایت لاگ فایل مخصوص به خود را دارد كه در این دایركتوری هستند‌:- /chroot/httpd/usr/local/apache/logs/www.ebank.lab - /chroot/httpd/usr/local/apache/logs/www.test.labاین دایركتوری ها قبل از اینكه سرور آپاچی برای اولین بار اجرا می شود باید ایجاد شوند . مالك این دایركتوری ها باید به root:sys است شود و سطح دسترسی به 0755 تغییر یابد .حال اگر فایل تنظیمات آپاچی را با نسخه ای كه در اینجا ارائه شد مقایسه كنیم چنین تغییراتی را می بینیم كه به چندی از آن ها اشاره می كنم :تعدادی از ماژول های فعال آپاچی كاهش یافتآپاچی اطلاعاتی بیشتری را در مورد درخواست ها لاگ خواهد نمودآپاچی فقط دسترسی به فایل و دایركتوری ها را امكان پذیر میسازد كه در فایل تنظیمات مشخص شده استو ...قدم بعدی ایجاد یك استارت آپ اسكرپت "apache.sh" است كه محتوای آن باید :#!/bin/shCHROOT=/chroot/httpd/HTTPD=/usr/local/apache/bin/httpdPIDFILE=/usr/local/apache/logs/httpd.pidecho -n " apache"case "$1" instart)/usr/sbin/chroot $CHROOT $HTTPD;;stop)kill `cat ${CHROOT}/${PIDFILE}`;;*)echo ""echo "Usage: `basename $0` {start|stop}" >&2exit 64;;esacexit 0كه این اسكرسپت باید به دایركتوری مربوطه كپی شود كه بستگی به نوع سیستم عامل دارد . مثلا در FreeBSD دایركتوری مربوطه /usr/local/etc/rc.d می باشدحال این مقاله می تواند در بالا بردن امنیت سرورهای آپاچی بسیار مفید باشد ...برگرفته از سایت www.iritn.com




این صفحه را در گوگل محبوب کنید

[ارسال شده از: تبیان]
[مشاهده در: www.tebyan.net]
[تعداد بازديد از اين مطلب: 515]

bt

اضافه شدن مطلب/حذف مطلب







-


گوناگون

پربازدیدترینها
طراحی وب>


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