100FullDuplex?

1.- De forma Dinamica:

# mii-tool eth0 -F 100baseTx-FD

2.- De forma estatica:

Editar archivo /etc/network/interfaces

up /sbin/mii-tool eth1 -F 100baseTx-FD

Ejemplo:

auto eth0
iface eth0 inet static
address 10.0.0.2
netmask 255.0.0.0
gateway 10.0.0.1
dns-nameservers 10.30.20.1
dns-search dominio.cl
up /sbin/mii-tool eth0 -F 100baseTx-FD

Saludos espero les sirva.

Autenticacion Centralizada LDAP+SSH

Unas de las tareas de un sysadmin es controlar el acceso a los equipos de nuestra red, cuando la suma de estos es grande se deben crear politicas, y una de esas politicas debe ser la centralizacion de usuarios, a continuacion les mostrare como se puede realizar esto con un ejemplo del servidor y los clientes.

apt-get install slapd libnss-ldap libpam-ldap

Una vez instalado los paquetes necesarios editamos slapd.conf dentro de /etc/ldap

# Schema y ObjectClass
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema

# Definicion Basica
pidfile /var/run/slapd/slapd.pid
argsfile /var/run/slapd/slapd.args
loglevel 0
modulepath /usr/lib/ldap
moduleload back_bdb
sizelimit 500
tool-threads 1
backend bdb
checkpoint 512 30
database bdb

# Definicion del Directorio
suffix “dc=dominio,dc=cl”

# DB
directory “/var/lib/ldap”

# Definicion de dbconfig
dbconfig set_cachesize 0 2097152 0
dbconfig set_lk_max_objects 1500
dbconfig set_lk_max_locks 1500
dbconfig set_lk_max_lockers 1500
index objectClass eq
lastmod on

# Definicion de acceso a la DB
access to attrs=userPassword,shadowLastChange
by dn=”cn=admin,dc=dominio,dc=cl” write
by anonymous auth
by self write
by * none

access to dn.base=”" by * read

access to *
by dn=”cn=admin,dc=dominio,dc=cl” write
by * read

Una vez realizada la configuracion de slapd.conf, se debe editar /etc/nsswitch.conf

passwd: compat ldap
group: compat ldap
shadow: compat ldap

Debemos editar ademas el archivo pam_ldap.conf dentro de /etc

host 127.0.0.1
base dc=dominio,dc=cl
ldap_version 3
rootbinddn cn=admin,dc=dominio,dc=cl
pam_check_host_attr yes

Ahora reiniciamos el servidor slapd

invoke-rc.d slapd restart

Ahora editamos el archivo ldap.conf de los clientes este puede estar en /etc/ldap.conf

# Por defecto
host 200.0.0.1 # server ldap
base dc=dominio,dc=cl
ldap_version 3
rootbinddn cn=admin,dc=dominio,dc=cl
timelimit 120
bind_timelimit 120
idle_timelimit 3600

# Control de acceso por host
pam_check_host_attr yes
pam_filter &(objectClass=posixAccount)(host=mail)

A continuacion editamos /etc/nsswitch.conf

passwd: files ldap
shadow: files ldap
group: files ldap

Ahora editamos el archivo para la conexion del cliente /etc/openldap/ldap.conf

BASE dc=dominio,dc=cl
URI ldap://200.0.0.1/ # server ldap

Esta configuracion es para cualquier cliente este archivo puede ser un archivo unico o separados.

# Esta definicion permite al root entrar sin pasar por servidor LDAP, en el caso si el servidor de autenticacion esta down.

auth [success=1 default=ignore] pam_unix.so
auth required pam_ldap.so use_first_pass
auth required pam_permit.so

account [success=1 default=ignore] pam_unix.so
account [success=ok new_authtok_reqd=ok ignore=ignore default=bad perm_denied=bad] pam_ldap.so
account required pam_permit.so

