GUIA ROUTER CENTOS – DHCP, PROXY CACHE, DNS CACHE, DNS de DOBLE VISTA… Parte 2

2 febrero 2012

Siguiendo con articulo anterior “GUIA ROUTER CENTOS – DHCP, PROXY CACHE, DNS CACHE, DNS de DOBLE VISTA… Parte 1“ no es de mi autoria pero pareció muy bueno que lo voy a postear, le pertenece a: rodhalpern que es usuario al igual que yo del Foro ba-k.com

VAMOS BIEN!

Ahora, para que la navegación 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

# yum -y install bind bind-utils bind-chroot caching-nameserver
Una vez instalado, tenemos que configurar nuestro servidor, para eso:

# 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

# rm named*
(le decimos que si a todo)

Y ahora creamos los enlaces simbólicos que corresponden

# 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.

# vim /etc/named.conf
Debiera quedar mas menos asi:
//
// 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 además los permisos a la carpeta donde funcionan los DNS

# chmod 770 /var/named/
Y hechamos a andar nuestro servicio de DNS

# service named restart
Y como siempre, revisamos la colita de mensajes para ver que todo este ok, aunque nuestro servidor levante de manera correcta.

# tail -100 /var/log/messages
Si todo esta ok, definimos que el servicio levante siempre que la maquina se enciende

# 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 increíblemente los tiempos de respuesta de cada requerimiento a las diferentes direcciones de Internet que queramos ver.
Pero lo que hace la diferencia cuando tenemos más 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 página y elementos que pertenecen a una página, quedando guardados en dos niveles. Por un lado, cuando los elementos son pequeños, quedan en la memoria RAM del servidor, y cuando son más 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 limitación, el cache NO DEBE exceder los 20Gb (16 Gb se ha visto como el ideal), a menos que el disco sea MUCHO más rápido de lo que uno compra normalmente.

Ahora, instalar squid, es fácil, configurarlo, es un poco “aspero” para ser sincero.
Para facilitar la configuración, les voy a dar las líneas minimas para no sufrir ni padecer en el intento.

# yum install -y squid
# vim /etc/squid/squid.conf

Para poder hacer esto en fácil, pongamos números en las líneas y asi solo modificaremos algunas de ellas. El comando en vi/vim para ver la numeración de las líneas es “:set nu»

– Las líneas pueden variar un par de números, pero dan una buena referencia de donde esta cada cosa

632 # acl TURED src 192.168.10.0/24
633 # http_access allow TURED
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 navegación no es por el puerto 80? :s

1579 # cache_mem 384 MB
(SIN GUI recomiendo)
1579 # cache_mem 320 MB
(CON GUI recomiendo)

aquí menciono que es la cantidad de memoria RAM asignada a cache de navegación. La recomendación 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.

1588 # maximum_object_size_in_memory 160 KB

Tamaño maximo de un objeto cargado en la RAM

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 número 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.

1811 # minimum_object_size 140 KB
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 más 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 configuración 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 dedicación.

Si encuentran errores, o tienen preguntas, avísenme para poder optimizar todo.


GUIA ROUTER CENTOS – DHCP, PROXY CACHE, DNS CACHE, DNS de DOBLE VISTA… Parte 1

2 febrero 2012

Siguiente con  articulo anterior «¿Por qué CENTOS y no UBUNTU o DEBIAN?»  no es de mi autoria pero pareció muy bueno que lo voy a postear, le pertenece a: rodhalpern que es usuario al igual que yo del Foro ba-k.com

Empezamos a postear.

Dentro de la receta, pedimos como mínimo un computador viejito con:

  • P3 500 o superior
  • 512Mb de RAM (podría ser menos, pero no funciona con Fedora 12 o superior, ni Centos 5x o superior)
  • Dos tarjetas de red, dos viejas de 10Mbps mínimo (10/100 ideal)
  • Un disco duro de 8Gb mínimo (voy a hacer el server con un disco de 20Gb, ustedes usen el que tengan)
  • Lector de dvd ideal (aunque lector de CD también sirve)

Mi advertencia para los que tienen más de un tarro botado, es que usen el más chico, y eviten los P4. Esto es porque un PIII de 800 con 512Mb es suficiente para administrar una red de más de 400 usuarios sin despeinarse, consumiendo menos de la mitad de lo que un P4 consumiría. Eliminando el mito, los Duron, Athlon XP y Atlhon MP, así como los semproms, son máquinas muy eficientes energéticamente, 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 más. La idea es que luego de dejarlo funcionando, dejen servidor en una posición 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 recomendación, es que si van a hacer una instalación 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 razón, no son los mashos bakunos que dicen ser, e instalan GUI de todas formas, les menciono que todas las configuraciones que haremos, serán en base a texto, lo que no favorece el uso de la GUI, aunque a los que estén 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.

Además, la mayor parte de las otras interacciones que haremos, serán 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 versión 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 solución 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 un servidor tamaño MAMUT.

NO USEN CENTOS 6 PORQUE HAY DETALLES DIFERENTES dentro de las configuraciones de DHCP, y posiblemente se mareen… ¿para qué hacerlo difícil, si fácil también resulta?

Paso 2.- Quemen el CD o el DVD de Centos 5x en el medio que corresponda.

Paso 3.- Inicien la instalación…

Aunque no quiero hacer un tratado de la instalación, y no capture imágenes de pantalla, tengo que explayarme porque necesitamos modificar algunas cosillas solamente… dentro de las cuales está la tabla de particiones (haremos un diseño personalizado), y las cosas que instalaremos.

Cuando inicien la instalación, elijan la instalación en modo gráfico. Sé que suena un poco contradictorio, pero la modificación de la tabla de particiones es un PARTO de PRIMERISA en modo texto, y no veo porque hacerlos sufrir gratis.

