-
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
eip_conntrack_tftp
para as "conexões de porta mais altas". (Verifique se ambos foram carregados usandolsmod
.) 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.