Cómo instalar Firestarter y como abrir puertos en Netfilter. En este caso se ha utilizado la distribución Ubuntu 6.10 de Linux. Os indicamos cómo abrir los puertos necesarios para que aMule no tenga ID Baja.

Explicamos como instalar Firestarter y como a través de esta aplicación se pueden abrir puertos en el Netfilter (que es el conjunto de herramientas dentro del núcleo de Linux que interceptan y manipulan paquetes de red), ya que lo que hace Firestarter es modificar el fichero iptables, que es el fichero donde se encuentran todas las reglas de nuestra máquina para el acceso a la red y hace de intérprete del Netfilter para que éste sepa qué paquetes debe dejar pasar o denegar su acceso. En este caso se ha utilizado la distribución Ubuntu 6.10 de Linux.

En la siguiente ventana se puede observar como el programa de P2P aMule da ID-Baja, debido a que el firewall (cortafuegos) tiene cerrados los puertos que necesita aMule por defecto:

Instalar Firestarter apertura de puertos para aMule en Linux

Para abrir estos puertos de una forma sencilla vamos a proceder a instalar Firestarter:

1. Para llevar acabo la instalación de FireStarter, pulsamos en «Sistema», «Administración», «Gestor de paquetes Synaptic»:

Instalar Firestarter apertura de puertos para aMule en Linux

2. Ahora pulsamos sobre el botón «Buscar»:

Instalar Firestarter apertura de puertos para aMule en Linux

3. En la siguiente ventana escribiremos el programa a buscar, en este caso Firestarter y pulsamos «Buscar»:

Instalar Firestarter apertura de puertos para aMule en Linux

4. Después de un cierto tiempo no saldrá el paquete que buscábamos. Si no aparece pulsa aquí, te explicamos cómo configurar el Gestor de Paquetes Synaptic para que aparezca . Para poder instalarlo pulsamos sobre el paquete ha instalar con el botón derecho del ratón y seleccionamos «Marcar para instalar»:

Instalar Firestarter apertura de puertos para aMule en Linux

5. Para aplicar todos los cambios seleccionados, pulsamos sobre «Aplicar» como muestra la imagen:

Instalar Firestarter apertura de puertos para aMule en Linux

6. Una vez finalizada la instalación nos lo indicará con un cuadro de diálogo, donde nos indica que los cambios se han llevado acabo con éxito. Pulsamos «Cerrar» y ya tenemos instalado Firestarter:

Instalar Firestarter apertura de puertos para aMule en Linux

7. Una vez instalado procederemos a su configuración para ello pulsamos en «Sistema», «Administración» y seleccionamos Firestarter:

Instalar Firestarter apertura de puertos para aMule en Linux

8. La primera vez que lo ejecutamos no saldrá el asistente de configuración del cortafuegos, pulsamos «Adelante»:

Instalar Firestarter apertura de puertos para aMule en Linux

9. En la siguiente ventana tenemos que seleccionar la tarjetea de red que utilicemos para la conexión a Internet:

Instalar Firestarter apertura de puertos para aMule en Linux

10. Si pulsamos sobre «Dispositivo(s) detectado(s)» veremos el siguiente desplegable, en nuestro caso ha detectado varias tarjetas de red:

Instalar Firestarter apertura de puertos para aMule en Linux

Para identificar la tarjeta de red activa (la que utilizamos) haremos un ifconfig en una ventana de Terminal de Linux. La tarjeta de red que está conectada a la red, en nuestro caso, es la «eth0», la cual tiene asignada la IP: 192.168.1.12, anotamos pues la necesitaremos más adelante:

Instalar Firestarter apertura de puertos para aMule en Linux

Pulsa aquí para ver el resultado (en texto) del comando ifconfig

11. En este paso solamente marcaremos la casilla «Activar la compartición de la conexión a internet» si queremos que nuestro ordenador sea el que hace de servidor de DHCP y el provee Internet a los demás ordenadores de nuestra red. En nuestro caso, puesto que se está utilizando un router y un switch para la conexión a Internet, no necesitamos utilizar un PC como proxy, aunque sería interesante para instalar un filtro de contenidos web gratuito para la navegación por Internet, o como cortafuegos de nuestra conexión. Estas configuraciones las mostraremos en otros artículos. Pulsaremos «Adelante» para continuar:

Instalar Firestarter apertura de puertos para aMule en Linux

12. A continuación nos da la posibilidad de iniciar el cortafuegos ahora, en este punto hay que proceder con precaución pues si estamos configurando Linux Ubuntu de forma remota (con VNC, con escritorio remoto, etc) al marcar esta opción nos cortará la conexión. Si estamos configurándolo de forma local (en el equipo) podremos activarlo sin problemas. Pulsamos «Guardar» para continuar con la configuración de Firestarter :

