jueves, 24 de julio de 2008

AUTENTICACION DE SQUID

A continuación veremos cómo configurar la autenticacación para SQUID. Si aún no has realizado la configuración básica para el SQUID por favor ingresa a http://thiney.blogspot.com/2008/08/configuracion-squid.html


AUTENTICACIÓN HTPASSWD - MODULO NCSA (National Center for Supercomputing Applications): Squid provee varios módulos de autenticación (helpers) que serán los encargados de realizar la validación (NCSA, PAM, SASL, YP y SMB). Aquí veremos como realizar una configuración básica utilizando el módulo NCSA

Bueno, para empezar debemos crear el archivo que contiene a los usuarios y sus respectivas contraseñas para su autenticación. Esto lo hacemos con htpasswd.
La sintaxis es la siguiente:
Thiney:/etc# htpasswd -c /etc/squid/usuarios thiney
New password: (introducimos la contraseña)
Re-type new password: (volvemos a introducir la contraseña)
Adding password for user thiney

Donde:
htpasswd: Es el comando para administrar los archivos del usuario para la autenticación básica
-c es la opción que le pasamos a htpasswd para que cree un archivo nuevo. en este caso creara usuarios/etc/squid/usuarios es la ruta completa donde queremos poner el archivo que estamos creando, en este caso usuarios.
thiney es el nombre del usuario que ingresamos al fichero usuario

Me explico: estamos utilizando el comando htpasswd para que cree un archivo llamado usuarios y dentro del archivo usuarios va a almacenar un usuario llamado thiney al que después se le dará un password.
Si queremos agregar nuevos usuarios hay que utilizar la misma sintaxis pero sin la opción -c
Bien, ahora buscamos la ubicación exacta del fichero ncsa_auth

Thiney:/etc#find / -name ncsa_auth
Normalmente se encuentra en /usr/lib/squid/ncsa_auth. Esto se hace para asegurarnos de la ruta exacta ya que la necesitamos poner en la configuración del squid.
Ahora procedemos a editamos nuevamente el archivo de configuración de squid y configurar los parámetros para la autenticación.

Thiney:/etc##nano etc/squid/squid.conf
Nos ubicamos aproximadamente en la línea 1807 y agregamos :
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/usuarios

Donde:
auth_param basic program: Es el parámetros.
/usr/lib/squid/ncsa_auth: Es la ubicación del archivo ncsa_auth
/etc/squid/usuarios: Es la ruta donde se encuentra nuestro archivo con los usuarios y sus respectivas contraseñas.
Ahora en las listas de control ingresamos una nueva linea, aproximadamente en la línea 2424, esta lista se llamara password:
acl password proxy_auth REQUIRED

Por último usamos esta lista para agregar la siguiente regla. Esto va en la línea 2577 aproximadamente. Procuremos que sea al inicio de todas las reglas.
http_access allow password
Guardamos con control x + si + enter

Ahora solo resta reiniciar el squid:

Thiney:/etc#/etc/init.d/squid restart
Hasta la próxima

CONFIGURACION SQUID