Cuando les ofrezca instalar el idioma, por defecto viene en Ingles, pero si quieres español, pinchen la selección de inglés, y escriban “SPA”, y tendrán la opción de Español (spanish), pinchen luego en siguiente, para seleccionar ahora el idioma del teclado. Por defecto viene con la configuración de español-españa. En mi caso tengo un teclado latinoamericano, así es que pongo “lat” y aparecerá la opción de teclado latino americano.
Ahora lo truculento . . . cuando les dé opción de hacer un diseño predeterminado… la respuesta es NO!!! . . . especialmente a los amigos newbies y Ubunteros, la respuesta es NO. Elijan “CREAR DISEÑO PERSONALIZADO”.

El porqué de esto, varias explicaciones, y cada una muchas ramificaciones, pero lo que es importante que entiendan es que:

  1. Al crear un diseño personalizado, distribuyo a voluntad el disco, y limito la posibilidad de vulnerabilidades de softwares.
  2. Evito que programas tomen más espacio de disco del que yo quiero asignar o es sano asignar. Por ejemplo, hasta hace poco tiempo, Squid tenía justamente un bug aleatorio, que lo hacía tomar más espacio de disco del que se configuraba, pudiendo tomar incluso el 100% del espacio libre de la partición en que se instaló. Con o sin BUG, no dejamos que eso pase.
  3. Puedo enjaular los requerimientos de usuarios (por ejemplo, con los DNS)
  4. Puedo dejar espacio SIN ASIGNAR para aumentar las particiones que así lo requieran, y no necesariamente asignado ni a la raíz, ni al home, ni a nada… no es una máquina de uso personal, es un servidor, y de buenas prácticas siempre es dejar espacio para crecer.

Desde que apareció el MARAVILLOSO LVM, se acabó el problema de espacio, siempre y cuando, tengamos la buena costumbre de definir un VOLUMEN FISICO LVM, y las particiones correspondientes dentro.
Ok… entonces ya que estamos ok con el diseño personalizado, lo primero es crear una nueva partición con punto de montaje /boot con sistema de archivos EXT3 y tamaño fijo de al menos 200Mb (fedora 14 y 15 soportan EXT4, lo que lo hace recomendable, solo por velocidad). Luego, todo el espacio que queda disponible, lo agregamos como LVM.

Acuérdense que el disco que estoy usando es de 20Gb.

Discos duros:
Dispositivo Punto de Montaje TIPO Formato Tamaño (MB)
/dev/sda
/dev/sda1 /boot Ext3 Si 250
/dev/sda2 Sistema LVM PV Si 20222

Ahora en el espacio LVM, ponemos las particiones necesarias para que nuestro servidor funcione. Como les mencione, el disco que usare tiene 20Gb, pero me va a sobrar espacio (como les mencione, por buenas practicas).

La tabla de particiones LVM, la llamé “SISTEMA”, y tiene que quedar entonces más menos así:

Grupo de volúmenes LVM
Dispositivo Punto de Montaje TIPO Formato Tamaño (MB)
Swap Swap Si 1024
Temp /tmp Ext3 Si 1024
Raíz / Ext3 Si 5120
Home /home Ext3 Si 2048
Var /var Ext3 Si 2048
Usr /usr Ext3 Si 2048
Squid /var/spool/squid Ext3 Si 5120

Para los que hacen las matemáticas… SI, deje más menos 1Gb no asignado. De esa manera puedo aumentar sin necesidad de disminuir nada alguna partición que requiera. Si pongo otro disco duro, simplemente lo transformo en volumen LVM, y aumento el espacio al nuevo disco, sin necesidad de hacer RAID. ¿¿¿ Les mencione que desde que apareció el LVM, fue amor a primera vista???
El gestor de arranque por defecto, es el amado GRUB, que se instale en /dev/sda/ tal cual como viene.

Ahora tiene que dar la opción de configurar nuestros adaptadores de red.

Nuestro adaptador eth0 debe quedar con dhcp e ipv6 desactivado (no se necesita), mientras que el eth1 tiene que quedar configurado con la dirección ip que queremos que tenga nuestra red, para ejemplos prácticos, la fijare como 192.168.10.1, con mascara de subred 255.255.255.0 (clase C), también ipv6 desactivado. Preocúpense que ambos adaptadores suban al encender la máquina.

Terminado eso, fijen su zona horaria correspondiente, mi caso, mi Chile querido. (America/Santiago).

Ahora les pedirá una contraseña de administrador. Les pido que sean sobrios y sensatos… “1234” NO ES UNA CONTRASEÑA, y “contraseña” TAMPOCO es una contraseña. Usen una contraseña que tenga al menos una mayúscula, minúsculas, números y algún carácter especial. NO LA PIERDAN.

Si quieren evaluar su contraseña…

Ahora, hacemos la magia. Por defecto en centos se instala el escritorio y algunas cosillas más. Como buenos mashos TARTATOS VIKINGOS, vamos a personalizar la instalación y sacar TODO, salvo el GUI para los no tan mashos. Pinchen Personalizar ahora.
En Entornos gráficos… SAQUEN TODO, salvos los no mashitos que quieren gnome. KDE es un pelito pesado, y es mejor evitarlo.
En Aplicaciones:

  • Auditoria y Publicación desmárquela completo
  • Editores, marquen las dos opciones de VIM-enhanced. Nada más.
  • Emacs, desmarquen todo
  • Gráficos, desmarquen todo
  • Ingeniería y científico, desmarquen todo
  • Internet basada en texto, para MASHOS, déjenlo
  • Internet gráfica, para los que van a instalar GUI, SOLO dejen Firefox
  • Juegos y entretenimiento, desmarquen todo (es un servidor)
  • Oficina y productividad, desmarquen todo (es un servidor)
  • Sonido y video, desmarquen todo

En desarrollo, DESMARQUEN TODO
En Servidores, DESMARQUEN TODO (sip, desmarquen todo)
En Sistema Base, SI NO SON LOS MASHITOS QUE CREO… desmarquen por favor el network manager, o tomara control de los adaptadores de red, además desmarquen el anacron (hace lo mismo que Cron), los servicios aspell, el bluetz-utils, cpuspeed, dmraud, finger, fistboot, ftp, yum-updatestd. El resto, no lo toquen.

