Esta dica foi testada no Debian Sarge e explica como utilizar autenticação no Apache2.
01) Primeiramente devemos criar o diretório onde desejamos restringir o acesso caso o mesmo não exista.
# mkdir /var/www/teste
02) Criaremos agora um arquivo somente para testes com o nome "index.html" no diretório "/var/www/teste".
# echo Testando autenticação no Apache > /var/www/teste/index.html
03) Criar os arquivos .htaccess e passwd no diretório onde se deseja restringir o acesso.
# touch passwd .htaccess
04) Conteúdo do arquivo .htaccess
AuthName "Nome que aparecerá no título da janela"
AuthType Basic
AuthUserFile /var/www/teste/passwd # Arquivo que conterá as senhas criptografadas dos usuários.
require valid-user
05) Criação dos usuários que terão permissão para acessar o diretório:
# htpasswd -c passwd usuário
Será pedida a senha do novo usuário e em seguida sua confirmação.
New password:
Re-type new password:
Adding password for user usuário
Ao abrir o arquivo de senhas (passwd), serão vistos os nomes de usuário e senhas criptografadas.
# more passwd
usuário:ZzbJ.YtR6TyyU
06) Edite o arquivo "/etc/apache2/sites-available/default", colocando as seguintes linhas no final do arquivo antes da tag </VirtualHost>, substituindo todas as diretivas conforme suas necessidades, uma observação importante é para a tag AllowOverride, a mesma deve conter "AuthConfig" para que a autenticação seja bem sucedida.
Alias /teste/ "/var/www/teste/"
<Directory "/var/www/teste/">
Options Indexes MultiViews FollowSymLinks
AllowOverride AuthConfig
Order deny,allow
Deny from all
Allow from 172.16.0.0/255.0.0.0 ::1/128
</Directory>
07) Reinicie o serviço do Apache para atualizar as configurações.
# /etc/init.d/apache2 restart
08) Teste agora suas configurações acessando http://<seu_servidor>/teste, fornecendo o nome de usuário senha.