Ojos rojos

Hola, Soy editor en este blog, sólo espero que la información y el contenido del sitio sea de utilidad, Bienvenid@s y esperamos sus comentarios.

 

A continuación se describe de manera sencilla  como incremetar el espacio en un arreglo de discos  RAID 5 (Redundant Array of Independent Disks, «conjunto redundante de discos independientes»).  Para lograr esto se hará una sustitución de todos los discos actuales del arreglo por otros de mayor capacidad sin afectar o respaldar la información.

Para esta práctica se cuenta con un servidor Dell PowerEdge T710 con una tarjeta controladora RAID interna PERC 6/I. Este servidor tiene tres discos duros SATA de 250GB. Los cuales se van a sustituir por discos SATA de 1TB.

Condiciones de inicio del servidor:

El servidor tiene instado el sistema operativo y el siguiente esquema de particiones:

Last login: Fri Jan  7 08:27:43 2011
[root@localhost ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3             3.9G  1.2G  2.6G  32% /
tmpfs                 7.8G     0  7.8G   0% /dev/shm
/dev/sda1             485M   34M  426M   8% /boot
/dev/sda5             425G  199M  403G   1% /home

Con la orden fdisk /dev/sda se ve de la siguiente forma:

Disk /dev/sda: 498.8 GB, 498753077248 bytes
255 heads, 63 sectors/track, 60636 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0003c37a

Device     Boot     Start      End     Blocks      Id      System
/dev/sda1 *             1        64    512000      83      Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              64      3889   30720000     8e       Linux LVM
/dev/sda3            3889      4399    4096000     83       Linux
/dev/sda4            4399     60637  451734528      5       Extended
/dev/sda5            4399     60637  451733504     83       Linux

Paso 1.
Se van sustituyendo los discos de menor capacidad (250GB)  por los de mayor (1TB), dejando que la controladora haga y termine la reconstrucción por unidad  en cada cambio, he aquí el video de dicha sustitución:

YouTube Preview Image

En la siguiente imagen se puede observar como el controlador de la tarjeta va actualizando la sustitución de los discos conforme se van cambiando.

sustitucion de discos

Paso 2..
Al termino de este proceso, se debe limpiar la configuración del controlador, como lo muestra la siguiente fotografía.

clear config

Al termino de la limpieza, la configuración se observa de la siguiente forma:

clear

Paso 3.

Nuevo arreglo: En este momento se crea el arreglo con los discos nuevos (1TB)

new raid

Al reiniciar la máquina se cargará el sistema operativo y su contenido. Como puede verse en la fotografía (utilizando la orden fdisk) el sistema de particiones queda intacto aunque ya se observa que reconoce la nueva capacidad del arreglo.

dh

Paso 4.
Después de este momento (para este caso), se puede redimensionar la partición /dev/sda4 y crear nuevas particiones. Para ello utilizaremos la herramienta gparted, la cual podemos bajar de sourceforge y “bootear” de esta, de tal forma que el sistema se ve como:

gparted

Para redimensionar la partición /dev/sda4 simplemente utilizamos la herramienta. Ver siguiente fotografía.

sda4

Paso 6.
Ya estando modificada la partición /dev/sda4, podemos también redimensionar la /dev/sda5 (extendida) con gparted, veamos un ejemplo.

sda5

O simplemente crear mas particiones sobre el espacio agregado, en tal caso hay que reiniciar la máquina o correr partprobe o kpartx para que reconozca la nueva tabla de paticiones.

Finalmente podremos ver como se ha escalado la capacidad del arreglo.

df-h

Nota. Puede utilizar este procedimiento bajo su propio riesgo.

 

Al tratar de reinstalar WordPress para un dominio utilizando Fantástico me encontré con el siguiente error:

Install WodPress (2/3)
The installation can not be completed
- You cannot install more than one scrip in the root directory of a domain.

Click on the browser's Back button to fix reported errors.

Debido a que por alguna razón en el archivo ~/.fantasticodata/installed_in_root.php se guardan los nombres de dominios instalados, los cuales no se eliminan aunque sea borrados estos, no deja reinstalar WordPress con estos nombres de dominios.

Este archivo tiene la siguiente estructura:

$installed_in_root["patatux.net"] = 1;$installed_in_root["sanpedropuruatiro.com"] = 1;$installed_in_root["erasmo.name"] = 1;
?>

Para solucionar esto yo he editado este archivo y quitado el dominio a reinstalar.

 

Tarjeta madre Intel DX58S0.

 

 

Hoy 7 de agosto del 2010 se realiza un cambio de nombre de éste sitio, antes http://pescadoenjabonado.net ahora http://patatux.net. Posiblemente  el nuevo  nombre está más acorde a la temática del sitio, aunque sabemos que eso no es todo, tendremos que trabajar más para ofrecer algo bueno a nuestros siguidores. Y digamos salud! otra vez.

Apr 282010
 

NIS (Network Information Service – Sistema de Información de Red).

Es un protocolo que permite distribuir datos, como usuarios, contraseñas, grupos, hosts, etc a un grupo de computadoras conectadas en red. Esto ayuda que este grupo parezca un sistema individual con las mismas cuentas de usuarios en todos los nodos, de tal forma que se podrá autentificarse con la misma cuenta en cualquier nodo del grupo de computadoras que estan dentro del dominio NIS.

Este protocolo fue dasarrollado por SUN. Inicialmente a NIS se le llamó Páginas Amarillas (Yellow Pages). Pero por ser este nombre registrado por British Telecom se cambio a NIS.

Cuando no se requiere salir a la red internert, este servicio puede sustituir las funciones de DNS.

A continuación se describirá como configurar un servidor NIS maestro, esclavo y el cliente. Para cualquiera de estos servicios es importante considerar los siguientes pasos previos:

1.- Activar el servicio port mapper

2.- Asegurarse que el el archivo /ect/hosts tenga la resolución directa del servidor maestro y los servidores esclavos en caso que también se desee configurar, ejemplo:

149.240.180.100 nombre_del_maestro.pescadoenjabonado.net nombre_del_maestro

3. Se recomienda también que la entrada a 127.0.0.1 no apunte al nombre servidor maestro, es decir, debe quedar así:
127.0.0.1 localhost.localdomain localhost

Configuración de un cliente NIS

Si el cliente se configura de tal forma que pueda recibir respuesta del primer servidor que le pueda responder, se le llama modo broadcast, la otra forma es que dirija su petición a un servidor específico.

1.- En Red Hat Instalar los programas: ypbind y yptools, en Debian el paquete nis.

2.- Integrar un dominio NIS. Esto se hace en el archivo /etc/yp.conf, tiene varias opciones, de las cuales ponemos algunas.

domain NOMBRE_DEL_DOMINIO broadcast

Esto indica a ypbind con que servidor debe contactar. Generalmente un cliente NIS envia una petición a todas la red y cualquier máquina que pueda le responderá (modo broadcast). El cliente confía en que la respuesta es auténtica.

Para hacer transacción un poco más segura pidiendo que se contacte un servidor en particular:

domain NOMBRE_DEL_DOMINIO server NOMBRE_DEL_SERVIDOR

Nota1: Para hacerlo de forma “manual” desde una terminal se hace con la orden:

domainname nombredominio

3.- Para Red Hat
Se establece la variable NISDOMAIN en /etc/sysconfig/network.

ypserver nombre_del_maestro
(Para Solaris :)
Se coloca el nombre del dominio en el archivo /etc/defaultdomain. Para evitar que el demonio ypbind busque el servidor por broadcast, se ejecuta el comando ypinit -c y se reinicia el proceso sin la opción -broadcast. Los nombres de los servidores deben aparecer en el /etc/hosts.)

