Si su red privada contiene información vital, piénselo dos veces antes de usar IP Masquerade. Esto puede ser una PASARELA para que salga a Internet, y viceversa, para que alguien de la otra parte del mundo entre en su red.
** Por favor dirijase a IP Masquerade Resource para una información mas actualizada, es difícil actualizar este COMO frecuentemente. **
/usr/src/
con el comando:
tar xvzf linux-2.0.x.tar.gz -C /usr/src
, donde x es el nivel del parche
sobre el 2.0linux
)
Diga SI a lo siguiente,
* Prompt for development and/or incomplete code/drivers
CONFIG_EXPERIMENTAL
- esto permite seleccionar el código experimental ip_masq compilado
en el nucleo
* Enable loadable module support
CONFIG_MODULES
- le permite cargar modulos
* Networking support
CONFIG_NET
* Network firewalls
CONFIG_FIREWALL
* TCP/IP networking
CONFIG_INET
* IP: forwarding/gatewaying
CONFIG_IP_FORWARD
* IP: firewalling
CONFIG_IP_FIREWALL
* IP: masquerading (EXPERIMENTAL)
CONFIG_IP_MASQUERADE
- aunque es experimental, es *INDISPENSABLE*
* IP: ipautofw masquerade support (EXPERIMENTAL) [SOLO nucleos 2.0.30 y superiores]
CONFIG_IP_MASQUERADE_IPAUTOFW
- recomendado
* IP: ICMP masquerading [SOLO nucleos 2.0.30 y superiores]
CONFIG_IP_MASQUERADE_ICMP
- soporte para enmascarar paquetes ICMP, opcional.
* IP: always defragment
CONFIG_IP_ALWAYS_DEFRAG
- altamente recomendado
* Dummy net driver support
CONFIG_DUMMY
- recomendado
Estos son los componentes que necesita para ip_masq, seleccione cualquiera otra opción que necesite para su configuración específica.
make modules; make modules_install
/etc/rc.d/
rc.local
(o a otro que crea apropiado) para cargar los módulos requeridos,
que residen en /lib/modules/2.0.x/ipv4/
, automáticamente durante el
arranque :
.
.
.
/sbin/depmod -a
/sbin/modprobe ip_masq_ftp
/sbin/modprobe ip_masq_raudio
/sbin/modprobe ip_masq_irc
(y otros modulos como ip_masq_cuseeme, ip_masq_vdolive
si ha aplicado parches)
.
.
.
Tambien puede cargar los módulos manualmente antes de usar ip_masq, pero no use kerneld para esto, NO funcionará.
Como todas las OTRAS máquinas no tienen dirección oficial asignada, debe haber una forma correcta de adjudicar direcciones para esas máquinas.
De la FAQ IP Masquerade :
Hay un RFC (#1597) en el cúal están las direciones IP para ser usadas en una red no conectada a Internet. Hay 3 bloques de números reservados específicamente para este fin. El que yo uso es una subred de clase C 255 desde 192.168.1.n hasta 192.168.255.n .
Del RCF 1597:
Sección 3: Espacio para Direcciones Privadas
El Internet Assigned Numbers Authority (IANA) tiene reservado los
siguientes 3 bloques de direcciones IP para redes privadas:
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255
Nos referiremos al primer bloque como "bloque de 24-bit", al segundo como
"bloque de 20-bit", y al tercero como "bloque de 16-bit". Observe que el
primer bloque no es más que un simple número de red de clase A, mientras que
el segundo bloque es un conjunto de 16 números de red de clase B contiguos y
el tercer bloque un conjunto de 255 números de red de clase C contiguos.
Así, si está usando una red de clase C, debería de nombrar a sus máquinas
como 192.168.1.1, 1.92.168.1.2, 1.92.168.1.3, ..., 192.168.1.x
192.168.1.1 es normalmente la máquina pasarela, la cúal es su servidor Linux conectado a Internet. Observe que 192.168.1.0 y 192.168.1.255 son las direcciones de RED(Network) y la dirección de EMISIÓN(Broadcast) respectivamente, las cuales estan reservadas. Evite usar estas direcciones en sus máquinas.
Además de poner la dirección IP apropiada a las máquinas, también debería de poner la apropiada de la pasarela(gateway). En general, es seguir el camino. Simplemente introduzca la direción de su servidor Linux (usualmente 192.168.1.1) como la dirección de la máquina pasarela.
Para el Domain Name Service, puede añadir algún DNS disponible. El más obvio debería de ser el que su máquina Linux esté usando. También puede añadir opcionalmente algún sufijo de dominio de búsqueda.
Después de que haya reconfigurado esas direcciones, recuerde reiniciar los servicios apropiados o reiniciar su sistema.
Las siguientes instrucciones de configuración suponen que está usando una red de clase C con 192.168.1.1 como dirección de su servidor Linux. Por favor, observe que 192.168.1.0 y 192.168.1.255 están reservadas.
/etc/resolv.conf
).
Opcionalmente, puede añadir el apropiado sufijo de búsqueda de dominio.
Ping
a la máquina Linux para comprobar la red: 'Inicio/Ejecutar'
, teclee : ping 192.168.1.1
ping
a
la otra parte del mundo.)
HOSTS
en el directorio de windows
así puede usar los nombres de las máquinas de su red local. Hay un ejemplo llamado
HOSTS.SAM
en el directorio c:\windows.
Ping
a la máquina Linux para comprobar la conexión de red :
'Archivo/Ejecutar', ponga: ping 192.168.1.1
ping
al resto del mundo.)
[1]Novell NE2000 Adapter
. Luego ponga la Dirección IP
192.168.1.x (1 < x < 255), como Mascara de Subred 255.255.255.0 y como
Pasarela 192.168.1.1
Ping
a la máquina Linux para comprobar la conexión de red:
'File/Run', ponga: ping 192.168.1.1
ping
al mundo exterior.)
/etc/sysconfig/network-scripts/
ifcfg-eth0
en sistemas Red Hat Linux, o simplemente hacerlo mediante el
Control Panel. /etc/resolv.conf
/etc/networks
dependiendo de
sus configuraciones.
ping
comando: ping 192.168.1.1
para comprobar la
conexión con la máquina pasarela.ping
al mundo exterior.)
nwpd 0x60 10 0x300
, con su tarjeta de red en el IRQ 10 y la dirección hardware
en 0x300 (Su configuración puede ser distinta).
pkunzip tel2308b.zip
config.tel
myip=192.168.1.x
(1 < x < 255), y netmask=255.255.255.0
hardware=packet, interrupt=10, ioaddr=60
name=default
host=Nombre_del_servidor_Linux
hostip=192.168.1.1
gateway=1
name=dns.domain.com ; hostip=123.123.123.123; nameserver=1
Nota: sustituya la información sobre el DNS por la que usa en su servidor Linux
config.tel
telnet 192.168.1.1
Hosts
en System Folder y así puede
usar los nombres de las máquinas de su red local. Este fichero puede ya existir o no
en la System Folder. Si es así, debería de contener alguna entrada (como
comentario) de ejemplo, la cual puede modificar dependiendo de sus necesidades.
Si no, puede obtener una copia del fichero de un sistema que use MacTCP,
o crearlo vd. mismo (sigue un subconjunto del formato de ficheros
de Unix /etc/hosts
, descrito en la pagina 33 de RFC 1035).
Una vez ha creado el fichero, abra el TCP/IP control panel,
pulse el botón 'Select Hosts File...', y abra el archivo Hosts
.
edite c:\nwclient\startnet.bat: (aquí tiene una copia del mío)
SET NWLANGUAGE=ENGLISH LH LSL.COM LH KTC2000.COM LH IPXODI.COM LH tcpip LH VLM.EXE F:
edite c:\nwclient\net.cfg: (cambie el enlace del controlador por el suyo; por ejemplo : NE2000)
Link Driver KTC2000 Protocol IPX 0 ETHERNET_802.3 Frame ETHERNET_802.3 Frame Ethernet_II FRAME Ethernet_802.2 NetWare DOS Requester FIRST NETWORK DRIVE = F USE DEFAULTS = OFF VLM = CONN.VLM VLM = IPXNCP.VLM VLM = TRAN.VLM VLM = SECURITY.VLM VLM = NDS.VLM VLM = BIND.VLM VLM = NWP.VLM VLM = FIO.VLM VLM = GENERAL.VLM VLM = REDIR.VLM VLM = PRINT.VLM VLM = NETX.VLM Link Support Buffers 8 1500 MemPool 4096 Protocol TCPIP PATH SCRIPT C:\NET\SCRIPT PATH PROFILE C:\NET\PROFILE PATH LWP_CFG C:\NET\HSTACC PATH TCP_CFG C:\NET\TCP ip_address xxx.xxx.xxx.xxx ip_router xxx.xxx.xxx.xxx
c:\bin\resolv.cfg:
SEARCH DNS HOSTS SEQUENTIAL NAMESERVER 207.103.0.2 NAMESERVER 207.103.11.9
'ping 192.168.1.1'
en una 'Ventana de comandos de OS/2'. Cuando los
paquetes ping sean recibidos es que todo está bien.Se deberían de seguir los mismos pasos para otras configuraciones. Lea las secciones anteriores. Si está interesado en escribir sobre alguno de estos sistemas, o algunas variantes de sistemas basados en UNIX, por favor mande las instrucciones detalladas de configuración a ambrose@writeme.com.
Llegados a este punto ya debería de tener instalados el núcleo y los otros paquetes requeridos, así como los módulos cargados. También, la dirección IP, la pasarela, y el DNS deberían de estar configurados en todas las OTRAS máquinas.
Ahora, la única cosa que queda por hacer es usar ipfwadm para enviar los paquetes apropiados a la máquina apropiada:
** Esto puede ser de realizado de diferentes formas . Las siguientes sugerencias y ejemplos a mi me funcionan, pero usted puede tener diferentes ideas, por favor mire la sección 4.4 y las páginas man de ipfwadm para más detalles. **
ipfwadm -F -p deny
ipfwadm -F -a m -S yyy.yyy.yyy.yyy/x -D 0.0.0.0/0
donde x es uno de los siguientes números dependiendo del tipo de su subred,
e yyy.yyy.yyy.yyy es su dirección de red.
máscara de red | x | Subred
~~~~~~~~~~~~~~~~|~~~~|~~~~~~~~~~~~~~~
255.0.0.0 | 8 | Clase A
255.255.0.0 | 16 | Clase B
255.255.255.0 | 24 | Clase C
255.255.255.255 | 32 | Punto-a-punto
Por ejemplo, si estuviera en una subred de clase C , tendría que haber puesto:
ipfwadm -F -p deny
ipfwadm -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0
Al segundo comando podría añadir bien -V 192.168.1.1
o bien -W eth0
para asegurar que los paquetes enmascarados vienen a
través
del interfaz del sistema apropiado. Si quiere estar seguro a conciencia
(también conocido como paranoia justificable) entonces querrá hacer esto.
Puesto que bootp solicita paquetes que vienen sin una dirección IP válida el cliente no sabe nada sobre ello, para gente con un servidor bootp en la máquina masquerade/cortafuegos es necesario usar lo siguiente antes del comando deny:
ipfwadm -I -a accept -S 0/0 68 -D 0/0 67 -W bootp_clients_net_if_name -P udp
También puede hacerlo máquina por máquina. Por ejemplo, si quieres que la 192.168.1.2 y la 192.168.1.8 tengan acceso a Internet, pero no las otras máquinas, debería de poner:
ipfwadm -F -p deny
ipfwadm -F -a m -S 192.168.1.2/32 -D 0.0.0.0/0
ipfwadm -F -a m -S 192.168.1.8/32 -D 0.0.0.0/0
Alternativamente, puede poner la máscara de red en lugar del valor, por ejemplo: 192.168.1.0/255.255.255.0
Lo que parece ser un ERROR común es poner como primer comando :
ipfwadm -F -p masqueradeNO haga que su política por defecto sea masquerading - de esta forma alguien puede manipular su ruta y será capaz de atraves su pasarela, ¡¡ usándola para enmascarar su identidad !!
De nuevo, puede añadir estas líneas al fichero /etc/rc.local
, o
al fichero rc que prefiera, o hágalo manualmente cada vez que necesite ip_masq.
Por favor lea la sección 4.4 para una guía detallada de Ipfwadm
Es la hora hacer un intento, después de todo este duro trabajo. Asegúrese de que la conexión a Internet del servidor Linux está bien.
Puede intentar navegar por algun sitio web de 'INTERNET!!!' en sus OTRAS máquinas, y ver si lo consigue. En su primer intento le recomiendo usar una dirección IP en vez de un nombre de máquina, porque la configuración del DNS puede no ser correcta.
Por ejemplo, puede acceder al servidor Linux Documentation Project http://sunsite.unc.edu/mdw/linux.html con un valor de http://152.2.254.81/mdw/linux.html
Si ve la pagina del LDP, ¡ felicidades !, ¡ funciona ! Luego puede intentarlo con el nombre del servidor, y luego un telnet, ftp, Real Audio, True Speech, ... o todo aquello soportado por IP Masquerade.....
Hasta ahora no he tenido problemas con las configuraciones anteriores, y están totalmente acreditadas por la gente que gasta su tiempo en hacer que esta maravillosa característica funcione.