Si tienen una conexión por modem ADSL, tienen que preocuparse que el soporte de red mediante discado este marcado, El resto, déjenlo tal como viene, con java desmarcado, herramientas de sistema desmarcada, herramientas de administración desmarcado, distribución de empresas desmarcado.

En la sección Virtualizacion, desmarquen todo
En agrupamiento de clustering desmarquen todo
En almacenamiento del clustering, desmarquen todo
En idiomas, desmarquen todos, menos el idioma que van a usar.

Cuando presionen siguiente, una pantalla avisara que luego del próximo siguiente, la instalación propiamente tal iniciara. Al finalizar la instalación, les va a pedir que reinicien la maquina (no se acostumbren, no es Windows).

El reinicio es suave y rápido, si desmarcaron todo lo que les pedí, he hicieron bien las particiones, solo queda poco trabajo antes de comenzar a hacer lo mínimo que se necesita para poder tener un servidor funcional.

 


¿Por qué CENTOS y no UBUNTU o DEBIAN?

2 febrero 2012

El siguiente comentario no es de mi autoria pero pareció muy bueno que lo voy a postear, le pertenece a: rodhalpern que es usuario al igual que yo del Foro ba-k.com

Empezamos a postear.

Lamentablemente, al pasar los años, la identidad de Debian (no me maten por favor) se ha ido perdiendo y transformando. Hoy, debían es una distro que tiene un nombre y que ha aportado MUCHO MAS que cualquier otra, pero que ha pasado a ser un desarrollo constante, inmaduro e inestable. Los paquetes más estables, están AÑEJOS con ganas, y los paquetes más nuevos, son bombas FOLK.

Ubuntu en cambio, es básicamente más de lo mismo, con algunas mejoras notables para los usuarios nuevos, y mejoras serias en la GUI, pero nuevamente, no es lo que buscamos.

Fedora, siendo una distro MUY innovadora, y que siempre está marcando tendencias, sigue siendo mucho más estable que Ubuntu, posiblemente porque su idea original es ser el ambiente de prueba de las versiones de escritorio de RedHat, y por tanto es posible usarla en modo texto con tan buenos resultados como otras distros.

Centos, es una distro que de innovador no tiene NADA. Esto es lógico y obvio, ya que uno no busca innovación en las GUI de los servidores, o que tenga las últimas chupas del mate en aplicaciones. Uno busca que lo que tiene funcione sólido como roca, y nunca más vuelva a fallar. Por lo mismo, es mi primera opción cuando de servidores se trata. Por otro lado, sus genes redhatcisticos, dan seguridad y confianza, además de tener un soporte y documentación masivos en la red, lo que permite siempre poder salir del problema, sea porque encontraste un artículo que mencionaba esa falla, o porque alguien certificado redhat te ayudo.

En este caso, la idea es que usen un router de verdad, basado en arquitectura x86 con Linux, y no los de juguete que uno compra en las tiendas, donde muchos servicios están capados, incluso usando firmwares de terceros como el dd-wrt (que también es Linux), y vean como un servidor chiquito hace maravillas en las redes de hogar. Considerando que una maquina vieja y usada normalmente está acumulando polvo por ahí, o se puede adquirir por menos de US $70 con mejores prestaciones de las que pongo acá, no es del todo descabellado implementarlas en vez de los routers de casa. Los servicios que además pueden implementar, no se limitan a los 3 servicios que les voy a dejar acá ( ROUTER, Servidor de DHCP, Servidor PROXY TRANSPARENTE, Servidor de DNS y DNS-CACHE de doble vista), sino que es posible usar hasta el infinito y más allá… solo depende de su paciencia y expertice.

 

 

 


Como bloquear el facebook en proxy transparente y con https e iptables

6 octubre 2011
para mi me ha funcionado usan iptables ya que bloqueo la entrada de la subredes donde esta alojado facebook
igual con la misma regla se puede bloquear por ip diferente por ejemplo
172.16.9.0-172.16.9.50 o 172.16.9.60-172.16.9.254 así como mejor les acomode y no tuve que bloquear toda la 
subred interna del trabajo

/sbin/iptables -A FORWARD -m iprange --src-range 172.16.9.0-172.16.9.254 -d 69.0.0.0/8 -j DROP
/sbin/iptables -A FORWARD -m iprange --src-range 172.16.9.0-172.16.9.254 -d 204.0.0.0/8 -j DROP
/sbin/iptables -A FORWARD -m iprange --src-range 172.16.9.0-172.16.9.254 -d 66.0.0.0/8 -j DROP

saludos aqui les dejo una liga donde mejor se explica
http://www.alcancelibre.org/forum/viewtopic.php?showtopic=6738


Cómo solucionar el fallo al montar automáticamente unidades USB en GNOME Debian “Squeeze”

2 abril 2011

Cómo solucionar el fallo al montar automáticamente unidades USB en GNOME Debian “Squeeze”

Fácil.

El error:

Error mounting: mount exited with exit code 1:

helper failed with: mount: wrong fs type, bad option, bad superblock on /dev/sdf1,

missing codepage or helper program, or other error

In some cases useful info is found in syslog – try

dmesg | tail or so

1. Abro un Terminal de root en Aplicaciones>Accesorios>Terminal de root o en Aplicaciones>Herramientas del sistema>Terminal de root o pulsando la combinación de teclas Alt+F2 y escribiendo gksu gnome-terminal y haciendo clic con el botón izquierdo sobre el botón señalado con la palabra Ejecutar