4.- Configurar el fichero /etc/nsswitch.conf

El fichero nsswitch.conf permite configurar un cierto numero de llamadas al sistema de la biblioteca de C, utilizado por la mayoría de ejecutables bajo GNU/Linux.

Si deseamos usar primero únicamente información proporcionada por NIS y después por archivos locales, podríamos hacer esto:

passwd: nis files
group: nis files
shadow: nis files

No es aconsejable poner solo NIS, porque si falla el servidor o si falla ypbind nos quedamos sin acceso a la máquina.

Hace años se modificaban en algunas distribuciones los archivos passwd, group y sahdown como se describe abajo, según yo ahora ya no es necesario, pero lo explicamos por si es necesario.

El fichero /etc/passwd

Para hacer que /etc/passwd busque información en el servicio de NIS debemos agregar una línea tal que asi:
+::::::

El + indica al sistema que debe interrogar a NIS para completar los datos que le falten (los campos vacios). Esta línea se coloca al final del fichero, lo que nos permite tener usuarios locales que podran identificarse sin pasar por NIS.

Tambien podemos prohibir a ciertos usuarios de NIS el acceso a la máquina. Para ello usamos la línea:

-usuario1::::::
-usuario2
+::::::

Las dos primeras líneas invalidan el acceso a los suarios 1 y 2. Si deseamos dar acceso a un número muy restringido de usuarios, la forma de hacerlo será:

+autorizado1::::::
+autorizado2::::::
+::::::/bin/false

Con esto los usuarios autorizados serán aceptados y todos los demás irán a parar a un /bin/false y no tendrán acceso al sistema.

Como esto se indica el en /etc/passwd se superpone a las posibles respuestas que pudiera ofrecer NIS.

Fichero /etc/group

Hay que modificar este fichero igual que hemos hecho con el /etc/passwd

+:::

y en /etc/shadow
+:::::::