password sufficient pam_ldap.so
password required pam_unix.so nullok obscure min=4 max=8 md5

session required pam_unix.so
session optional pam_ldap.so
session required pam_mkhomedir.so umask=0066 skel=/etc/skel

Ahora solo nos falta cargar los ldif para armar nuestro directorio LDAP. 2 Ejemplo de host y usuarios.

ldapadd -x -D “cn=admin,dc=dominio,dc=cl” -W -f hosts.ldif

dn: cn=mail,ou=hosts,ou=ssh,ou=service,dc=dominio,dc=cl
objectClass: ipHost
objectClass: device
objectClass: extensibleObject
ipHostNumber: 200.0.0.3
cn: mail.dominio.cl
cn: mail

dn: cn=dns,ou=hosts,ou=ssh,ou=service,dc=dominio,dc=cl
objectClass: ipHost
objectClass: device
objectClass: extensibleObject
ipHostNumber: 200.0.0.4
cn: dns.dominio.cl
cn: dns

dn: cn=web,ou=hosts,ou=ssh,ou=service,dc=dominio,dc=cl
objectClass: ipHost
objectClass: device
objectClass: extensibleObject
ipHostNumber: 200.0.0.5
cn: web.dominio.cl
cn: web

ldapadd -x -D “cn=admin,dc=dominio,dc=cl” -W -f usuario.ldif

dn: uid=operador,ou=users,ou=ssh,ou=service,dc=dominio,dc=cl
uid: test
cn: Test
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
loginShell: /bin/bash
uidNumber: 786
gidNumber: 100
homeDirectory: /home/test
userPassword: {crypt}GoYLwzMD6cuZE
host: mail,dns

Se crean 3 hosts en el directorio LDAP y un usuario con solo acceso a mail y dns, si se requiere que el usuario test entre ademas a web, bastaria con modificar la linea host: mail,dns,web

Configuracion DHCPD

Bueno a continuación un muestra de un servidor DHCPD para un segmento.

apt-get install dhcpd

una vez instalado el paquete editamos el dhcpd.conf en /etc

option domain-name “dominio.cl”;
option domain-name-servers dhcp.dominio.cl;
option subnet-mask 255.255.255.224;
default-lease-time 600;
max-lease-time 7200;

subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.100 192.168.0.254;
option domain-name-servers ip-dns;
option domain-name “dominio.cl”;
option routers 192.168.0.2;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
default-lease-time 600;
max-lease-time 7200;
}

Reiniciamos el servicio

invoke-rc.d dhcpd restart

Y listo tenemos un servidor dhcpd en nuestra LAN.

* Podemos decidir por que interfaz asignar el servicio de DHCP editando /etc/default/dhcp

Firewall Workstation con iptables

Bueno a continuación les muestro como hacer un pequeño firewall para un workstation, el cual puede ser mejorado según los servicios que disponen en su sistema y el nivel de seguridad que deseen.

Les recomiendo crear el script en /etc/init.d/ con el nombre de firewall y asignar permisos de ejecución.

touch /etc/init.d/firewall

chmod 755 /etc/init.d/firewall

Luego agregar el script en los distintos run levels en los cuales podria iniciar el sistema.

update-rc.d firewall start 00 2 3 4 5 .

Una vez realizada estas acciones podemos modificar el script firewall, a continuacion un ejemplo de un sistema el cual tiene un servidor web y ssh, en el cual como politica realizaremos DROP de toda el INPUT y FORWARD, en el cual solo permitiremos acceder al puerto 22 desde $Internet y desde la LAN a nuestro servidor Web. la salida “OUTPUT” es por política ACCEPT.

#!/bin/bash

modprobe ip_nat_ftp
modprobe ip_conntrack_ftp

# Definición de Variables

iptables=’/sbin/iptables’
internet=’0/0′
lan=’200.1.2.0/24′
dev=’eth0′

