Tuesday, May 27, 2008

Introduccion a Servicios de Directorios

Configurando un NIS en debian

Esta es la primera parte de una serie de notas, sobre como seria la correcta configuracion de servicios de Directorios en debian.
Comenzaremos con NIS, para luego dirigirnos hacia OPENLDAP.

Nis nos provee un sistema de passwords centralizados, al estilo, dentro de una red.

El esquema de esto, funciona asi.

Debian: Servidor
Marcelo y pepe : clientes


Existiria un Servidor de Cuentas, donde se alojan todas las cuentas, y los clientes.

En el servidor , deberiamos instalar el software nis (Que es el mismo para cliente y Servidores)



debian:~# apt-get install nis
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias... Hecho
Se instalarán los siguientes paquetes extras:
libdbus-1-3 libdbus-glib-1-2 libslp1 make portmap
Paquetes sugeridos:
slpd openslp-doc make-doc-non-dfsg
Paquetes recomendados
dbus
Se instalarán los siguientes paquetes NUEVOS:
libdbus-1-3 libdbus-glib-1-2 libslp1 make nis portmap
0 actualizados, 6 se instalarán, 0 para eliminar y 50 no actualizados.
Necesito descargar 1095kB de archivos.
Se utilizarán 3437kB de espacio de disco adicional después de desempaquetar.
¿Desea continuar [S/n]? s

Definimos el domainanme

para eso, ponemos

debian:/var/yp# domainname qqmelo.com.ar

para ver que todo marcha bien, podremos hacer

debian:/var/yp# cat /etc/defaultdomain
qqmelo.com.ar


Una vez que llegamos aca, debemos setear el archivo /etc/default/nis

Cambiamos estas lineas

NISSERVER=false
por
NISSERVER=true

NISCLIENT=true
por
NISCLIENT=false

Y PONEMOS

NISMASTER=true

Ya esta!.
Ahora, probaremos con un usuario, para que este despues pueda entrar en cualquier cliente

generamos el usuario demo, con password demo

debian:/var/yp# useradd -m prueba
debian:/var/yp# passwd prueba
Enter new UNIX password:
Retype new UNIX password:
passwd: contraseña actualizada correctamente


Por alli, habia leido yo, que habia que hacer algo en el shadow, y en el passwd, pero la verdad, que a mi
me funciono de una.

Lo que realizamos ahora, es, generar los servicios, y las capas nis.

Para levantar los servicios, hacemos lo siguiente

Obviamente en el server, (debian)


/usr/sbin/ypserv start

/usr/sbin/rpc.yppasswd

/usr/sbin/rpc.ypxfrd

Y luego, creamos el mapa NIS

para esto tipeamos,

debian:/var/yp# /usr/lib/yp/ypinit -m

At this point, we have to construct a list of the hosts which will run NIS
servers. debian.nada.com.ar 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 .
next host to add: debian.nada.com.ar
next host to add:
The current list of NIS servers looks like this:

debian.nada.com.ar

Is this correct? [y/n: y] y
We need a few minutes to build the databases...
Building /var/yp/qqmelo.com.ar/ypservers...
Running /var/yp/Makefile...
make[1]: se ingresa al directorio `/var/yp/qqmelo.com.ar'
Updating passwd.byname...
Updating passwd.byuid...
Updating group.byname...
Updating group.bygid...
Updating hosts.byname...
Updating hosts.byaddr...
Updating rpc.byname...
Updating rpc.bynumber...
Updating services.byname...
Updating services.byservicename...
Updating netid.byname...
Updating protocols.bynumber...
Updating protocols.byname...
Updating netgroup...
Updating netgroup.byhost...
Updating netgroup.byuser...
Updating shadow.byname...
make[1]: se sale del directorio `/var/yp/qqmelo.com.ar'

Con esto, se actualiza la informacion de los dominios.

vamos nuevamente a generar otro usuario

