You are on page 1of 9

Instalacin de Servidor Gateway Ubuntu 11.

10

Un saludo a todos y pues como he andado un poco atareado con trabajo y proyectos no haba posteado mucho, pero el da de hoy les dejo un howto para montar un servidor linux como gateway con dhcp para su red!. Esto para que vayan armando su servidor multifuncin y que sea el encargado de la mayor parte de los procesos de su LAN.

El gateway debe contar con dos tarjetas de red, 1 para la red local y otra para la conexin a internet (e1, adsl, cable o algn otro tipo de conexin de alta velocidad).

Pongo como ejemplo el siguiente diagrama en el cual pongo un ejemplo de red.

[widgetkit id=1]

En este diagrama encontramos que una interfaz del server tiene una ip pblica y se publica a internet (WAN). Mientras que la otra interfaz va hacia la red local (LAN), y la interfaz de la LAN cae en un switch sin configuracin, as cuando un equipo haga la peticin de dhcp las tome el servidor y le regrese su ip con su puerta de enlace. Adems vemos que hay un access point en modo puente, el cual al tomar las peticiones de equipos inalmbricos, llegarn al servidor y este mismo tambin les dar ip y su puerta de enlace. Podemos dar diferentes puertas de enlace pero por el momento manejaremos solamente la del servidor linux.

Comencemos con el howto:

Paso 1 - Configurar tus tarjetas de red.


1/9

Instalacin de Servidor Gateway Ubuntu 11.10

En mi caso uso vim, si usas nano o algn otro solo reemplaza el editor por el de tu preferencia:

vi /etc/network/interfaces

Y adaptamos las configuraciones de acuerdo a nuestros segmento de ip y nuestra salida a internet. auto lo iface lo inet loopback #Esta es la interface que ve hacia internet auto eth0 iface eth0 inet static address 220.220.220.2 netmask 255.255.255.240 broadcast 220.220.220.15 gateway 220.220.220.1 auto eth1 #Interface que va hacia la LAN iface eth1 inet static address 10.1.1.254 netmask 255.255.255.0 network 10.1.1.0 broadcast 10.1.1.255 Agregamos los dns's que queremos que nos entreguen los nombres de dominios pblicos en mi caso uso los dns's de opendns y son los que pongo a continuacin.

vi /etc/resolv.conf nameserver 208.67.222.222 nameserver 208.67.220.220

Paso 2 - Instalacin del proxy transparente

2/9

Instalacin de Servidor Gateway Ubuntu 11.10

Ahora instalaremos squid3 que servira como proxy transparente para nuestra red. Si tienen aptitude instalen squid3 con ese comando sino con apt-get. aptitude install squid3 Hacemos una copia del archivo original de la configuracin de squid cp /etc/squid3/squid.conf /etc/squid3/squid.conf.original Y modificamos el archivo de configuracin vi /etc/squid3/squid.conf Ahora borraremos todo el contenido y pegaremos el siguiente cdigo. http_port 3128 transparent acl LAN src 192.168.2.0/24 acl localnet src 127.0.0.1/255.255.255.255 # Limited file download < 250 MB reply_body_max_size 250 MB http_access allow LAN http_access allow localnet # No cache anything no_cache deny all Reiniciamos el servicio /etc/init.d/squid3 restart Ahora abriremos el redireccionamiento a nuestra red para que pueda salir a internet a travs de nuestro servidor. vi /etc/sysctl.conf Y descomentamos la lnea net.ipv4.ip_forward=1

Paso 3 - Creacin de las reglas de ruteo


A continuacin necesitamos crear las reglas de ruteo para que el direccionamiento web de nuestro server a los clientes de la lan trabaje sin ningn problema. Para esto crearemos un

3/9

Instalacin de Servidor Gateway Ubuntu 11.10