Instalar Firestarter apertura de puertos para aMule en Linux

13. Ya tenemos configurados los parámetros generales, ahora vamos a abrir los puertos necesarios para que aMule no nos dé «ID-Alta», para ello pulsamos sobre la pestaña/solapa «Normativa»:

Instalar Firestarter apertura de puertos para aMule en Linux

14. Pulsamos en el desplegable «Normativa para el tráfico entrante»:

Instalar Firestarter apertura de puertos para aMule en Linux

nos mostrará un despegable con las siguientes opciones «Normativa para el tráfico entrante» ó «Normativa para el tráfico saliente», en este caso debemos elegir «Normativa para el tráfico entrante» ya que a lo que queremos darle permiso es al tráfico entrante de aMule:

Instalar Firestarter apertura de puertos para aMule en Linux

15. Pulsamos en el espacio señalado (debajo de «Permitir las conexiones desde el host») y posteriormente pulsamos sobre «Añadir reglas»:

Instalar Firestarter apertura de puertos para aMule en Linux

16. En «IP, host o red» añadiremos la IP obtenida con el comando ifconfig en el paso nº 10, en nuestro caso la 192.168.1.12. En «Comentario» podremos introducir un texto explicativo para saber por qué pusimos esta regla, podemos dejarlo en blanco, o poner algo así como «Para acceso externo a mi PC».

Instalar Firestarter apertura de puertos para aMule en Linux

17. Una vez añadida nuestra IP, añadimos los puertos que queramos abrir, en nuestro caso el 4662 y el 4672. Para ello pulsaremos en el espacio señalado en la imagen y luego pulsaremos en «Añadir reglas»:

Instalar Firestarter apertura de puertos para aMule en Linux

18. En la ventana «Añadir regla nueva de entrada», en «Permitir servicio», «Puerto», introducimos el puerto que queramos abrir, en nuestro caso el 4662. Si Firestarter reconoce el puerto introducido, le asignará un nombre automáticamente. Si no lo detecta podemos asignarle nosotros el que queramos o incluso cambiar el que nos asigna (esto no afecta al funcionamiento de la regla, es a título informativo). Podremos indicar también si queremos restringir el uso de este puerto sólo a una IP o rango de IPs, en cuyo caso marcaríamos «IP, host o red», pero para aMule es necesario permitir cualquier IP externa, para ello marcaremos «Cualquiera». También podremos introducir un comentario como «Puerto para aMule» que nos indique a título informativo para qué sirve el puerto, esto es útil cuando tenemos muchas reglas y puertos abiertos, así los tendremos identificados. Una vez introducido el puerto y el comentario, pulsamos «Añadir» para insertar la regla:

Instalar Firestarter apertura de puertos para aMule en Linux

Para los restantes puertos (4672) volveremos a realizar la misma acción:

Instalar Firestarter apertura de puertos para aMule en Linux

19. Una vez añadidas las direcciones IP deseadas y abiertos los puertos, pulsaremos sobre «Aplicar normativa» para que los cambios tengan efecto. Con esto tendremos los puertos abiertos y los cambios salvados en el fichero iptables::

Instalar Firestarter apertura de puertos para aMule en Linux

Nota: no es necesario tener Firestarter abierto para que esté funcionando el cortafuegos, Firestarter sólo sirve para configurar el fichero iptables, para iniciar/detener el cortafuegos, etc, pero no es necesario para su funcionamiento.

20. Podremos observar ahora como al conectarnos a cualquier servidor de aMule, éste ya no nos da ID-Baja:

Instalar Firestarter apertura de puertos para aMule en Linux

Nota: por supuesto, si tenemos un router en nuestra red deberemos redireccionar/mapear los puertos de aMule a nuestra IP (en nuestro caso 192.168.1.12). Podréis ver un manual sobre cómo abrir los puertos en el router pulsando aquí (es para eMule, pero sirve también para aMule).

ANEXO

* Contenido del fichero iptables original (antes de crear reglas):

