نصب و پیکربندی سرویس‌دهنده وب آپاچی بخش ۲
S h a b g a r d . O R G
.::Security Group::.

*Nix *Nix *Nix *Nix *Nix *Nix *Nix مبتدی مبتدی مبتدی

    Search for in  

  خانه

  *Nix

      مبتدی

      متوسط

      تخصصی

  Windows

      مبتدی

      متوسط

      تخصصی

  network

  Programming

      PHP

  Security

  Hacking

  Program

      MS-Word

      Graphic

  Cisco

  Hardware

*Nix > تخصصی


نصب و پیکربندی سرویس‌دهنده وب آپاچی بخش ۲
Posted by www.technotux.com on Dec 31, 2004, 18:36

کنترل دسترسی‌ها در آپاچی

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

<Directory /var/www/rest>
AllowOverride AuthConfig
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS PROPFIND>
Order allow,deny
Allow from all
</Limit>
<Limit PUT DELETE PATCH PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
Order deny,allow
Deny from all
</Limit>
</Directory>

با استفاده از 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 www.technotux.com
ServerAlias technotux.com
ServerAdmin postmaster@technotux.com
DocumentRoot /home/technotux/public_html
</VirtualHost>

در صورتی که مایل هستید جهت هر آدرس 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 <module_name>]
/usr/sbin/apache-modconf apache|apache-perl|apache-ssl [disable <module_name>] [quiet]
/usr/sbin/apache-modconf apache|apache-perl|apache-ssl [query <module_name]

توجه داشته باشید که این دستور و سایر دستورات مدیریتی آپاچی تنها توسط کاربر ریشه قابل اجرا می‌باشند.






---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
Latest Headlines

 *Nix
 نصب سيستم عامل لينوكس وفارسي نويسي در محيط
kavoshgar.blogsky.com
 نصب سيستم عامل لینوکس مندریک 9.2 Mandrake linux
 راهنماي كاربران جديد لينوكس
 راهنماي كاربران جديد لينوكس
 تعاريف پايه و نكات كاربردي در لينوكس و يونيكس
 تنظیماتIP و شبکه در گنو / لینوکس
 تعیین سطوح دسترسی کاربران در لینوکس
 تاریخچه لینوکس
 ظاهر پوسته فرمان
 استفاده از پوسته فرمان در لینوکس
 Windows
 بازگرداندن ویندوز خراب شده به حالت قبل از بروز مشکل
 چگونه میتوان در ويندوز 98 و ME به درايو NTFS دسترسي داشت
 با افزودن پسورد دوم براي ورود به ویندوز XP امنیت خود را تا حد زیادی افزایش دهید
 برنامه های تحت داس و قدیمی را چگونه در XP اجرا کنیم
 نصب ويندوز 98 يا ME در محیط ويندوز NT يا XP فقط در یک دقیقه و نیم
 مقدمات و نيازهاي شما براي يادگيري TCP/IP
 امكانات شبكه اي ويندوز
 SSL چيست ؟
 آموزش HyperTerminal
 آموزش كرك فايل هاي SAM
 network
 كارت شبكه يا LAN Card
 شبكه سرى يا BNC
 شبكه Hub
 تنظيم و كنترل برنامه Network Neighborhood
 استفاده از شبكه و عمل Sharing
 نصب و تنظيم برنامه Wingate جهت اتصال شبكه به سرور و اينترنت
 AAA (Authentication, Authorization and Accounting)
 مقدمه ای بر شبکه خصوصی مجازی (VPN)
 ip و port
  RFC چيست؟
 Programming
 زبان برنامه نویسی D قسمت اول
 زبان برنامه سازی D تحت لینوکس قسمت دوم
 زبان برنامه‌نويسی D بخش سوم
 زبان برنامه نویسی D بخش چهارم
 زبان برنامه نویسی D بخش پنجم
 زبان برنامه‌نویسی D بخش ششم
 نرم‌افزار آزاد یا باز‌متن چیست؟
 مقدمه ای بر برنامه نويسی شی گراء در دات نت
 آموزش رتينا
 ايجاد فايل XML با استفاده از يک بانک اطلاعاتی
 Security
 بررسی نحوه عملکرد فایروال Firewallیا ديواره آتش
 مقايسه سرورهای لينوکس و ويندوز
 چه فایلهائی میتوانند برای کاربران مخاطره آمیز باشند !
 امنيت برنامه های وب ( بخش اول )
 امنيت برنامه های وب ( بخش دوم )
 امنيت برنامه های وب ( بخش سوم )
 امنيت برنامه های وب ( بخش چهارم )
 امنيت برنامه های وب ( بخش پنچم )
 امنيت نامه های الکترونيکی ( بخش اول )
 مفاهيم اوليه پروتکل TCP/IP ( بخش اول )
 Hacking
 چگونه هکر شویم؟ بخش اول
 چگونه هکر شویم؟ بخش دوم
 هنر هشتم : كرك كردن
 مقدمات قبل از شروع يادگيری هک
 Port Scanning
 Port Scanning
  کاربرد نرم‌افزار nmap
 IP Scanning
 پورت ۷۹
 پورت ۸۰ چيست؟
 Program
  آموزشهاي افكتهاي فتوشاپ
 Shocking Text
 مبانی آشنايی با Word
  آموزش ساخت متن یخی
 نصب تم در موزیلا فایرفاکس
 کلید های میانبر در فایرفاکس
 Cisco
 آشنايي با مدارک سيسکو
 Cisco Systems
 Hardware
 آشنايي با پورت USB
 نحوه انتخاب يك كارت صدا