Internet para empresas con LAN , a través de RDSI.
==================================================

Pablo Idiaquez Rios.


        Escenario: Empresa que cuente con una Red de Area Local (LAN), 
 desee navegar por Internet y Correo Corporativo.

Requisitos: 

2 líneas telefónicas CTC a ser pasadas a líneas digitales RDSI.

1 PC para servidor Linux.
	   mínimo:   Pentium     40 MB Ram
	   	     1.5 GB en dicso duro.
		     tarjeta de Red
		     puerto serial uart 16550

1 cable serial

1 dirección IP fija , puede ser una dirección intranet,
un ISP amigo ;-)

Telefonica al instalar la línea RDSI Básica instala un modem Aethra NT-IP
por lo que no es necesario comprar un modem o una tarjeta ISDN.


	Solución Propuesta.
	
	Se instala un servidor Linux en la empresa que atenderá 
    los siguientes servicios:
    
    - Conexión en demanda, no es necesario marcar.
    - Correo interno y a Internet. 
    - Servicio Proxy Cache Web, para acelerar la navegación y hacer
       rendir el ancho de banda limitado 64kbps.

	Para Ofrecer los servicios anteriormente descritos se usará:
	
    Distribución Linux RedHat 6.2 
    Correo:      Sendmail + imap
    DNS:         Bind 
    Proxy http:  Squid
    Conexion:    pppd
    

             Ver esquema de la Solución 
	     
	Comparación de enlaces MODEM/RDSI/DEDICADO SINCRONICO
	
     Los enlaces por modem análogos de 56 kbps y anteriores, son un enlace
asincrómico, modo PPP asincrónico. 
     Un enlace asincrónico por modem pierde bits en el bit de parada y el
bit de paridad. 8N1 , por lo que los bps nominales no son los que aprovecha 
el usuario.

     Un modem análogo de 56 kbps, típicamente se conecta entre  44 y 48 kbps,
dependiendo de la línea y la marca del modem.

     Los enlaces dedicados de 64 kbps Frame-Relay, TDM o banda base, son
sincrónicos.
     Los enlace RDSI son sincrónicos es decir son exactamente iguales que un
enlace dedicado sicrónico en rendimiento.

Balance de Carga y Full-Duplex

     Un modem es capaz de transmitir en un solo sentido a la vez a su 
velocidad nominal, lo que lo hace muy lento cuando ests siendo ocupado 
en una transferencia de archivos.

     Un enlace sincronico puede transmitir en ambas direcciones si no esta
saturado.
     
     Tiempos de respuesta Característicos
     
   Un enlace por modem tiene un tiempo de respuesta caracteríctico
   que fluctua entre 100 y 300 [ms] dependiendo de la marca del modem

   
   Un enlace de 64 kbps sicrónico tiene un tiempo de respuesta de 33 [ms]
   Un enlace de 128 kbps sicrónico tiene un tiempo de respuesta de 20 [ms]
   
   Estos tiempos de respuesta son medidos con el comando ping al servidor de
   acceso  o  getway por defecto.
   
   Con el comando ping podemos medir la calidad de nuestro enlace, por
   ejemplo aumentando el tamaño del paquete enviado y enviando miles de
   paquetes podemos hacer un estudio de la linea. Estabilidad, errores.
   
   
   Como conclusión un enlace ISDN de 64 kbps es idéntico en rendimiento  a un 
   enlace dedicado de 64 kbps y es mucho superior a un modem de 56 kbps.
   Un modem de 56 kbps no puede ser ocupado por mas de 1 usuario.
   

