CONECTANDO UNA OFICINA A INTERNET Pablo Allietti pablo@allietti.com Este es un documento explicativo de como conectar una empresa de pequenio porte o un hogar a internet con 1 sola coneccion. Tomaremos en cuenta que la coneccion es ADSL/DSL cualquiera de las 2 son conecciones de 24 Horas con ip dinamicas o fijas. Para hacerlo un poco mas sencillo tomaremos primero la coneccion de 24 horas con IP fija para la cual tendremos que dar unos pocos lineamientos y unos pocos scripts para que nuestra empresa quede conectada. 1.- Instalacion de serividor Linux La instalacion del servidor linux ya no es una ciencia solo para entendidos y gurus del tema como pasaba anios atras. Muchas de las empresas que crean las distribuciones han invertido mucho tiempo en hacer la instalacion de este sistema operativo en una opcion facil y automagica. No vamos a entrar en las guerras santas que siempre suceden de cual o tal distribucion es mejor y porque, simplemente tomaremos Fedora para hacer la instalacion la cual no cambiara en casi nada con las otras distribuciones de linux 2.- Hardware para server Tener en cuenta siempre un server de mediano porte, ya que todas las computadoras pasaran el tafico de internet por esta maquina y lo que mas necesita para esto es una buena tarjeta de red y bastante memoria. Por ejemplo lo que se recomienda para 15 Maquinas con Win conectadas a traves de nuestro server es 512 de Ram. Con esta ram el server es capaz de atender las solicitudes sin ningun inconveniente pero personalmente prefiero tener 1 Gb que en estas epocas no es caro expendirlo Con el tema de procesadores AMD/INTEL/CELERON etc etc etc cualquiera de estas opciones es buena y valida lo recomendable minimo es de 1Ghz 3.- IP Fija/Dynamica La coneccion a adsl es muy simple, fedora tra por defecto unos scripts que hace la coneccion mas placentera solo tendremos que ejecutar en consola adsl-setup para darle los lineamientos de nuestro proveedor es decir usuario y password luego adsl-connect & y listo nuestro server esta conectado a internet 4.- Ahora lo que debemos hacer es crear una red dentro de la cual estaran las maquinas windows como tambien el server y asi poder conectarnos. Tomaremos la red 192.168.1.x/255.255.255.0 ya que es una red privada no routeable dentro de Internet. Para crear esta red tendremos que hacer lo siguiente en modo grafico cargar en una ventana de terminal NEAT o sino en modo consola netconfig o sino como la vieja escuela nos ensenio a muchos de nosotros ifconfig eth0 192.168.1.1 ifconfig eth0 up route add default gw 192.168.1.1 Intenten siempre que la direccion de nuestro server sea la primera de la red en este caso 192.168.1.1 los dns van a ser los de antel y el default Gateway sera el mismo 192.168.1.1 Ahora ya tenemos nuestra interface de red configurada y funcionando como un paso complementario le agregaremos un servicio a nuestro server que se llama DHCP (Dynamic Host Configuration Protocol) Este servicio le proveera a las computadoras windows una direccion IP dentro de la red 192.168.1.0 automaticamente Lo mas seguro que el DHCP server este instalado en nuestra maquina de todas formas si no lo esta podemos bajarlo e instalarlo facilmente de http://www.rpmfind.net Luego de instalarlo (rpm -ivh dhcpd-xxxxx) debemos ir a /etc/ y editar el archivo llamado dhcpd.conf si no lo encontramos tendremos que crearlo y postear las siguientes lineas en el. Aclaro estas son solo directivas sensillas para un funcionamiento basico. ignore client-updates; ddns-update-style interim; log-facility local7; subnet 192.168.1.0 netmask 255.255.255.0 { option routers 192.168.1.1; option subnet-mask 255.255.255.0; option domain-name "localhost"; option domain-name-servers 200.40.30.245, 200.40.220.245; option time-offset -03000; default-lease-time 600; max-lease-time 7200; range 192.168.1.2 192.168.1.195; allow unknown-clients; authoritative; } grabamos el archivo y digitamos /etc/init.d/dhcpd restart Con estas directivas las computadoras windows ya deberian tomar las configuraciones automaticamente y asi poder hacer ping a 192.168.1.1 Una de las partes mas importantes es la que viene donde diremos que hacer con las conecciones y como tratarlas, para lo cual usaremos IPTABLES Muchos de los tecnicos que nos dedicamos a esto preferimos usar todo OUT of SYSTEM para que en un futuro pueda ser migrado como por ejemplo IPTABLES. Que es OUT of SYSTEM, todo lo que nosotros creemos lo hacemos sin tener una relacion directa con el sistema operativo que estamos utilizando en ese momento, por lo cual haremos lo mismo con iptables, la diferencia se encuentra en que enves de utilizar el archivo /etc/sysconfig/iptables que es lo que corresponde para hacerlo como fedora manda. Lo haremos en un script BASH para que el dia de maniana si cambiamos de distro podremos migrar nuestro firewall sin ningun inconveniente. FIREWALL/NAT Para poder hacerlo tendremos que crear un archivo con por ejemplo gedit y vamos a hacerlo de la siguiente manera paso a paso pablo@pablo.org.uy# gedit /etc/init.d/firewall.sh dentro del archivo ingresaremos las siguientes instrucciones #!/bin/bash # set up firewall case "$1" in start) echo "Starting firewall" iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P POSTROUTING ACCEPT -t nat iptables -P PREROUTING ACCEPT -t nat iptables -P OUTPUT ACCEPT -t nat modprobe iptable_nat modprobe ip_nat_ftp modprobe ip_conntrack_ftp echo 1 > /proc/sys/net/ipv4/ip_forward iptables -A FORWARD -j ACCEPT -i eth0 -o eth0 -d 0/0 iptables -A FORWARD -j ACCEPT -i ppp0 -o eth0 -d 0/0 iptables -A FORWARD -j ACCEPT -i eth0 -o ppp0 -d 0/0 iptables -A FORWARD -j ACCEPT -i eth0 -o ppp0 -d 0/0 iptables -A FORWARD -p icmp --icmp-type echo-request -j DROP iptables -A OUTPUT -j ACCEPT -s 200.0.0.0/255.0.0.0 -d 0/0 iptables -A OUTPUT -j ACCEPT -s 192.168.1.0/255.255.255.0 -d 0/0 iptables -A POSTROUTING -t nat -o ppp0 -j MASQUERADE iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -i eth0 -j ACCEPT iptables -A INPUT -i ppp0 -j ACCEPT iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 995 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 25 --syn -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 80 --syn -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 143 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 1348 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 4662 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 123 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 953 -j ACCEPT iptables -A INPUT -p tcp --dport 53 -j ACCEPT iptables -A INPUT -p udp --dport 53 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 110 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 143 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT iptables -N dropwall iptables -A dropwall -j DROP iptables -A INPUT -j dropwall ;; stop) echo "Removing firewall" iptables -F iptables -Z iptables -P OUTPUT ACCEPT iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P dropwall ACCEPT ;; *) echo "$0 {start|stop}" ;; esac Grabamos el archivo y aplicamos permisos pablo@pablo.org.uy#chmod 755 /etc/init.d/firewall.sh ahora el firewall y nat ya estan listos para ejecutarse y poder hacer las coneccciones de las maquinas windows a internet. Para ejecutarlo manualmente /etc/init.d/firewall.sh start Despues de esto probamos si las maquinas Windows navegan. Para poder hacerlo que lo ejecute automaticamente lo que hacemos es agregarlo al final del archivo que se encuentra /etc/rc.local le agregamos la linea /etc/init.d/firewall.sh start & NOTA: Firewall puede tener algunas lineas de mas ya que fue copiado de un servidor de investigacion si encuentra que tiene alguna linea de mas borrela por favor. Cualquier comentario pablo@lacnic.net