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 otra parte del mundo entre en su red.
Por favor, diríjase a
http://ipmasq.home.ml.org/
para información más actualizada,
es difícil actualizar este COMO frecuentemente.
2.0.0
o superior).
http://www.insflug.org
.
/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 núcleo 2.0.x
(asegúrese
de que hay un directorio o un enlace simbólico llamado linux
).
IP Masquerade Resources
para información más actualizada.
README
de los fuentes
del núcleo para más instrucciones sobre la compilación.
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 núcleo.
* Enable loadable module support
CONFIG_MODULES
le permitirá cargar módulos.
* 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 cualquier otra opción que necesite para su configuración
específica.
make modules; make modules_install
/etc/rc.d/rc.local
(o en el 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
(u otros módulos como ip_masq_cuseeme
, o ip_masq_vdolive
si ha
aplicado parches)
También 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 cual están las direcciones 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 RFC 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 cual 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 están reservadas. Evite usar estas direcciones en sus máquinas.
Además de asignar una dirección IP apropiada a las máquinas, también debería de poner la apropiada de la pasarela (gateway). En general, esto es coser y cantar. Simplemente introduzca la dirección de su servidor Linux (usualmente 192.168.1.1) como la dirección de la máquina pasarela.
Como Servidor de Nombres, puede añadir algún DNS disponible. El más obvio debería ser el que esté usando su máquina Linux. 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, tenga en cuenta 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
.
(Esto sólo comprueba la conexión local, todavía no puede hacer ping
al exterior.)
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
(Con esto sólo comprueba la conexión de la red local, todavía no puede
hacer un ping
al resto del mundo.)
[1]Novell NE2000 Adapter
. Luego
ponga la Dirección IP 192.168.1.x (1 < x < 255), como Máscara 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:
('Inicio/Ejecutar'), ponga: ping 192.168.1.1
.
(Esto sólo comprueba la conexión de la red local, todavía no puede hacer
un ping
al mundo exterior.)
/etc/sysconfig/network-scripts/ifcfg-eth0
en sistemas Red Hat
Linux, o simplemente hacerlo mediante el Control Panel.
(Es diferente en SunOS, BSDi, Linux Slackware, etc...)
/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.
(Esto sólo comprueba la conexión de la red local, todavía no puede hacer
un 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.dominio.com ; hostip=123.123.123.123; nameserver=1
Nota: sustituya la información sobre el DNS por la que use en su servidor
Linux.
config.tel
telnet 192.168.1.1
Hosts
en su System
Folder de forma que pueda usar los nombres de la máquinas de su red
local. Este archivo podría existir ya en su System Folder, y podría
contener algunas entradas de ejemplo (comentadas) que puede modificar de
acuerdo a sus necesidades.
Hosts
en System Folder y así podrá
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 página 33 de RFC 1035). Una vez haya creado el fichero, abra el
TCP/IP control panel, pulse el botón 'Select Hosts
File...', y abra el archivo Hosts
.
tcpip16.exe
de
ftp.novell.com/pub/updates/unixconn/lwp5
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:
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'. Si los paquetes ping son 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 demás paquetes requeridos, así como los módulos cargados. También, la dirección IP, la pasarela, y el DNS deberían estar configurados en todas las OTRAS máquinas.
Ahora, la única cosa que queda por hacer es usar
ipfwadm
para reenviar los paquetes apropiados a la máquina apropiada:
Esto puede ser de realizado de diferentes formas. Las siguientes
sugerencias y ejemplos a mí me funcionan, pero usted puede tener
diferentes ideas, por favor mire la sección
ipfwadm 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.
mascara 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 quiere 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 masquerade
NO haga que su política por defecto sea masquerading de esta forma alguien puede manipular su ruta y será capaz de entrar a través 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
ipfwadm para una guía detallada de
ipfwadm
.
Después de todo este duro trabajo, es la hora hacer un intento. Asegúrese de que la conexión a Internet del servidor Linux está bien.
Puede intentar navegar por algún 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 el valor de
http://152.2.254.81/mdw/linux.html
.
Si ve la página 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 invierte su tiempo en hacer que esta maravillosa prestación funcione.