Costos

   Un enlace dedicado de 64 kbps cuesta como mínimo 8 UF dependiendo del
 sector.
 
   Un enlace RDSI cuesta 8 pesos el minuto en horas de oficina. Suponiendo
   que el proveedor Internet ofrece tarifa SLM-IP que es un 43% del SLM.
   
   El enlace RDSI propuesto es en demanda, es decir solo se utiliza cuando
   sea necesario, se estima que una oficina puede gastar alrededor de 50.000.-
   pesos en llamadas  a Internet utlizando un esquema de
   proxy-linea-comnutada. Esto depende claro del uso que se le de.

   Además del costo de la llamada debemos pagar el acceso a Internet, si
   deseamos Correo para la empresa se requiere de una Direccion IP exclusiva
   para nuestro Gateway Linux, el valor de este servicio es de 2 UF mensuales.
 
 
   
   
   
   Implementación:
   
   1.- Instalar RedHat 6.2 
     
     Fijar un espacio abundante a la particion correspondiente a /var
     en el directorio /var/ estará el de los usuario correo y las páginas 
     mantenidas en el cache web, ademas de los logs del sistema.
          Se recomienda dejar un particion especial para el cache
     web:
 
 /dev/hdc5              4134900   3556804    368048  91% /var/spool/squid

      Para esto se recomienda usar la opcion Custom de Instalación.
      
    2.- Instalar los siguientes paquetes:
    
    sendmail-8.9.3-20
    squid-2.3.STABLE1-5
    imap-4.7-5.i386.rpm
    bind-8.1.2-5.i386.rpm
    ppp-2.3.5-1.i386.rpm
    
       Verificar instalar las ultimas versiones de estos, revisar en 
    ftp://updates.redhat.com/ de igual forma tener instalada la ultima
    version del kernel disponible en redhat.
    
      
      3.- Conexion a Internet con RDSI.
      
      - Creamos una conexion a internet con netcfg o via control panel
      elegir autentificación PAP.
      
      - Utilizamos los datos del proveedor, numero de telefonos, username
      password.
      
      - Como primer para para verificar los datos podemos usar un modem
       tradicional.
       
      - Configurar el DNS en el archivo /etc/resolv.conf
      
      nameserver  200.32.74.200
      nameserver 209.88.202.3
      
      - Para para ver como va la conexion podemos revisar /var/log/messages
      
      #tail -f /var/log/messages
      
      Una vez que estemos claros con los datos del ISP y que funcione nuestra 
      conexion con un modem tradicional, pasamos a la configuración para ISDN
      
      - Verificamos que /dev/modem sea ahora un link a /dev/ttySX donde 
      esta conectado el Aethra.
      
      - Verificamos que versión del Aethra NT-IP tenemos
      para esto usamos minicom y tipeamos los comandos Hayes
      
      ATI
      ATI1
      ATI2
      ATI3
      
         El Aethra nos debe responder que version del firmware tiene
   instalada. Dependiendo de la version éste debemos cambiar el init
   string para conectarnos.
   para firmawrae 2.0.6 o anterior usar init string 

   ATB41CL2048
 
   para firmaware 2.1.x  usar init string
   
   ATB40&H3&J3X5
   
   este init string debes ponerlo en el archivo
   
   /etc/sysconfig/network-scripts/chat-ppp0
   ----------------
   'ABORT' 'Login incorrect'
   '' 'ATZ'
   'OK' 'ATM0DT906234'
   ------------------
   en vez de ATZ
   
   y tambien en el archivo
   
   /etc/sysconfig/network-scripts/ifcfg-ppp0
   
   en la línea
   
   [AINITSTRING= 
   
   
   
     los scripts de conexion estan en el directorio 
     /etc/sysconfig/network-scripts/
     
     dependiendo que herramienta usamos para hacer la conexion esta 
     puede usar chat o expect para marcar el numero telefónico y conversar
     con el modem.
     
     
     Una vez que nuestra conexion funcione, podemos configurar el modo
     en demanda o Demand Dial 
     
     en el archivo /etc/sysconfig/network-scripts/ifup-ppp
     
     ajustar los siguientes valores
     
     RETRYTIMEOUT=6
     
     /usr/sbin/pppd -detach demand idle 100 $opts $MODEMPORT $LINESPEED \
     
     , en los cuales se fija el retry en 6 segundos, el idle por inactividad 
     en 100 segundos y el modo en demanda.
     
      en el archivo /etc/sysconfig/network-scripts/ifcfg-ppp0
      
      ajustar los valores de las direcciones IPS fijas.
      
      REMIP=200.32.74.202
      IPADDR=209.88.202.93
      
      REMIP correponde a la IP del otrp extremo, esta puede variar.
      IPADDR es nuestra direccion que requerimos sea fija, para poder 
             recibir el correo via SMTP.
	
     Empiricamente despues de horas de prueba comprobamos que en el caso
     de Infovia ( que se acaba ) la direccion el peer cambia es decir 
     podemos entrar por mas de 1 servidor de acceso y cada uno de estos
     tiene una IP distinta por lo que el pppd en modo demanda se ranea
     terminalmente como solucion parche encontre una IP bruja que se ajusta a 
     cualquier IP remota , explicación ? Ninguna!
     
     REMIP=10.112.112.112
     
     
      
      Configuracion del DNS,
      
      La funcion del Servidor de Nombres en nuestro Linux sera  
      de Cache de nombre en Internet, y servidor de nombres para el reverso
      de las IP de la intranet (LAN).
      
      instalar bind y verificar que este resolviendo nombres 
      para esto editamos nuevamente /etc/resolv.conf y agregamos
      como primer nameserver a 127.0.0.1
      
      nameserver 127.0.0.1
      
      con el comando nslookup podemos ver si esta resolviendo nombres.
      
      si no verificar la configuración /etc/named.conf
      
      zone "." {
              type hint;
	      file "named.root";
	      };
	     
      // 
      // Localhost
      // 
      zone "127.in-addr.arpa" {
              type master;
              file "127.rev";
	      };
				      
      zone "localhost" {
              type master;
              file "localhost";
	      };

       y la existencia de los archivos localhost 127.rev named.root
       en el directorio /var/named
       
       el archivo named.root o named.ca o named.cache esta disponible en
       FTP.RS.INTERNIC.NET
       
       Debemos definir una clase C para nuestra intranet.

       por ejemplo 192.168.10.0 netmask 255.255.255.0
       
       y crear el mapa para el reverso de esta red, esto es muy importante.
       
debe ser como el siguiente, para el inverso o reverso de la red
192.168.10, 0 que sera 10.168.192.in-addr.arpa

--------------192.168.10.rev
; 192.168.10.0  IPs Intranet para la LAN
;
; Netmask 255.255.255.0
;
;
$ORIGIN 10.168.192.in-addr.arpa.

@       IN  SOA k2.imaginativa.cl. mfkr.k2.imaginativa.cl. (
                2000112201         ; Serial (Wed Nov 22 08:53:15 CLST 2000)
                10800              ; Refresh
                1800               ; Retry
                3600000 	   ; Expire
		86400   )          ; Minimum
		
	IN  NS linux.dominio.cl. ; IP de intranet del linux gateway

; lista de PCs en la intranet

1	IN  PTR	pc001.dominio.cl.
2	IN  PTR	pc002.dominio.cl.
3	IN  PTR	pc003.dominio.cl.
4	IN  PTR	pc004.dominio.cl.
.
.
.
-------------------------------

     - Editar /etc/named.conf para agregar esta zona
     
     zone "10.168.192.in-addr.arpa" {
             type master;
	     file "192.168.10.rev";
	     };
		     
     ------- Hasta aqui hemos hablado solo de la configuración de 
             nuestrso Linux Gateway en la empresa ------------
     
     - Crear el mapa Para el dominio dominio.cl
     
     Existiran 2 versiones de este mapa 1 para el Linux Gateway en la 
     empresa y otra para el ISP.
     
     - El DNS primario y secundario para dominio.cl deben estar
    permanentemente conectados a la Internet por lo tanto la version Oficial
     para Internet del mapa del dominio debe estar en los servidores DNS de
   nuestro ISP.
     
      En el caso que el ISP nos asigne una IP fija de internet el mapa del
      dominio debe ser algo por el estilo:
      
      mapa para el PC Linux en la empresa:
-----------------------------      
;
; dominio.cl
;
; Linux Gateway for dominio.cl
;
    
$ORIGIN dominio.cl.
    
@               IN      SOA     linux.dominio.cl.	mfkr.k2.imaginativa.cl. 
(
                        2000080301      ; Serial
                        10800           ; Refresh
                        1800		; Retry
                        3600000         ; Expire
		        86400   )       ; Minimum
					 
		        IN      NS      linux.dominio.cl

;; Configuracion de Correo mapa en Servidor Linux de la empresa

dominio.cl.	IN	MX  40	linux.dominio.cl.


;; PCs solo direcciones de Intranet

$ORIGIN dominio.cl.

linux		IN	A	192.168.10.1  ;; solo la ip de intranet
		IN	MX  10	linux.dominio.cl
		
pc002		IN	A	192.168.10.2

pc003		IN	A	192.168.10.3

pc004		IN	A	192.168.10.4

------------

    Explicacion: para los PCs de la intranet el único encargado
    de correo para el dominio (registro MX) sera el Linux con 
    su Ip de intranet.
       En este mapa el Linux solo figura con su Ip de intranet.
       

	Mapa DNS para el ISP, este será el mapa oficial del dominio
	para el resto de la Internet.
	
-------------------	
;
; dominio.cl
;
; Linux Gateway for dominio.cl
;
    
$ORIGIN dominio.cl.
    
@               IN      SOA     dns1.isp.cl.	mfkr.k2.imaginativa.cl. 
(
                        2000080301      ; Serial
                        10800           ; Refresh
                        1800		; Retry
                        3600000         ; Expire
		        86400   )       ; Minimum
					 
		        IN      NS      dns1.isp.cl.
			IN      NS      dns2.isp.cl.

;; Configuracion de Correo mapa en Servidor Linux de la empresa

dominio.cl.	IN	MX  40	mail.isp.cl.  ;; El servidor mail del ISP
		IN	MX  60	linux.isp.cl.  ;; EL linux ip de internet
		
;; maquinas del dominio

$ORIGIN dominio.cl.

linux		IN	A	209.88.202.111  ;; ip de internet fija
		IN      MX  10  linux.dominio.cl.

;; PCs solo direcciones de Intranet
		
----------------------------------------------

	Explicación: Para el resto del mundo, el DNS primario y secundario
   de dominio.cl son los DNS del Proveedor Internet, 
   Los registros MX nos dicen que el correo para dominio.cl lo pueden recibir
   indistintamente el linux.dominio.cl o mail.isp.cl , de esta manera
   cuando el linux no este conectado a la internet el correo para dominio.cl
   será almacenado el la cola de correo del mail.isp.cl.
   



	Configuración de correo. (Sendmail)
	
     El servidor de correo de nuestro proveedor internet tiene que estar
configurado para ser RELAY de nuestro dominio, de manera que acepte los
correos lara usuario@dominio.cl y los guarde el la cola de correos

    En el caso de sendmail hay que editar el archivo /etc/mail/access
    y agregar el nuevo dominio
    
    dominio.cl        RELAY

   Luego hay que actualizar la base de datos. Con el comando
   
   #makemap hash /etc/mail/access.db < /etc/mail/access
   
   Y reinicir el Servidor de correo
   
   #/etc/rc.d/init.d/sendmail restart
   
      En el servidor linux instalado el la oficina del cliente dominio.cl
  hay que configurar el servidor de correo para que se haga cargo de
  dominio.cl

Esto lo hacemos editando el archivo /etc/sendmail.cw 
agregamos las lineas

dominio.cl
linux.dominio.cl

         Configuracion Sendmail en modo Smart Host
	 
  - En el archivo /etc/sendmail.cf buscamos la línea que dice
  Smart 
  
  # "Smart" relay host (may be null)
  DSmail.isp.cl
  
  De esta manera todo el correo para la internet sera sepachado via SMTP
  al servidor de correo de nuestro proveedor internet. Esto ahorra mucho
  tiempo en enviar directamente el mail al servidor de algun dominio 
  con mala conexion.
  
         Habilitar permisos para que los PC de la intranet puedan usar
    el servidor linux como Servidor de Correo Saliente (SMTP)
    
    Editar el archivo /etc/mail/access
    
    agregar la líneas 
    
192.168.10	RELAY
dominio.cl	RELAY

     -  Actualizar base de datos
     
 #makemap hash /etc/mail/access.db < /etc/mail/access  
  
     -  Reiniciar sendmail
     
     #/etc/rc.d/init.d/sendmail restart
     
    Configurar el Servidor Linux para que traiga el correo
    cada 30 minutos.
    
    - Es necesario configurar el Servidor Gateway Linux para que se 
    conecte automáticamente cada cierto periodo de tiempo y pida el 
    correo pendiente para su dominio.
    
       Para esto utilizaremos el comando ETRN del protocolo ESTMP, 
    para este efecto disponemos del siguiente script en expect:
    
 ------get-mail.ex----------
 
 #!/usr/bin/expect -f 
 spawn telnet mail.isp.cl smtp
 expect -timeout 80 "ESMTP Sendmail"
 sleep 0.5
 send "ehlo linux.dominio.cl\r"
 expect "Hello"
 sleep 0.5
 send "etrn dominio.cl\r"
 expect "Queuing"
 sleep 0.5
 send "etrn DOMINIO.CL\r"
 expect "Queuing"
 sleep 0.5
 send "quit\r"

--------------------------

          Este script pide que se despache inmediatamente la cola
      de correo para dominio.cl via SMTP al linux.
      
      Para ejecutar este comando cada 30 minutos o el tiempo que estimemos
      necesario recurrimos a crontab
      
 ------------crontab-get-mail
 # crontab para recoger correo
 00 * * * * /root/get-mail.ex >>/var/log/get-mail.log
 30 * * * * /root/get-mail.ex >>/var/log/get-mail.log
 ------------
 
 para configurar como cualquier usuario
 
 $crontab crontab-get-mail
 
 
         Servidor de correo entrante POP3 o IMAP
	 
     Debemos verificar que nuestro linux tenga habilitado el 
     servicio pop-3 y el servicio imap, como ya se indico
     debe estar instalado el paquete imap, quer contiene imap y pop3
  
  revisar el archivo /etc/inetd.conf
  debe estar asi:
  --------------
  #pop-2   stream  tcp     nowait  root    /usr/sbin/tcpd ipop2d
  pop-3   stream  tcp     nowait  root    /usr/sbin/tcpd  ipop3d
  imap    stream  tcp     nowait  root    /usr/sbin/tcpd  imapd
  --------------
  
   si modifico el archivo, reiniciat inetd 
   
   #killall -HUP inetd
   
--------------------------------------
        Configuración  Correo en los PCs.
	
    Necesita un programa cliente pop-3 o imap , se recomienda Outlook
    o Eudora.
    
    Servidor de correo entrante (POP3): 198.168.10.1
    Servidor de correo saliente (SMTP): 198.168.10.1
    username: usuario
    
    (no debe estar marcada la opcion de trasferencia segura de correo)
  
         
------------------------------------

               Proxy HTTP con Cache. (Squid)
	       
      el archivo de configuracion es el /etc/squid/squid.conf
      
      Primero configuremos en que puerta escuchara las peticiones
      ------------
      http_port 8080
      -------------
      
      asi configuramos para que ocupe el puerto 8080.
      
      Luego configuramos la cantidad de espacio que ocupara nuestro
      cache, esto depende de cuanto espacio tengamos en disco
      recomendable para una red pequeña como mínimo 500 MB recomendable 1 GB
      -----------
      cache_dir ufs /var/spool/squid 1024 16 256
      ------------
      #1024 = 1024 MB es decir 1 GB


      Restricciones de acceso al cache: debemos permitir el acceso
      desde todas las ips de la intranet, esto lo hacemos creado 
      ACL , o listas de control de acceso.
      
      -------------
      acl intranet src 192.168.10.0/255.255.255.0
      http_access allow intranet
      -------------
      
      reiniciar squid
      
      #/etc/rc.d/init.d/squid restart
      
     Configuracion de PCs Intranet para Navegar a través de Proxy

   Setear navegador para usar proxy http: 192.168.10.1  port:8080
   

       Con esta configuración todos los usuarios podran navegar y 
       enviar correo. Otros protocolos no estan permitidos porque demandan
       demasiado ancho de banda y demasiados minutos de conexion  (napster
       irc , etc)
       
       
   Pablo Idiaquez
   
   hecho para Jornadas Linux U. BioBio 2000.
   
   mfkr@imaginativa.cl
   mfkr@inf.utfsm.cl
   http://www.networksolutions.cl/pablo/