# Generated by iptables-save v1.3.5 on Fri Mar 23 02:05:35 2007
*mangle
:PREROUTING ACCEPT [214:92445]
:INPUT ACCEPT [214:92445]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [247:36767]
:POSTROUTING ACCEPT [247:36767]
COMMIT
# Completed on Fri Mar 23 02:05:35 2007
# Generated by iptables-save v1.3.5 on Fri Mar 23 02:05:35 2007
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
:INBOUND – [0:0]
:LOG_FILTER – [0:0]
:LSI – [0:0]
:LSO – [0:0]
:OUTBOUND – [0:0]
-A INPUT -s 192.168.1.1 -p tcp -m tcp ! –tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
-A INPUT -s 192.168.1.1 -p udp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -m limit –limit 10/sec -j ACCEPT
-A INPUT -d 255.255.255.255 -i eth0 -j DROP
-A INPUT -d 192.168.1.255 -j DROP
-A INPUT -s 224.0.0.0/255.0.0.0 -j DROP
-A INPUT -d 224.0.0.0/255.0.0.0 -j DROP
-A INPUT -s 255.255.255.255 -j DROP
-A INPUT -d 0.0.0.0 -j DROP
-A INPUT -m state –state INVALID -j DROP
-A INPUT -f -m limit –limit 10/min -j LSI
-A INPUT -i eth0 -j INBOUND
-A INPUT -j LOG_FILTER
-A INPUT -j LOG –log-prefix «Unknown Input» –log-level 6
-A FORWARD -p icmp -m limit –limit 10/sec -j ACCEPT
-A FORWARD -j LOG_FILTER
-A FORWARD -j LOG –log-prefix «Unknown Forward» –log-level 6
-A OUTPUT -s 192.168.1.12 -d 192.168.1.1 -p tcp -m tcp –dport 53 -j ACCEPT
-A OUTPUT -s 192.168.1.12 -d 192.168.1.1 -p udp -m udp –dport 53 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -s 224.0.0.0/255.0.0.0 -j DROP
-A OUTPUT -d 224.0.0.0/255.0.0.0 -j DROP
-A OUTPUT -s 255.255.255.255 -j DROP
-A OUTPUT -d 0.0.0.0 -j DROP
-A OUTPUT -m state –state INVALID -j DROP
-A OUTPUT -o eth0 -j OUTBOUND
-A OUTPUT -j LOG_FILTER
-A OUTPUT -j LOG –log-prefix «Unknown Output» –log-level 6
-A INBOUND -p tcp -m state –state RELATED,ESTABLISHED -j ACCEPT
-A INBOUND -p udp -m state –state RELATED,ESTABLISHED -j ACCEPT
-A INBOUND -j LSI
-A LSI -j LOG_FILTER
-A LSI -p tcp -m tcp –tcp-flags FIN,SYN,RST,ACK SYN -m limit –limit 1/sec -j LOG –log-prefix «Inbound » –log-level 6
-A LSI -p tcp -m tcp –tcp-flags FIN,SYN,RST,ACK SYN -j DROP
-A LSI -p tcp -m tcp –tcp-flags FIN,SYN,RST,ACK RST -m limit –limit 1/sec -j LOG –log-prefix «Inbound » –log-level 6
-A LSI -p tcp -m tcp –tcp-flags FIN,SYN,RST,ACK RST -j DROP
-A LSI -p icmp -m icmp –icmp-type 8 -m limit –limit 1/sec -j LOG –log-prefix «Inbound » –log-level 6
-A LSI -p icmp -m icmp –icmp-type 8 -j DROP
-A LSI -m limit –limit 5/sec -j LOG –log-prefix «Inbound » –log-level 6
-A LSI -j DROP
-A LSO -j LOG_FILTER
-A LSO -m limit –limit 5/sec -j LOG –log-prefix «Outbound » –log-level 6
-A LSO -j REJECT –reject-with icmp-port-unreachable
-A OUTBOUND -p icmp -j ACCEPT
-A OUTBOUND -p tcp -m state –state RELATED,ESTABLISHED -j ACCEPT
-A OUTBOUND -p udp -m state –state RELATED,ESTABLISHED -j ACCEPT
-A OUTBOUND -j ACCEPT
COMMIT
# Completed on Fri Mar 23 02:05:35 2007

* Contenido del fichero iptables tras la apertura de puertos para aMule (después de crear las reglas):