archivo en bash para que en lugar de tener que reescribir todas las reglas una por una solo ejecutemos el script y con esto se levanten las reglas de ruteo. vi /usr/local/sbin/firewall.sh Y agregamos las siguientes lneas ############# #!/bin/sh # Ip del Servidor Squid SQUID_SERVER="10.1.1.254" # Interface conectada a internet INTERNET="eth0" # Interface conectada a la lan LAN_IN="eth1" # Puerto de Squid SQUID_PORT="3128" # DO NOT MODIFY BELOW # Limpiamos todo el firewall iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X # Cargamos los mdulos de IPTABLES para NAT e IP conntrack support modprobe ip_conntrack modprobe ip_conntrack_ftp # Para clientes FTP de windows # modprobe ip_nat_ftp # Habilitamos el forwardeo de ip echo 1 > /proc/sys/net/ipv4/ip_forward # Aplicamos las polticas de filtrado por default iptables -P INPUT DROP iptables -P OUTPUT ACCEPT # Permitimos accesos al loop back iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT # Permitimos UDP, DNS y FTP Pasivo iptables -A INPUT -i $INTERNET -m state --state ESTABLISHED,RELATED -j ACCEPT # Declaramos el sistema como router para el resto de la LAN, ms adelante nos ser de mucha ayuda. iptables --table nat --append POSTROUTING --out-interface $INTERNET -j MASQUERADE iptables --append FORWARD --in-interface $LAN_IN -j ACCEPT # acceso ilimitado a la LAN iptables -A INPUT -i $LAN_IN -j ACCEPT

4/9

Instalacin de Servidor Gateway Ubuntu 11.10

iptables -A OUTPUT -o $LAN_IN -j ACCEPT # Pticines de entrada con DNAT del puerto 80 de la LAN al squid 3128 ($SQUID_PORT) aka proxy transparente, es decir, nuestros clientes de la lan se conectarn al proxy sin darse cuenta. iptables -t nat -A PREROUTING -i $LAN_IN -p tcp --dport 80 -j DNAT --to $SQUID_SERVER:$SQUID_PORT # Lo mismo pero a la inversa iptables -t nat -A PREROUTING -i $INTERNET -p tcp --dport 80 -j REDIRECT --to-port $SQUID_PORT iptables -I INPUT -p tcp -m tcp --dport 53 --syn -j ACCEPT iptables -I INPUT -p tcp -m tcp --dport 82 --syn -j ACCEPT # Empezamos con el bloqueo de puerto, en este caso es BitTorrent iptables -I FORWARD -m string --algo bm --string "BitTorrent" -j DROP iptables -I FORWARD -m string --algo bm --string "BitTorrent protocol" -j DROP iptables -I FORWARD -m string --algo bm --string "peer_id=" -j DROP iptables -I FORWARD -m string --algo bm --string ".torrent" -j DROP iptables -I FORWARD -m string --algo bm --string "announce.php?passkey=" -j DROP iptables -I FORWARD -m string --algo bm --string "torrent" -j DROP iptables -I FORWARD -m string --algo bm --string "announce" -j DROP #Ms bloqueos de bitTorrent, virus red code y otras cosillas. iptables -I FORWARD -m string --algo bm --string "tracker." -j DROP iptables -I FORWARD -m string --algo bm --string "info_hash" -j DROP iptables -I FORWARD -m string --algo bm --string "/default.ida?" -j DROP #codered virus iptables -I FORWARD -m string --algo bm --string ".exe?/c+dir" -j DROP #nimda virus iptables -I FORWARD -m string --algo bm --string ".exe?/c_tftp" -j DROP #nimda virus # Tambin bloquemos las llaves bittorrent iptables -I FORWARD -m string --string "peer_id" --algo kmp --to 65535 -j DROP iptables -I FORWARD -m string --string "BitTorrent" --algo kmp --to 65535 -j DROP iptables -I FORWARD -m string --string "BitTorrent protocol" --algo kmp --to 65535 -j DROP iptables -I FORWARD -m string --string "bittorrent-announce" --algo kmp --to 65535 -j DROP iptables -I FORWARD -m string --string "announce.php?passkey=" --algo kmp --to 65535 -j DROP # Bloqueamos las palabras DHT para evitar que algn cliente o aplicacin busque conexiones externas como puede ser ares, o bitTorrent iptables -I FORWARD -m string --string "info_hash" --algo kmp --to 65535 -j DROP iptables -I FORWARD -m string --string "get_peers" --algo kmp --to 65535 -j DROP iptables -I FORWARD -m string --string "announce" --algo kmp --to 65535 -j DROP iptables -I FORWARD -m string --string "announce_peers" --algo kmp --to 65535 -j DROP #Mas bloqueos iptables -I INPUT -s 0.0.0.0/0 -m string --string "info_hash" --algo bm -j DROP

5/9

Instalacin de Servidor Gateway Ubuntu 11.10