Abrimos la consola, nos logueamos como root y empezamos a instalar el paquete Squid
#apt-get install squid
Ingresamos al directorio donde se encuentra el archivo de configuración del Squid.
#cd /etc/squid/
Empezamos a editar el archivo de configuración.
#nano squid.conf
Dentro del archivo empezamos a descomentar y configurar nuestro proxy. La primera configuración a realizar se encuentra en la linea 73 aproximadamente.
Para ir a ella le damos control + w + control +t, seguido del numero de la linea, en este caso: 73.
En esta línea encontramos el puerto por el cual escucha el Proxy se puede utilizar así o simplemente especificas el puerto, como se utiliza en el segundo ejemplo. Puedes especificar más de un puerto. Por defecto squid maneja el 3128.
http_port 192.168.5.2:3128
http_port 8080
En la linea 263 aproximadamente se encuentra el puerto por el cual nuestro Proxy se comunicara con otro proxy. Es muy importante ya que este permite la comunicación con otros Proxies.
icp_port 3130
El siguiente parámetro a configurar es el proxy con el cual nos comunicaremos. Aquí se especifica la dirección ip del Proxy o el nombre completo del host (FQDN) con el que nos comunicaremos por el puerto icp mencionado anteriormente, la palabra parent significa que nos comunicaremos con un Proxy padre, si quisiéramos comunicarnos con un Proxy hermano seria sibling. El 80 es el puerto por el cual escucha el Proxy con el que nos estamos comunicando. 3130 es el puerto que utilizan los proxies para comunicarsen. Y por último Default es una opción que se le da a esta línea
#cache_peer 172.20.49.51 parent 80 3130 default
Después de este procedimiento vamos a la linea 771 aproximadamente y la descomentamos, es decir, borramos el símbolo # y colocamos el numero de megas que queremos que haga cache en la memoria RAM. Si se posee un servidor con al menos 128 MB de RAM, establezca 16 MB como valor para este parámetro:
cache_mem 16 MB
Como vamos? Bien!! ahora nos dirigimos a la línea 788 y 789, la primera nos indica el nivel en porcentaje de capacidad mínima aceptada por squid, es decir, los objetos se mantendrán en el cache hasta que se cope el límite mínimo y la segunda especifica en porcentaje el límite máximo que utiliza
squid para mantener objetos en el cache. Si el valor asignado es del 95%, squid comenzara a eliminar los objetos del cache cuando se tope el 95% de la capacidad asignada a squid. Descomentamos ambas líneas.
cache_swap_low 90
cache_swap_high 95
Ahora nos ubicamos en la linea 804, donde encontraremos un parámetro, que indica el tamaño máximo que se almacena en la cache del disco duro, en KB. Por defecto se utiliza 4MB. Es decir que squid no almacerá archivos que superen este tamaño. Procedemos a descomentarlo ya que es muy importante y definimos el tamaño.
maximum_object_size 3000 KB

Nos ubicamos en la línea 1026 y procedemos a descomentarla. Este parámetro define la ruta donde se guardará la cache en disco duro y la cantidad en megas que se utilizará, Sea cauteloso con el tamaño de caché especificado, ya que si se especifica un determinado tamaño de caché y éste excede al espacio real disponible en el disco duro, Squid se bloqueará. Además de este parámetro, incluye tres parámetros numéricos adicionales. El primero incluye el número de MB que se utilizarán en este directorio para el cache, por defecto 100MB, el segundo el número de directorios a utilizar en el primer nivel (16 por defecto) y el tercero el número de subdirectorios en el segundo nivel (256 por defecto).
cache_dir ufs /var/spool/squid 100 16 256
En la línea 1120 encontramos un parámetro que define en donde se almacenan los mensajes del sistema, descomentamos la linea.
cache_log /var/log/squid/cache.log
Nos dirigimos a las líneas 2070 2071 y 2072 y las descomentamos. Estos parámetro define si un objeto debe almacenarse en el cache cuando el usuario ha interrumpido una solicitud, si el objeto tiene el valor especificado en min. o falta más del valor especificado en max. se abortará la transferencia.
Si se ha realizado una transferencia mayor del valor en porcentaje especificado en pct, no se abortará el almacenamiento del objeto. Se recomienda utilizar los valores por defecto:
quick_abort_min 16 KB
quick_abort_max 16 KB
quick_abort_pct 95
Ahora pasamos a crear las ACL´s es decir, la listas de Control de Acceso, estas listas mas los permisos que se les da, son muy importantes a la hora de configurar squid. Ya que por medio de estas damos acceso o restricción a host, dominios o palabras. Se configuran aproximadamente en la linea 2450.
Se definen de la siguiente manera:
acl nombre_acl tipo_acl descripción
acl nombre_acl tipo_acl "ubicación_del archivo"