# Generated by iptables-save v1.3.5 on Sun Mar 25 19:56:38 2007
*mangle
:PREROUTING ACCEPT [1769:2350962]
:INPUT ACCEPT [1769:2350962]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1176:65942]
:POSTROUTING ACCEPT [1199:68322]
COMMIT
# Completed on Sun Mar 25 19:56:38 2007
# Generated by iptables-save v1.3.5 on Sun Mar 25 19:56:38 2007
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [20:3188]
:INBOUND – [0:0]
:LOG_FILTER – [0:0]
:LSI – [0:0]
:LSO – [0:0]
:OUTBOUND – [0:0]
-A INPUT -s 192.168.1.1 -p tcp -m tcp ! –tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
-A INPUT -s 192.168.1.1 -p udp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -m limit –limit 10/sec -j ACCEPT
-A INPUT -d 255.255.255.255 -i eth0 -j DROP
-A INPUT -d 192.168.1.255 -j DROP
-A INPUT -s 224.0.0.0/255.0.0.0 -j DROP
-A INPUT -d 224.0.0.0/255.0.0.0 -j DROP
-A INPUT -s 255.255.255.255 -j DROP
-A INPUT -d 0.0.0.0 -j DROP
-A INPUT -m state –state INVALID -j DROP
-A INPUT -f -m limit –limit 10/min -j LSI
-A INPUT -i eth0 -j INBOUND
-A INPUT -j LOG_FILTER
-A INPUT -j LOG –log-prefix «Unknown Input» –log-level 6
-A FORWARD -p icmp -m limit –limit 10/sec -j ACCEPT
-A FORWARD -j LOG_FILTER
-A FORWARD -j LOG –log-prefix «Unknown Forward» –log-level 6
-A OUTPUT -s 192.168.1.12 -d 192.168.1.1 -p tcp -m tcp –dport 53 -j ACCEPT
-A OUTPUT -s 192.168.1.12 -d 192.168.1.1 -p udp -m udp –dport 53 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -s 224.0.0.0/255.0.0.0 -j DROP
-A OUTPUT -d 224.0.0.0/255.0.0.0 -j DROP
-A OUTPUT -s 255.255.255.255 -j DROP
-A OUTPUT -d 0.0.0.0 -j DROP
-A OUTPUT -m state –state INVALID -j DROP
-A OUTPUT -o eth0 -j OUTBOUND
-A OUTPUT -j LOG_FILTER
-A OUTPUT -j LOG –log-prefix «Unknown Output» –log-level 6
-A INBOUND -p tcp -m state –state RELATED,ESTABLISHED -j ACCEPT
-A INBOUND -p udp -m state –state RELATED,ESTABLISHED -j ACCEPT
-A INBOUND -s 192.168.1.12 -j ACCEPT
-A INBOUND -p tcp -m tcp –dport 4662 -j ACCEPT
-A INBOUND -p udp -m udp –dport 4662 -j ACCEPT
-A INBOUND -p tcp -m tcp –dport 4672 -j ACCEPT
-A INBOUND -p udp -m udp –dport 4672 -j ACCEPT
-A INBOUND -j LSI
-A LSI -j LOG_FILTER
-A LSI -p tcp -m tcp –tcp-flags FIN,SYN,RST,ACK SYN -m limit –limit 1/sec -j LOG –log-prefix «Inbound » –log-level 6
-A LSI -p tcp -m tcp –tcp-flags FIN,SYN,RST,ACK SYN -j DROP
-A LSI -p tcp -m tcp –tcp-flags FIN,SYN,RST,ACK RST -m limit –limit 1/sec -j LOG –log-prefix «Inbound » –log-level 6
-A LSI -p tcp -m tcp –tcp-flags FIN,SYN,RST,ACK RST -j DROP
-A LSI -p icmp -m icmp –icmp-type 8 -m limit –limit 1/sec -j LOG –log-prefix «Inbound » –log-level 6
-A LSI -p icmp -m icmp –icmp-type 8 -j DROP
-A LSI -m limit –limit 5/sec -j LOG –log-prefix «Inbound » –log-level 6
-A LSI -j DROP
-A LSO -j LOG_FILTER
-A LSO -m limit –limit 5/sec -j LOG –log-prefix «Outbound » –log-level 6
-A LSO -j REJECT –reject-with icmp-port-unreachable
-A OUTBOUND -p icmp -j ACCEPT
-A OUTBOUND -p tcp -m state –state RELATED,ESTABLISHED -j ACCEPT
-A OUTBOUND -p udp -m state –state RELATED,ESTABLISHED -j ACCEPT
-A OUTBOUND -j ACCEPT
COMMIT
# Completed on Sun Mar 25 19:56:38 2007

* Resultado de la ejecución del comando ifconfig:

alonso@pclinux:~$ sudo ifconfig
Password:
eth0 Link encap:Ethernet HWaddr 00:17:31:F5:C7:05
inet addr:192.168.1.12 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::217:31ff:fef5:c705/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2128 errors:0 dropped:0 overruns:0 frame:0
TX packets:1499 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2456154 (2.3 MiB) TX bytes:133321 (130.1 KiB)
Interrupt:169 Base address:0xc800
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:2 errors:0 dropped:0 overruns:0 frame:0
TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:84 (84.0 b) TX bytes:84 (84.0 b)
vmnet1 Link encap:Ethernet HWaddr 00:50:56:C0:00:01
inet addr:192.168.205.1 Bcast:192.168.205.255 Mask:255.255.255.0
inet6 addr: fe80::250:56ff:fec0:1/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
vmnet8 Link encap:Ethernet HWaddr 00:50:56:C0:00:08
inet addr:172.16.98.1 Bcast:172.16.98.255 Mask:255.255.255.0
inet6 addr: fe80::250:56ff:fec0:8/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

Para realizar este artículo hemos utilizado:

  • Linux Ubuntu 6.10 (distribución de Linux basada en Debian).
  • Firestarter 1.0.3.
  • aMule 2.1.3.