Escolar Documentos
Profissional Documentos
Cultura Documentos
Vlans, y ms
expertice.
Dentro de la receta, pedimos como mnimo un computador viejito con:
P3 500 o superior
512Mb de RAM (podra ser menos, pero no funciona con Fedora 12 o
superior, ni Centos 5x o superior)
Dos tarjetas de red, dos viejas de 10Mbps mnimo (10/100 ideal)
Un disco duro de 8Gb mnimo (voy a hacer el server con un disco de
20Gb, ustedes usen el que tengan)
Lector de dvd ideal (aunque lector de CD tambin sirve)
Mi advertencia para los que tienen ms de un tarro botado, es que usen
el ms chico, y eviten los P4. Esto es porque un PIII de 800 con 512Mb
es suficiente para administrar una red de ms de 400 usuarios sin
despeinarse, consumiendo menos de la mitad de lo que un P4 consumira.
Eliminando el mito, los Duron, Athlon XP y Atlhon MP, as como los
semproms, son mquinas muy eficientes energticamente, y que dan
grandes y agradables sorpresas en Linux, aunque los puristas siempre
prefieren Intel.
No me puede importar menos ni el monitor, ni la tarjeta de video, ni
nada ms. La idea es que luego de dejarlo funcionando, dejen servidor
en una posicin donde nadie lo toque, siempre encendido, e idealmente
sin mouse, teclado, ni monitor. De hecho, para los MASHOS TARTAROS,
les recomiendo que instalemos SIN GUI, aunque algunas personas siempre
quieren tener un escritorio al que allegarse. Mi recomendacin, es que
si van a hacer una instalacin con GUI, tengan en cuenta que es mejor
dejar el equipo siempre en runlevel 3, no solo para ahorrarse los
megamuchos megabytes de RAM que se consumen, sino que para evitar que
manos inescrupulosas crean que pueden ser administradores de
servidores.
Si por alguna razn, no son los mashos bakunos que dicen ser, e
instalan GUI de todas formas, les menciono que todas las
configuraciones que haremos, sern en base a texto, lo que no favorece
el uso de la GUI, aunque a los que estn acostumbrados, puede que les
acomode tener diferentes ventanas de terminal abiertas, o usando otro
editor de texto diferente a VI/VIM (mis elecciones) como puede ser
gedit.
CUIDADO CON EL SERVICIO NETWORKMANAGER. Es un servicio que corre en
GUI, pero que evita que el servicio de red sea manejado por consola.
Deshabilitenlo.
Adems, la mayor parte de las otras interacciones que haremos, sern
luego que el equipo funcione, siempre usando ssh, asi es que no tiene
mucho sentido.
Manos a la Obra:
Paso 1.- Descarguen el primer CD de Centos 5x (la ltima versin antes
de salir Centos 6 fue la Centos 5.6, y es de hecho la que recomiendo).
Pueden usar si tienen a mano como mencione anteriormente Fedora en las
versiones 12 hasta la 14 (no prob con versiones anteriores), y Centos
4 a la ltima de la 5. SIEMPRE EN 32bits.
Para los que vienen del mundo de Windows y creen de guata al cielo que
los 64bits son la solucin a la hambruna, la estupidez y la pobreza,
les comento que NO. Un Kernel PAE puede administrar 64Gb de ram, lo
que hace innecesario usar Kernels de 64 bits en Linux a menos que sea
Cita:
# chkconfig sendmail off
# chkconfig netfs off
# chkconfig ip6tables off
Y como somos educados, le vamos a poner nombre a la maquina:
Cita:
# vim /etc/sysconfig/network
HOSTNAME=proxy.by-hal
Ahora, revisamos que los adaptadores de red esten correctamente
configurados, partiendo obviamente por eth0, y luego eth1
Cita:
# vim /etc/sysconfig/network-scripts/ifcfg-eth0
Cita:
# Interface hacia Inet
DEVICE=eth0
BOOTPROTO=dhcp
USERCTRL=yes
HWADDR=00:11:22:33:44:55 # Ojo, no modifiquen SU mac, este es un
ejemplo
ONBOOT=yes
Cita:
# vim /etc/sysconfig/network-scripts/ifcfg-eth1
Cita:
# Interface hacia la red local
DEVICE=eth1
BOOTPROTO=static
IPADDR=192.168.10.1
NETMASK=255.255.255.0
USERCTRL=no
HWADDR=aa:bb:cc:dd:ee:ff # Ojo, no modifiquen SU mac, este es un
ejemplo
ONBOOT=yes
En algunas versiones de fedora, cuando se instala de manera mnima, no
activa por defecto los adaptadores de red, as es que para asegurarnos
que siempre levanten los adaptadores de red, usamos:
Cita:
# chkconfig network on
Para que el router se active, debemos activar el bit-forwarding lo que
se hace dentro de la siguiente configuracin.
Cita:
# vim /etc/sysctl.conf
Cita:
# Controls IP packet forwarding
net.ipv4.ip_forward = 1
para que el cambio sea inmediato, (les dije que no es Windows, y no se
reinicia casi casi casi nunca)
Cita:
# sysctl -p
Ahora, para poder tener todo listo para usar antes de empezar a
instalar las aplicaciones que necesitamos, preparamos las reglas de
los iptables.
Cita:
# iptables -F
# iptables -t nat -F
# iptables -P INPUT ACCEPT
# ESTO ES SI QUEREMOS QUE LAS IPs ESTN FIJAS. CAMBIEN EL NOMBRE DEL
HOST y LA MAC DEL ADAPTADOR
host hal {
hal-laptop-eth;
hardware ethernet hh:hh:hh:hh:hh:hh;
fixed-address 192.168.10.9;
}
host halwf {
hal-laptop-wifi;
hardware ethernet 00:00:00:00:00:00;
fixed-address 192.168.10.10;
}
Despus de eso, debemos definir cuales son las interfaces a las que
les pasaremos DHCP, por lo que modificamos el archivo:
Cita:
# vim /etc/sysconfig/dhcpd
Cita:
# comand line option here
DHCPDARGS=eth1
Si tienen ms de una interfaz, como por ejemplo puede ser una tarjeta
de red inalambrica, para poder dar Wifi, la incluimos ah mismo, y
quedara ms menos as.
Cita:
DHCPDARGS=eth1 wlan0
Si hicieron todo ok, entonces podemos poner en marcha el servicio
Cita:
# service dhcpd restart
Y como sabemos todos (creo), el que diga que sube correctamente, no
significa que todo este correctamente configurado, asi es que
cachureamos en el archivo de bitcoras.
Cita:
# tail -100 /var/log/messages
Si todo esta ok, entonces queremos que el servicio suba
automticamente cada vez que reiniciamos la mquina, lo que se logra
usando el famoso:
Cita:
# chkconfig dhcpd on
Y tenemos ahora un router, que adems da DHCP.
VAMOS BIEN!
Ahora, para que la navegacin sea expedita, es absurdo depender de los
DNS del ISP, que normalmente son PEORES que MALOS as es que
levantamos nuestro propio servidor de DNS de doble vista.
Instalamos BIND
Cita:
# yum -y install bind bind-utils bind-chroot caching-nameserver
Una vez instalado, tenemos que configurar nuestro servidor, para eso:
Cita:
# cd /var/named/chroot/etc/
# cp -a named.caching-nameserver.conf named.conf
# cp -a named.rfc1912.zones named.rfc1912.int.zones
# cp -a named.rfc1912.zones named.rfc1912.ext.zones
# cd /etc/
# ll named*
Borramos todos los enlaces simbolicos, para poder crear los nuevos
Cita:
# rm named*
(le decimos que si a todo)
Y ahora creamos los enlaces simblicos que corresponden
Cita:
# ln -s /var/named/chroot//etc/named.conf named.conf
# ln -s /var/named/chroot//etc/named.rfc1912.int.zones
named.rfc1912.int.zones
# ln -s /var/named/chroot//etc/named.rfc1912.ext.zones
named.rfc1912.ext.zones
Ahora la parte entretenida, modificamos named.conf para que funcione
nuestro servidor de DNS.
Cita:
# vim /etc/named.conf
Debiera quedar mas menos asi:
Cita:
//
// named.caching-nameserver.conf
//
// Provided by Red Hat caching-nameserver package to configure the
// ISC BIND named(8) DNS server as a caching only nameserver
// (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration
files.
//
// DO NOT EDIT THIS FILE - use system-config-bind or an editor
// to create named.conf - edits to this file will be lost on
// caching-nameserver package upgrade.
//
options {
listen-on port 53 { 127.0.0.1; 192.168.10.1;};
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
// Those options should be used carefully because they disable port
// randomization
// query-source port 53;
// query-source-v6 port 53;
allow-query { localhost; any; };
allow-query-cache { localhost; localnets; };
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view interno {
match-clients { localhost; 192.168.10.0/24;};
match-destinations { localhost; };
recursion yes;
include "/etc/named.rfc1912.int.zones";
};
view externo {
match-clients { any; };
match-destinations { localhost; };
recursion no;
include "/etc/named.rfc1912.ext.zones";
};
Si se fijan, cuando se pregunta recursion" en la vista interna, le
decimos que si, pero en la vista externa, SIEMPRE decimos que no. Esto
es base para evitar DNS poisoning, y por tanto mantener cierta
seguridad de nuestro servidor.
A veces, es polite cambiar adems los permisos a la carpeta donde
funcionan los DNS
Cita:
# chmod 770 /var/named/
Y hechamos a andar nuestro servicio de DNS
Cita:
# service named restart
Y como siempre, revisamos la colita de mensajes para ver que todo este
ok, aunque nuestro servidor levante de manera correcta.
Cita:
# tail -100 /var/log/messages
Si todo esta ok, definimos que el servicio levante siempre que la
maquina se enciende
Cita:
# chkconfig named on
FINALMENTE . . . dejamos la guinda de la torta para el final. Un
router de juguete me da internet, y la mayor parte maneja DHCP incluso
fijando las IPs, pero dependemos de un servicio de enmascaramiento de
DNS y DNS Forwarding para poder tener un servicio medianamente
decente. Pero no tienen servidor de DNS ni DNS cache como nuestro
servidor. Esto mejora increblemente los tiempos de respuesta de cada
requerimiento a las diferentes direcciones de Internet que queramos
ver.
Pero lo que hace la diferencia cuando tenemos ms de una persona
navegando en nuestra red, es la existencia de un proxy. Esto hace que
se almacene en el cache del mismo servidor, toda pgina y elementos
que pertenecen a una pgina, quedando guardados en dos niveles. Por un
lado, cuando los elementos son pequeos, quedan en la memoria RAM del
servidor, y cuando son ms grandes, pasan al disco duro. Si hacen
memoria, asigne 5Gb al cache del Squid, que quedo ubicado en /var/
spool/squid. En mi humilde experiencia, un cache de 5Gb es MUCHO para
una casa de 5 a 6 personas, pero cuando el espacio de disco no es una
limitacin, el cache NO DEBE exceder los 20Gb (16 Gb se ha visto como
el ideal), a menos que el disco sea MUCHO ms rpido de lo que uno
compra normalmente.
Ahora, instalar squid, es fcil, configurarlo, es un poco aspero
para ser sincero.
Para facilitar la configuracin, les voy a dar las lneas minimas para
no sufrir ni padecer en el intento.
Cita:
# yum install -y squid
# vim /etc/squid/squid.conf
Para poder hacer esto en fcil, pongamos nmeros en las lneas y asi
solo modificaremos algunas de ellas. El comando en vi/vim para ver la
numeracin de las lneas es :set nu"
Las lneas pueden variar un par de nmeros, pero dan una buena
referencia de donde esta cada cosa
Cita:
632 # acl TURED src 192.168.10.0/24
Cita:
633 # http_access allow TURED
Cita:
921 # http_port 192.168.10.1:3128 transparent
Squid entonces escucha todo lo que pase en la red mencionada, en el
Puerto 3128 y de forma transparente.
la navegacin no es por el puerto 80? :s
Cita:
1579 # cache_mem 384 MB
(SIN GUI recomiendo)
Cita:
1579 # cache_mem 320 MB
(CON GUI recomiendo)
aqui menciono que es la cantidad de memoria RAM asignada a cache de
navegacin. La recomendacin cuando la maquina solo corre como router,
es hasta el 90% de la ram. Personalmente, creo que esto es correcto
SOLO si se usa runlevel 3, sino, debe sumarse el costo del GUI (unos
120Mb) a los servicios y el poner el hasta el 90% del remanente.
Cita:
1588 # maximum_object_size_in_memory 160 KB
Tamao maximo de un objeto cargado en la RAM
Cita:
1786 # cache_dir ufs /var/spool/squid 5120 16 256
En mi humilde experiencia, el cache que ha dado mejor resultado es el
UFS, por lo que recomiendo dejarlo tal cual. Ahora el primero nmero
5120, es el espacio asignado en disco al cache de Squid, el segundo
son los niveles de directorios que se crearan, y el tercero los
subniveles. NO LOS MODIFIQUEN, solo modifiquen el espacio en disco que
quieran asignar.
Cita:
1811 # minimum_object_size 140 KB
Cita:
1825 # maximum_object_size 30720 KB
este es el valor MAXIMO de un objeto que ser almacenado en disco. En
este caso, lo fije como 30Mb, lo que es ms que suficiente para el 90%
de los usuarios. Las salvedades comienzan a aparecer cuando los
usuarios quieren que squid almacene las actualizaciones de Windows por
ejemplo, hecho que PUEDE hacer, pero no con la configuracin que estoy
entregando (necesitamos modificar algunos ACLs).
Eso debiera ser todo, aunque a veces, Squid pide que se defina un
visible_hostname.
# AGREGUE en la pagina 2 como configurar Vlans y como optimizar Squid
para Windows UPDATE... as es que no se lo pierdan y PONGAN
FEEDBACK... que esto tomo MUCHISISISISISIMO tiempo y dedicacin.
Windows Update
Con relacin a la optimizacion para para windows update, office
update, y con la obvia modificacion, casi cualquier otra aplicacin
como antivirus u aplicaciones que requieran actualizaciones, hay que
hacer las siguientes modificaciones.
(tomado literalmente de la seccin de informacin de Squid con
referencia al tema)
range_offset_limit. Usa -1 para descargar el archivo completo cuando
se solicite al servidor.
maximum_object_size. Por defecto este valor es pequeo. Necesita ser
mayor a 100Mb o ms para cumplir los requerimientos de IE.
quick_abort_min. Debe ser alterado para permitir que el archivo
completo se descargue cuando la aplicacin se desconecte. Algunas
versiones de Squid, permiten modificacin a gusto del
range_offset_limit, aunque algunas versiones presentan un
comportamiento errtico cuando el valor por defecto se altera.
O sea... debiera quedar mas menos asi...
Cita:
range_offset_limit -1
maximum_object_size 350 MB
quick_abort_min -1
UN TEMA NO MENOR . . .
aunque normalmente todos los servicios en Centos o cualquier otro
release basado en redhat bajan y suben usando el comando "restart",
NUNCA debes usarlo en SQUID.
El porque es simple, cuando haces restart, es un service [servicio]
stop seguido inmediatamente de un service [servicio] start.
En el caso de Squid, tienes dos caches funcionando, uno en la RAM, que
perders completamente al detener el servicio, y uno en disco, que
debiera permanecer. TU NO QUIERES perder el cache de la ram, por un
lado, y no estas seguro que luego de tu modificacin, Squid vuelva a
funcionar, dejando a tus clientes SIN SQUID, lo que es malo.
Para evitar eso, es recomendable usar el comando "RELOAD" en vez de
restart, que carga la nueva configuracion, sin detener el servicio. La
nomenclatura en entonces "service [servicio] reload", o
especificamente...
Cita:
service squid reload
Eleg un valor de 350Mb, considerando que muchas actualizaciones de
hecho hoy tienen pesos promedio de poco mas de 300Mb, considerando un
margen para futuras aplicaciones.
El tema es que para que se manejen correctamente las descargas y no
aparezcan popups de Squid, es necesario agregar las siguientes ACLs lo
antes posible de las lineas de configuracion... antes de las
denegaciones.
Considerando que estan predefinidas al menos una localnet
Cita:
acl windowsupdate dstdomain windowsupdate.microsoft.com
acl windowsupdate dstdomain .update.microsoft.com
acl windowsupdate dstdomain download.windowsupdate.com
acl windowsupdate dstdomain redir.metaservices.microsoft.com