Tipos de acl:
src : Origen, Dirección IP de un cliente
dst : Destino, Dirección IP del servidor
srcdomain : Dominio Origen, nombre de dominio del cliente
dstdomain : Destino, Nombre de domino del server
time : Hora del día y día de la semana
url_regex : URL regular expression pattern matching
urlpath_regex: URL-path regular expression pattern matching, leaves out the protocol and hostname
proxy_auth : Autenticación de usuario a traves de un proceso externo
maxconn : Número máximo de limite de conexiones de una dirección IP

Definimos las ACL´s con las que vamos a trabajar.
acl dirnoper src "/etc/squid/dirnoper"
acl thiney.com src 192.168.5.0/255.255.255.0
acl palabrasneg url_regex "/etc/squid/palabrasneg"
acl nodominio dstdomain "/etc/squid/nodominio"

Creamos las http_acces en la linea 2576, este parámetro es muy importante ya que nos indica que se debe hacer con la lista, es decir si se permite el acceso o lo deniega. En pocas palabras es una regla de control de acceso.

Sintaxis de las http_access:
http_access (deny o allow) (nombre de lista de control de acceso)
deny: denegar
allow: permitir.
http_access deny palabrasneg
http_access deny nodominio
http_access deny dirnoper
http_access allow all
Hasta aquí sería una configuración normal, guardamos los cambios y procedemos a configurar los parámetros para la autenticación, por favor continúe con este manual.
Muy bien hasta aquí sería una configuración normal, guardamos los cambios y procedemos a crear los archivos.
#touch dirnoper
#nano dirnoper
Dentro de este archivo deben ir direcciones IP, por qué direcciones ip y no dominios, por el tipo de la acl que estamos creando, recuerda que es una src. Así que dentro de este debemos poner direcciones que vamos a permitir o que vamos a negar como en este caso, pero estas direcciones no son externas, NO son direcciones publicas, son direcciones de mi red local.
192.168.5.67
192.168.5.42
Guardamos y salimos
El siguiente archivo a crear es palabrasneg, estos archivos recuerda que deben ir en la carpeta de squid.
#touch palabrasneg
#nano palabrasneg
En este archivo van todas las palabras que usted quiere negar en este caso, recuerda que el único que decide que va hacer con la lista es el parámetro http_access, que se configuró en la linea 2576. la lista se puede llamar palabrasneg, pero si usted en los permisos no lo esta negando, no se lo negara.... Estas palabras se negaran al momento de usted utilizar un buscador como google, yahoo, etc..
sexo
porno
xxx
online
3x
Guardamos y salimos
Por último creamos el archivo nodominio, en este archivo incluiremos todos los dominios que queramos restringir, es mejor poner dominio.com y www.dominio.com, para asegurarnos que de ambas formas quede bloqueado.
www.cualquierdominio.com
cualquierdominio.com
www.otracosa.com
otracosa.com
www.loquesea.com
loquesea.com
Guardamos y salimos

miércoles, 23 de julio de 2008

HOSTVIRTUAL CON APACHE2