Si el sistema hace uso de GSHADOW, ha de adaptar el archivo /etc/gshadow a NIS, para ello se debe seguir el ejemplo del archivo /etc/group.

Después de los cambios hay que reiniciar el servicio: /etc/rc.d/init.d/ypbind restart
o /etc/init.d/nis restart de acuerdo a la distribución utilizada.

Un servidor NIS no exporta directamente ficheros tal como son. Transfiere una serie de bases de datos dbm (una para cada uno de los ficheros compartidos) que se generan en en el momento de la configuración.

Configuración de un cliente NIS en Red Hat con la orden: system-config-authentication

Red Hat tiene la herramienta gráfica: system-config-authentication que ayuda a hacer esto mas trivial, esta herramienta la puedes ejecutar desde la terminal, permitiendo configurar el cliente como lo muestran la siguiente imágen:

Esta herramienta coloca el valor de  la variable NISDOMAIN en el archivo /etc/sysconfig/network con el nombre del dominio NIS:

NISDOMAIN=dominionis

También configura el archivo /etc/yp.conf ya citado:

domain dominionis server 146.245.180.1

modifica el archivo /etc/nsswitch.conf:

passwd: files nis
shadow: files nis
group: files nis

y le da valor a la variable USENIS=yes en el archivo /etc/sysconfig/authconfigy finalmente modifica … en el archivo /etc/pam.d/system-auth-ac   quedando:

password    sufficient    pam_unix.so md5 shadow nis nullok try_first_pass use_authtok

Configuración requerida en el servidor maestro para que funcione el servidor esclavo:

1.- En el archivo /var/yp/Makefile se le indica que envíe automáticamente a los servidores esclavos cualquier modificación efectuada en el servidor maestro:

NOPUSH="false"

2.- Se añade los nombres de los servidores esclavos en el archivo /var/yp/ypservers del servidor maestro, asegurándose de tener entrada para todos los servidores en /etc/hosts, también esto puede hacerse ejecutando:

/usr/lib/yp/ypinit -m

Esto le propociona al servidor maestro el nombre de nuestro servidor esclavo; los mapas son reconstruídos.

Ejemplo:

[root@pescado /root]# /usr/lib/yp/ypinit -m
At this point, we have to construct a list of the hosts which will run NIS
servers.  testsys.mydomain.nis is in the list of NIS server hosts.  Please continue
to add the names for the other hosts, one per line.
When you are done with the list, type a <control D>.

next host to add:  nombre_del_maestro.pescadoenjabonado.net
next host to add:  nombre_del_esclavo.pescadoenjabonado.net

3.- Para que finalmente el servidor esclavo reciba los datos o mapas del servidor maestro, se debe ejecutar /etc/init.d/nis restart en el server esclavo.

Configurando un servidor NIS esclavo en Debian

La gente que se dedica a esto recomiendo que primero se configure el nodo esclavo como un maestro de NIS, pero en lugar de elaborar los mapas de NIS se ejecuta la orden ypinit. Asegurate despues de tener configurado los siguiente:

1.- Asegurarse que en el archivo /etc/host exista la entrada correspondiente al servidor maestro,
ejemplo:

127.0.0.1       localhost
149.240.180.100  nombre_del_maestro.pescadoenjabonado.net nombre_del_maestro

2.- Establecer el nombre de dominio NIS en /etc/defaultdomain
ejemplo:

midominionis

3.- Indicamos el rol del servidor en el archivo /etc/default/nis:

NISSERVER=slave

4.- Reiniciamos el servivio NIS:

/etc/init.d/nis restart

5.- En el servidor esclavo, inicializamos ypserv para transferir los mapas:

ypinit -s nombre_del_maestro

6.- Nota adicional (solo para Debian):

El servidor maestro utiliza el programa yppush para notificar a sus esclavos que hagan copia de los datos utilizando el programa ypxfr. Pero en caso que en ese momento los esclavos no esten funcionando quedaran desactualizados o defasados del maestro debido a que este no repite la notificación en forma regular, es decir solo la hace cuando se modifican sus datos y se ejecuta el “make” (/var/yp/Makefile).

Por ello se recomienda planificar transferencias en los servidores esclavos, y para ello se utilizan scripts en el directorio /var/lib/yp los cuales son: ypxfr_1perday, ypxfr_2perday y ypxfr_1perhour, la diferencia de estos es que el primero transfiere todos los mapas, mientras que los otros sólo transfieren aquellos más propensos a cambios durante el día.

Ejemplo de una entrada en el cron, sobre el archivo: /etc/cron.d/nis

15  *       *   *   *    root /usr/lib/yp/ypxfr_1perhour >/dev/null 2>&1
30  3       *   *   *    root /usr/lib/yp/ypxfr_1perday >/dev/null 2>&1
50  3,23    *   *   *    root /usr/lib/yp/ypxfr_2perday >/dev/null 2>&1

