iptables: regras para o servidor tftp

2

Eu tenho um servidor tftp que escuta no padrão UDP port 69 . Eu adicionei a seguinte regra ao meu iptables para bloquear tudo, exceto UDP 69 .

-A INPUT -i eth0 -s 192.168.1.0/24 -p udp -m udp --dport 69 -j ACCEPT
-A INPUT                                                    -j   DROP

Mas com esta regra, os clientes não podem acessar o servidor tftp. Eu li que tftp está usando uma porta mais alta para a transferência real (semelhante a ftp ) e que eu deveria usar o módulo ip_conntrack_tftp .

# zcat /proc/config.gz  | grep -i tftp
CONFIG_NF_CONNTRACK_TFTP=m

Eu tenho o módulo no meu kernel, mas o que mais eu preciso fazer?

    
por Martin Vegter 07.11.2013 / 19:16

2 respostas

2
  • Primeiro de tudo: você só permite conexões ao seu servidor com um ip de origem correspondente a "192.168.1.0/24". Só para ter certeza: este é um ip da LAN, então isso só funcionará, se o seu servidor e cliente fizerem parte da mesma LAN. Neste caso você provavelmente tem um roteador como firewall para a internet, então você não precisa de nenhuma configuração do iptables.

  • Segundo: altero sua primeira configuração para

    -A INPUT -i eth0 -s 192.168.1.0/24 -p udp --dport 69 -m state --state NEW,ESTABLISHED -j ACCEPT
    
  • No entanto, com as configurações fornecidas acima, você só permite conexões de entrada na porta 69, o que significa que o servidor não pode enviar nenhuma mensagem de volta (dependendo da política de filtragem padrão para conexões de saída). Para permitir que o servidor responda na porta 69, você precisará ter uma política padrão de aceitação para conexões de saída

    -P OUTPUT ACCEPT
    

    ou permitir respostas na porta 69:

    -A OUTPUT -i eth0 -p udp --sport 69 -m state --state ESTABLISHED -j ACCEPT
    
  • Além disso, você precisa carregar os módulos de kernel ip_conntrack e ip_conntrack_tftp para as "conexões de porta mais altas". (Verifique se ambos foram carregados usando lsmod .) Para aceitar as novas conexões para transferência de dados real, use

    -A INPUT --sport 1024: --dport 1024: -m state --state ESTABLISHED -j ACCEPT
    -A OUTPUT --sport 1024: --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT
    

Note que nenhuma conexão completamente nova pode ser estabelecida nas portas > 1024.

    
por 13.11.2013 / 15:53
1

Para o cliente TFTP, a solução mais simples é a adição de uma configuração no iptables.

Arquivo: / etc / sysconfig / iptables-config

IPTABLES_MODULES="nf_conntrack_netbios_ns ip_conntrack_tftp"
    
por 31.03.2014 / 18:50

Tags