Autor: Juan (Iucki)
Fecha de creaci�n: 13 de julio de 2002
Lo que voy a contaros es como dar varias IP's a una misma tarjeta de red y como hacer que estas IP's apunten a ordenadores con otras IP's. �Y esto para que sirve?,Pues bien, esto sirve para tener varios ordenadores con IP's publicas y formando parte de Internet teniendo solo uno de estos 4 conectados a internet
B�sicamente tenemos un ordenador con dos tarjetas de Red ,una conectada a Internet (rl0 80.32.152.1) y otra conectada a un Switch (rl1 192.168.0.1)en el que hay otras 3 makinas
Entonces, la Idea consiste en darle 4 ips a rl0 y hacer que 3 de estas 4 apunten a las 3 makinas de la intranet de modo q si diji�semos:
http://80.32.152.2 llegar�amos a http://192.168.0.2
http://80.32.152.3 llegar�amos a http://192.168.0.3
http://80.32.152.4 llegar�amos a http://192.168.0.4
Este punto lo ten�is muy bien explicado en un articulo escrito por koji que se llama Nat en FreeBSD, as� que los que no os entere�s de lo que intento trasmitiros perdonadme y echarle un vistazo a ese documento que es bastante claro.
# cd /usr/src/sys/i386/conf # cp GENERIC YUKI (voy a llamar YUKI a nuestro nuevo kernel) # ee YUKI (lo editamos)
A�ade las siguientes lineas:
options IPFIREWALL options IPFIREWALL_VERBOSE options IPFIREWALL_VERBOSE_LIMIT=# //donde # es un numero (ver abajo explicacion) options IPDIVERT options DUMMYNET
Guardamos y salimos
# config -r YUKI # make depend # cd ../../compile/YUKI # make depend;make;make install
Ya tenemos nuestro nuevo kernel recompilado con sus nuevas opciones.
gateway_enable="YES" hostname="NOMBRE DE LA MAKINA" ifconfig_rl0="inet IPPUBLICA1 netmask MASCARAPUBICA" ifconfig_rl1="inet IPPRIVADA1 netmask MASCARAPRIVADA" natd_program="/sbin/natd" natd_enable="YES" natd_interface="rl0" #elegimos la tarjeta conectada a internet firewall_enable="YES" firewall_type="/etc/firewall.rules" firewall_script= "/etc/rc.firewall"
Las opciones que hemos a�adido significan: options IPFIREWALL en el kernel hemos dejado el Firewall con todo cerrado, as� que en nuestro archivo /etc/firewall.rules nos dedicaremos a abrir todo un poco. IPFIREWALL_VERBOSE nos permite loguear el trafico con ipfw imprimiendo la actividad de los paquetes dentro de syslogd, esto es para todas las reglas que lleven la palabra "log". IPFIREWALL_VERBOSE_LIMIT=# nos sirve para especificar el numero de veces que queremos que ipfw loguee a syslogd los paquetes de una determinada regla.
editamos: /etc/firewall.rules
-f flush add divert natd all from any to any via rl0 (ponemos la tarjeta conectada a internet) add allow ip from any to any add deny log ip from me to any in add deny log tcp from any to any in tcpflags syn,fin add check-state add allow tcp from any to any out keep-state add allow icmp from any to any icmptype 3 add allow icmp from any to any icmptype 4 add allow icmp from any to any icmptype 11 add deny icmp from 192.168.0.1/8 to any icmptype 0 #donde 192.168.0.0 es nuestra red interna add allow tcp from any to any 113 keep-state setup
add pass all from any to any
En la segunda linea con la opci�n de divert natd hacemos que las makinas conectadas a Nuestra M�quina puedan salir a internet a trav�s de rl0 (la tarjeta conectada a internet)
Bien, si ahora reiniciamos tendremos la posibilidad de salir a internet con las makinas que hay detr�s de 192.168.0.1. Ahora os voy a contar que hacer para asignar 3 ips Publicas mas a rl0 y linkearlas con las 3 ips privadas de esas 3 makinas.
Primero metemos en rc.conf las l�neas que dan las nuevas ips Publicas a rl0 y despu�s vamos a crear una referencia al archivo en el que guardaremos nuestras opciones de Natd.
ifconfig_rl0_alias0="inet IPPUBLICA2 netmask MASCARAPUBLICA" ifconfig_rl0_alias1="inet IPPUBLICA3 netmask MASCARAPUBLICA" ifconfig_rl0_alias2="inet IPPUBLICA4 netmask MASCARAPUBLICA" natd_flags="-config /etc/rc.natd -same_ports -log -use_sockets -dynamic" router_flags="-q" router="routed" router_enable="YES"
Y ahora creamos nuestro archivo /etc/rc.natd en el que meteremos las opciones de nat.
redirect_address IPPRIVADA1 IPPUBLICA1 redirect_address IPPRIVADA2 IPPUBLICA2 redirect_address IPPRIVADA3 IPPUBLICA3
Bueno, esta es una opci�n, que a m� no es la que m�s me gusta, yo prefiero solo dirigir esos puertos a los que quiero que la gente desde internet pueda llegar, Por ejemplo, si tuvi�semos abiertos un smtp, un ftp, un pop, un apache y adem�s Puertos pasivos para el ftp desde el 49152 hasta el 655345 yo haria:
redirect_port tcp 192.168.0.2:21 80.32.152.18:21 redirect_port tcp 192.168.0.2:25 80.32.152.18:25 redirect_port tcp 192.168.0.2:80 80.32.152.18:80 redirect_port tcp 192.168.0.2:110 80.32.152.18:110 redirect_port tcp 192.168.0.2:49152-65534 80.32.152.18:49152-65524
Yo personalmente creo que en a lo que seguridad se refiere ipfw no es la mejor de las opciones por eso en mi m�kina he optado por no darle muchas vueltas al ipfw y dejar las reglas que puse ah� arriba (que algo si que hacen) e instalar Snort + Acid. Si Dios quiere, y consigo entenderlo bien todo, escribir� un cap�tulo sobre instalaci�n y configuraci�n de estas dos herramientas.
Para controlar el ancho de banda que se le da a la gente que sale de nuestro servidor una alternativa es usar ipfw. Para ello usaremos PIPES, lo que hacemos es meter un grupo de conexiones que queremos limitar dentro de un pipe y despu�s le damos el ancho de banda a ese pipe. EJEMPLO (dentro de /etc/firewall.rules):
add pipe 1 ip from 192.168.0.2/4 to any out add pipe 2 ip from any to 192.168.0.2/4 out pipe 1 config bw 10Kbit/s queue 5Kbytes pipe 2 config bw 20Kbit/s queue 7Kbytes
En este ejemplo vemos como hemos creado dos PIPES y a cada uno le damos un ancho de banda, cuando el servidor disponga de mas ancho de banda del que reparte pasar� a repartir ese ancho de Banda + el queue , en el Pipe1 ser�a 10kb + 5kb = 15kb y en el Pipe2 ser�a 20kb + 7kb = 27kb , el queue lo usara cuando disponga de tanto ancho de banda
Bien,eso es un ejemplo simple, pero se pueden hacer muchisimas cosas en este sentido,para los que os interese esto de verdad podeis ir a esta web (gracias a kING_z q tras darle mucho la brasa me la dio :D ) -> http://info.iet.unipi.it/~luigi/ip_dummynet/
Y ya poco mas voy a escribir, perdonadme por el desorden cuando tenga tiempo lo ir� modificando, asi que paciencia, vale?, podeis mandarme todo tipo de sugerencias y correcciones a ,muchas gracias por leerme y si no entendeis algo ya sabeis escribid a la lista o preguntad en el canal y seguro q ya hay alguien que os mande a www.google.com asi q no seais vagos y primero buscad un poco :P.