2. Ejecuto el comando que me sugiere el mensaje de error dmesg | tail [x.x] sd 9:0:0:0: [sdf] Assuming drive cache: write through [x.x] sd 9:0:0:0: [sdf] Assuming drive cache: write through [x.x] sdf: sdf1 [x.x] sd 9:0:0:0: [sdf] Assuming drive cache: write through [x.x] sd 9:0:0:0: [sdf] Attached SCSI removable disk [x.x] UDF-fs: No VRS found [x.x] UDF-fs: Rescanning with blocksize 2048 [x.x] UDF-fs: No VRS found [x.x] UDF-fs: No partition found (1) [x.x] ISOFS: Unable to identify CD-ROM format.

3. Edito el archivo /etc/fstab con el siguiente comando (con el sudo delante si no es un Terminal de root y tengo sudo activado) gedit /etc/fstab ota: puedo utilizar cualquier editor de texto, gráfico o de terminal, en lugar de gedit (nano, kedit, vim, etc.)

4. Localizo y borro la línea que provoca el conflicto, similar a esta: /dev/sdb1 /media/cdrom0 udf,iso9660 user,noauto 0 0 Y listo

Fuente :

Honor a quien honor merece  Defcon http://tendebianenlacabeza.blogspot.com/2010/11/como-solucionar-el-fallo-al-montar.html

http://putolinux.wordpress.com/


IPTABLES incluyendo para proxy transparente

2 septiembre 2009

Supongamos que este firewall tiene alguna función adicional: es un servidor proxy y además es un servidor de correo. Darle funcionalidades de este tipo a un firewall no es recomendable, porque si no se protegen bien esos puertos o si no está actualizado el software pueden entrar en el firewall a base de xploits comprometiendo TODA la red local. De todas formas muchas empresas no se pueden permitir o no quieren tener una máquina para cada cosa, bastante les cuesta a muchas poner un firewall. Por tanto: si se añaden servicios que deben estar abiertos al público en el propio firewall, nos la estamos jugando, y se recomienda pasar el servicio a otra máquina

#!/bin/sh
## SCRIPT de IPTABLES – ejemplo del manual de iptables
## Ejemplo de script para firewall entre red-local e internet
## con servicios abiertos de puerto 25, 110, y 1723
## Pello Xabier Altadill Izura
## http://www.pello.infopello@pello.info

echo -n Aplicando Reglas de Firewall…

## FLUSH de reglas
iptables -F
iptables -X
iptables -Z
iptables -t nat -F

## Establecemos politica por defecto
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT

## Empezamos a filtrar
## Nota: eth0 es el interfaz conectado al router y eth1 a la LAN
# El localhost se deja (por ejemplo conexiones locales a mysql)
iptables -A INPUT -i lo -j ACCEPT

# Al firewall tenemos acceso desde la red local
iptables -A INPUT -s 192.168.10.0/24 -i eth1 -j ACCEPT

# Puertos 80 redirigimos al 3128 del squid
# Para la clase 192.168.0.x 192.168.2.x
iptables -t nat -A PREROUTING -s 192.168.0.0/24 -i eth1 -p tcp –dport 80 -j REDIRECT –to-port 3128

# O podemos poner tambien esta regla

iptables -t nat -A PREROUTING -i eth1 -p tcp –dport 80 -j DNAT –to 192.168.1.2:3128

## Abrimos el acceso a puertos de correo

# Abrimos el puerto 25, hay que configurar bien el relay del servidor SMTP
iptables -A INPUT -s 0.0.0.0/0 -p tcp –dport 25 -j ACCEPT
# Abrimos el pop3
iptables -A INPUT -s 0.0.0.0/0 -p tcp –dport 110 -j ACCEPT

# Y abrimos el puerto pptpd para la ip del adsl de casa del jefe
iptables -A INPUT -s 211.45.176.24 -p tcp –dport 1723 -j ACCEPT

## Ahora con regla FORWARD filtramos el acceso de la red local
## al exterior. Como se explica antes, a los paquetes que no van dirigidos al
## propio firewall se les aplican reglas de FORWARD

# Aceptamos que vayan a puertos 80
iptables -A FORWARD -s 192.168.10.0/24 -i eth1 -p tcp –dport 80 -j ACCEPT
# Aceptamos que vayan a puertos https
iptables -A FORWARD -s 192.168.10.0/24 -i eth1 -p tcp –dport 443 -j ACCEPT

# Aceptamos que consulten los DNS
iptables -A FORWARD -s 192.168.10.0/24 -i eth1 -p tcp –dport 53 -j ACCEPT
iptables -A FORWARD -s 192.168.10.0/24 -i eth1 -p udp –dport 53 -j ACCEPT

# Y denegamos el resto. Si se necesita alguno, ya avisaran
iptables -A FORWARD -s 192.168.10.0/24 -i eth1 -j DROP

# Ahora hacemos enmascaramiento de la red local
# y activamos el BIT DE FORWARDING (imprescindible!!!!!)
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE

# Con esto permitimos hacer forward de paquetes en el firewall, o sea
# que otras máquinas puedan salir a traves del firewall.
echo 1 > /proc/sys/net/ipv4/ip_forward

## Y ahora cerramos los accesos indeseados del exterior:
# Nota: 0.0.0.0/0 significa: cualquier red

# Cerramos el rango de puerto bien conocido
iptables -A INPUT -s 0.0.0.0/0 -i eth0 -p tcp -dport 1:1024 -j DROP
iptables -A INPUT -s 0.0.0.0/0 -i eth0 -p udp -dport 1:1024 -j DROP

# Cerramos un puerto de gestión: webmin
iptables -A INPUT -s 0.0.0.0/0 -i eth0 -p tcp –dport 10000 -j DROP

# Y cerramos el puerto del servicio PPTPD, solo abierto para el jefe.
iptables -A INPUT -s 0.0.0.0/0 -i eth0 -p tcp –dport 1723 -j DROP

echo » OK . Verifique que lo que se aplica con: iptables -L -n»

# Fin del script


Microsoft mintió sobre su apertura a la licencia GPL

27 julio 2009

Gracais compañero ToxicShell por la informacion e investigue mas aqui pongo lo que obtuve