Bien, ahora si procedemos a instalar y configurar nuestros servicios
Empezamos realizando la instalación de apache2
#apt-get install apache2
corremos el servicio para verificar que este bien
#/etc/init.d/apache2 restart
Y lo comprobamos por medio de un navegador (http://localhost)
Al momento de instalar apache2, nos crea automáticamente un directorio en /var/www/apache2-default, este es el directorio por defecto donde apache almacena la página de inicio (index.html)
Ahora vamos a este directorio y modificamos nuestra página.
#nano /var/www/apache2-default/index.html
creamos un directorio nuevo donde almacenaremos nuestro host virtual
#mkdir maritza
Entramos al directorio
#cd maritza
Y creamos un nuevo index para nuestro host virtual
#touch index.html
Si desconocemos el lugar donde debemos configurar los host virtuales, nos remitimos al archivo de configuración principal
#nano /etc/apache2/apache2.conf
Al final nos muestra la ruta donde se configurarán los host virtuales, es decir, /etc/apache2/sites-enabled
Vamos a este directorio
#cd /etc/apache2/sites-enabled
En este directorio encontramos un archivo por defecto (000-default), lo utilizamos para crear nuestro archivo .conf, donde agregaremos la información del host virtual.
#cp 000-default maritza.conf
Editamos este archivo
#nano maritza.conf
PARAMETROS A TENER EN CUENTA:
linea 1:
NameVirtualHost 192.168.5.2:80
linea 2:
VirtualHost 192.168.5.2:80Ponemos lo mismo que en la linea 1
linea 3
ServerAdmin webmaster@maritza.com
Es la dirección de correo del administrador, recuerda poner en vez del localhost, el “domino” que se esta manejando para el host virtual.
Agregaremos la siguiente linea
linea4
ServerName www.maritza.com
linea 6
DocumentRoot /var/www/apache2-default/
Esta es la ubicación del directorio para el host virtual
Linea 11
Directory /var/www/apache2-default/
¡¡Cuidado!! En la linea 18 encontramos el directorio donde se encuentra el index para el hostvirtual. Así que se especifica.
Linea 18
RedirectMatch ^/$ /maritza/
Bien, como vamos?? Por último guardamos y salimos
Ahora copiamos este archivo para realizar la configuración del host real, es decir, thiney.com
#cp maritza.com thiney.com
#nano thiney.com
Las lineas a modificar son las siguientes:
Linea 3 y 4:
Cambiar solo el dominio maritza.com por thiney.com
Linea 6:
Debemos especificar la ruta del index para thiney, este index no se ha movido así que la linea 6 quedara:
DocumentRoot /var/www/ igual que la linea 11.
Linea 18:
RedirectMatch ^/$ /apache2-default/ quedara así..
Ya para terminar
Guardamos.
Si no se tiene configurado un DNS debemos agregar estos nombre al archivo que se encuentra en etc, llamado hosts
#nano /etc/hosts
Agregamos:
nuestra ip www.maritza.com
la misma ip www.thiney.com
Reiniciamos el servicio
#/etc/init.d/apache2 restart
y probamos con el navegador

Primero, lo primero

Antes de empezar con la instalación y la configuración de los servidores. Debemos configurar la interface como estática:
# nano /etc/network/interfaces
Agregamos esto:
auto eth0
iface eth0 inet static
network 192.168.5.0
broadcast 192.168.5.255
address 192.168.5.2
netmask 255.255.255.0
gateway 192.168.5.1
Guardamos
control + x + si + enter

Servicios

Esta semana debemos entregar los servicios que el profesor nos puso. Aunque esto era un "repaso" en lo personal nunca lo fue.... Ya que nunca habia tenido la oportunidad de hacer todo lo que ahora estoy haciendo; dicen que todos los dias aprendemos cosas nuevas y pues asi es.... Proximamente publicaré un paso a paso de todos los servicios, o por lo menos los más comunes... Espero sea de su interés,

Hasta pronto.

miércoles, 9 de julio de 2008

Monitoreo, Administración y Gestión Integral de una red en Linux

Segundo Proyecto: Monitoreo y Gestion Integral.
En este proyecto podemos encontrar un pequeño resumen de los protocolos que se implementara, como es el caso del snmp, snmpd, entre otros. Tambien podemos encontrar una pequeña guia de su funcionamiento y configuración.
Para este proyecto utilizamos un software de monitoreo, llamado zenoss, pues bien, encontrará tambien información importante del programa, las utilidades que maneja y una pequeña guia de como agregar, administrar y por supuesto monitorear servicios, puertos, etc..

Monitoreo Addministración y Gestion Integral de Una Red en Debian