$iptables -F
$iptables -F -t nat
$iptables -F -t mangle

$iptables -X
$iptables -X -t nat
$iptables -X -t mangle

# Definición de Políticas

$iptables -P INPUT DROP
$iptables -P OUTPUT ACCEPT
$iptables -P FORWARD DROP

# Definición de Cadena lan_to_host

$iptables -N lan_to_host
$iptables -A lan_to_host -p tcp –dport 80 -j ACCEPT

# Definición de INPUT

$iptables -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
$iptables -A INPUT -p icmp -j ACCEPT
$iptables -A INPUT -i lo -j ACCEPT
$iptables -A INPUT -p tcp –dport 22 -j ACCEPT
$iptables -A INPUT -i $dev -s $lan -j lan_to_host
$iptables -A INPUT -j LOG –log-prefix ‘REJECT INPUT: ‘
$iptables -A INPUT -j REJECT

GLPI

Buscando en la red algun sistema de inventario me encontre con GLPI http://www.glpi-project.org/spip.php?lang=en , se necesita Apache, PHP y MySQL, cuenta con bastante documentacion y una comunidad bastante activa. En este sistema se puede inventariar servidores, desktop, software, equipos de comunicacion, impresoras e insumos, ademas se pueden registrar contratos y relacionarlos contra sistemas implementados, es de gran utilidad, ya que tambien posee una plataforma de gestion de tu inventario, donde puedes sacar valores futuros, depreciaciones, amortizacion y manejo de garantias.

La instalacion del sistema la realize y es muy sencilla, existe un documento en la wiki de GLPI, el manual lo puedes ver en el mismo sitio web, cualquier duda en la instalacion del sistema, apache o mysql, estare atento a sus comentarios.
Aca puedes ver el demo del sistema web http://www.glpi-project.org/spip.php?article47.

* Otro sistema util para inventario y que se encuentra en repositorios debian es IRM, para mas informacion “apt-get install irm” y leer su documentacion :D . Una de sus cualidades que puedes crear usuarios LDAP para la autenticacion.

MPD Music Player Daemon

Mpd es la solucion para los amantes de la musica, se leventa como un servicio y puedes utilizar clientes para realizar update de la base de datos de mp3, ogg y otros formatos.

La instalacion es bastante sencilla

apt-get install mpd

vi /etc/mpd.conf “modificas tu directorio donde alojas tu musica , en la variable music_directory”

invoke-rc.d mpd restart

Listo, ahora podemos accesar con un cliente para realizar configuracion de tu playlist.

apt-get install gmpc

Ahora nos conectamos al servicio mpd, ademas podemos realizar otras configuracion al gusto del consumidor.

Por ultimo realizamos un update en la base de datos, y add para agregar al playlist.

Instalando - RT2500

Bueno existen bastantes sitios donde ayudan a instalar el modulo de la rt2500, pero de esta forma yo instale el modulo en mi sistemas.

apt-get install module-assistant

apt-get install rt2500-source

cd /usr/src

tar zxvf rt2500.tar.gz

apt-get install linux-headers-$(uname -r)

module-assistant prepare

module-assistant get rt2500

module-assistant build rt2500

modprobe rt2500 o insmod

Luego pueden agregar el modulo en /etc/modules, bueno si quieren ver mas detalles basta con leer la documentacion que trae rt2500-source en /usr/share/doc , para la configuracion de su wireless pueden utilizar wlassistant, aunque este solo soporta WEP, ademas de poder configurar su /etc/network/interfaces pueden instalar wpa_supplicant que para mi gusto es mejor.

Esta instalacion la realize en debian sid :)

Instalando Debian en un Dell Mini 9

El Dell Mini 9 tiene el CPU Intel Atom de bajo consumo, con 1 GB de RAM, 8 GB de disco de estado solido y Ubuntu 8.04 pre-instalado.