Después de que Microsoft haya anunciado con bombos y platillos la liberación de 20000 líneas de código para tres controladores bajo licencia GPL2, ahora se descubrió que esa apertura fue para evitar una potencial disputa legal sobre la violación de la licencia GPL, que no permite la mezcla de códigos cerrados y elementos de código abierto.

Según el portal The Register, Stephen Hemminger ingeniero de Open Source Vyatta, se dio cuenta que uno de los drivers del código de software Hyper-V de Microsoft hacía uso de componentes GPL, algo que está prohibido a no ser que esos mismos drivers también sean liberados, y esa parece haber sido la verdadera causa del supuesto cambio de actitud de Redmond.

Cuando Hemminger descubrió el problema, se puso en contacto con el responsable del Linux Driver Project y programador en Novell, Greg Kroah-Hartman, para que ambos colaboraran con Microsoft para poder solucionar ese conflicto, esperando que la relación de interoperabilidad entre Novell y Microsoft facilitara la resolución del problema.

El tema es que de acuerdo a Hemminger, Microsoft anunció esa liberación como algo que realmente no era. Es decir, la compañía hizo el anuncio como si se tratara de un “hito importante”, un “poderoso catalizador” para el cambio y un “buen ejemplo” de cómo se cumplen las demandas de los clientes, cuando en realidad sólo fue para evitar un embarazoso problema jurídico.

Por otro lado, una periodista de ZDNet se contactó vía email con Kroah-Hartman para verificar la información, y le preguntó si era cierto que Hemminger había reclamado poner las líneas de código bajo la GPL, ya que sino se estaría violando la licencia, y si tuvo que sugerirle a Microsoft que hiciera la apertura. Al respecto, Kroah-Hartman respondió: “yo no tenía que sugerir nada, sólo me limité a mencionar la evidencia de la situación”.

A su vez, en The Register destacan que Microsoft quizás tergiversó las causas de esa liberación por la importancia política y estratégica de la tecnología Hyper-V de la empresa, o por el prestigio de adoptar la licencia GPL y acelerar la ejecución de Linux en Hyper-V, para taparle la boca a los escépticos.

El portal también señala que la combinación de códigos abiertos y cerrados en los drivers Hyper-V puede haber sido producto de personas que no sabían lo que estaban haciendo, o no comprendieron la licencia, y que Microsoft no sería la única empresa que incurre en esta falta.

Sin embargo, The Register pone de manifiesto que dada la rivalidad existente entre Microsoft y los sistemas de código abierto, no se puede confiar en esas especulaciones, ya que lo más seguro es que los de Redmond tengan cosas que ocultar, y que la aceptación del código abierto dentro de la corporación no debe ser tan generalizada como quisieron hacer creer con su reciente anuncio.

Fuente
http://www.redusers.com/microsoft-mintio-s…la-licencia-gpl



Microsoft entrega su primer aporte al kernel de Linux

23 julio 2009

(cc) por ohem

Por primera vez en su historia, el gigante del software entrega un aporte de código abierto directamente al kernel de Linux. Se trata de unas 20.000 líneas de código licenciado como GPLv2 que implementan los drivers necesarios para correr Linux virtualizado sobre plataforma Windows. El código que ya está en manos de los desarrolladores del kernel, permitirá obtener el mejor rendimiento posible cuando se utilice Linux virtualizado sobre Windows Server 2008 Hyper-V o Windows Server 2008 R2 Hyper-V.
Este aporte es parte de un esfuerzo que realiza el Open Source Technology Center de Microsoft. Se trata de una unidad que actúa como un punto de unión entre las comunidades de código abierto interesadas en trabajar con Microsoft, y los equipos al interior de la compañía interesados en la tecnología de código abierto. Desde el OSTC de Microsoft han surgido otros aportes al código abierto como las mejoras a PHP para ejecutarse sobre Windows, el apoyo a Firefox para mejorar su rendimiento sobre Windows Vista, y la participación en varios proyectos de Apache Software Foundation como Axis2, Hadoop, Stonehenge y QIPD.
En esta oportunidad, se trata de un paso necesario dado la creciente realidad de que el entorno corporativo necesita manejar sistemas heterogéneos, en donde cada sistema operativo satisface distintas necesidades. Sam Ranji, a cargo del OSTC dice:

Cada vez es más frecuente que las compañías busquen ayuda en Microsoft para tener éxito en un mundo de tecnología heterogénea, porque entendemos que reducir la complejidad es un factor clave para reducir el costo.

Luego agrega:

Por lo tanto hay un beneficio mutuo para los clientes, Microsoft y las distribuciones de Linux comerciales y basadas en comunidad, al mejorar el rendimiento de Linux como un sistema operativo virtualizado en Windows Server.

Sam dice que mucha gente desconoce el esfuerzo en código abierto que están realizando porque están más enfocados en trabajar en ello que en promoverlo. Como compañía les interesa que sus clientes tengan libertad de opción a la hora de escoger tecnologías, y muchos de ellos están utilizando software de código abierto sobre sus plataformas Windows.
Tanto el imparable desarrollo de tecnologías de código abierto como la necesidad de consolidar plataformas y reducir los costos – debido a las condiciones de la economía – hacen que navegar contra esta revolución sea un esfuerzo inútil. La demanda de los propios clientes de Microsoft por mejorar la interoperabilidad es un factor clave para mantener estos esfuerzos.
En palabras de Sam Ramji:

A medida que el código abierto se adopta en un rango de plataformas, entender, involucrarse y dar soporte al desarrollo de código abierto continuará siendo fundamental para permitir mayor elección a los clientes.

Links :
Microsoft contributes Linux drivers to Linux Community (Microsoft)
Microsoft contributes code to the Linux Kernel (Channel 9)


Servidor web Apache en Linux

20 julio 2009