Configurando un servidor NIS esclavo en Red Hat/CentOS

Tambien se requieren los cambios ya mecionados en el servidor maestro.

Para Red Hat se hacen los mismos pasos excepto: 3 y 6 y el punto 2 queda:

2.- Establecer el nombre de dominio NIS en /etc/sysconfig/network, ejemplo:

NIS_DOMAIN=midominionis

Para darle de forma “manual” (no guarda después de reiniciar) el dato, se hace con la orden:

domainname midominionis

Configuracion un servidor NIS maestro:

1.- Construir las tablas de NIS:

La configuración de los mapas que se exportan se encuentran el el archivo Makefile,
también se encuentrán los valores de variables ( Abajo veamos un ejemplo de una parte de dicho archivo) que queremos enviar a los nodos o computadoras.

# Copyright 1996-2003 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
# Set the following variable to "-b" to have NIS servers use the domain name
# resolver for hosts not in the current domain.
#B=-b
B=
DIR =/var/yp/etc
#
RBACDIR=/etc/security
PWDIR =/var/yp/etc
DOM = `domainname`
#NOPUSH = ""
NOPUSH =false
ALIASES = /var/yp/etc/mail.aliases
YPDIR=/usr/lib/netsvc/yp
SBINDIR=/usr/sbin
YPDBDIR=/var/yp
YPPUSH=$(YPDIR)/yppush
MAKEDBM=$(SBINDIR)/makedbm
MULTI=$(YPDIR)/multi
REVNETGROUP=$(SBINDIR)/revnetgroup
STDETHERS=$(YPDIR)/stdethers
STDHOSTS=$(YPDIR)/stdhosts
MKNETID=$(SBINDIR)/mknetid
MKALIAS=$(YPDIR)/mkalias
.
.

Es necesario ejecutar la orden make sobre el directorio /var/yp (o sobre /var/yp/etc) si se realizan cambios en el archivo Makefile o si se cambian los usuarios, hosts, etc.

2.- Se establece el nombre de dominio

3.- Con la orden ypinit -m se crean los mapas e inicializa el servidor (-m=maestro), y permitirá una lista de servidores esclavos.

4.- Y Finalmente inicializar el programa ypserv para establecer el servidor.

Administración con Netgroups:

NIS tiene una utilidad llamada netgroups que puede permitir o denegar el acceso y por medio de grupos dar pervilegios. Esros grupos se definen en /etc/netgroup o en el path que se indique en el archivo Makefile.

Veamos un ejemplo del archivo netgroup:

nombregrp1 (nombrehost1, nombreusuario1, nombredominio) (nombrehost1,,)
nombregrp2 (nombrehost2,-,-) (nombrehost3,-,-)
nombregrp3 nombregrp1 nombregupo2

Como se observa el grupo puede estar definido de dos formas. La primera consiste en colocar entre paréntesis 3 campos separado por comas que definen el nombre del host, nombre del usuario y el nombre del dominio. El espacio vacío significa permitir a todos y el “-” ninguno. La segunda consiste en definir un grupo como una lista de grupos.

El cliente puede definir el netgroup que va importar, para ello agrega una entrada en el archivo passwd de la forma:

+@nombregrp1:::::::

A continuación algunas ordenes y demonios utiles:

ypserv Demonio del servidor de NIS
ypbind Demonio del cliente de NIS
domainname Establece el nombre del dominio al que pertenece una maquina
ypxfr Descarga los mapas actualizados del servidor
ypxfrd Maneja peticiones de ypxfr en el servidor
yppush Hace que los mapas se actualicen en los servidores esclavos
makedbm Construye un archivo hash desde un archivo plano (flat file)
ypmake Reconstruye los mapas de hash una vez que se han actualizado
ypinit Configura un host como servidor maestro o esclavo
ypset Hace que ypbind se conecte a un servidor espec ??fico
ypwhich Muestra que servidor esta usando el host
(ej. ypwhich -m passwd, da a saber cual es el servidor del mapa passwd)
yppoll Muestra que version de los mapas se estan usando
ypcat Imprime los valores contenidos en los mapas
ypmatch Imprime las entradas para un argumento especificada
yppasswd Cambia una contrasenna en el servidor maestro
ypchfn Cambia el GECOS en el servidor maestro
ypchsh Cambia el shell por defecto en el servidor maestro
yppasswdd Servidor para yppasswd, ypchsh e ypchfn
ypupdated Servidor para la actualizacion de mapas
ypdomainname Para conocer el dominio NIS.
getent Recupera una entrada (ej. getent passwd usuario)
Referencias: Grupo Aullox TI,Sergio González, Bulma, taquiones.net, book.chinaunix.net (Red Hat Linux Bible), linuxjournal.com.
 