debian:/var/yp# useradd pain
debian:/var/yp# passwd pain
Enter new UNIX password:
Retype new UNIX password:
passwd: contraseña actualizada correctamente


Ahora, veamos, nosotros nos encontramos bajo el directorio /var/yp

lo que vamos a hacer, es actualizar la informacion de este usuario, a las paginas amarillas,
para eso hacemos

debian:/var/yp# make
make[1]: se ingresa al directorio `/var/yp/qqmelo.com.ar'
Updating passwd.byname...
Updating passwd.byuid...
Updating group.byname...
Updating group.bygid...
Updating netid.byname...
Updating shadow.byname...
make[1]: se sale del directorio `/var/yp/qqmelo.com.ar'

Y este usuario ha sido agregado correctamente al dominio.

Ahora veremos si estan todos los servicios corriendo, para eso hacemos rpcinfo -p

debian:/var/yp# rpcinfo -p
programa vers proto puerto
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100004 2 udp 935 ypserv
100004 1 udp 935 ypserv
100004 2 tcp 938 ypserv
100004 1 tcp 938 ypserv
100009 1 udp 945 yppasswdd
600100069 1 udp 948 fypxfrd
600100069 1 tcp 950 fypxfrd


Y esta todo corriendo!

Configuracion de los clientes NIS!

para esto, lo que debemos hacer, es instalar en cada cliente NIS, el paquete nis, como ya lo habiamos configurado

Luego, corremos

domainname qqmelo.com.ar


Luego, en /etc/yp.conf, debemos poner

ypserver qqmelo.com.ar

Para que sepa a que dominio debera bindearse, esto buscara por broadcast el domino qqmelo.com.ar lo hara el demonio ypbind).

Por ultimo, hay que configurar el archivo /etc/nsswitch.conf, y agregar en cada campo al final la palabra nis
deberia quedar como este

marcelo:~# cat /etc/nsswitch.conf
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd: compat nis
group: compat nis
shadow: compat nis

hosts: files dns nis
networks: files nis

protocols: db files nis
services: db files nis
ethers: db files nis
rpc: db files nis

netgroup: nis

al final del archivo /etc/passwd se agrega la siguiente linea

+::::::

y finalmente, lanzamos el demonio

ypbind

Monday, May 12, 2008

Tuxinfo Lanzada

muchachos /as :

Se ha lanzado la nueva version de tuxinfo, la numero 6.

para su descarga, por favor dirijanse a

www.tuxinfo.com.ar

saludos
Marcelo

Monday, May 5, 2008

Un articulo de DNS viejo

Configurando un Servidor de DNS


Gente, aca les dejo un articulo sobre dns que hice en el 2000!, hace ya 8 años!


Configurando un Servidor De DNS


Este articulo tiene como fin configurar un servidor de dns. Muchos se estaran
preguntando que es un servidor de DNS. Primero, comenzaremos por la definicion
del servidor de DNS. Domain Name Server,
o sea Servidor de Nombres de
Dominios.

En un principio, en internet todas las maquinas tenian asignados numeros ip, y
al no haber tantas maquinas, se podrian llegar a ubicar estas facilmente por
un numero. El ejemplo seria, la Universidad
de Carolina tiene el ip
25.234.23.21, y la Universidad de London, el 23.43.23.12. Las comunicaciones
se establecian al principio entre los dos numeros, o sea que 25.234.23.21 se
comunicaba con 23.43.23.12.

A medida que Internet crecia, estos numeros se anotaban en un archivo que se
llamaba hosts.txt, y
este se lo ponia en cada maquina.

Este archivo tenia el formato siguiente:

(ip) Fqdn

