Contexte :

Nous partirons d’un système de base sous CentOS 6 installé.
Nous ferons une installation d’Apache et la configuration necessaire à la démo.

Installation d’Apache :

sudo yum install httpd

Configuration :

Arborescence du VirtualHost sur le système

sudo cd /var/www/html

sudo mkdir test

echo '<html>
<head>
<title>First Page</title>
</head>
<body>
Welcome to my Lab !
</body>
</html>' > test/index.html

sudo chown -R apache:apache test/

VirtualHost Apache

Edition du fichier /etc/httpd/conf.d/test.conf

<VirtualHost test.alasta.lab:80>
  ServerAdmin admin@alasta.lab
  ServerName test.alasta.lab
  ServerAlias toto.alasta.lab
  DocumentRoot "/var/www/html/test"
  DirectoryIndex index.php index.html
  <Directory "/var/www/html/test">
    Options -Indexes FollowSymLinks
    AllowOverride All
		Order deny,allow
		Deny from all
		AuthType Basic
		AuthName "Restricted Space to my Lab"
		AuthUserFile /etc/httpd/htpasswd/test.alasta.lab.htpasswd
		## Autorisation d'un utilisateur spécifique du htpasswd
		#Require user alasta
		## Autorisation de tous les utiisateurs valident du htpasswd
		Require valid-user
		Allow from 192.168.5.22/255.255.255.255
		#Autre poste autorise
		Allow from 192.168.5.33/255.255.255.255
		#Net amis
		Allow from 192.168.6.0/255.255.255.0
		Satisfy Any
	</Directory>
</VirtualHost>

Fichier de login/password htpasswd

sudo mkdir /etc/httpd/htpasswd/

#Creation du premier utilisateur alasta
sudo htpasswd -c /etc/httpd/htpasswd/test.alasta.lab.htpasswd alasta

#Ajout d'autre utilisateur toto
sudo htpasswd /etc/httpd/htpasswd/test.alasta.lab.htpasswd toto

Démarrage du service Apache

sudo service httpd start

Tests de bon fonctionnement :

Il est à noter que la résolution du FQDN est nécessaire soit via DNS ou fichier hosts !

Depuis un poste filtrer (pas présent dans la configuration)

curl http://test.alasta.lab
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>401 Authorization Required</title>
</head><body>
<h1>Authorization Required</h1>
<p>This server could not verify that you
are authorized to access the document
requested.  Either you supplied the wrong
credentials (e.g., bad password), or your
browser doesn't understand how to supply
the credentials required.</p>
<hr>
<address>Apache/2.2.15 (CentOS) Server at test.alasta.lab Port 80</address>
</body></html>

On se prend bien un 401 qui est une demande d’authentification d’un site web.

Depuis une IP autorisée dans la configuration

curl http://test.alasta.lab
<html>
<head>
<title>First Page</title>
</head>
<body>
Welcome to my Lab !
</body>
</html>

On passe bien !