Ubuntu configura la red con Network Manager, que no funciona para definir una conexión de red inalámbrica encriptada con WPA. Intenté desactivar Network Manager, desinstalarlo incluso, pero no hay caso. A pesar de definir la red en /etc/network/interfaces, levantando la interfaz al arranque con auto eth1, Ubuntu simplemente no la levanta. Quedé sorprendido de lo malo que es Ubuntu, pero claro, vengo del mundo Debian.

La experiencia con Ubuntu y Network Manager parece ser algo recurrente, porque leí muchos foros describiendo el mismo síntoma, pero ninguno dando la solución. Alguien por ahí dijo que lo que pasa es que Ubuntu levanta la red cuando aun hay ciertos dispositivos que no se cargan y que por eso falla. Pero Debian no tiene este problema, que además parece demasiado trivial de resolver.

Mi percepción es que Ubuntu trata de hacer con Network Manager algo similar a Windows - ¿Quiere configurar la red automáticamente? (sí/no)... relájese, reclínese confortablemente en su silla y observe como bochornosamente falla.

En fin, hice un script que corre 20 segundos después del arranque que en una línea dice "ifup eth1". Quedé muy insatisfecho con esta solución, que aunque funciona, es tan burda e innecesaria y deja por un buen rato varios servicios marcando ocupado (como ntp y skype).

Buscando una solución Debian, descubrí que el CPU Intel Atom es de la misma arquitectura que los ASUS Eee PC. Me embarqué en una instalación Debian con un memory stick USB según descrito en,

http://wiki.debian.org/DebianEeePC/HowTo/Install

Funcionó a la primera. Existe además un depósito APT específico para esta arquitectura,

deb http://eeepc.debian.net/debian lenny main contrib non-free

Contiene algunos módulos para el núcleo y script para que ACPI maneje los botones y otras cosas. Me imagino que con el tiempo estos paquetes van a pasar al depósito Debian Main.

Mi Dell Mini 9 funciona ahora como debe, con GNOME (core), OpenOffice, Acroreader e incluso Skype. Todas las interfaces de red se levantan al arranque con Guessnet sin necesidad de marullos ni malabares especiales. Qué gran distribución es Debian!

Solución de problemas

1) La tarjeta de red inalámbrica Broadcom BCM4312 (14E4:4315), variante de bajo consumo, no está soportada por el dispositivo b43. Hay que instalar uno híbrido hecho por Broadcom.

Instala los paquetes module-assistant, debhelper, make , wireless-tools y quilt. Descarga la fuente del dispositivo versión squeeze,

http://packages.debian.org/squeeze/all/broadcom-sta-source/download
http://packages.debian.org/squeeze/all/broadcom-sta-common/download

e instala los sendos paquetes.

Corre,

# module-assistant auto-install broadcom-sta

Previamente a cargar el módulo en el núcleo, es necesario instalar el firmware Broadcom con el paquete b43-fwcutter. Instala este paquete, luego carga el módulo,

# modprobe wl

y corre iwconfig. Eso es todo. Configura la red inalámbrica como de costumbre.

2) El segundo y último escollo que encontré fue que si bien el módulo de la tarjeta de sonido estaba cargado, el servidor ALSA corriendo y alsamixer mostrando los niveles de volumen como de costumbre, los parlantes no emitían sonido alguno. Esto sucede porque la tarjeta de sonido se carga como la segunda en el orden, la primera siendo la tarjeta de sonido asociada a la camara web. Para cambiar el orden edita /etc/modporobe.d/sound y agrega,

alias snd-card-0 snd-hda-intel
options snd-hda-intel index=0 model=dell

Esto hace que el módulo snd-hda-intel se cargue como snd-card-0, un alias para indicar la primera tarjeta de sonido. Reinicia el computador.

Google Dashboard y la privacidad del navegador