La web (www, World Wide Web, Telaraña de ámbito mundial) es un sistema que funciona sobre Internet mediante el protocolo HTTP (HyperText Transfer Protocol), que permite visualizar documentos escritos en HTML (HyperText Markup Language, Lenguaje de marcas de hipertexto). Este procolo se implementa con arquitectura cliente-servidor, por lo que necesita:

  • un servidor web que escuche en el puerto 80 TCP (por defecto) y que se ocupe de atender las peticiones de páginas web.
  • un cliente web (navegador o browser) que permita acceder al puerto 80 de la máquina en la que corre el servidor web y solicitarle páginas web mediante la URL (Uniform Resource Locator, Localizador Uniforme de Recursos).

Instalar Apache

Hay muchos servidores web pero el más usado es Apache (apache.org, paquete virtual httpd, paquetes apache2 apache2-mpm-prefork), que forma parte de la tecnología LAMP (Linux, Apache, PHP, MySQL).

¿Qué MPM instalar en Apache 2?

Apache 2 tiene varios núcleos o MPM (Multi Processing Module). El que se instala por defecto es worker (paquete apache2-mpm-worker). Es multi-hilo y más rápido que Apache 1.3 pero no es adecuado para PHP. En PHP recomiendan el MPM prefork (paquete apache2-mpm-prefork), más estable y similar a Apache 1.3, que es el que instalaremos nosotros.

Comprobaremos si está bien instalado tecleando 127.0.0.1 o localhost en el navegador: si todo está correcto aparecerá la página de prueba de Apache.

Pagina de prueba de Apache

Equivalencias en Windows: MS-IIS.

Recursos

Configurar Apache

Configuración general del servidor

A diferencia de Apache 1.3 que contaba con un único archivo de configuración (el mítico y añorado /etc/apache/httpd.conf), Apache 2 tiene numerosos archivos de configuración. Veamos algunas de las principales directivas de /etc/apache2/apache2.conf:

  • Información que facilita Apache sobre sí mismo. Por defecto vale Full:
    ServerTokens Full

    Y Apache da toda la información:

    Apache 2.0.4 (Debian - PHP/5.2.0-8+etch3)

    Por seguridad, mejor ponerlo a Prod para que envíe el mínimo de información:

    ServerTokens Prod
  • Datos sobre Apache en el pie de los mensajes de error. Por defecto vale On:
    ServerSignature On

    Y Apache da todos los datos:

    Apache 2.0.4 Server at 192.168.1.3 Port 80

    Por seguridad, mejor ponerlo a Off para dar el mínimo de datos:

    ServerSignature Off
  • Comportamiento del servidor cuando se produce un error. Por ejemplo, podemos configurar Apache para que redireccione a un fichero en nuestro servidor al ocurrir un Error 404. La página no existe:
    ErrorDocument 404 /info.html
  • La directiva Alias permite redireccionar a un directorio que puede estar fuera del árbol de directorios especificado en DocumentRoot. Por ejemplo, con la directiva:
    Alias /icons/ /usr/share/apache2/icons/

    si tecleamos en el browser:

    http://www.domain.com/icons/

    Apache servirá el contenido de:

    http://www.domain.com/usr/share/apache2/icons/

    Para los directorios definidos en las directivas Alias tendremos que crear una directiva Directory en la que se definan los permisos, por ejemplo:

    <Directory /usr/share/apache2/icons/>
            ...
    </Directory>
  • La directiva userDir permite redireccionar al directorio personal del usuario si se recibe una solicitud del tipo ~usuario:
    userDir public_html

    Si tecleamos en el navegador:

    http://www.domain.com/~francis/

    el servidor accederá a:

    http://www.domain.com/home/francis/public_html/

  • La configuración general de Apache puede sobreescribirse para un directorio determinado si ubicamos en él un archivo .htaccess. La directiva AccessFileName define el nombre de ese archivo:
    AccessFileName .htacces

    Para impedir que los .htaccess puedan ser vistos por los usuarios:

    <Files ~"ˆ\.ht">
        Order allow deny
        Deny from all
    </Files>

Otro archivo de configuración de Apache 2 es /etc/apache2/mods-enabled/dir.conf:

  • la directiva DirectoryIndex establece el archivo que busca Apache al entrar en un directorio de nuestra web. Por ejemplo, para decirle que si no encuentra index.html busque index.htm o index.cgi, en ese orden, pondremos:
    DirectoryIndex index.html index.htm index.cgi

Otro archivo más, /etc/apache2/conf.d/charset:

  • la directiva AddDefaultCharset se configura en el archivo /etc/apache2/conf.d/charset y establece qué sistemas de codificación son aceptados y cuál es el sistema por defecto. Admite tres valores:
    • para que Apache sirva la página en ISO-8859-1 sea cual sea la codificación de la página web usaremos on (es la opción por defecto):
      AddDefaultCharset on
    • usaremos <charset> para que Apache sirva la página en ese charset concreto, sea cual sea la codificación de la página web. Por ejemplo, para UTF-8:
      AddDefaultCharset utf-8
    • para que Apache sirva la página con el charset especificado en la etiqueta META de la página web usaremos off (es la opción más recomendable):
      AddDefaultCharset off

      Por ejemplo, para UTF-8, la etiqueta META será:

      <meta http-equiv="Content-Type" content="text/html;charset=utf-8">

Configurar los hosts

Para configurar nuestro host editaremos el archivo /etc/apache2/sites-available/default. Si nuestro Apache tiene que servir varios dominios crearemos un bloque VirtualHost para cada uno de ellos, siendo el host por defecto el primer host virtual listado.

