Las nuevas versiones de apache 2.4.x montan nuevas características que para gran parte de los usuarios son desconocidas. Una de ellas (probada con excelentes resultados) es permitir o denegar cualquier tipo de restricción y acceso a nuestro servidor, osea nos olvidamos de las directivas allow, deny, etc… y las damos por obsoletas.
Te propongo una serie de ejemplos en los cuales trabajaremos con la directiva «RequireAll».
Permitir una única dirección IP o un host tenga acceso a la web:
Recuerda que son datos de ejemplo. Puedes colocar la ip, el host o ambos.
<Directory "/var/www/html/web"> Options All AllowOverride All Require all denied ## "Require ip" is used here for IP Address/CIDR/Network Require ip 192.168.45.40 10.10.1.1 ## "Require host" is used here for hostname/FQDN Require host www.ejemplo.com server01 </Directory>
Otra formula con mismo resultado.
<Directory "/var/www/html/web"> Options All AllowOverride All <RequireAll> ## "Require ip" is used here for IP Address/CIDR/Network Require ip 192.168.45.40 10.10.1.1 ## "Require host" is used here for hostname/FQDN Require host www.ejemplo.com server01 </RequireAll> </Directory>
Denegar una única dirección IP o un host tenga acceso a la web:
Recuerda que son datos de ejemplo. Puedes colocar la ip, el host o ambos.
<Directory "/var/www/html/web"> Options All AllowOverride All <RequireAll> Require all granted ## "Require ip" is used here for IP Address/CIDR/Network Require not ip 192.168.45.40 10.10.1.1 ## "Require host" is used here for hostname/FQDN Require not host www.ejemplo.com server01 </RequireAll> </Directory>
Denegar todo el acceso sin discriminación:
En este caso usaremos la directiva «Require all denied».
<Directory "/var/www/html/web"> Options All AllowOverride All ## "Require all denied" will deny all to access the website. Require all denied </Directory>
Permitir todo el acceso sin discriminación:
En este caso usaremos la directiva «Require all granted«.
<Directory "/var/www/html/web"> Options All AllowOverride All ## "Require all granted" will allow all to access the website. Require all granted </Directory>
Reiniciar apache:
Después de realizar cualquier cambio debes reiniciar apache.
### En Ubuntu/Debian/ sudo service apache2 restart ### En CentOS|RHEL 5.x,6x. service httpd restart ### En CentOS 7/RHEL 7 systemctl restart httpd
Mensaje de error:
Este es el mensaje que verán los usuarios prohibidos.