iptables mport module não encontrado

1

Estou substituindo um roteador / firewall sem fio que executa o Tomato por um servidor Debian, e fiquei animado por ter encontrado a configuração do iptables do tomate para que eu pudesse importá-lo diretamente para o novo servidor (minha pergunta antes disso). O arquivo de configuração do iptables (na parte inferior) do Tomato falha em iptables-restore no 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.

Existe uma maneira de colocar o mport em iptables "modernos"?
Ou você poderia me ajudar a traduzir mport para multiport ?

Pesquisando iptables mport foi muito difícil, mas eu finalmente encontrei alguém que se queixou de mport se foi e um tutorial multiportas com referência de passagem à extensão mport, o que me levou a bisbilhotar os sistemas de arquivos da caixa dupla módulos e também tentando todas as ferramentas de "firewall" que o Debian tem, desejando que um venha magicamente com mport . Eu admito ser muito mimada pela interface de usuário do Tomato - todo pacote Debian que eu tentei desde que me deixou mais e mais confuso (gui ou cli). Se eu conseguisse que o servidor roteasse tudo rapidamente, acho que mason poderia funcionar. Não é de admirar que todo mundo odeia iptables.

Passei mais tempo tentando descobrir os erros do que deveria. Se eu tivesse gasto tanto tempo tentando entender iptables , provavelmente poderia ter traduzido as regras mport para multiport . Além disso, eu pensei em postar no SuperUser, no entanto, as poucas perguntas marcadas do iptables não estavam no mesmo patamar que as que estou lendo aqui no ServerFault.

Procurando por módulos:
Eu ssh'd no roteador sem fio com tomato firmware, encontrei o módulo libipt_mport.so em /usr/lib/iptables . Mas no diretório /lib/modules/2.4.20/kernel/net/ipv4/netfilter , não há libipt_mport.so , somente ipt_multiport.o .

Na caixa Debian (nova instalação do wheezy), usei updatedb e locate para pesquisar em MASQ (para o objeto MASQUERADE) e encontrei o diretório que% /lib/modules/3.2.0-4-amd64/kernel/net/ipv4/netfilter tem uma boa matriz de iptable_* e nf_nat_* ko arquivos. A pesquisa também encontrou libxt_multiport.so em /lib/xtables , mas não há referência a módulos de objeto para mport .

Além disso, existem outros problemas abaixo? Eu vejo o material da camada 7 e tenho a sensação de que isso fará com que mais complicações ocorram.

Arquivo de configuração do Tomato:
Notas:
»99.1.81.209 é ip da WAN
»10.0.0.2 é ip para este firewall do Debian
»10.0.0.20 é um servidor
»Interface pública do tomate vlan0 alterado para eth0
»Interface interna do tomate br0 alterado para eth1
»As portas 5060: 5090 são para VoIP (provavelmente não precisam de toda a 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
    
por Chris K 14.01.2014 / 11:46

1 resposta

1

AFAIK, os parâmetros para o módulo multiport são idênticos aos parâmetros para o módulo mport que você exibiu.

Tente uma pesquisa e substituição simples:

s/-m mport/-m multiport/g

PS: Certamente não todos odeia iptables; Eu pessoalmente AMO iptables; -)

    
por 21.01.2014 / 20:02