Crear un Virtual Host en Apache+Debian con seguridad

He visto en este artículo de la comunidad sobre como generar reportes de la navegación de squid en html con sarg y creo que esta muy bueno de hecho lo he aplicado y me ha dado muy buenos frutos, ahora puedo chequear en que han estado navegado los usuarios si la necesidad de estar analizado la traza del squid con otra aplicación.Pero me he encontrado con un buen problema y es que este sitio que es muy útil para mi como administrador de la red pero también es accesible por cualquier persona que sepa el link y eso no me gusta.

He solucionado el problema googleando un poco y investigando el uso de algunas aplicaciones de Debian. Pues manos a la obra lo primero es cambiar el directorio donde el sarg genera los reportes.

Abrimos la configuración del sarg

# nano /etc/squid/sarg.conf

Esta linea:

output_dir /var/www/squid-reports

la cambiamos por:

output_dir /var/squid-reports

Así estos reportes no podrán ser accedidos por la web normal

Ahora creamos un VHost para reportes por ssl

Editamos el fichero de los sitios activos del apache

# nano /etc/apache2/sites-enabled/000-default

y agregamos al final

NameVirtualHost *:443

<VirtualHost *:443>

ServerAdmin webmaster@localhost

ServerName www.jcfl.cav.jovenclub.cu

DocumentRoot /var/squid-reports

 

# Parametros para configuraciones SSL y certificados

SSLEngine on

SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

SSLCertificateFile ssl/www.jcfl.cav.jovenclub.cu.crt

SSLCertificateKeyFile ssl/www.jcfl.cav.jovenclub.cu.key

#SSLCACertificateFile cacert.pem

 

<Directory /var/squid-reports/>

Options Indexes FollowSymLinks MultiViews

AllowOverride None

Order allow,deny

allow from all

 

# Permitir solo autenticacion a usuarios autorizados

AuthType Basic

AuthName "Solo Usurios Autorizados"

AuthUserFile /etc/apache2/ssl/sarg-passwd

require valid-user

 

# Permitir solo autenticacion a usuarios miembros del grupo LDAP "Domain Admins"

#AuthType Basic

#AuthBasicProvider ldap

#AuthName "Solo Usurios Autorizados"

#AuthLDAPUrl ldap://ldap.midominio.com:389/ou=Users,dc=midominio,dc=com?uid?sub

#AuthzLDAPAuthoritative On

#AuthLDAPGroupAttribute memberUid

#AuthLDAPGroupAttributeIsDN off

#Require ldap-group cn=Domain Admins,ou=Groups,dc=midominio,dc=com

</Directory>

 

</VirtualHost>

Con cuidado revisa la configuración que acabas de copiar y cambia los parámetros de acuerdo con tu red. Fijence que en la configuración que les pongo hay dos métodos de autenticación uno por un fichero y el otro por si usas LDAP en mi caso utilice el primero.

Ahora hay activar el modulo SSL en Apache2:

# a2enmod ssl

Creamos el certificado SSL

# mkdir /etc/apache2/ssl

# cd /etc/apache2/ssl

# openssl genrsa -out www.jcfl.cav.jovenclub.cu.key 1024

- Generamos el CSR (Certificate Signing Request):

# openssl req -new -key www.jcfl.cav.jovenclub.cu.key -out www.jcfl.cav.jovenclub.cu.csr

Generamos el Certificado usando la llave privada y el CSR:

# openssl x509 -req -days 365 -in www.jcfl.cav.jovenclub.cu.csr -signkey www.jcfl.cav.jovenclub.cu.key -out www.jcfl.cav.jovenclub.cu.crt

 

- Creamos archivo de usuarios y contraseñas para sitio web:

# htpasswd -c /etc/apache2/ssl/sarg-passwd proxyadmin

New password:

Re-type new password:

Adding password for user proxyadmin

 

- Revisando configuración de apache:

 

# apache2ctl -t

 

# apache2ctl -t -D DUMP_VHOSTS

 

- Reiniciar el servidor apache:

 

# invoke-rc.d apache2 restart

Y listo nos que dará un virtual host con seguridad y certificado en mi caso responde por

https://www.jcfl.cav.jovenclu.cu
Autor original: 
Carlos Martínez Gómez
Categoría: