2-7: Montando una Intranet con Linux
Mr. kl0nk Manson
kl0nk@0ri0n.org
Indice General
- Introduccion.
- Que necesitamos?.
- *.- Software.
- *.- Hardware.
- Configuracion de el Servidor y los Clientes.
- Configuracion de un Servidor DNS.
- Configuracion de el Servidor Web.
- Configuracion de un Servidor de NFS.
- Configuracion de un Servidor SAMBA.
- *.- Configuracion de los clientes.
- Configuracion de un Servidor de Correos.
- *.- Configuracion de los clientes de correos.
- Otros Servicios.
- Conclusiones y Recomendaciones.
1.- Introduccion
Simplemente Montaremos una Intranet con un "Servidor Linux", en el cual los ejemplo que se expondran a continuacion se utilizara un Servidor con Linux, Un Cliente con Linux, y dos Clientes mas con Windows 9x; Donde en el server configuraremos como Servidor DNS, Servidor de Correos Internos, Servidor Web, Servidor de NFS (Para el Cliente con Linux) y de Samba (para los Clientes con Windows).
Entonce Empecemos ....
2. Que necesitamos?
- a. Cuatro Maquinas (Una para el Server, y las otras tres para los Clientes).
- b. El Software Necesario (CD con Linux y sus Aplicaciones y el de Windows 9x).
- c. Muchas Ganas de Montar la Intranet ;)
*.- Software
Linux
- bind
- bind-utils
- caching-nameserver
- samba
- nfs
- nfs-utils
- portmap
- sendmail
- sendmail-cf
- samba
- samba-client
- samba-common
- imap
- netscape navigator
- apache web server
Windows
- Internet Explorer o Netscape Navigator
- CD Windowns 9x (Para cuando configuremos la Red).
- Apache Web Server for Windows (Opcional)
*. Hardware:
- HUB/Swicht (Opcional en el caso de utilizar Cable Coaxial).
- Cable UTP Nivel 5 o Cable Coaxial.
- Conectores RJ-45 o Terminator (BNC) con sus Respectivas "T" y Tapones.
- Ponchador.
- Canaletas y Cajetines Simples (En el Caso de Montar una Intranet Elegante).
Bueno, si me falto algo pues agamelo saber, Ok. Despues de haber instalado el software necesario, procedemos a configurar nuestro servidor.
3. Configuracion de el Servidor y los Clientes
Ok, debemos definir que rango de IP's vamos a utilizar, asi como el broadcast y el tipo de dominio (puede ser cualquiera, ya que no vamos a tener salida a la INET). Por Ejemplo:
Dominio: elquesea.com
Rango de IP's: 192.168.0.1/254
Broadcast: 192.168.0.255
Netmask: 255.255.255.0
Ok, entonces quedaria asi nuestra Intranet:
Servidor Linux:
- Dominio: Servidor.elquesea.com
- IP: 192.168.0.1
- Broadcast: 192.168.0.255
- Netmask: 255.255.255.0
Cliente Linux:
- Dominio: ws01.elquesea.com
- IP: 192.168.0.2
- DNS: 192.168.0.1
- Broadcast: 192.168.0.255
- Netmask: 255.255.255.0
Cliente Windows 1:
- Dominio: ws02.elquesea.com
- IP: 192.168.0.3
- DNS: 192.168.0.1
- Broadcast: 192.168.0.255
- Netmask: 255.255.255.0
Cliente Windows 2:
- Dominio: ws03.elquesea.com
- IP: 192.168.0.4
- DNS: 192.168.0.1
- Broadcast: 192.168.0.255
- Netmask: 255.255.255.0
NOTA: Hay que denotar que el servidor DNS va a ser 192.168.0.1 y por lo tanto los cliente deben tener esa IP como DNS Primario.
4. Configuracion de el Servidor DNS
Bueno, ahora vamos a configurar los DNS para los Clientes y para el Mismo Servidor, lo que temos que hacer es entar en /var/named/ (En mi caso porque utilizo Mandrake, y esto puede variar dependiendo a la distribucion de Linux que utilicemos), creamos los siguientes ficheros: db-192.168.0 y db.elquesea.com, luego editamos el archivo el archivo db.elquesea.com y escribimos lo siguientes:
-------- Empieza Aqui ----------
[++] Intranet/named/db.elquesea.com
@ IN SOA servidor.elquesea.com. root.servidor.elquesea.com. (
2000110203 ; serial
28800 ; refresh
7200 ; retry
604800 ; expire
86400 ; default_ttl
)
localhost IN A 127.0.0.1
servidor.elquesea.com. IN A 192.168.0.1
ws01 IN A 192.168.0.2
ws02 IN A 192.168.0.3
ws03 IN A 192.168.0.4
ftp IN CNAME servidor
pop IN CNAME servidor
smtp IN CNAME servidor
www IN CNAME servidor
@ IN MX 10 servidor.elquesea.com.
@ IN NS servidor.elquesea.com.
[--]
------ Termina Aqui --------
Ahora Editamos el fichero db-192.168.0 y escribimos lo siguiente:
-------- Empieza Aqui ----------
[++] Intranet/named/db-192.168.0
@ IN SOA servidor.elquesea.com. root.servidor.elquesea.com. (
2000110205 ; serial
28800 ; refresh
7200 ; retry
604800 ; expire
86400 ; default_ttl
)
1 IN PTR servidor.elquesea.com.
2 IN PTR ws01.elquesea.com.
3 IN PTR ws02.elquesea.com.
4 IN PTR ws03.elquesea.com.
[--]
------ Termina Aqui --------
Creamos en /var/named un archivo llamado named.local y incluimos lo siguiente:
-------- Empieza Aqui ----------
[++] Intranet/named/named.local
@ IN SOA localhost. root.localhost. (
2000110202 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expire
86400 ; default_ttl
)
1 IN PTR localhost.
@ IN NS localhost.
[--]
------ Termina Aqui --------
Creamos en /etc un archivo llamado named.conf y incluimos lo siguiente:
-------- Empieza Aqui ----------
[++] Intranet/named/named.conf
options {
directory "/var/named";
};
zone "." {
type hint;
file "named.ca";
};
zone "elquesea.com"{
type master;
file "db.elquesea.com";
};
zone "0.0.127.IN-ADDR.ARPA"{
type master;
file "named.local";
};
zone "0.168.192.IN-ADDR.ARPA"{
type master;
file "db-192.168.0";
};
[--]
------ Termina Aqui --------
Listo, ahora editamos el archivo /etc/resolv.conf y le decimos que el DNS se apunte a si mismo agregandole:
search servidor.elquesea.com
nameserver 127.0.0.1
nameserver 192.168.0.1
Y para el cliente con Linux le decimos:
search servidor.elquesea.com
nameserver 192.168.0.1
Ahora configuramos los Dos clientes con Windows (Me imagino que eso si lo saben hacer), si no lo saben, pues metasen en google.com y busquenlo o sino busque al tecnico mas sercano.
Luego, arrancamos el demonio del named y verificamos los DNS y nos debe aparecer lo siguiente:
# nslookup servidor.elquesea.com
Server: localhost
Address: 127.0.0.1
Name: servidor.elquesea.com
Address: 192.168.0.1
# nslookup ws01.elquesea.com
Server: localhost
Address: 127.0.0.1
Name: ws01.elquesea.com
Address: 192.168.0.2
# nslookup ws02.elquesea.com
Server: localhost
Address: 127.0.0.1
Name: ws02.elquesea.com
Address: 192.168.0.3
# nslookup ws03.elquesea.com
Server: localhost
Address: 127.0.0.1
Name: ws02.elquesea.com
Address: 192.168.0.4
Probando los Alias (pop,smtp,www)
# nslookup pop.elquesea.com
Server: localhost
Address: 127.0.0.1
Name: servidor.elquesea.com
Address: 192.168.0.1
Aliases: pop.elquesea.com
# nslookup smtp.elquesea.com
Server: localhost
Address: 127.0.0.1
Name: servidor.elquesea.com
Address: 192.168.0.1
Aliases: smtp.elquesea.com
# nslookup www.elquesea.com
Server: localhost
Address: 127.0.0.1
Name: servidor.elquesea.com
Address: 192.168.0.1
Aliases: www.elquesea.com
Probando las Reversas de IP's
# nslookup 192.168.0.1
Server: localhost
Address: 127.0.0.1
Name: servidor.elquesea.com
Address: 192.168.0.1
# nslookup 192.168.0.2
Server: localhost
Address: 127.0.0.1
Name: ws01.elquesea.com
Address: 192.168.0.2
# nslookup 192.168.0.3
Server: localhost
Address: 127.0.0.1
Name: ws02.elquesea.com
Address: 192.168.0.3
# nslookup 192.168.0.4
Server: localhost
Address: 127.0.0.1
Name: ws03.elquesea.com
Address: 192.168.0.4
Ok, luego de esto ya tenemos montado nuestro servidor DNS.
NOTA: Si Usted llega a inluir una o mas maquinas a su Intranet, debe configurarla en su DNS, asignarle una IP y luego reiniciar el demonio del named, haciendo "ndc restart".
5. Configuracion de el Servidor Web
Aqui nos encontramos con una duda, quien va alojar las web para cada uno de los clientes?; tenemos dos opciones, donde la primera opcion es instalarle a cada uno de los cliente un Servidor Web (Apache), pero esto traeria mas trabajo y es inecesario, ahora, simplemente nos vamos a la opcion dos que es que el servidor aloje nuestras web para cad a uno de nuestros clientes ... pero ustedes diran, y como hago eso?, es muy sencillo, configuramos el apache del servidor con algo se llama "VirtualHost", simplemente le decimos que apunte el subdominio (o dominio) que queremos a un directorio virtual, Ok
Veamos:
Lo primero que debes hacer es crear un directorio en el /home llamado web/, y darle la permisiologia correcta a el, luego debemos crear dentro de web/ unos directorios que se llamen asi: servidor.elquesea.com, ws01.elquesea.com ws02.elquesea.com y ws03.elquesea.com.
NOTA: hay que denotar que el cliente (o los cliente con Linux) no necesitan virtualhost, simplemente hay que configurarlo de manera de que el dominio apunte a la IP y listo.
Luego lo que tenemos que hacer es irnos a /etc/httpd/conf/vhost y editar el archivo Vhost.conf (esto puede variar en la distribucion de Linux que utilices).
Ahora lo que hacemos es agregarle el siguiente codigo al archivo:
-------- Empieza Aqui ----------
[++] Intranet/httpd/Vhost.conf
################# Home
NameVirtualHost 192.168.0.1
<VirtualHost 192.168.0.1>
ServerName servidor.elquesea.com
ServerPath /home/web/servidor.elquesea.com
DocumentRoot /home/web/servidor.elquesea.com
ScriptAlias /cgi-bin/ /home/web/servidor.elquesea.com/cgi-bin/
</VirtualHost>
################# WorkStation 01 (ws01) - Linux
NameVirtualHost 192.168.0.1
<VirtualHost 192.168.0.1>
ServerName ws01.elquesea.com
ServerPath /home/web/ws01.elquesea.com
DocumentRoot /home/web/ws01.elquesea.com
ScriptAlias /cgi-bin/ /home/web/ws01.elquesea.com/cgi-bin/
</VirtualHost>
################# WorkStation 02 (ws02) - Windows 9x
NameVirtualHost 192.168.0.1
<VirtualHost 192.168.0.1>
ServerName ws02.elquesea.com
ServerPath /home/web/ws02.elquesea.com
DocumentRoot /home/web/ws02.elquesea.com
ScriptAlias /cgi-bin/ /home/web/ws02.elquesea.com/cgi-bin/
</VirtualHost>
################# WorkStation 03 (ws03) - Windows 9x
NameVirtualHost 192.168.0.1
<VirtualHost 192.168.0.1>
ServerName ws03.elquesea.com
ServerPath /home/web/ws03.elquesea.com
DocumentRoot /home/web/ws03.elquesea.com
ScriptAlias /cgi-bin/ /home/web/ws03.elquesea.com/cgi-bin/
</VirtualHost>
[--]
------ Termina Aqui --------
Listo, ahora nos queda reiniciar el demonio del httpd y abrir nuestro browser para ver las paginas.
6. Configuracion de un Servidor de NFS
Lo siguiente es configurar un servidor de NFS (Network File System) para los cliente con Linux, pero para ello debemos configurar el nivel de seguridad para portmap. Esto se consigue editando los ficheros /etc/hosts.allow y /etc/hosts.deny. Debemos especificar que direcciones IP's pueden acceder a los servicios de portmap y quienes no pueden hacerlo. De la siguiente forma (/etc/host.allow):
portmap:192.168.0.0/255.255.255.0
Esto corresponde a la direccion IP de la red completa y la mascara de la subred. Tambien podemos especificar direcciones IP individuales sin necesidad de establecer una mascara.
portmap:192.168.0.0/255.255.255.0
portmap:192.168.0.4
portmap:192.168.1.1 (Si hemos pasado de 254 IP's)
Luego, editamos el archivo /etc/host.deny y agregamos la siguiente Linea:
portmap:ALL
Con esto le daremos un nivel de seguridad medio a nuestro sistema.
Simplemente nos queda reiniciar el deminio del portmap con:
#portmap restart
Luego procederemos a crear un directorio para compartir nuestros archivos con:
# mkdir /home/nfs/
Agregamos en el archivo /etc/exports la siguiente Linea:
/home/nfs ws01.miredlocal.org(ro)
Donde (ro) es solo-lectura, si se desea compartir el volumen de "escritura", enconces colocamos (rw)
Ahora solo queda reiniciar el nfs (o iniciarlo) con
#nfs start
#nfs restart
*.- Configurando las miquinas clientes
Simplemente creamos como root el siguiente directorio en nuestro cliente con Linux:
# mkdir /mnt/nfs-server
Y para montar el volumen remoto, utilizaremos la siguiente linea de comando:
# mount -t nfs servidor.elquesea.com:/home/nfs /mnt/nfs-server
Si por alguna razon le llega a dar error, entonces compruebe de que su DNS esta funcionando como debe ser sino configure el archivo /etc/host con las IP's y sus respectivos alias en cada uno de los Clientes con Linux. Ahora, tambien podemos montarlo con la IP de servidor, pr ejemplo:
# mount -t nfs 192.168.1.254:/home/nfs /mnt/nfs-server
TIPS: Si queremos montarlo con una simple linea de comandos, entonces agrege en el archivo /etc/fstab lo siguiente:
servidor.elquesea.com:/home/nfs /mnt/nfs-server nfs user,exec,dev,nosuid,rw,noauto 0 0
7. Configuracion de un Servidor SAMBA
Bueno, ahora vamos a configurar SAMBA, pero ustedes diran (perdon a los Gurus), que es eso?, eso or casualidad no es una galleta con una capa de Chocolate?, pues no, es SMB (Session Message Block) llamado tambien Protocolo NETBios o LanManager y nos sirve para compartir ficheros CASI TRANSPARENTEMENTE entre Linux y Windows.
Lo Primero que tenemos que hacer es definir en el /etc/lmhosts el alias de cada una de las maquinas, por ejemplo:
127.0.0.1 localhost
192.168.0.1 servidor
192.168.0.3 ws02
192.168.0.3 ws03
Ahora Editaremos el archivo smb.conf y cambiaremos nuestro grupo de trabajo como:
workgroup = MIREDLOCAL
Luego descomentamos la siguiente lineas y le indicamos un nivel de seguridad medio con:
hosts allow = 192.168.0. 10.
Para evitar que Windows nos este registrando cada vez que tratemos de entar al directorio compartido, simplemente descomentamos esta lineas:
encrypt passwords = Yes
smb passwd file = /etc/smbpasswd
Ahora si nuestra red local va a tener una impresora (que este conectada) en el servidor, simplemente le damos los parametros a SAMBA para que los clientes con Windows puedan utilizarlos con:
[printers]
comment = Impresora.
path = /var/spool/samba
printable = Yes
browseable = No
public = yes
Ahora simplemente le indicamos a SAMBA que comparta los directorios Home con:
[homes]
comment = Directorios Home
browseable = no
writable = yes
Listo, despues de esto simplemente nos queda reiniciar el demonio del SAMBA.
8. Configuracion de un Servidor de Correos
Ahora nos queda por modificar el archivo /etc/mail/sendmail.mc, y para ello, simplemente agregamos o modificamos las siguienetes lineas:
MAILER(smtp)
MAILER(local)
DOMAIN(`servidor.elquesea.com')dnl
NOTA: La Ruta /etc/mail/sendmail.mc puede variar dependiendo de tu distribucion.
Ahora compilamos con:
m4 /etc/mail/sendmail.mc > /etc/sendmail.cf
Editamos el archivo /etc/mail/access y agregamos algunas lineas para definir quienes podran hacer uso de nuestro servidor de correo para poder enviar mensajes:
[++] Intranet/sendmail/access
# by default we allow relaying from localhost...
localhost.localdomain RELAY
localhost RELAY
127.0.0.1 RELAY
servidor.elquesea.com RELAY
ws01.elquesea.com RELAY
ws02.elquesea.com RELAY
ws03.elquesea.com RELAY
[--]
Ahora hay que compilar para el formato del Sendmail con:
# cd /etc/mail
# make clean
# make
Ahora simplemente nos queda reiniciar el demonio del sendmail con
# sendmail restart
Para poder recuperar el correo desde los otros clientes, editamos el archivo /etc/inetd.conf y descomentamos la siguiente linea:
pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d
Ahora solo nos queda reiniciar el demonio inetd con "inetd restart".
*.- Configuracion de los clientes de correos
Si la red local esta bien configurada, solo nos queda configurar nuestro cliente de correo favorito (pine, kmail para Linux) o Outllok para Windows, con la siguiente:
- POP3: pop.elquesea.com
- SMTP: smtp.elquesea.com
- LOGIN: tu_login
- PASSWORD: tu_p4zzw0rd
y Listo, ya hemos montado una Intranet con Los Servicios Basicos.
NOTA: Tiene que tener una cuenta en el servidor para poder enviar/recibir el correo; con su respectivo Login y Password.
9. Otros Servicios
En nuestro servidor podemos configurar otros servicios para la Intranet, como es de IRC (Montar un Servidor para Charlas), Servidor de Juegos en Red (Quake), Servidor de PPP, Servidor de Base de Datos, etc. Para eso deben buscar la respectiva documentacion.
10. Conclusiones y Recomendaciones
Bueno, espero que les sirva este articulo, tambien les recomiendo de que se leean la documentacion completa (HOWTO's) de los cuales resaltan en este articulo:
- Samba-HOWTO
- WWW-HOWTO
- Mail-Administration-HOWTO
- NFS-HOWTO
- DNS-HOWTO
- Guia del Administrador de redes con Linux
Este articulo es base para montar una Intranet con salida a Internet, se puede modificar agregandole lo siguiente:
- Servidor Proxy
- IPCHAINS (2.2.x) o IPTABLES (2.4.x)
- IP-Masquerade
- PPP
- Fetchmail
Tambien les recomiendo que se leean la documentacion de el qmail (se puede decir que es su substituto), es mas facil de configurar y de administrar, y lo pueden conseguir en: http://es.qmail.org.
Otra de las cosas es que esten actualizando su software continuamente, ya que cada dia van saliendo bugs nuevos y muchas personas se pueden aprobechar de esos bugs para penetrar tu sistema (esta recomendacion te la doy por si tu intranet tiene salida a internet). Para encontrar la Informacion actualizada, puedes visitar:
http://www.securityfocus.com
http://packetstorm.securify.com
http://www.hackernews.com
http://www.microsoft.com
http://www.slashdot.org
http://www.freshmeat.net
http://www.barrapunto.com (En español)
http://www.linuxpreview.org (En español)
http://www.0ri0n.org (En español) ;)
Flames y otras basura enviarlas a /dev/null, comentarios "constructivos" y otras recomendaciones a mailto:kl0nk@0ri0n.org
Esto es todo Amigos, nos vemos en el proximo articulo, Enjoy ;)