|
From Shabgard.ORG
تخصصی
کنترل دسترسیها در آپاچی سرویسدهنده آپاچی قادر به کنترل نحوه دسترسی به فایلها و دایرکتوریها از طریق درخواستهای ارسال شده به سرویسدهنده میباشد. Directiveهایی که در تنظیم میشوند، بر روی همان دایرکتوری تحت پوشش خود عمل مینمایند. کلمه کلیدی Options تعیین کننده ویژگیهایی است که در آن کاربر هنگام دسترسی به دایرکتوری مورد نظر قادر به استفاده از آنهاست. همچنین میتوانید تعیین کنید که دایرکتوری مورد نظر قادر به استفاده از فایلهای htaccess. باشد یا خیر. این امر توسط کلمه کلیدی AllowOverride صورت میگیرد. <Directory /var/www/rest> با استفاده از tagهای Limit قادر خواهید بود تا فرایندهای خاصی را بر روی دایرکتوری خاصی محدود نمایید. از کلمه کلیدی order جهت تعیین ترتیب اولویت گزینهها استفاده میشود. کلمات کلیدی Allow و Deny نیز جهت آزاد کردن یا محدود کردن فرایندها استفاده میشود. برخی اوقات این امر اهمیت دارد تا دسترسی به دایرکتوری خاصی را محدود نمایید. ممکن است مایل باشید تا برای دسترسی به بخش خاصی، از کاربر درخواست کلمه و رمز عبور شود. به این قابلیت سرویسدهنده آپاچی کنترل دسترسی با استفاده از htaccess اطلاق میگردد. به این منظور ابتدا باید گزینه AccessFileName را در فایل پیکربندی httpd.conf فعال نمایید و یک فایل با همان نام در دایرکتوری مورد نظر که مایل به حفاظت از آن هستیدایجاد نمایید. توضیح اینکه گزینه AccessFileName بطور پیشگزیده در دبیان فعال میباشد. AccessFileName .htaccess سپس در فایل پیکربندی آپاچی باید کلمه کلیدی AllowOverride AuthConfig را همانگونه که در مثال بالا دیدید، برای دایرکتوری مورد نظرتان اضافه نمایید و در صورتی که این دایرکتوری در آن معرفی نشده است، باید آنرا مطابق مثال بالا در فایل پیکربندی آپاچی اضافه کنید. در زیر محتویات یک فایل htaccess. برای مثال نشان داده شده است: AuthUserFile /var/www/rest/.htpasswd کلمه کلیدی 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 و فایل htdigest. را نیز ایجاد نمایید: # htdigest -c .htdigest auth alan البته توجه داشته باید تبادل digest در برخی از مرورگرها پشتیبانی نمیشود، بنابراین برای حداکثر سازگاری بهتر است از SSL به همراه htaccess استفاده نمایید. گروهها در فایلها htaccess هنگامی اهمیت پیدا میکنند که شما تعداد زیادی کاربر داشته باشید که هر یک باید به محلهای خاصی بر روی سرویسدهنده دسترسی داشته باشند. به این صورت میتوانید یک فایل مرکزی htpasswd ایجاد کرده و با گروهبندی کاربران، دسترسیهای آنها را به محلهای مناسب امکانپذیر نمایید. با استفاده از کلمات کلیدی AuthGroupFile که نشاندهنده فایل حاوی گروهها و نامهای کاربری است و Require group استفاده نمایید. فایل گروه یک فایل متنی است که با نام گروه و یک کالن شروع شده و کاربران عضو گروه به دنبال هم در آن قرار میگیرند: dev-group: alan armen برای اینکه احراز هویت با استفاده از فایل گروه صورت گیرد، میتوان فایل htaccess. مثال بالا را به صورت زیر تغییر داد: AuthUserFile /var/www/rest/.htpasswd هنگامی که از احراز هویت با استفاده از فایل گروه استفاده میکنید، آپاچی در حقیقت احراز هویت را در دو مرحله انجام میدهد. نخست بررسی میکند که آیا کاربر مورد نظر در گروه وجود دارد یا نه و دوم اینکه کلمه عبور ارسال شده صحیح است یا خیر. هر کدام از این دو مرحله که با شکست مواجه شود، دسترسی کاربرد به منبع مورد نظر مسدود خواهد شد. نکتهای که باید به آن توجه داشته باشید این است که فایل حاوی گروهها را در دایرکتوری که قرار است از آن حفاظت کند و یا در کل مسیرDocumentRoot آپاچی قرار ندهید، زیرا کاربران قادر خواهند بود آنرا دانلود نمایند. Virtual Hosting در آپاچی ویژگیهای Virtual Hosting آپاچی به منظور بکارگیری در سرویسدهندههای فضای اینترنتی استفاده میشود. به عنوان یک سرویسدهنده حانگی یا اداری کوچک، احتمالا شما نیازی نخواهید داشت تا از این قابلیت سرویسدهنده آپاچی استفاده نمایید. هنگامی که اینترنت را میبینید، هر سرویسدهنده وب عهدهدار ارائه سرویس جهت دامنههای متعددی است. این امکان را قابلیتی در Apache به عنوان Virtual Hosting فراهم میسازد. جهت فعال کردن این قابلیت شما باید از گزینه NameVirtualHost به همراه آدرس IP و یا درگاهی که مایل هستید Virtual Hosting روی آن فعال شود، استفاده نمایید. مثال زیر یک Virtual Hosting را نمایش میدهد: NameVirtualHost 212.68.80.137 در صورتی که مایل هستید جهت هر آدرس IP یک دامنه جداگانه اختصاص دهید، نیازی به استفاده از گزینه NameVirtualHost نیست و در خط مربوط به VirtualHost نیز باید نام دامنه را بجای آدرس IP وارد نمایید. ErrorLog logs/host.some_domain.com-error.log فایل پیکربندی modules.conf قابلیتهای مختلف سرویسدهنده آپاچی و پشتیبانی از زبانها و اسکریپتهای مختلف در آن از طریق قطعاتی بنام ماژول صورت میگیرد. فایل modules.conf جهت اضافه کردن و ویرایش ماژولهای فعال در سرویسدهنده میباشد. دستوری به نام apache-modconf وجود دارد که با استفاده از آن قادر هستید تا ماژولها را در سرویسدهنده دبیان خود مدیریت نمایید. البته بسیاری از بستههای نرمافزاری مانند php4 هنگام نصب این فایل را برای شما تنظیم میکنند: # apache-modconf توجه داشته باشید که این دستور و سایر دستورات مدیریتی آپاچی تنها توسط کاربر ریشه قابل اجرا میباشند. Copyright by Shabgard.ORG |