192.168.0.1 jak0.qqmelo.com.ar
192.168.0.2 netg4s.qqmelo.com.ar
192.168.0.3 ]-[eavy.qqmelo.com.ar

pero, imaginemosnos que mientras crecia internet, se tenian que copiar estos
nombres a diario, y
que cada Maquina con conexion a internet, se lo tendria
que actualizar, cosa que seria por demas engorrosa.

Actualmente, este archivo se llama host, y se encuentra en los linux, dentro
del directorio /etc.
(Para redes Peque~as, este archivo sirve, cuando las redes crecen este archivo
tiende a ser inutil, por
lo cual se busco otra solucion, que es el sistema
DNS).

Bind 8

La mayor parte de los sistemas DNS, utilizan el BIND ( Berkeley
Internet Name Domain ),
que podemos ver dos versiones tipicas, la version 4 y
la version 8. En nuestro caso analizaremos la
version 8, ya que es la que
actualmente se esta usando. La nueva version es mas sencilla de configurar y
trae ciertas mejoras en el aspecto de seguridad, a la vez que incorpora una
nueva sintaxis.


Comenzando:

Se ha dicho que instalar y configurar un sistema DNS no es sencillo
( Cuanta razon!!! ), pero
el fin de este texto es demistificar eso.

Lo que vamos a hacer, es mostrar dns y como configurarlos, paso a paso,
y tratando de
encontrar los errores mas comunes.

Planteamiento:

Para esto, lo que vamos a hacer es mostrar ejemplos sencillos de
configuracion.
Definiremos zona, dando a entender por zona los dominios que querramos
registrar.


Queremos que nuestro dns sirva para resolver a todas las pc que se encuentran
en la zona lam0s.com.ar
y que si queremos consultar una pc de esta zona, se
devuelva una respuesta que pertenece a ella.


Ejemplo:

Segun el registro de la nic, la ip 203.203.203.203, esta asignada a la
zona lam0s.com.ar.

Ahora, nosotros nos ocuparemos de setear el archivo para que se resuelva
correctamente la ip.
Veamos paso a paso como realizar esto.

1- Necesitaremos crear un archivo de configuracion, de zona, que desde el bind
8, este se encuentra
bajo el directorio /etc.

Este archivo es llamado named.conf, y tiene la siguiente estructura.
zone "lam0s.com.ar" {
type master;
file "db.lam0s.com.ar"
}

analizando este archivo veremos lo siguiente:

Primero, que se define la zona lam0s.com.ar, y alli se dice que
va a ser una zona
master ( o sea primaria ) y se indica que el file ( archivo
de configuracion se encuentra en db.lam0s.com.ar ), ustedes se estaran
preguntando, si, pero donde lo encuentro??, tranquilos amigos
que
anteriormente hay unas lineas en este mismo archivo que indican donde estaran
alojadas las zonas.

options {

directory "/var/named"
}

Con esto, le indico que todas las zonas estaran alojadas en el
directorio var/named

Siguiendo, veremos en un caso practico, como configurar las zonas
correctamente.
Hemos dicho, que el archivo db.lam0s.com.ar, resuelve los hosts de esta
zona, vamos a ver
este archivito, y luego vamos a ir entendiendo como crear
correctamente los otros archivos.

Este es el archivo db.lam0s.com.ar

lam0s.com.ar. IN SOA QQm310.lam0s.com.ar. lam0s.com.ar. (

2000121997; numero de serie
28800 ; tiempo de refresco en minutos
14000 ; caducidad de una peticion
86400; minimo de tiempo vivo
)

IN NS QQm310.lam0s.com.ar

QQm310.lam0s.com.ar. IN A 203.203.203.203
netg4s.lam0s.com.ar. IN A 203.203.203.204
velez.lam0s.com.ar. IN A 203.203.203.205

Analicemos un Poquito esto!

de entrada , en la primera linea, vemos lo siguiente lam0s.com.ar. , que
es esto, Pues es nuestra
Zona!!!, luego vemos IN, este registro significa
Internet, significa que sera dada de alta en Internet,
Luego seguimos viendo algo asi como SOA ( start of autority, o sea, comienzo
de autoridad, y aqui
nos daremos cuenta que la maquina donde esta alojando el
servidor DNS es QQm310.com.ar )

Luego, las caracteristicas , tiempo de refresco, tiempo de peticion , etc, y
luego comienza lo que
a todos nos interesa, y donde nos detendremos!!!

Vemos nuevamente IN NS
NS es el registro encargado de indicar cual va a ser el servidor de
nombres , el cual debe coincidir con el de comienzo de autoridad, o sea
QQm310.lam0s.com.ar.

Luego, vemos la siguiente linea.

QQm310.lam0s.com.ar. IN A 203.203.203.203

Y esto que significa??

Tranquilos!!!!!!!!!!!

veamos, esto es simple!!!

QQm310.lam0s.com.ar. es el nombre de la pc, IN es el registro de internet y A
( de Address, significa
que le va a transformar la direccion
QQm310.lam0s.com.ar. a 203.203.203.203). simple no?

Bueno, asi seguiremos con los otros host de nuestra red!

Nombres Canonicos y alias

Pero, la pagina web lam0s.com.ar esta en el mismo ip que QQm310.lam0s.com.ar,
como lo defino?
repito la definicion???? NOOOOOOOO, pues esto podria lograr que el sistema
termie funcionando mal,
entonces una solucion es los nombres canonicos ( alias
), veamos que es esto

Introducimos la linea

www.lam0s.com.ar. IN CNAME QQm310.lam0s.com.ar.

y aqui le indico que las peticiones a la pagina www.lam0s.com.ar. apunten a
QQm310.lam0s.com.ar.
que en realidad apunta a 203.203.203.203, que es el servidor de DNS.

o sea, que nuestra zona quedaria de la siguiente manera!!



lam0s.com.ar. IN SOA QQm310.lam0s.com.ar. lam0s.com.ar. (

2000121997; numero de serie
28800 ; tiempo de refresco en minutos
14000 ; caducidad de una peticion
86400; minimo de tiempo vivo
)

IN NS QQm310.lam0s.com.ar

QQm310.lam0s.com.ar. IN A 203.203.203.203
netg4s.lam0s.com.ar. IN A 203.203.203.204
velez.lam0s.com.ar. IN A 203.203.203.205
QQm310.lam0s.com.ar. IN CNAME 203.203.203.203


Zonas Reversas!!!!

Listo, ya tenemos nuestro servidor de DNS andando correctamente para
las zonas directas
o "derechas en la jerga!", pero aun no resolvimos el tema
de las peticiones inversas, por ejemplo
yo quisiera que al consultar
203.203.203.203, me dijeran QQm310.lam0s.com.ar

Para lograr esto, deberia configurar la zona inversa!

Primero, haremos la entrada correspondiente en el /etc/named.conf

zone "203.203.203.in-addr.arpa" {
type master;
file "db.203.203.203.in-addr.arpa"
}


Pero ustedes se preguntaran, ehh? y esto??, que es ese
203.203.203.in-addr.arpa?

La respuesta es que las zonas inversas se escriben asi, y que esto
resolvera las
peticiones correspondientes a la 203.203.203.x, donde setearemos
nosotros esos x.

Como supondran, tambien tendremos que configurar el archivo
correspondiente, de la
zona reversa, pero la repuesta es, ovbio, que
inteligente que son mis lectores y/o alumnitos!
(:-)) )