Desde el lanzamiento de Google Dashboard he leído artículos elogiando a Google por su transparencia, otros haciendo hincapié en el servicio que presta y los más haciendo comentarios espeluznantes sobre la privacidad en Internet. Lo cierto es que Google ha venido haciendo algo que dijo no hacer - asociar búsquedas con personas. Lo hace mediante la cuenta Google, a la cual ingresamos, por ejemplo, cuando leemos el correo GMail. En este caso Google hace una asociación directa entre persona y uso de productos Google, incluyendo YouTube. El lanzamiento de Google Dashboard corresponde justamente a un intento de acallar voces criticas sobre esta práctica.

Pero, siendo justos, no es solo Google el interesado en conocernos mejor, en querer hacer un dossier personal sobre cada uno, los casi siete mil millones de individuos que habitan el planeta Tierra. Existe espacio de almacenamiento suficiente para ello. Cada empresa, independiente de su propósito, le gustaría usar información personalizada para dirigir las ofertas de sus productos, cualquiera estos sean. La "empresa" podría ser una entidad comercial, pública o gubernamental. El "producto" podría ser una simple afeitadora, la próximas elecciones o seguridad nacional, concebida a la manera particular de cada interés. El uso de información personalizada en Internet no tiene límites, no conoce fronteras. Es más, no existen limites ni fronteras legales. Debemos entonces suponer, a priori, que cualquier movimiento que hagamos en Internet es sujeto a intervención, partiendo del proveedor, pasando por cualquier ruta que nuestra señal decida hacer hasta la pagina web final que estamos visitando. Debemos también suponer que el sistema operativo que usamos puede posibilitar, facilitar, incluso practicar la intervención. Me refiero obviamente a sistemas operativos de código cerrado, ajenos al escrutinio público; Windows, Mac OS X y (¿por qué no?) Google OS.

Parece existir una suerte de ceguera con respecto a las potenciales infracciones a la privacidad que Internet ofrece. En Europa se debate sobre la petición que hacen las empresas mediáticas que sienten violados sus derechos de autor. Mediante la intervención de las señales de cada individuo quieren obligar a cada proveedor de Internet a entregar información sobre el uso de P2P para poder perseguir legalmente a los infractores. Una simple estimación indica que se requerirían recursos especiales para perseguir legalmente a los millones que usamos P2P. Las empresas mediáticas contraatacan diciendo que basta perseguir a unos pocos casos "emblemáticos" para asustar y hacer desistir a la población pirata, no siendo necesario perseguir cada caso en particular (sic). El uso de Internet para compartir archivos, sujetos a copyright o no, es una de las tantas aplicaciones de Internet. Sin embargo, las empresas mencionadas parecen tener un oído preferencial en ciertos gobiernos y parlamentarios europeos. Algunos parecen incluso dispuestos a proveer los recursos públicos necesarios para satisfacer las demandas de estas empresas. ¿Por qué tanto trato preferencial, se preguntan muchos? Los proveedores de Internet, por otra parte, se oponen a la medida porque dicen sería tecnológicamente difícil asociar conexión con individuo, que aumentarían sus costos, los que inevitablemente serían traspasados a sus clientes, nosotros. Este argumento es, sin embargo, también débil, porque no es tecnológicamente difícil. Es moralmente dudoso, al igual que lo es intervenir las llamadas telefónicas, el correo, nuestras conversaciones, nuestros pensamientos. La verdad es que los proveedores de Internet ven como un peligro el hecho de que tengan que admitir las practicas de intervención no regulada que desde hace mucho tiempo practican. Una nota cómica con respecto a esto la puso Elton John, quien en entrevista dijo que desearía que cerraran Internet por unos años para poder combatir las descargas ilegales de música, como si el propósito de Internet fuera solo descargar su música para perjudicarlo personalmente.

