
Eu tenho uma regra iptable onde permito uma sub-rede de IPs. A regra é a seguinte:
iptables -I ENTRADA 2 -i eth0 -s xxxx/24 -d xxXx -j ACEITAR
Por exemplo, quero permitir a sub-rede 172.16.0.0/24. Posso enfrentar um problema como um IP desta sub-rede não ter acesso, embora eu tenha configurado esta sub-rede para ser permitida?
Estou lidando com um problema como este. Configurei 172.16.0.0/24 como permitido no iptables, mas quando tento acessar pelo IP 172.16.0.9, não tenho acesso.
Responder1
Você pode depurar regras do netfilter ativando o destino TRACE:
Primeiro carregue o módulo do kernel relevante para registrar diretamente no syslog:
modprobe -i ipt_LOG
E então crie uma regra para registrar todo o tráfego do seu sistema com comportamento inadequado:
iptables -t raw -A PREROUTING --source 172.16.0.9 -p tcp -j TRACE
Os pacotes são registrados com o prefixo de string: TRACE: tablename:chain- name:type:rulenum
onde type pode ser "rule" para regra simples, "return' para regra implícita no final de uma cadeia definida pelo usuário e "policy" para a política das cadeias integradas. O Rulenum pode ser encontrado comiptables -L --line-numbers
Responder2
Tente remover "-d xxxx". Digo isso porque INPUT significa todo o tráfego destinado à sua máquina, portanto não há necessidade de especificar destino. EDIT: Além disso, tente adicionar "-p tcp" antes de "-s xxxx/24". Acho que você precisa especificar o protocolo da partida. – aseaudi 17 minutos atrás
Responder3
Estou pensando em dois possíveis problemas:
1 - você não está permitindo que o tráfego saia da sua máquina
iptables -I OUTPUT 1 -i eth0 -d x.x.x.x/24 -j ACCEPT
2 - você está impedindo que pacotes de broadcast cheguem à sua máquina
tente isso em vez de sua entrada original:
iptables -I INPUT 1 -i eth0 -s x.x.x.x/24 -j ACCEPT
sem usar um ip de destino.