Configuraremos el archivo db.203.203.203.in-addr.arpa


203.203.203.in-addr.arpa IN SOA QQm310.lam0s.com.ar. lam0s.com.ar. (

2000121997; numero de serie
28800 ; tiempo de refresco en minutos
14000 ; caducidad de una peticion
86400; minimo de tiempo vivo
)

IN NS QQm310.lam0s.com.ar

203 IN PTR QQm310.lam0s.com.ar.
204 IN PTR netg4s.lam0s.com.ar.
205 IN PTR velez.lam0s.com.ar.

y vemos que sencillo que es !!!

Lo primero es declarar la zona a configurar, y luego, lo otro como lo venimos
realizando de costumbre
solo que tenemos que invertir los datos.
Vemos que tenemos el registro PTR este significa puntero, y dice que la
direccion 203
de la zona 203.203.203. apunta a QQm310.lam0s.com.ar.

OJO!!!!!!!!!!!!!!!

mucha gente se equivoca aqui, y pone 203.203.203.203, y esto buscara el
ip 203.203.203.203.203.203.230, cosa que no existe, por que recordemos que
como he dicho
anteriormente, la zona es 203.203.203.in-addr.arpa, y aca en
in-addr.arpa, se reemplazaran las
direcciones que seteemos, por ejemplo 203,
204, 205, que seran reemplazadas por los x.