Se define como mapa de sitio (sitemaps) a una lista de páginas que integran un sitio web, el cual sirve para informar a robots de busqueda sobre esas páginas que se tienen; con la finalidad que se puedan encontrar el contenido del sitio.

Como otros buscadores Google utiliza motores de busqueda (Googlebot) para encontrar contenidos, los cuales indexa. Google recomienda que le envies el sitemaps en caso que el contenido de tu sitio no pueda ser detectado por sus procedimientos habituales, sobre todo si las páginas incluyen imágenes o contenido AJAX enriquecido o si tu sitio es nuevo o tiene contenido dinámico o simplemente si las páginas están mal enlazadas.

Creación del sitemaps en un sitio realizado con WordPress.

1. Instala el plugin Google XML Sitemaps

En la página del plugin recomiendan crear los archivos sitemap.xml y sitemap.xml.gz con permisos 666 con la orden chmod, en el directorio donde se encuentra también el archivo wp-config.php.
(Yo no realizé esto ya que al instalar el plugin se hizo)

2.- Ir a opciones del plugin y construir el sitemap.

Esto genera el archivo sitemap.xml, observandose en la raíz del sitio, por ejemplo:

http://ejemplo.com/sitemap.xml

y lo podras compartir o proporcionar a Gloogle en su sitio: https://www.google.com/webmasters

 

(versión beta)
Definiciones y conceptos:
Servidor proxy: Es una computadora o dispositivo intermediario que permite que otros dispositivos o clientes puedan conectarse a algún recurso o servicio de red de manera indirecta, esto es, la conexión no es punto a punto si no que se pasa antes por el proxy.

Esto funciona así:

El cliente realiza una conexión al servidor proxy y solicita un recurso a algún otro servidor.
como puede ser HTTP, HTTPS, PFT, WAIS y GOPHER.

El proxy le proporciona el recurso al cliente. Para ello el proxy solicita el recurso donde sea necesario ya sea a otro servidor o el mismo proporciona recurso debido a que también puede servir como caché. Cuando funciona como caché, guarda contenidos de http, archivos, etc que previamente fueron descargados por los clientes lo que permite que solicitudes de otros clientes a las mismas aplicaciones tengan una respuesta mas rápida. De hecho cuando recibe una petición primero busca una respuesta en el cache.

Como el proxy de alguna forma permite que el cliente obtenga el recurso, puede mofificar la solicitud del cliente o la respuesta del servidor destino. De ahi que el proxy sea un servidor intermediario. Ésta caracteristica de control permite usarlo como un muro cortafuegos o filtro.

Squid es un servidor con estas caracteristicas, ya que funciona como un servidor intermediario y caché de contenidos de red para FTP, GOPHER, WAIS y HTTP. También como proxy de SSL, WWCP, aceleración HTTP, caché trasparente, caché de consultas DNS, filtración de contenido, control de acceso por usuario y direcciones IP.

Para que pueda ser utilizado como proxy para protocolos SMTP, TELNET, IRC, SSH, POP3, etc. se debe implementar NAT o enmascaramiento de IP o usar un servidor SOCKS.

A continuación los algoritmos de cache que utliza Squid.

LFUDA (Least Frequently Used with Dynamic Aging).
En palabras llanas, los objetos mas solicitados son los que permanecen en el cache sin importar su tamaño.

LRU (Least Recently Used). Mantiene en cache los objetos mas recientes solicitados y va eliminando los que no se has accesado por mucho tiempo.

GDSF (GreedyDual Size Frequency).  Mantiene en cache los objetos mas pequeños más solicitados y elimina los objetos grandes solicitados con frecuencia.

Estas opciones pueden modificarse en el parámetro: cache_replacement_policy


Configuración:

Antes de la la configuración instale el paquete Squid de la forma yum install squid.

Después cree el directorio cache en la ruta /bar/squid, en mi caso lo puse ahí por tener un buen espacio. Aquí se guardan el cahe de Squid y debe pertenecer al usuario y grupo squid, de otra forma no se podrá crear su estructura y formato. Y mandará un error como el sig:

[root@servera ~]# squid -z
2010/05/08 17:27:15| Creating Swap Directories
FATAL: Failed to make swap directory /bar/squid/00: (13) Permission denied
Squid Cache (Version 2.6.STABLE21): Terminated abnormally.
CPU Usage: 0.001 seconds = 0.001 user + 0.000 sys
Maximum Resident Size: 0 KB
Page faults with physical i/o: 0

Nota: Con la orden squid -z se estructura y se da formato a el  directorio.

Configuración del Squid, sobre el archivo /etc/squid/squid.conf

Opción cache_mem
Establece la cantidad e memoria para objetos en tránsito, objetos frecuentemente utilizados.

Opción cache_dir
Es la cantidad que se puede almacenar en disco duro de informacion de internet, es la caché en el disco duro.

