1) Bajamos el kernel y lo guardamos en
cd /usr/src/
2) Descomprimimos el kernel
/usr/src/# tar Ixvf linux-2.4.16.tar.gz
3) Entramos a la carpeta
cd /usr/src/linux
4) aplicamos el patch de NEWNAT
gzip -cd newnat5-and-helpers-2.4.16.patch.gz | patch -p1 –E
5) Nos fijamos si estamos en la carpeta del kernel
pwd
6) A compilar
make menuconfig
7) Y para los que no saben como compilar un kernel les dejo unos links muy buenos
http://www.zonasiete.org/docs/locales/kernel_mini_howto/---http://grulla.hispalinux.es/articles/kernel.pdf---http://www.linuxfocus.org/Castellano/July2001/article209.shtml---http://documentos.glo.org.mx/?HOWTO=mini-quickcam---***∞*
8) Acá les muestro para que puedan chaquear si el patch fue aplicado y lo pueden instalar como modulo o estático, la compilación queda a gusto de cada usuario y/o administrador.
1. Networking options
>2. [*] Network packet filtering (replaces ipchains)3. [*] TCP/IP networking4. IP: Netfilter Configuration
>5. <M> Connection tracking (required for masq/NAT)6. <M> FTP protocol support 7. <M> talk protocol support 8. <M> H.323 (netmeeting) support9. <M> IRC protocol support
9) Al terminar de compilar ponemos
make dep && make clean && make bzImage && make modules && make modules_install
10) Copiamos el archivo System.map (esta en /usr/src/linux/) y lo copiamos a la carpeta
/Boot así
System.map-2.4.16 Ejemplo:
cp /usr/src/linux/System.map /boot/System.map-2.4.16
11) Copiamos el archivo
bzImage (esta en /usr/src/linux/ arch/i386/boot/) y lo copiamos a la carpeta
/Boot así
bzImage Ejemplo:
cp /usr/src/linux/arch/i386/boot/bzImage /boot/bzImage-2.4.16
12) Chequeamos que estén los archivos
cd /boot y
ls –l
13) Acá declaramos los cambios en el
LILO que se encuentre en
/etc/lilo.conf lo editamos y ponemos lo siguiente
Descomentamos las 2 líneas de abajo
prompt
timeout=100
Acá es donde le decimos que kernel arrancar
default=linux-2416
Acá declaramos el nuevo núcleo
image=/boot/bzImage
label=Linux-2416
read-only
# restricted
# alias=1
Salvamos lo ingresado en el archivo lilo.conf y tipeamos el comando
lilo
Ejemplo:
ns1:~# lilo
Added Linux
Added Linux-2416 *
Skipping /vmlinuz.old
Esto
Added Linux-2416 * significa que lilo acepto los cambios
14) Ya esta hicimos todo, nos queda solo añadir las reglas de iptables para NEWNAT en nuestro SCRIPT de NAT, muestro ejemplos:
Ejemplo N 1
#! /bin/bash
EXTERNAL_IF=eth0
EXTERNAL_IP=64.116.229.30
PCA_HOST=192.168.1.4
$IPTABLES=/sbin/iptables
Mod='modprobe'
$Mod ip_tables
$Mod iptable_filter
$Mod ip_conntrack_h323
$Mod ip_nat_h323
logger -s "H323 Ports"
H323_PORTS="389 522 1503 1720 1731 8080"
for PORT in $H323_PORTS; do
$IPTABLES -t nat -A PREROUTING -i $EXTERNAL_IF -p tcp -d $EXTERNAL_IP \
--dport $PORT -m state --state NEW,ESTABLISHED,RELATED \
-j DNAT --to-destination $PCA_HOST -v
done
logger -s "H323 Ports"
H323_PORTS="389 522 1503 1720 1731 8080"
for PORT in $H323_PORTS; do
$IPTABLES -t nat -A PREROUTING -i $EXTERNAL_IF -p udp -d $EXTERNAL_IP \
--dport $PORT -m state --state NEW,ESTABLISHED,RELATED \
-j DNAT --to-destination $PCA_HOST -v
done
Ejemplo N 2
#! /bin/bash
$IP=/sbin/iptables
Mod='modprobe'
$Mod ip_tables
$Mod iptable_filter
$Mod ip_conntrack_h323
$Mod ip_nat_h323
# Esto es para las conexiones H.323 salientes.
$IP -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
$IP -A FORWARD -i eth0 -o eth1 -p tcp --dport 1720 --syn -j ACCEPT
# Esto permite que las llamadas vayan del exterior a una dirección interna
# No es necesario, si usted desea solamente hacer llamadas; no recibirlas
$IP -t nat -A PREROUTING -i eth0 -d 64.116.229.30 -p tcp --dport 1720 --syn -j DNAT --to 192.168.1.4
$IP -A FORWARD -i eth0 -o eth1 -p tcp --dport 1720 --syn -j ACCEPT
15) Seguro que se pregunta como puede hacer si uso el programa ICQ, o si uso MSN o talvez jugar al Quake.