Reiniciando el Demonio

Para que los cambios tengan efecto, tendremos que reiniciar el demonio,
el cual esta
alojado en /etc/rc.d/init.d/

la orden seria la siguiente:

#/etc/rc.d/init.d/named stop
#/etc/rc.d/init.d/named start

Configurando el cliente DNS

Para realizar estas pruebas, lo primero que debemos es indicarle a
nuestra maquina
donde encontrara el servidor DNS.
El archivo de configuracion es el /etc/resolv.conf, y veremos como
setearlo correctamente.

veamos: lo configuraremos para que sea nuestro servidor DNS 203.203.203.203.

entonces, ponemos lo siguiente

nameserver 203.203.203.203

Probando si las cosas andan bien:

Con el comando nslookup, podremos ver si nuestro servidor funciona joya

#nslookup www.lam0s.com.ar

Server: QQmelo.lam0s.com.ar
Address: 203.203.203.203

Name: www.lam0s.com.ar
Address:203.203.203.203

y esto significa que nuestro server anduvo de primera!!!!!!!!!!!!!!!!!

si tuvieramos un error, tendriamos que ver los archivos de configuracion, para
que no haya errores,
cuando la experiencia me dice que la mayoria de los
errores que se presentan son de tipeado,
y bueno, somos humanos !!!


Resumiendo!!

Mostrare como Quedarian los archivos que fui nombrando

el primer archivo, el /etc/named.conf


options {

directory "/var/named"
}

zone "." {

type hint;
file "named.ca";
};


zone "0.0.127.in-addr.arpa" {

type master;
file "named.local"

}

zone "lam0s.com.ar" {
type master;
file "db.lam0s.com.ar"
}

zone "203.203.203.in-addr.arpa" {
type master;
file "db.203.203.203.in-addr.arpa"
}


Bueno, ustedes diran, hay unas zonas que anteriormente no he nombrado, es
cierto, son las zonas
raices, donde tiene la mayoria de los dns de los
servidores raices por paises, esa es la zona "."
y luego la zona de loopback.

Luego, veremos los archivos que pusimos en /var/named, ademas de lo que estan
alli, named.local y
named.root ( los que hablamos recien )

lam0s.com.ar. IN SOA QQm310.lam0s.com.ar. lam0s.com.ar. (

2000121997; numero de serie
28800 ; tiempo de refresco en minutos
14000 ; caducidad de una peticion
86400; minimo de tiempo vivo
)

IN NS QQm310.lam0s.com.ar

QQm310.lam0s.com.ar. IN A 203.203.203.203
netg4s.lam0s.com.ar. IN A 203.203.203.204
velez.lam0s.com.ar. IN

y ahora la reversa

203.203.203.in-addr.arpa IN SOA QQm310.lam0s.com.ar. lam0s.com.ar. (

2000121997; numero de serie
28800 ; tiempo de refresco en minutos
14000 ; caducidad de una peticion
86400; minimo de tiempo vivo
)

IN NS QQm310.lam0s.com.ar

203 IN PTR QQm310.lam0s.com.ar.
204 IN PTR netg4s.lam0s.com.ar.
205 IN PTR velez.lam0s.com.ar.