Ejemplo:
cache_dir ufs /var/spool/squid 100 16 256

donde:
100= 100MB= Espacio para alacenar.
16= Significa que el directorio cache tendrá 16 directorios con
256 niveles.

http_port
El puerto definido para atender peticiones es el 3128, aunque se puede utlizar alguno otro o varios. Los recomendados suelen ser 3128 y 8080 TCP. Para un servidor proxy tranparente generalmente se utiliza el 80 o el 8080 con el fin de no modificar los clientes http para que utilicen el servidor proxy. Bastará con utilizar como puerta de enlace al servidor. Esto es debido a que algunos programas suelen traer predefinido el puerto 8080, por lo que no esta mal escuchar peticiones en este puerto.

En nuestro caso no importa el puerto a utilizar debido a que los clientes HTTP estaran en una subred y recibirán todos los datos de configuracion desde el server proxy atraves de VLANDHCP.

Ejemplo sobre el archivo squid.conf

#
http_port 3128
http_port 8080
#

Las reglas de control de acceso serán aplicadas a las listas de acceso y permite o no el acceso al servidor squid.

1.- Primero creando las listas

Forma:

acl [nombre de la lista] src [lo que compone a la lista]

Variantes de las opciones:

src Dirección de orígen. Puede ser una dirección IP, o un conjunto de direcciones (siempre en formato CIDR), nunca un host.
dst Dirección de destino, con el mismo formato que src
myip Se evalúa en función de la dirección ip por la que le llegue al squid la petición. Se trata de su dirección IP.
srcdomain Evalúa el nombre del host del que procede la petición.
dstdomain Evalúa el destino de la petición a partir de su host.
srcdom_regex y dstdom_regex Evalúa los nombres de dominio de orígen o destino, pudiéndose utilizar expresiones regulares POSIX para encontrar coincidencias.
time Evalúa en función de tiempo
url_regex Regla muy útil. Evalúa toda la dirección que el cliente solicite, empezando desde http://.. incluído. Se utilizarán expresiones regulares.
urlpath_regex Igual que la anterior, sólo que se empieza a evaluar a partir del primer / que se encuentre por detrás del nombre de dominio.
method Método con el que se trate de obtener el contenido. Los más usuales son GET, POST, CONNECT y, en algunos casos, PUT.
maxconn Esto se utiliza para detectar cuándo un cliente ha alcanzado un máximo de conexiones, que especificaremos en su expresión coincidente con un número entero positivo.
rep_mime_type Se utiliza para evaluar en función del tipo de dato que el cliente solicite, pudiendo ser algo como application/x-javascript o application/x-msdos-program. Consultar /etc/mime.types para ver una lista.

Ejemplo1:
acl lista_de_permitidos src 192.168.1.0/255.255.255.0
Se permitita a toda la subred accesar al proxy.

Ejemplo2:
acl lista_de_permitidos src "/etc/squid/lista_de_permitidos"
Tambien se le puede decir que los clientes permitidos estan en un archivo (lista_de_permitidos),
el cual se verá asi:

192.168.1.129
192.168.1.130

2.- Haciendo el control.

Forma,
http_access [deny o allow] [lista de control de acceso]

Ejemplo:
http_access allow lista_de_permitidos !lista_de_no_permitidos interna

Donde el ! significa no permitir a lista, y claro la primera lista de clientes estará permitida.

Como ejemplo para el escenario tomaremos el nombre lista “interna

Escenario:
Se tiene una red de computadoras y parte de estas deben ser agrupadas en una subred para tener un control diferente al resto de las máquinas, para esto estas pueden ser conectadas a un switch en una VLAN. (Ver figura 1).

También se pretende que el usuario no tenga que configurar alguna opción proxy en su máquina, por lo que el servidor tendrá que ser transparente.

Requerimientos de Hardware:
- Servidor con 2 trajetas de red.
- Máquinas clientes
- Switch.
Requerimientos de Software:
- IPTABLES
- SQUID
- DHCPD

Figura 1.

Figura 1.

Configuración de la tarjeta con salida a internet, eth0. Ver figura 2.

Figura 2

Figura 2

Configuración de la interface de la red local ( que conecta a los clientes), eth1. Ver figura 3.

Figura 3.

Figura 3.

Note en la configuración de la interface eth1, no se le pone el default gateway. La dirección IP de la interface eth1 será el gateway de los clientes (ver el archivo dhcpd.conf).

La configuración del servicio DHCPD, en el archivo /etc/dhcpd.conf, queda como:

ddns-update-style interim;
ignore client-updates;
shared-network eth1 {
subnet 192.168.1.0 netmask 255.255.255.0 {# --- default gateway
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;

option nis-domain "id.pescadoenjabonado.net";
option domain-name "pescadoenjabonado.net";
option domain-name-servers 148.246.24.77;

option time-offset -18000; # Eastern Standard Time
# option ntp-servers 192.168.1.1;
# option netbios-name-servers 192.168.1.1;

range dynamic-bootp 192.168.1.128 192.168.1.254;
default-lease-time 21600;
max-lease-time 43200;

host pez {
next-server pez ;
hardware ethernet 01:20:a6:6e:73:4a;
fixed-address 192.168.1.3;
}
}
}

Notas:
El gateway que propociona el servidor a los clientes es: la dirección IP del mismo servidor (eth1) que da la cara a los clientes.

Configuración del servidor SQUID.

El servidor se configura con el archivo /etc/squid/squid.conf. Abajo los cambios y lineas agregadas para su funcionamiento.

#Recommended minimum configuration:
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl interna src 192.168.1.0/255.255.255.0 148.247.24.0/255.255.255.0
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT# Only allow cachemgr access from localhost
http_access allow manager localhost
http_access allow interna
http_access deny manager
# Deny requests to unknown ports
http_access deny !Safe_ports
# Deny CONNECT to other than SSL ports
http_access deny CONNECT !SSL_ports

# And finally deny all other access to this proxy
http_access allow localhost
http_access deny all

#Default:
# icp_access deny all
#
#Allow ICP queries from everyone

icp_access allow all

# Squid escucha "normalmente por el puerto 3128" y si lo dejamos por ahora. Es importante indicarle que sera un proxy transparente.

http_port 3128 transparent

#Default:
# dead_peer_timeout 10 seconds

# TAG: hierarchy_stoplist
# A list of words which, if found in a URL, cause the object to be handled directly by this cache. In other words, use this
# to not query neighbor caches for certain objects. You may list this option multiple times. Note: never_direct overrides
# this option.
#We recommend you to use at least the following line.
hierarchy_stoplist cgi-bin ?

cache_mem 128 MB

cache_dir ufs /bar/squid 64000 16 1024

maximum_object_size 32768 KB

access_log /var/log/squid/access.log squid

# OPTIONS FOR TUNING THE CACHE
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY

refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320

# Apache mod_gzip and mod_deflate known to be broken so don't trust
# Apache to signal ETag correctly on such responses

acl apache rep_header Server ^Apache
broken_vary_encoding allow apache

# TAG: coredump_dir
# By default Squid leaves core files in the directory from where
# it was started. If you set 'coredump_dir' to a directory
# that exists, Squid will chdir() to that directory at startup
# and coredump files will be left there.
#
#Default:
# coredump_dir none
#
# Leave coredumps in the first cache dir
coredump_dir /var/spool/squid

# offline_mode on

IPTABLES

Redireccionamiento de peticiones a través de iptables.

Para que el servidor proxy pueda ser intermediario  de los protocolos HTTPS, FTP, GOPHER y WAIS, estos  tendrán que ser filtrados a través del NAT (esto la habilitaremos en parte con iptables).

En un momento dado se requerirá tener salida transparente hacia Internet para ciertos servicios, y posiblenete también se necesitará redireccionar peticiones hacia servicio HTTP para pasar a través del el puerto donde escucha peticiones Squid (3128), de modo que no haya salida alguna hacia hacia servidores HTTP en el exterior sin que ésta pase antes por Squid.

Para el  redireccionamiento  utilizaremos iptables. Considerando que la red local se accede a través de la interfaz eth1:

iptables -t nat -A PREROUTING -i $IFACEI -p tcp --dport 80 -j DNAT --to $SQUID_SERVER:$SQUID_PORT

Toda petición desde la red local hacia el exterior puerto 80 (servicio HTTP) se redireccionará hacia el puerto 3128 del servidor.Re-direccionamiento de peticiones a través de la opción REDIRECT en Shorewall.

Configuración de IPTABLES.

En lo particular me parece mejor hacer un scrip para configurar el IPTABLES, en el cual les asignaremos nombres a las siguientes constantes. En la siguiente tabla se muestra la configuración.

Interface externa=IFACEE=eth0, Interface interna=IFACEI=eth1, IP servidor= SQUID_SERVER=148.247.24.1, SQUID_PORT=3128