¿Cuanto sabe Google sobre nosotros? Sobre mi poco, aparentemente. Porque si bien tengo una cuenta GMail, la uso muy poco. La información almacenada sobre mi en Google Dashboard era limitada. Correspondía a búsquedas que en pocas ocasiones efectué mientras descuidadamente me encontraba conectado a Google Account. ¿Cuanto sabe de ti? Si tienes una cuenta con Google, métete a Dashboard y ve. Es posible borrar la información y deshabilitar la creación de un historial. Esto en principio, porque "borrar" puede significar no más accesible a ti, no que efectivamente Google la borre de sus servidores. Porque desde hace mucho existe el rumor popular que Google guarda todos los correos electrónicos, incluso aquellos que borraste, para después, con tiempo, ser escaneados por servicios secretos. Rumores nada más.

¿Hace AOL, Yahoo, Bing y potencialmente todo sitio web que visitamos lo mismo que Google? Solo ellos lo saben. Con Dashboard, Google ha sido infinitamente más transparente que el resto. Se merece entonces un elogio. O mejor dicho, se merecen un elogio todas aquellas voces críticas que obligaron a Google a transparentar algo sus potenciales violaciones a la privacidad.

¿Como nos espían? Muchos sitios depositan un "cookie" cada vez que los visitamos, un pequeño archivo guardado en nuestro disco duro con información predefinida. Muchos de estos cookies son honestos. Sirven, por ejemplo, para guardar el nombre de usuario u otra información que puede facilitar la navegación después de la primera visita. Pero, un cookie es potencialmente también un pequeño espía. Todo depende de qué información es guardada y como es usada posteriormente. Algunos navegadores permiten bloquearlos, pero muchos sitios no "funcionan" o, mejor dicho, no permiten visitarlos si no pueden depositar su cookie.

Google reconoce con Dashboard que asocia información sobre nuestras búsquedas y visitas a YouTube mientras estamos conectados a Google Account. Pero Google es también de aquellos sitios que simplemente no funciona si no habilitamos los cookies, según dicen para poder ofrecernos alternativas mientras escribimos el texto que deseamos buscar. Y sí, parece ser bastante útil, a veces. Pero, ¿Quién podría desmentir el hecho que el cookie también puede ser utilizado para personalizar la información mientras no estamos conectados a Google?

No es recomendable bloquear la deposición de cookies, porque muchos sitios nos bloquearían de vuelta. El navegador de código abierto Firefox (iceweasel en Debian) permite, en vez, borrar los cookies cada vez que finalizamos la sesión. Esta es potencialmente la única manera disponible que tenemos que protegernos de los cookies. Se hace así: anda a "Editar/Preferencias/Privacidad". En la sección "Datos privados" marca "Limpiar siempre los datos privados cuando cierre Firefox".

Marca "Configuración" y marca "Cookies".

Cada vez que cerramos el navegador, los cookies depositados durante la sesión son borrados. Así no queda rastro de lo que hicimos en la sesión anterior y el sitio no puede usar el cookie para recoger información pasada. En principio evitaría el potencial espionaje. Digo bien, en principio.

Eliminando ataques de diccionario con Exim

Recientemente empecé a experimentar ataques al puerto SMTP con miles de correos con nombres generados al azar, los así llamados ataques de diccionario. Encontré una solución que fue milagrosa. Los ataques cesaron prácticamente de inmediato. Reproduzco la configuración hecha en exim4.

Edita /etc/exim4/conf.d/acl/30_exim4-config_check_rcpt y agrega,

# Drop the recipient if the previous attempt failed
drop
   condition = ${if = {${eval:$rcpt_fail_count}}{1}{yes}{no}}
   message = too many bad recipients
   delay = 2m

justo después de aceptar una conexión autenticada. Actualiza y reinicia exim4,

# update-exim4.conf
# /etc/init.d/exim4 restart

La condición es igual a "yes" después del primer fallo. Aparentemente la demora impuesta por la condición (2 minutos) es muy costosa para el emisor del mensaje fallido. Tanto así, que los ataques cesan rápidamente.