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/