Módulo de importación de iptables no encontrado

Módulo de importación de iptables no encontrado

Estoy reemplazando un enrutador/firewall inalámbrico que ejecuta Tomato con un servidor Debian, y estaba emocionado de haber encontrado la configuración de iptables de Tomate para poderimportarlo directamente al nuevo servidor(mi pregunta antes de esto). El archivo de configuración de iptables (en la parte inferior) de Tomato falla iptables-restoreen Debian:

# iptables-restore < iptables.eth0-eth1
iptables-restore v1.4.14: Couldn't load match `mport':No such file or directory

Error occurred at line: 7
Try `iptables-restore -h' or 'iptables-restore --help' for more information.

¿Hay alguna manera de importar iptables "modernos"?
¿O podrías ayudarme a traducir mportal multiport?

Buscar en Google iptables mportfue bastante difícil, pero finalmente encontréalguien se queja de que la importación ya no existey untutorial multipuertocon una referencia pasajera a la extensión mport, lo que me llevó a husmear en los sistemas de archivos de las dos cajas en busca de módulos y también a probar todas las herramientas de "firewall" que tiene Debian, deseando que mágicamente viniera una mport. Admito que la interfaz de usuario de Tomato me ha echado bastante a perder: cada paquete de Debian que he probado desde entonces me ha dejado cada vez más confundido (gui o cli). Si pudiera hacer que el servidor enrute todo brevemente, creo que masonpodría funcionar. No es de extrañar que todo el mundo odie iptables.

Pasé más tiempo del que debería tratando de descubrir los errores. Si hubiera pasado tanto tiempo tratando de entender iptables, probablemente podría haber traducido las mportreglas a multiport. Además, pensé en publicar en SuperUser; sin embargo, las pocas preguntas etiquetadas con iptables no estaban en la misma liga que las que estoy leyendo aquí en ServerFault.


Buscando módulos:
Entré al enrutador inalámbrico con tomatofirmware y encontré el módulo libipt_mport.soen formato /usr/lib/iptables. Pero en el /lib/modules/2.4.20/kernel/net/ipv4/netfilterdirectorio no hay libipt_mport.so, solo ipt_multiport.o.

En la caja de Debian (instalación nueva de wheezy), utilicé updatedby locatepara buscar MASQ(objeto MASQUERADE) y descubrí que el directorio
/lib/modules/3.2.0-4-amd64/kernel/net/ipv4/netfiltertiene una buena variedad de archivos iptable_*y nf_nat_* ko. La búsqueda también se encontró libxt_multiport.soen /lib/xtables, pero no hay referencia a módulos de objetos para mport.

Además, ¿hay otros problemas a continuación? Veo las cosas de la capa 7 y tengo la sensación de que esto generará más complicaciones a continuación.


Archivo de configuración de Tomate:
Notas:
» 99.1.81.209 es WAN ip
» 10.0.0.2 es ip para este firewall Debian
» 10.0.0.20 es un servidor
» la interfaz pública de Tomate vlan0cambió a eth0
» la interfaz interna de Tomate br0cambió a eth1
» los puertos 5060:5090 son para VoIP (probablemente no ¿No necesitas toda esa gama?)

*mangle
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:QOSO - [0:0]
-A QOSO -j CONNMARK --restore-mark --mask 0xff
-A QOSO -m connmark ! --mark 0/0xff00 -j RETURN
-A QOSO -p tcp -m mport --dports 80,443   -m bcount --range 0x0-0x7ffff -j CONNMARK --set-return 0x2/0xFF
-A QOSO -p tcp -m mport --dports 80,443   -m bcount --range 0x80000 -j CONNMARK --set-return 0x4/0xFF
-A QOSO -p udp --dport 53   -m bcount --range 0x0-0x7ff -j CONNMARK --set-return 0x1/0xFF
-A QOSO -p tcp --dport 53   -m bcount --range 0x0-0x7ff -j CONNMARK --set-return 0x1/0xFF
-A QOSO -p udp --dport 53   -m bcount --range 0x800 -j CONNMARK --set-return 0x5/0xFF
-A QOSO -p tcp --dport 53   -m bcount --range 0x800 -j CONNMARK --set-return 0x5/0xFF
-A QOSO -p udp --dport 1024:65535   -j CONNMARK --set-return 0x5/0xFF
-A QOSO -p tcp --dport 1024:65535   -j CONNMARK --set-return 0x5/0xFF
-A QOSO -p udp -m mport --ports 5060:5090  -m layer7 --l7dir /etc/l7-protocols --l7proto sip -j CONNMARK --set-return 0x101/0xFF
-I QOSO -j BCOUNT
-A QOSO -j CONNMARK --set-return 0x4
-A FORWARD -o eth0 -j QOSO
-A OUTPUT -o eth0 -j QOSO
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A PREROUTING -i eth0 -d 10.0.0.2/255.255.255.0 -j DROP
-A PREROUTING -p icmp -d 99.1.81.209 -j DNAT --to-destination 10.0.0.2
-A PREROUTING  -p tcp -m tcp -d 99.1.81.209 --dport 22 -j DNAT --to-destination 10.0.0.2:22
-A PREROUTING -p tcp  -d 99.1.81.209 --dport 10022 -j DNAT --to-destination 10.0.0.20:22
-A POSTROUTING -p tcp --dport 22 -s 10.0.0.2/255.255.255.0 -d 10.0.0.20 -j SNAT --to-source 99.1.81.209
:upnp - [0:0]
-A PREROUTING -d 99.1.81.209 -j upnp
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
*filter
:INPUT DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i eth1 -d 99.1.81.209 -j DROP
-A INPUT -m state --state INVALID -j DROP
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-N shlimit
-A shlimit -m recent --set --name shlimit
-A shlimit -m recent --update --hitcount 3 --seconds 60 --name shlimit -j DROP
-A INPUT -p tcp --dport 22 -m state --state NEW -j shlimit
-A INPUT -i eth1 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp  -m tcp -d 10.0.0.2 --dport 22 -j ACCEPT
:FORWARD DROP [0:0]
-A FORWARD -i eth1 -o eth1 -j ACCEPT
-A FORWARD -m state --state INVALID -j DROP
-A FORWARD -p tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1461: -j TCPMSS --set-mss 1460
:L7in - [0:0]
-A FORWARD -i eth0 -j L7in
-A L7in -m layer7 --l7dir /etc/l7-protocols --l7proto sip -j RETURN
:wanin - [0:0]
:wanout - [0:0]
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -j wanin
-A FORWARD -o eth0 -j wanout
-A FORWARD -i eth1 -j ACCEPT
:upnp - [0:0]
-A FORWARD -i eth0 -j upnp
-A wanin  -p tcp -m tcp -d 10.0.0.20 --dport 22 -j ACCEPT
COMMIT

Respuesta1

AFAIK, los parámetros del multiportmódulo son idénticos a los parámetros del mportmódulo que ha mostrado.

Pruebe una simple búsqueda y reemplazo:

s/-m mport/-m multiport/g

PD: Ciertamente notodosodia los iptables; yo personalmenteAMARiptables ;-)

información relacionada