Configuracion Basica DNS

El siguiente mini how-to es para mostra la configuracion basica de un servidor DNS
para una red interna, donde el servidor DNS local dependera de los servidores externos DNS obtenido via el ISP( fowarders only )

Este mini how-to lo realizare en Fedora9, el procedimiento es el mismo para RedHat/CentOS, lo primero es definir la configuracion de red a utilizar la cual sera la siguiente:

Red privada clase C: 192.168.1.0/24

Gateway: 192.168.1.10

DNS: 192.168.1.1 (el servidor que configurare)

Dominio: mynetwork.lan (el dominio puede ser cualquiera, puesto que esto no sera visible desde el internet)

DNS(fowards = servidores DNS externos): 208.67.222.222 208.67.220.220

ahora los paquetes los instalamos usando el gestor de paquetes yum que es un frontend del comando “rpm”

# yum install -y bind* 

con esto instalamos todos los paquetes necesarios, Bind9 se instalara en fedora en un chroot (entorno restringido) teniendo sus archivos de configuracion en los siguientes directorios:

# configuracion
/var/named/chroot/etc
# archivos de zona
/var/named/chroot/var/named

definiremos 2 archivos de zonas con los registros de los recursos que tenemos en la red

; file: net.db
$TTL 1D
mynetwork.lan. IN SOA xaero.mynetwork.lan. root.mynetwork.lan. (
	1  ; serial
	3h  ; refresh after 3 hours
	1h  ; retry after 1 hour
	1w  ; expiry after 1 week
	1h   ; minimum, Negative caching TTL of 1 hour)

@	NS	xaero.mynetwork.lan.
	IN 	A 	192.168.1.1
www	IN 	A 	192.168.1.1 ; web server
ftp	IN 	A 	192.168.1.1 ; ftp server
wrack	IN 	A 	192.168.1.2 ; old file server machine
mynx	IN 	A 	192.168.1.3 ; laptop
xaero	IN 	HINFO 	i686 Unix   ; this server

;Test Virtual hosts
www.phpweb20.lan	IN	CNAME	xaero.mynetwork.lan.
www.django_demo.lan	IN	CNAME	xaero.mynetwork.lan.

El archivo “net.db” define los recursos de la red y con los registros A, CNAME, NS.

; file: 192.db
; Zone file for 192.168.1.x
;

$TTL 3h

1.168.192.in-addr.arpa. IN SOA xaero.mynetwork.lan. root.mynetwork.lan. (
1 ; Serial
3h ; Refresh after 3 hours
1h ; Retry after 1 hour
1w ; Expire after 1 week
1h ) ; Negative caching TTL of 1 hour

; Name servers

@  IN NS xaero.mynetwork.lan.

1  IN PTR xaero.mynetwork.lan.
2  IN PTR wrack.mynetwork.lan.
3  IN PTR mynx.mynetwork.lan.

Este archivo permitira resolver en reversa los hosts de la red a partir del IP.
los archivos a modificar son:

/var/named/chroot/etc/named.conf

// named.conf
acl mynetwork-lan { 192.168.1.0/24; 127.0/8; };
options {
listen-on port 53 { 192.168.1.1; 127.0.0.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";
allow-query     { localhost; mynetwork-lan; };
forwarders { 208.67.222.222; 208.67.220.220; }; #IP dns servers
forward only; # rely completely on our upstream nameservers
query-source    port 53;
query-source-v6 port 53;
recursion  yes;
};

logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};

view  "internal" {

match-clients {mynetwork-lan;};
zone "." IN {
type hint;
file "named.ca";
};

zone "mynetwork.lan" in {
type master;
file "net.db";
};

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

include "/etc/named.rfc1912.zones";
};

En named.conf se definen los dns externos una ACL para limitar el acceso de los clientes DNS a solo los clientes que se encuentra en la red 192.168.1.0/24, se definen los puertos en los cuales el Bind9 escuchara, otros parametros y los archivos de zona

/etc/resolv.conf

search mynetwork.lan

nameserver 127.0.0.1
nameserver 192.168.1.1

Los parametros en “resolv.conf” le dicen al sistema como resolvera los nombre y la busqueda de dominio asi como los servidores de nombre.

/etc/sysconfig/network

# file: network
NETWORKING=yes
HOSTNAME=xaero.mynetwork.lan
IPV6_DEFAULTGW=
PEERDNS=no

Aqui el parametro importante es la opcion “PEERDNS=no” sin esta opcion las lineas en el resolv.conf cambiaran al reiniciar y usaran los DNS de la conexion del gateway, lo cual no es lo que se desea.

ahora que el DNS esta configurado se necesita que los clientes de la red haga uso del, para esto se tienen 2 opciones configurar el servicio DHCP en el router que sirve de gateway para que use el servidor Linux que funciona como DNS o instalar el servicio DHCP en linux para que funcione con DNS local.

Una vez configurado lo anterior solo basta con probar la configuracion

Configuracion DHCP basica

ddns-update-style interim;
ignore client-updates;
subnet 192.168.1.0 netmask 255.255.255.0 {

# --- default gateway
option routers   192.168.1.10;
option subnet-mask  255.255.255.0;
option broadcast-address  192.168.1.255;
# option nis-domain  "mynetwork.lan";
option domain-name  "mynetwork.lan";
option domain-name-servers 192.168.1.1;

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

option ip-forwarding off;
range dynamic-bootp 192.168.1.21 192.168.1.254;
default-lease-time 21600;
max-lease-time 43200;
}

Ahora solo queda probar la configuracion del Servidor DNS para esto se utilizar la poderosa herramienta “dig”

uso:

# dig mynetwork.lan

la respuesta debe ser:

como vemos la respuesta fue obtenida desde el server local, ahora si probamos haciendo la consulta al server por su IP 192.168.1.1 obtendremos lo siguiente:

# dig @192.168.1.1 mynetwork.lan

Referencia

DNS for Rocket Scientists

Usando Fedora9

Recientemente actualice mi distribuccion de linux de Fedora8 al nuevo y mas actual Fedora 9 lo que me ha impresionado mas es las mejoras en el bluetooth y la conexion wireless, como siempre Fedora 9 siempre trae lo mas nuevo y los mas estable posible que se tiene en Linux inmediatamente reconocio mi adaptador usb-bluetooth y probe la conexion con mi telefono mi w810i y funciono perfectamente.

ahora puedo enviar sms desde mi pc usando la conexion bluetooth con mi telefono, enviar y recibir archivos desde la pc o el telefono

por el momento solo he tenido ciertos inconvenientes minimos ya que fedora viene con la ultima version del Xorg, para la cual todavia se estan probando los drivers de nvidia y ati
abra que esperar unos cuantos dias mas para poder jugar.

Una mejora ha sido el inicio del sistema, ahora la carga del sistema operativo es mas rapida que la de Fedora 8. Fedora 9 ahora utiliza Upstart en reemplazo de /sbin/init

El KDE4 lo probe pero no me gusto mucho el cambio en la interface y algunos programas no funcionaban bien habra que ver las mejoras en la siguiente version.

El soporte multimedia esta excelente, solo basta con agregar los repos de livna y todo ok, buena parte de los programas que vienen con fedora9 son betas, pero bien estables y funcionales.

El util comando find.

Una de las mejores cosas que existen en Unix/linux son las herramientas de la consola
como lo es el util comando find parte del “GNU findutils (find,locate, updatedb, xargs)”, este comando es una verdadera joya, sabiendolo utilizar puede ahorrar mucho tiempo en tareas repetitivas, para muestra unos ejemplos:

supongamos que tenemos archivos que no tienen el set de permisos adecuados(suponiendo un set 755), pero tales archivos estan dispersos en diferentes directorios y necesitamos corregir los permisos (a un 644), normalmente alguien que no supiera de esta herramienta haria lo siguiente:

cd directorio
ls -la
chmod 644 archivos.xyz

y esto se haria repetitivamente por cada directorio donde los permisos de los archivos no estuvieran bien.

Ahora bien con el comando find la misma tarea se realizaria con una sola instruccion al shell:

find . -type f -perm 755 -exec chmod 644 {} +

los parametros significan:

. busca recursivamente en el directorio actual

“-type f”: lo que busco son archivos

“-perm 755”: que tengan los permisos 755

“-exec 644 {} +”: cuando los encuentres cambia los permisos a 644

en versiones viejas del comando find la ultima parte tendria que variar para que funcione seria asi:

find . -type f -perm 755 -exec chmod 644 {} \;

en una sola instruccion se puede buscar y ejecutar un comando sobre los archivos encontrados.

Lo anterior tambien se puede realizar con directorios con solo cambiar un parametro, si tenemos directorios con permisos 777 y los queremos cambiar a 755 (permisos predeterminado para directorios), escribimos:

find . -type d -perm 777 -exec chmod 755 {} +

find es versatil y tiene diferentes parametros los cuales podemos aplicar dependiendo de lo que queramos buscar

find /home/testuser/projects/ -name 'web_*.py' -size +50k -print

podemos usar busquedad por nombre usando expresiones regulares, permisos, propietario del archivo, tamaño , tiempos de acceso y hasta por tipo de archivos symbolic links o hard links

referencia

GNU FindUtils Manual

Sun Java System Web Server 7.0 + PHP5 en Fedora8

Despues de estar un buen rato sin postear, regreso para mostrar como configurar el web server de Sun con PHP en linux otra opcion mas donde se puede instalar el PHP.

El servidor web de Sun es versatil y esta enfocado a organizaciones medias y grandes. puede servir JSP y con el agregado FastCGI puede ser usado con la mayoria de lenguajes de script como PHP, Perl, Python, etc.