iptables -I INPUT -s 0.0.0.0/0 -m string --string "announce" --algo bm -j DROP iptables -I INPUT -s 0.0.0.0/0 -m string --string "torrent" --algo bm -j DROP iptables -I INPUT -s 0.0.0.0/0 -m string --string "sumotracker" --algo bm -j DROP #mandamos los logs iptables -A INPUT -j LOG --log-level info --log-prefix "INPUT " iptables -A OUTPUT -j LOG --log-level info --log-prefix "OUTPUT " iptables -A FORWARD -j LOG --log-level info --log-prefix "FORWARD " #Denegamos todo lo que no esta dentro de las reglas y empezamos a generar logs # DROP everything and Log it iptables -A INPUT -j LOG iptables -A INPUT -j DROP

Ejecutamos el firewall sh firewall.sh Realizamos pruebas con un cliente externo apuntando su navegador a la ip del gw linux y nos tiene que permitir visualizar paginas web a travs de la direccin web 10.1.2.254 con puerto 3128.

Ya que estemos seguros que si nos permite salir a travs del proxy, le cambiamos los permisos al archivo firewall.sh chmode +x firewall.sh Y lo damos de alta en rc.local vi /etc/rc.local Ponemos la siguiente lnea antes de "exit 0": /ruta_donde_guardamos/firewall.sh Ahora si podemos reiniciar el server para que levante automaticamente como firewall aptitude install dhcp3-server

Paso 5 - Instalamos el servidor dhcp

Habilitamos el servicio solo en una interface.

6/9

Instalacin de Servidor Gateway Ubuntu 11.10

vi /etc/default/isc-dhcp-server Y ponemos la interface en la que queremos que se encuentre habilitado el dhcp INTERFACES="eth1" Creamos una copia del archivo original de configuracin del dhcp. cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.original Y editamos el original vi /etc/dhcpd/dhcpd.conf y agregamos lo siguiente modificandolo de acuerdo a nuestra red # DHCP server is authoritative for all networks authoritative; # extra options # RFC3442 routes option rfc3442-classless-static-routes code 121 = array of integer 8; # MS routes option ms-classless-static-routes code 249 = array of integer 8; pid-file-name "/var/run/dhcp-server/dhcpd.pid"; ddns-update-style none; #Aqu declaramos nuevamente nuestros dns's pblicos option domain-name-servers 208.67.220.220, 208.67.222.222; default-lease-time 1800; max-lease-time 7200; #Declaramos nuestra red y la interface que escuchara en la LAN shared-network eth1 { subnet 10.1.1.0 netmask 255.255.255.0 { option routers 10.1.1.254; #Le damos un nombre a la red option domain-name "mynet"; option domain-name-servers 208.67.220.220, 208.67.222.222; default-lease-time 1800; max-lease-time 7200; } #Generamos un grupo esto nos servir ms adelante para segmentar la red en diferentes pool de direcciones por reas o por equipos. group { option routers 10.1.1.254; #Le damos un nombre a nuestra red, el cual se mostrar en nuestra interfase a que dominio lo

7/9

Instalacin de Servidor Gateway Ubuntu 11.10

estamos asignando. option domain-name "IT"; option domain-name-servers 208.67.220.220, 208.67.222.222; default-lease-time 1800; max-lease-time 7200; host cpu-tuxero { hardware ethernet 00:0c:29:46:9c:33; fixed-address 10.1.1.113; } } }

Listo ya tenemos nuestro servidor dhcp, ahora reiniciamos el servicio y veremos que el servidor dhcp nos entrega la ip que declaramos en el host cpu-tuxero. /etc/init.d/etc/init.d/isc-dhcp-server restart Y listo tenemos ya listo nuestro Gateway con dhcp y proxy transparente con ubuntu.

Importante:

El servidor dhcp solo dar ip a las mac address registradas en el archivo de configuracin. Si no deseamos abrir el dhcp debemos sustituir el contenido del archivo de configuracin del dhcp por el siguiente. ddns-update-style none; log-facility local7; subnet 10.1.1.0 netmask 255.255.255.0 { range 10.1.1.100 10.1.1.200; option domain-name-servers 208.67.220.220, 208.67.222.222; option routers 10.1.1.254; option broadcast-address 10.1.1.255; default-lease-time 600; max-lease-time 7200; }

8/9

Instalacin de Servidor Gateway Ubuntu 11.10

Con esto cualquier equipo obtendr ip del segmento de la 100 a la 200 dentro de la red 10.1.1.0

Espero les sirva este pequeo aporte y seguir publicando ms howtos.

Saludos

9/9

You might also like