luego, no se olviden de Poner el cliente DNS

/etc/resolv.conf

nameserver 203.203.203.203


Configurando Virtual Domains

Pero Bueno, ustedes estaran preguntandose, eh, yo tengo varias zonas, y tan
solo un ip, este Qqm310 nos esta chamuyando :-))))


Entonces, nada mas simple que armar virtual domains. Como lo hacemos??

Lo primero es declarar la zona virtual en el /etc/named.conf.

Una vez declarado aqu¡, lo que sigue es mas bien simple, definir la zona en
/var/named.... mmmm pasaremos a la practica de lo anteriormente dicho.

Supongamos que queremos una zona virtual llamada velezito.com.ar

entonces, lo que debemos hacer, es crear esta zona en el /etc/ named.conf

Hagamoslo!!!


zone "velezito.com.ar" {
type master;
file "db.velezito.com.ar"
}

Con esto, lo hemos declarado en el /etc/named.conf, y esto lo que hara es
buscarlo en
el archivo db.velezito.com.ar, del /var/named.

Definiendo la zona:

velezito.com.ar. IN SOA QQm310.lam0s.com.ar. lam0s.com.ar. (

2000121997; numero de serie
28800 ; tiempo de refresco en minutos
14000 ; caducidad de una peticion
86400; minimo de tiempo vivo
)

IN NS QQm310.lam0s.com.ar
www.velezito.com.ar. IN A 203.203.203.203


Y como vemos, el domain velezito.com.ar apunta a nuestro ip publico,
viendo que no tenemos nada mas que hacer, podremos hacer los dns que
querramos.

Apendice:

Como el txt este lo hice a las chapas, me saltee un par de vocablos
tecnicos.


Tipos de regustros:

SOA: Comienzo de Autoridad

NS: Servidor de Nombres

A: Registro de direccion.

PTR: Registro Puntero.

MX: Intercambiador de Correo.

CNAME: Nombre canonico o Aceptado.

RP y TXT: Entradas de documentacion.

Sunday, May 4, 2008

Samba Reggae

Samba Reggae Desprotegido:

Esta es una nota que pensaba algun dia publicar... quizas sea la bronca , o la exaltacion por el "tren bala" , primer mundo
detected!.

Bueno, en sintonia con el tren bala, les comento... sisisi, mucha gente piensa, vamos a usar un samba como pdc..., es lo mas. "Si somos
tan progres que le metemos un linu' y mierda, mikr0s0ft, de aca". todo bien, el Linux autentica a los users, el dominio cumple las funciones,
, pero algo es algo.

Una vez que tenemos todo eso, configuramos las acl's que correspondan, para que todo ande!.

digamos, que con buena suerte, podriamos tener algo asi.

[global]
netbios name = Servidor
server string = Servidor
workgroup = Tren Bala
; domain & local master browser
; coz we're dealing with Win2k
os level = 65
prefered master = yes
domain master = yes
local master = yes
domain logons = yes

; misc options

security = user
guest ok = no
invalid users = bin deamon sys man postfix mail ftp

; use encrypted passwords
encrypt passwords = yes

passwd program = /usr/bin/passwd %u
passwd chat = *New*password* %n\n *Retype*new*password* %n\n *all*authentication*tokens*updated*
unix password sync = Yes

lo mas basico, pero que pasa con esto!

Samba imita tan bien a windows nt 4.0, que hasta se exporta su querida null session!.

sino, fijense, con hacer un rpclient -U "%"

y si entra, todo habra terminado!!!.

Contramedida, y bueno, mis queridos,

1ero)

usar un sistema operativo de la puta madre, como va a ser chorilinux, o debian, o lo que sea

2do)

recordar que dejar, el netbios abierto pa internet, es una bestialidad

3ro)

con iptables, filtrar el 139, para la internet.

Recuerdenlo, que se los avise, el que avisa traiciona...

Linux Rules... Debian is the best!