Bueno lo primero es conseguir el software, esto se hace facilmente registrandonos en la pagina de Sun y obteniendo una cuenta gratuita para descargar los programas, una vez logeados veremos la lista del software que podemos descargar:

para esta demostracion usaremos la version 7 del web server y el agregado php.

Sun Java System Web Server 7.0

PHP 5.2.0 addon:

teniendo los archivos ya descargados:

phppack-5_2_0-linux-i586.zip

sjsws-7_0u2-linux-i586.tar.gz

procedemos a instalar el web server:

<br />
$ tar xzvf sjsws-7_0u2-linux-i586.tar.gz<br />
$ ./setup<br />

la instalacion es sencilla se realiza desde el shell, solicitara confirmacion del usuario para la localizacion donde se instalara el web server y los datos de la cuenta del administrador del servidor, mostrare alguno screenshots de esto:

si todo quedo bien podremos iniciar el web server con las intrucciones que apareceran en la consola:
<

<br />
$ /sun/webserver7/admin-server/bin/startserv<br />

web server funcionando :

Ahora la instalacion del PHP, tomamos el archivo phppack-5_2_0-linux-i586.zip y los descomprimimos en el directorio de plugins del servidor web

<br />
# mv phppack-5_2_0-linux-i586.zip  /sun/webserver7/plugins/<br />
# cd /sun/webserver7/plugins/<br />
# unzip phppack-5_2_0-linux-i586.zip<br />

Panel de administracion de Sun Web server

Sun Web server puede operar con multiples servidores virtuales y lo que maneja son instancias las cuales tiene su propia configuracion y espacio en disco y memoria y representan los sitios desplegado en el servidor

Instancia creada por default, nos muestra el sitio en el cual instalaremos el PHP

El PHP para Sun web server puede instalarse de manera manual editando los archivos de configuracion:

– magnus.conf (contiene las directivas para el tipo de carga del plugin NSAPI o FastCGI)
– obj.conf(Directivas para procesar las peticiones HTTP)
– mime.types (mapear las extensiones a los tipos MIME de cada peticion)

la otra opcion es usar un script que realiza estas tareas automaticamente con solo pasarle los parametros de la instancia del web server para la demostracion usaremos este metodo.

Ejecutamos el script:

si todo salio bien deberemos observar en el log la carga del plugin:

ahora solo queda probar el php en el web server asi que creamos un archivo con lo siguiente:

<br />
echo phpinfo();<br />

y lo ubicamos en la raiz del sitio (/sun/webserver7/https-xaero.xdark.lan/docs).
reiniciamos la instancia y debe generar algo como esto:

y listo tenemos el web server de Sun configurado con PHP5.

Referencias:

http://developers.sun.com/webserver/

Sun docs

Oracle XE en Fedora 6 — parte1

Ahora en esta ocasion traemos Oracle XE ( Oracle express edition ) disponible para linux/windows y otras plataformas(Debian, Mandriva, Novell, Red Hat and Ubuntu), y como de costumbre mostrare la instalacion en Fedora 6

Obteniendo Oracle-XE:

  • primero necesitaras una cuenta en la web de oracle
  • una vez loggeado en la cuenta que creaste, busca la seccion de descargas
  • Descargas Oracle-XE para linux, formato de paquete “rpm”, el archivo a descargar es oracle-xe-univ-10.2.0.1-1.0.i386.rpm

Los requerimientos para instalar Oracle-XE segun la web de Oracle son:

  • RAM 256MB minimo, recomendado 512MB (servidor)
  • Espacio en disco 1.5GB minimo (servidor)
  • Los requerimientos de swap (espacio de intercambio) varia segun la memoria instalada del sistema (aunque hay una manera de burlar este requerimiento, la cual explicare mas adelante)

    RAM –> SWAP

    0-256MB –> el triple de la RAM instalada
    256MB-512MB –> el doble de la RAM instalada
    512MB-1024MB –> 1024MB

  • Tambien se deben ajustar ciertos parametros del kernel de linux

Parametros del Kernel

semmsl 250
semmns 32000
semopm 100
semmni 128
shmmax 536870912
shmmni 4096
shmall 2097152
file-max 65536
ip_local_port_range 1024–65000

para hacer los cambios a los parametros del kernel editamos el archivo /etc/sysctl.conf agregamos las siguientes lineas:

kernel.sem = 250 32000 100 128
kernel.shmmax = 536870912

shmmni, file-max e ip_local_port_range, ya viene con esos valores predeterminados en Fedora 6, por lo que no hay necesidad de modificarlos, luego ejecutamos

# sysctl

este comando actualizara los parametros del kernel que acabamos de agregar a sysctl.conf.

Oracle-XE tambien requiere que la libreria “libaio” este instalada(“yum install libaio”) en el sistemas antes de instalar

Realizamos la instalacion de Oracle-XE con el siguiente comando:

# rpm -ivh –nosignature oracle-xe-univ-10.2.0.1-1.0.i386.rpm

luego configuramos con:

# /etc/init.d/oracle-xe configure