1. این پایگاه به ثبت ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ایران رسیده است.

    مهمان عزیز سپاس بابت بازدید شما از تالار گفتگوی دهه هفتادی ها.

    عضویت در انجمن رایگان بوده و برای عموم باز میباشد . با صرف 30 ثانیه یکی از اعضای دهه هفتادی ها شوید .

نصب و پیكربندی سرویس دهنده وب آپاچی (بخش دوم)

شروع موضوع توسط saeid-ha ‏Aug 4, 2013 در انجمن اینترنت و شبکه

  1. saeid-ha

    saeid-ha belong to autumn !...

    3,098
    11,982
    1,894
    کنترل دسترسی‌ها در آپاچی

    سرویس‌دهنده آپاچی قادر به کنترل نحوه دسترسی به فایل‌ها و دایرکتوری‌ها از طریق درخواست‌های ارسال شده به سرویس‌دهنده می‌باشد. Directiveهایی که در تنظیم می‌شوند، بر روی همان دایرکتوری تحت پوشش خود عمل می‌نمایند. کلمه کلیدی Options تعیین کننده ویژگی‌هایی است که در آن کاربر هنگام دسترسی به دایرکتوری مورد نظر قادر به استفاده از آنهاست. همچنین می‌توانید تعیین کنید که دایرکتوری مورد نظر قادر به استفاده از فایل‌های htaccess. باشد یا خیر. این امر توسط کلمه کلیدی AllowOverride صورت می‌گیرد.


    AllowOverride AuthConfig
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec

    Order allow,deny
    Allow from all


    Order deny,allow
    Deny from all



    با استفاده از tagهای Limit قادر خواهید بود تا فرایند‌های خاصی را بر روی دایرکتوری خاصی محدود نمایید. از کلمه کلیدی order جهت تعیین ترتیب اولویت گزینه‌ها استفاده می‌شود. کلمات کلیدی Allow و Deny نیز جهت آزاد کردن یا محدود کردن فرایند‌ها استفاده می‌شود.

    برخی اوقات این امر اهمیت دارد تا دسترسی به دایرکتوری خاصی را محدود نمایید. ممکن است مایل باشید تا برای دسترسی به بخش خاصی، از کاربر درخواست کلمه و رمز عبور شود. به این قابلیت سرویس‌دهنده آپاچی کنترل دسترسی با استفاده از htaccess اطلاق می‌گردد. به این منظور ابتدا باید گزینه AccessFileName را در فایل پیکربندی httpd.conf فعال نمایید و یک فایل با همان نام در دایرکتوری مورد نظر که مایل به حفاظت از آن هستیدایجاد نمایید. توضیح اینکه گزینه AccessFileName بطور پیش‌گزیده در دبیان فعال می‌باشد.

    AccessFileName .htaccess

    سپس در فایل پیکربندی آپاچی باید کلمه کلیدی AllowOverride AuthConfig را همانگونه که در مثال بالا دیدید، برای دایرکتوری مورد نظرتان اضافه نمایید و در صورتی که این دایرکتوری در آن معرفی نشده است، باید آنرا مطابق مثال بالا در فایل پیکربندی آپاچی اضافه کنید. در زیر محتویات یک فایل htaccess. برای مثال نشان داده شده است:

    AuthUserFile /var/www/rest/.htpasswd
    AuthGroupFile /dev/null
    AuthName "Authentication Required"
    AuthType Basic
    Require valid-user

    کلمه کلیدی AuthUserFile نشان دهنده محل فایل حاوی کلمه عبور کاربر می‌باشد. AuthGroupFile نشان دهنده محل فایل گروه کابرانی است که می‌توانند به این محل دسترسی پیدا کنند. AuthName نشان‌دهنده نام یا عنوان احراز هویت است. AuthType نیز نشانگر نوع احراز هویت است که می‌تواند از نوع Basic، Digest یا انواع مرتبط با بانک‌های اطلاعاتی باشد. بخش Require نیز نوع درخواست سیستم احراز هویت را تعیین می‌کند و می‌تواند حاوی user و نام یک یا چند کاربر، valid-user در صورتی که فایل کلمه عبور حاوی تعداد زیادی نام کاربری است و group و نام گروه‌هایی که نیاز به اجازه دسترسی به آنها وجود دارد باشد. برای مثال در مورد کاربران:

    Require user alan armen

    جهت ایجاد یک فایل کلمات عبور باید از دستور htpasswd استفاده نمایید:

    # htpasswd -c .htpasswd alan

    این دستور یک فایل کلمه عبور به نام htpasswd. و یک کاربر به نام alan ایجاد نموده و از شما درخواست خواهد کرد تا کلمه عبور آنرا نیز تعریف نمایید. از نظر امنیتی بکارگیری احراز هویت نوع Basic جهت امور حساس چندان مناسب نیست، زیرا با اینکه کلمات عبور در فایل‌های حاوی آن با رمزنگاری MD5 ذخیره می‌شوند، تبادل نام کاربری و کلمه عبور بین سرویس‌دهنده و سرویس‌گیرنده با استفاده از متن ساده انجام می‌گیرد و در صورت وجود sniffer می‌تواند خوانده شود. در این گونه موارد باید از نوع Digest استفاده شود. برای استفاده از این قابلیت باید ماژول mod_auth_digest در سرویس‌دهنده فعال شود. به این منظور می‌توانید از دستور زیر استفاده کنید:

    # apache-modconf apache enable mod_auth_digest

    سپس فایل htaccess. را مانند مثال زیر ویرایش نمایید:

    AuthType Digest
    AuthName "Private"
    AuthDigestFile /var/www/rest/.htdigest
    Require valid-user

    و فایل htdigest. را نیز ایجاد نمایید:

    # htdigest -c .htdigest auth alan

    البته توجه داشته باید تبادل digest در برخی از مرورگرها پشتیبانی نمی‌شود، بنابراین برای حداکثر سازگاری بهتر است از SSL به همراه htaccess استفاده نمایید.

    گروه‌ها در فایل‌ها htaccess هنگامی اهمیت پیدا می‌کنند که شما تعداد زیادی کاربر داشته باشید که هر یک باید به محل‌های خاصی بر روی سرویس‌دهنده دسترسی داشته باشند. به این صورت می‌توانید یک فایل مرکزی htpasswd ایجاد کرده و با گروه‌بندی کاربران، دسترسی‌های آنها را به محل‌های مناسب امکان‌پذیر نمایید. با استفاده از کلمات کلیدی AuthGroupFile که نشاندهنده فایل حاوی گروه‌ها و نام‌های کاربری است و Require group استفاده نمایید.

    فایل گروه یک فایل متنی است که با نام گروه و یک کالن شروع شده و کاربران عضو گروه به دنبال هم در آن قرار می‌گیرند:

    dev-group: alan armen
    sup-group: nick jake

    برای اینکه احراز هویت با استفاده از فایل گروه صورت گیرد، می‌توان فایل htaccess. مثال بالا را به صورت زیر تغییر داد:

    AuthUserFile /var/www/rest/.htpasswd
    AuthGroupFile /var/groups
    AuthName "Authentication Required"
    AuthType Basic
    Require group dev-group

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




    Virtual Hosting در آپاچی

    ویژگی‌های Virtual Hosting آپاچی به منظور بکارگیری در سرویس‌دهنده‌های فضای اینترنتی استفاده می‌شود. به عنوان یک سرویس‌دهنده حانگی یا اداری کوچک، احتمالا شما نیازی نخواهید داشت تا از این قابلیت سرویس‌دهنده آپاچی استفاده نمایید. هنگامی که اینترنت را می‌بینید، هر سرویس‌دهنده وب عهده‌دار ارائه سرویس جهت دامنه‌های متعددی است. این امکان را قابلیتی در Apache به عنوان Virtual Hosting فراهم می‌سازد. جهت فعال کردن این قابلیت شما باید از گزینه NameVirtualHost به همراه آدرس IP و یا درگاهی که مایل هستید Virtual Hosting روی آن فعال شود، استفاده نمایید. مثال زیر یک Virtual Hosting را نمایش می‌دهد:

    NameVirtualHost 212.68.80.137
    VirtualHost 212.68.80.137>
    ServerName

    برای مشاهده لینک ها لطفا ثبت نام کنید و یا اگر حساب کاربری دارید وارد شوید


    ServerAlias technotux.com
    ServerAdmin postmaster@technotux.com
    DocumentRoot /home/technotux/public_html


    در صورتی که مایل هستید جهت هر آدرس IP یک دامنه جداگانه اختصاص دهید، نیازی به استفاده از گزینه NameVirtualHost نیست و در خط مربوط به VirtualHost نیز باید نام دامنه را بجای آدرس IP وارد نمایید.
    قابلیت Virtual Hosting آپاچی این امکان را نیز فراهم می‌سازد تا بتوانید فایل‌های ثبت رخداد سفارشی و خاص هر سایت نیز ایجاد نمایید:

    ErrorLog logs/host.some_domain.com-error.log
    CustomLog logs/host.some_domain.com-access.log common




    فایل پیکربندی modules.conf

    قابلیت‌های مختلف سرویس‌دهنده آپاچی و پشتیبانی از زبان‌ها و اسکریپت‌های مختلف در آن از طریق قطعاتی بنام ماژول صورت می‌گیرد. فایل modules.conf جهت اضافه کردن و ویرایش ماژول‌های فعال در سرویس‌دهنده می‌باشد. دستوری به نام apache-modconf وجود دارد که با استفاده از آن قادر هستید تا ماژول‌ها را در سرویس‌دهنده دبیان خود مدیریت نمایید. البته بسیاری از بسته‌های نرم‌افزاری مانند php4 هنگام نصب این فایل را برای شما تنظیم می‌کنند:

    # apache-modconf
    Error: /usr/sbin/apache-modconf has been called with invalid parameters
    Usage: /usr/sbin/apache-modconf apache|apache-perl|apache-ssl [enable ]
    /usr/sbin/apache-modconf apache|apache-perl|apache-ssl [disable ] [quiet]
    /usr/sbin/apache-modconf apache|apache-perl|apache-ssl [query
    توجه داشته باشید که این دستور و سایر دستورات مدیریتی آپاچی تنها توسط کاربر ریشه قابل اجرا می‌باشند