اطلاعیه

بستن
No announcement yet.

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

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

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

    بحث امنیت وب سرورها یکی از مباحث بسیار مهم است که شاید بتوان آن را بعنوان نگرانی درجه اول یک مدیر سیستم قلمداد کرد. در ادامه این مقاله به ارائه راهحلهایی برای ایمن کردن وب سرور آپاچی در برابر تعدادی از معمولترین حملات شناخته شده میپردازیم. دستورات ارائه شده مبتنی بر پکیج منیجر توزیع اوبونتو هستند ولی هیچ یک اختصاصی نبوده و با کمی جستجو میتوانید دستورات مربوط به گنو/لینوکس سرور خود را بیابید.

    در این راهنما فرض بر این است که شما سیستمعامل Ubuntu server را بر روی سرور خود نصب کردهاید، پیکربندی شبکه انجام شده و به SSH دسترسی دارید.

    Apache2 وبسرور مورد استفاده پیشفرض در فرایند نصب بسیاری از لینوکسهاست. گرچه آپاچی تنها گزینه موجود و نیز همیشه بهترین انتخاب برای شرایط مختلف نیست، ولی بسیاری از موارد استفاده را بخوبی پوشش میدهد. ممکن است در فرآیند نصب، سیستم از شما بخواهد که وبسرور مورد نظر خود را برای پیکربندی مجدد مشخص کنید که باید apache2 را معرفی کنید.

    نصب Apache2 :
    برای نصب آپاچی2 و دیگر کتابخانههای مورد نیاز دستور زیر را اجرا کنید.
    کد PHP:
    sudo apt-get -y install apt-get install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt libapache2-mod-suphp libopenssl-ruby libapache2-mod-ruby 
    بروز رسانی منطقه زمانی و بررسی زمان صحیح :
    به منظور کاهش تداخل و اشتباهات در اطلاعات share شده و mirror شده لازم است تمامی سرورها تا جای ممکن با یکدیگر همگام باشند. بعضی مسائل در مدیریت سرور نیاز به دقیق بودن زمان سیستم دارند. و اگر این سرور قرار است مربوط به یک شرکت بزرگ باشد قوانین سختگیرانهای در مورد ثبت دقیق زمان رویدادها در این مورد وجود دارد.

    کد PHP:
    sudo apt-get -y install openntpd tzdata 
    کد PHP:
    sudo dpkg-reconfigure tzdata 
    کد PHP:
    sudo service openntpd restart 
    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	11079535176_cf2e3ebc4a_z.jpg نمایش ها:	1 اندازه:	92.7 KB شناسه:	18065


    غیرفعال کردن تداخلهای AppArmor :
    اگرچه AppArmor مجموعهایست که بصورت پیشفرض یک سری لایههای امنیتی اضافی را ارائه میکند، ترجیح بر این است که برای هر سیستم پروفایلهای اختصاصی با تنظیمات مناسب ایجاد شود که کار چندان سادهای نیست و باید در مقاله دیگری به آن پرداخت. پس فعلا برای جلوگیری از هرگونه تداخل با پیکربندیهای پیشفرض AppArmor را غیرفعال میکنیم.

    کد PHP:
    sudo /etc/init.d/apparmor stop 
    کد PHP:
    sudo update-rc.-f apparmor remove 
    کد PHP:
    sudo apt-get remove apparmor apparmor-utils 

    جلوگیری از حملات DDoS :
    حملات DDoS یکی از مسائل مهم مورد توجه در بحث امنیت سرور است و اگر از آن غافل باشید به سادگی میتواند منابع اساسی سرور شما را بلعیده و آن را از کار بیاندازد. برای جلوگیری این مساله از یک ماژول آپاچی استفاده میکنیم.
    کد PHP:
    html-scriptfalse ]$ sudo apt-get -y install libapache2-mod-evasive
    sudo mkdir -/var/log/apache2/evasive
    sudo chown -R www-data:root /var/log/apache2/evasive 
    سپس دستور زیر را وارد کنید تا فایل mod-evasive.load باز شود.

    کد PHP:
    html-scriptfalse ]$ sudo nano /etc/apache2/mods-available/mod-evasive.load 
    و در انتهای آن کدهای زیر را وارد کرده و ذخیره کنید.
    کد PHP:
    html-scriptfalse ]DOSHashTableSize 2048
    DOSPageCount 20            
    # maximum number of requests for the same page
    DOSSiteCount 300           # total number of requests for any object by the same client IP on the same listener
    DOSPageInterval 1.0        # interval for the page count threshold
    DOSSiteInterval 1.0        # interval for the site count threshold
    DOSBlockingPeriod 10.0     # time that a client IP will be blocked for
    DOSLogDir “/var/log/apache2/evasive”
    DOSEmailNotify admin
    @domain.com 
    جلوگیری از حملات Slowloris :

    برای پیشگیری از حملات Slowloris نیز ماژول مخصوصی برای آپاچی وجود دارد. توجه داشته باشید که نام ماژول بسته به اینکه از کدام نسخه اوبونتو استفاده میکنید متفاوت است. برای اوبونتو 12.10 به بعد :

    کد PHP:
    html-scriptfalse ]$ sudo apt-get -y install libapache2-mod-qos 
    سپس پیکربندی موجود در فایل qos.conf را بررسی کنید.
    کد PHP:
    html-scriptfalse ]## QoS Settings
    <IfModule mod_qos.c>
        
    # handles connections from up to 100000 different IPs
        
    QS_ClientEntries 100000
        
    # will allow only 50 connections per IP
        
    QS_SrvMaxConnPerIP 50
        
    # maximum number of active TCP connections is limited to 256
        
    MaxClients              256
        
    # disables keep-alive when 70% of the TCP connections are occupied:
        
    QS_SrvMaxConnClose      180
        
    # minimum request/response speed (deny slow clients blocking the server,    
        # ie. slowloris keeping connections open without requesting anything):
        
    QS_SrvMinDataRate       150 1200
        
    # and limit request header and body (carefull, that limits uploads and
        # post requests too):
        # LimitRequestFields      30
        # QS_LimitRequestBody     102400
    </IfModule&gt
    نکته: اگر نسخه اوبونتو شما قبل از 12.04 است از این دستور استفاده کنید :

    کد PHP:
     sudo apt-get -y install libapache2-mod-antiloris 
    سپس فایل antiloris.conf را باز کنید.

    کد PHP:
    html-scriptfalse ]$ sudo nano /etc/apache2/mods-available/antiloris.conf 
    و پیکربندی آن را بررسی کنید.
    کد PHP:
    html-scriptfalse ]<IfModule mod_antiloris.c>
        
    # Maximum simultaneous connections in READ state per IP address
        
    IPReadLimit 5
    </IfModule&gt
    جلوگیری از جملات DNS Injection :
    Spamhaus ماژولی است که به منظور بلوک کردن پخش اسپم از طریق فرمها از DNSBL بهره میبرد. این ماژول امکان تزریق به URL را از بین برده و حملات DDoS از طریق HTTP را نیز بلوک کرده و در مجموع سرور را از آی پی های بد شناخته شده محافظت میکند.
    کد PHP:
    html-scriptfalse ]$ sudo apt-get -y install libapache2-mod-spamhaus
    sudo touch /etc/spamhaus.wl 
    فایل apache2.conf را باز کنید.

    کد PHP:
    html-scriptfalse ]$ sudo nano /etc/apache2/apache2.conf 
    و کدهای زیر را به آنتهای آن اضافه کنید.
    کد PHP:
    html-scriptfalse ]<IfModule mod_spamhaus.c>
      
    MS_METHODS POST,PUT,OPTIONS,CONNECT
      MS_WhiteList 
    /etc/spamhaus.wl
      MS_CacheSize 256
    </IfModule&gt
    و در نهایت سرویس آپاچی را Restart نمایید تا ماژولهای جدید لود شوند.

    کد PHP:
    html-scriptfalse ]$ sudo service apache2 restart 
    اکنون وبسرور نصب شده و آماده استفاده است. در مرورگر آدرس دامین خود را وارد کنید تا پیغام کارکرد صحیح پیشفرض آپاچی را مشاهده نمایید. بعنوان آخرین نکته دستور زیر را اجرا کرده و اطمینان حاصل کنید سرور پیغام خطایی ارائه نکرده باشد. اگر به ارور برخورد کردید ابتدا سعی کنید در گوگل به جستجوی آن بپردازید و در نهایت مشکل خود را در مکان مناسب مطرح کنید.

    کد PHP:
    html-scriptfalse ]$ sudo tail -200 /var/log/syslog 
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 01-13-2020, 02:55 AM.

درباره انجمن منطقه لینوکسی ها

انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

شبکه های اجتماعی

ایمیل مدیریت

Habili@linux-zone.org

در حال انجام ...
X