risposta-alla-domanda-sullo-sviluppo-web-bd.com

Nessuna route verso Host con nc ma può eseguire il ping

Sto cercando di connettermi alla porta 25 con netcat da una macchina virtuale a un'altra ma mi sta dicendo no route to Host anche se posso fare il ping. Il criterio predefinito del firewall è impostato su Drop ma ho un'eccezione per accettare il traffico per la porta 25 su quella sottorete specifica. Posso connettermi da VM 3 TO VM 2 sulla porta 25 con nc ma non da VM 2 TO 3.

Ecco un'anteprima delle mie regole del firewall per VM2

screenshot

Ecco un'anteprima delle mie regole del firewall per VM 3

screenshot

Quando mostro i servizi di ascolto ho *:25 il che significa che sta ascoltando tutti gli indirizzi IP ipv4 e :::25 per indirizzi ipv6. Non capisco dove sia l'errore e perché non funzioni entrambe le regole del firewall accettano il traffico sulla porta 25, quindi si suppone che si connetta. Ho provato a confrontare le differenze tra i due per vedere perché riesco a connettermi da vm3 a vm2 ma la configurazione è la stessa. Qualche suggerimento su quale potrebbe essere il problema?

L'aggiornamento che interrompe il servizio iptable risolve il problema ma ho ancora bisogno di queste regole per essere presenti.

21
Katz

Il tuo no route to Host mentre la macchina è in grado di eseguire il ping è il segno di un firewall che ti nega l'accesso in modo educato (ovvero con un messaggio ICMP anziché solo DROP-ping).

Vedi le tue REJECT righe? Corrispondono alla descrizione (REJECT con ICMP xxx). Il problema è che quelle linee apparentemente (#) catch-all REJECT sono nel mezzo delle tue regole, quindi le seguenti regole non verranno eseguite affatto. (#) Difficile dire se si tratta di linee catch-all reali, l'output di iptables -nvL sarebbe preferibile.

Metti queste regole REJECT alla fine e tutto dovrebbe funzionare come previsto.

23
xhienne