#!/bin/sh
# ------------------------------------------------------------------------------------
# PROXY SQUID
# -------------------------------------------------------------------------------------
# squid server IP
SQUID_SERVER="148.247.24.1"
# Interface connected to Internet
IFACEE="eth0"
# Interface connected to LAN
IFACEI="eth1"
# Squid port
SQUID_PORT="3128"# DO NOT MODIFY BELOW
# Clean old firewall
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
# Load IPTABLES modules for NAT and IP conntrack support
modprobe ip_conntrack
modprobe ip_conntrack_ftp
# For win xp ftp client
#modprobe ip_nat_ftp
echo 1 > /proc/sys/net/ipv4/ip_forward
# Setting default filter policy
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
# Unlimited access to loop back
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# Others
iptables -A INPUT -p icmp --icmp-type any -j ACCEPT
# L2TP/IPSec VPN
# iptables -A INPUT -p 50 -j ACCEPT
# iptables -A INPUT -p 51 -j ACCEPT
iptables -A INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
# CUPS
# iptables -A INPUT -p udp -m udp --dport 161 -j ACCEPT
# iptables -A INPUT -p udp -m udp --dport 631 -j ACCEPT
# iptables -A INPUT -p tcp -m tcp --dport 631 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 1001 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 1000 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 3000 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 3128 -j ACCEPT
iptables -A INPUT -m state --state NEW -m udp -p udp --dport 161 -j ACCEPT
iptables -A INPUT -m state --state NEW -m udp -p udp --dport 162 -j ACCEPT
#iptables -A INPUT -p tcp -m tcp --sport 443 -j ACCEPT
#iptables -A OUTPUT -p tcp -m tcp --dport 443 -j ACCEPT
# Allow UDP, DNS and Passive FTP
iptables -A INPUT -i $IFACEE -m state --state ESTABLISHED,RELATED -j ACCEPT
# set this system as a router for Rest of LAN
iptables --table nat --append POSTROUTING --out-interface $IFACEE -j MASQUERADE
iptables --append FORWARD --in-interface $IFACEI -j ACCEPT
# unlimited access to LAN
iptables -A INPUT -i $IFACEI -j ACCEPT
iptables -A OUTPUT -o $IFACEI -j ACCEPT
# DNAT port 80 request comming from LAN systems to squid 3128 ($SQUID_PORT) aka transparent proxy
iptables -t nat -A PREROUTING -i $IFACEI -p tcp --dport 80 -j DNAT --to $SQUID_SERVER:$SQUID_PORT
#iptables -t nat -A PREROUTING -i $IFACEI -p tcp --dport 443 -j DNAT --to $SQUID_SERVER:$SQUID_PORT
# if it is same system
iptables -t nat -A PREROUTING -i $IFACEE -p tcp --dport 80 -j REDIRECT --to-port $SQUID_PORT
#iptables -t nat -A PREROUTING -i $IFACEE -p tcp --dport 443 -j REDIRECT --to-port $SQUID_PORT
# DROP everything and Log it
iptables -A INPUT -j LOG
iptables -A INPUT -j DROP
#

Nota: Es importante hacer permitir hacer forward de paquetes en el firewall (servidor) , es decir que otras máquinas puedan salir a traves del firewall.
echo “1″ > /proc/sys/net/ipv4/ip_forward

 

Comunicado de Prensa
No. 01/2010
México, Distrito Federal, a 6 de enero de 2010.

A LA VENTA, LAS BASES PARA LAS LICITACIONES PÚBLICAS 20 Y 21

A partir de hoy y hasta el viernes 8 de enero estarán a la venta las Bases de las Licitaciones Públicas 20 y 21 para el uso, aprovechamiento y explotación de las bandas 1.9 y 1.7 GHz del espectro radioeléctrico en la Comisión Federal de Telecomunicaciones (COFETEL).

Dichos procesos de Licitación permitirán la entrada de nuevos competidores al mercado móvil de las telecomunicaciones y promoverán el crecimiento de los operadores existentes.

En las bandas 1.9 y 1.7 GHz se autorizará la prestación de cualquier tipo de servicios de telecomunicaciones, salvo radiodifusión, ideales para telefonía móvil y para los servicios denominados de tercera generación, que comprenden voz, datos y video con los beneficios que proporciona el Internet.

Las Bases estarán a disposición de los interesados para ser adquiridas a partir de hoy y hasta el 8 de enero de las 10 a las 14 horas y de las 15 a las 18 horas en las oficinas de la COFETEL, ubicadas en Bosques de Radiatas 44, colonia Bosques de las Lomas.
Continue reading »

 

Google ha presentado su teléfono Nexus One, el cual utiliza el sistema operativo Android. En el sitio web www.google.com/phone se pueden adquirir el teléfono Nexus One libre (compatible con la tarjeta SIM de cualquier red GSM) o sujeto a un contrato con uno de los operadores de telefonía de Google.

De inicio Nexus One se pondrá a la venta en EE.UU, Reino Unido, Singapur y Hong Kong a través de la tienda virtual de Google. El precio del teléfono será de aproximadamente 529 dólares, pero también podrá adquirirse por 179 dólares si se raliza un contrato de dos años con el operador T-Mobile USA.

En los próximos meses Google se asociará con otros operadores y lanzar nuevos teléfonos con el sistema operativo Android, así como ampliar su tienda virtual a otros países.

Nexus One

Continue reading »

© 2011 PATATUX Suffusion theme by Sayontan Sinha