Supongamos que tenemos dos dominios (http://www.domain.com y http://www.otherdomain.com) apuntando a nuestra IP. Para cada uno de ellos existirá una sección VirtualHost, siendo http://www.domain.com el sitio por defecto:

NameVirtualHost *
<VirtualHost *>
    ServerName www.domain.com
    ServerAlias domain.com *.domain.com
    DocumentRoot /var/www/domain
    ServerAdmin webmaster@domain.com
    <Directory />
        Options SymLinksIfOwnerMatch
        AllowOverride None
    </Directory>
    <Directory /var/www/domain>
        Options -Indexes -Includes -FollowSymLinks Multiviews
        AllowOverride None
        Order allow, deny
        Allow from all
    </Directory>
    CustomLog /var/log/apache2/access.domain.log combined
    ErrorLog /var/log/apache2/error.domain.log
</VirtualHost>

<VirtualHost *>
    ServerName www.otherdomain.com
    ServerAlias otherdomain.com *.otherdomain.com
    DocumentRoot /var/www/otherdomain
    ServerAdmin webmaster@otherdomain.com
    <Directory />
        Options SymLinksIfOwnerMatch
        AllowOverride None
    </Directory>
    <Directory /var/www/otherdomain>
        Options -Indexes -Includes -FollowSymLinks Multiviews
        AllowOverride None
        Order allow, deny
        Allow from all
    </Directory>
    CustomLog /var/log/apache2/access.otherdomain.log combined
    ErrorLog /var/log/apache2/error.otherdomain.log
</VirtualHost>

Examinemos algunas de las directivas que se incluyen en cada VirtualHost:

  • Nombre que el servidor utiliza para identificarse (debe figurar en el DNS). Si no tenemos un dominio registrado usaremos localhost:
    ServerName localhost

    Si tenemos un dominio registrado lo usaremos:

    ServerName www.domain.com
  • Directorio donde está la web, donde Apache busca la página por defecto (si pensamos servir varios dominios, tendremos un directorio para cada uno):
    DocumentRoot /var/www/domain
  • Email del administrador que saldrá cuando haya errores (por ejemplo, Error 404. La página no existe. Contacte con el administrador: webmaster@localhost). Si no tenemos un dominio registrado usaremos localhost:
    ServerAdmin webmaster@localhost

    Si tenemos un dominio registrado lo usaremos:

    ServerAdmin webmaster@domain.com
  • Archivo donde se guardan los logs de acceso y formato (si pensamos servir varios dominios, tendremos archivos de logs de acceso diferentes):
    CustomLog /var/log/apache2/access.domain.log combined

    La directiva LogFormat define los posibles formatos para los logs generados: (full, debug, combined, forensic, common, referer y agent).

  • Ubicación de los logs de error (si pensamos servir varios dominios, usaremos archivos de logs de error diferentes):
    ErrorLog /var/log/apache2/error.domain.log

    Tipo de mensajes que se guardarán en los logs de error (de menos a más gravedad: debug, info, notice, warn, error, crit, alert y emerg):

    LogLevel warn
  • Con la directiva Directory definimos opciones que se aplican al directorio indicado y sus subdirectorios. Lo habitual es configurar unos permisos por defecto muy restrictivos:
    <Directory />
        Options SymLinksIfOwnerMatch
        AllowOverride None
    </Directory>

    y posteriormente habilitar el acceso y permisos más amplios en directorios específicos. Por ejemplo, para la raíz del árbol de documentos y sus subdirectorios:

    <Directory /var/www/>
        Options -Indexes -Includes -FollowSymLinks Multiviews
        AllowOverride None
        Order allow, deny
        Allow from all
    </Directory>
    • La opción SymLinksIfOwnerMatch sólo permite que puedan seguirse los enlaces simbólicos si el propietario del link y el del archivo apuntado es el mismo.
    • La opción FollowSymLinks permite que puedan seguirse los enlaces simbólicos. Por seguridad, esta opción la desactivamos.
    • Con la opción Indexes, si se solicita un directorio y no existe la página especificada con DirectoryIndex (index.html, index.htm, etc.), Apache mostrará el contenido del directorio.Es preferible desactivar esta opción con -Indexes para no arriesgarnos a que el usuario pueda acceder a archivos sensibles, de manera que Apache mostrará el mensaje de error Forbidden – You don’t have permission. Una solución sencilla muy utilizada para evitar riesgos es ubicar en los directorios que no se desea que sean mostrados un archivo index.html vacío: si alguien entra en estos directorios sólo verá una página en blanco.

      En caso de activar Indexes controlaremos la apariencia del listado con la directiva IndexOptions. Por ejemplo, para mostrar iconos (FancyIndexing) y que se muestren primero los directorios (FoldersFirstcon) pondremos:

      IndexOptions FancyIndexing FoldersFirstcon
    • La directiva AllowOverride controla qué opciones pueden sobreescribirse con un archivo .htaccess. Puede impedirse la modificación con None o permitirse con All.
    • La opción Multiviews permite negociar los contenidos con el navegador para elegir la mejor representación de acuerdo con sus preferencias (idioma, conjunto de caracteres, codificación, etc.).
    • La directiva Includes permite el uso de SSI (Server Side Includes). Las instrucciones SSI se utilizan para generar páginas dinámicas y se incluyen normalmente en ficheros con extensión .shtml. Si no utilizamos SSI es preferible desactivar esta opción con -Includes.
    • Con las directivas Order y Allow se controla el acceso al servidor utilizando el nombre de dominio o la IP del cliente. La directiva Order allow, deny determina que primero se evalúa la lista Allow y luego la Deny. La directiva Allow from all permite acceder a todo el mundo. Las directivas Allow y Deny serán similares a:
      Allow from all
      Allow from none
      Allow from 192.168 80.58.61.254 fransberns.com
  • Si tenemos páginas dinámicas a las que se accede pasando parámetros en la URL, pueden convertirse en URLs amistosas con la directiva RewriteRule. En primer lugar, activamos el módulo mod_rewrite sin generar logs para las redirecciones:
    RewriteEngine on
    RewriteLogLevel 0

    A continuación, establecemos las reglas de reescritura. Por ejemplo, con la directiva:

    RewriteRule /news/(.+) /index.php?id=$1

    cuando se solicite la página:

    http://www.domain.com/news/medicina.php

    el servidor devolverá (de forma transparente para el usuario):

    http://www.domain.com/index.php?id=medicina.php

  • El módulo mod_rewrite nos permite una cosa muy interesante, protegernos contra el hotlink o «robo de ancho de banda», que consiste en enlazar directamente las imágenes de otros sitios en vez de almacenarlas en el propio servidor, de manera que se perjudica a la web enlazada al incrementar su tasa de transferencia. Evitar el hotlink no es capricho, si nuestro plan de hosting va «justito» superaremos los límites y seremos penalizados. Pondremos algo similar a:
    RewriteEngine on
    RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !^http://(www\.)?mi_dominio.com(/)?.*$ [NC]
    RewriteRule .*\.(gif|jpg|png)$ - [F,NC]

    Para reemplazar la imagen solicitada por otra sustituiremos la última línea por:

    RewriteRule .*\.(gif|jpg|png)$ http://www.mi_dominio.com/nohotlink.jpe [R,NC]

    Y la imagen que se verá en la web ladrona será nohotlink.jpe:

    no hotlink

    Recursos

  • El protocolo HTTP dispone de dos mecanismos de autentificación para restringir el acceso a un directorio mediante nombre de usuario y contraseña: Basic (el usuario y el password viajan por la red sin cifrar) y Digest (el usuario y el password viajan por la red cifrados con MD5). Para utilizar Digest debemos cargar el módulo:
    LoadModule digest_auth_module  /usr/lib/apache2/modules/mod_auth_digest.so

    Ambos mecanismos de autentificación funcionan de forma similar:

    1. crearemos el archivo que contiene los nombres de los usuarios autorizados (que no tienen que coincidir con usuarios del sistema) y sus contraseñas cifradas. Este archivo es /etc/apache2/passwd y se crea al añadir el primer usuario con el comando:- Basic:
      # htpasswd -c /etc/apache2/passwd <nombre_usuario>

      – Digest:

      # htdigest -c /etc/apache2/passwd Private <nombre_usuario>

      Nos pedirá la contraseña del usuario y su confirmación. La opción -c creará el archivo (si no existe) o lo sobrescribirá (si existe). Para Digest tenemos que especificar el nombre del dominio de autentificación (Private) que figura en la directiva AuthName (es el nombre que se muestra cuando se solicita la autentificación al usuario).

    2. una vez creado el archivo, para añadir usuarios o modificar contraseñas haremos:- Basic:
      # htpasswd /etc/apache2/passwd <nombre_usuario>

      – Digest:

      # htdigest /etc/apache2/passwd Private <nombre_usuario>
    3. indicaremos al servidor qué recursos están protegidos y cuáles son los usuarios que pueden acceder a ellos. Por ejemplo, para proteger el directorio /var/www/secret pondremos:- Basic:
      <Directory /var/www/secret/>
          AuthType Basic
          AuthName "Only by invitation"
          AuthUserFile /etc/apache2/passwd
          Require valid-user
      </Directory>

      – Digest:

      <Directory /var/www/secret/>
          AuthType Digest
          AuthName Private
          AuthDigestFile /etc/apache2/passwd
          Require valid-user
      lt;/Directory>
    4. a partir de este momento, para acceder a /var/www/secret nos tendremos que autentificar:- Basic:

      Directorios protegidos Basic

      – Digest:

      Directorios protegidos Digest

Comprobar Apache

Una vez configurado Apache, guardamos los cambios y reiniciamos el servidor:

# /etc/init.d/apache restart

Comprobaremos si funciona poniendo en el directorio donde está la web (/var/www) la página HTML más sencilla, Hola mundo. El archivo hello.html contiene lo siguiente:

<html>
  <head>
    <title>Hola mundo</title>
  </head>
  <body>
    <h1>Hola, mundo.</h1>
  </body>
</html>

Si todo está correcto, al abrir http://127.0.0.1/hello.html en el navegador veremos lo siguiente:

Hola mundo HTML

Te puede interesar…

Servidores para la web:
servidor HTTP Apache
PHP: scripts del lado del servidor
soporte para CGIs
estadísticas web
– servidor de base de datos:
MySQL
phpMyAdmin
migrar de Apache a Lighttpd
XCache con Lighttpd

VISTO EN : http://www.estrellateyarde.es/discover/servidor-http-en-linux


Instalar servidor FTP vsftpd sencillo en Ubuntu

20 julio 2009

Vamos a instalar el servidor vsftpd en nuestro Ubuntu 8.04 server.

sudo apt-get update
sudo apt-get install vsftpd

Ahora vamos a configurar el servidor editando el archivo /etc/vsftpd.conf, pero antes, y como siempre, hacemos una copia del archivo original

sudo cp /etc/vsftpd.conf
sudo nano /etc/vsftpd.conf

Para no permitir el acceso anónimo al servidor cambiamos el valor de anonymous_enable a NO

anonymous_enable=NO

Para permitir que los usuarios locales del sistema puedan conectarse descomentamos la línea local_enable

local_enable=YES

Para permitir que se puedan subir archivos al servidor hay que dar permisos de escritura, por lo que deberemos descomentar la línea write_enable

write_enable=YES

A continuación podemos establecer el valor umask para los archivos que subamos. Este valor determina los permisos de lectura, escritura y ejecución que tendrán los archivos por defecto. El valor que viene en el fichero de configuración quizás sea demasiado restrictivo, ya que solamente el propietario tiene permiso de lectura y escritura (-rw —  — -, o en númerico 600). Descomentamos local_umask para que todos puedan leer los archivos(-rw-r – r – , 644)

local_umask=022

El siguiente parámetro que vamos a ajustar es el valor de la directiva chroot_local_users. Descomentando esta línea haremos que los usuarios solamente tengan acceso a sus respectivos directorios /home y no puedan recorrer el resto del sistema

chroot_local_users=YES

Con estos cambios que hemos hecho en el archivo de configuración ya tenemos nuestro servidor FTP operativo.