در برخی مواقع لازم است تا دسترسی به 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
موفق و پیروز باشید!