apache http server

اعمال محدودیت برای دسترسی به virtualhost در apache

در برخی مواقع لازم است تا دسترسی به virtualhost محدود شود و فقط با یک یا تعدادی IP مشخص امکان دسترسی به virtualhost فراهم شود. در نسخه ۲٫۴ از Apache به کمک ماژول authz_core می‌توان دسترسی به virtualhost را محدود نمود. البته اگر بخواهیم عبارت صحیح را بکار ببریم، در واقع ما دسترسی به Directory مربوط به virtualhost را محدود می‌کنیم. به مثال زیر توجه کنید:

<VirtualHost *:80>
ServerAdmin info@test.co
ServerName test.co
ServerAlias test.co
DocumentRoot /var/www/test.co/public/
ErrorLog ${APACHE_LOG_DIR}/test.co-error.log
CustomLog ${APACHE_LOG_DIR}/test.co-access.log combined
 
<Directory /var/www/test.co>
 #Options FollowSymLinks
Options Indexes FollowSymLinks Includes ExecCGI
 Require all granted
</Directory>
</VirtualHost>

حال اگر بخواهیم این virtualhost فقط از یک IP خاص قابل دسترسی باشد، باید مقدار Require all granted را به Require ip xxx.xxx.xxx.xxx تغییر دهیم.
اگر بخواهیم دسترسی همه را به این virtualhost قطع کنیم، باید مقدار Require all granted را به Require all denied تغییر بدهیم.
اگر بخواهیم فقط دسترسی یک IP خاص را محدود کنیم، باید
Require not ip 10.252.46.165 را استفاده کنیم.
همچنین مانند عبارات زیر، می‌توانید دسترسی یک رنج مشخص از IP ها را مجاز یا قطع کنید:

Require ip 123.123.123
Require ip 123.123.123.0/255.255.255.0
Require ip 123.123.123.0/24

همچنین به این نکته توجه کنید که می‌توانید حالات بالا را با هم ادقام کرده و حالت مورد نیاز خود را بسازید. مثلا ابتدا درستی همه را بسته و سپس به یک رنج خاص دسترسی بدهید:

Require all denied
Require ip 123.123.123/24

در آخر نیز پس از اعمال تغییرات، فایل را Save کرده و سرویس Apache را restart کنید:

sudo service apache2 restart

موفق و پیروز باشید!

 

 

 

دیدگاهتان را ثبت کنید

آدرس ایمیل شما منتشر نخواهد شدعلامتدارها لازمند *

*

theme