GNU/Linux >> Linux Esercitazione >  >> Linux

REJECT vs DROP quando si utilizza iptables

Soluzione 1:

Come regola generale, usa REJECT quando vuoi che l'altra estremità sappia che la porta non è raggiungibile' usa DROP per le connessioni agli host che non vuoi che le persone vedano.

Di solito, tutte le regole per le connessioni all'interno della tua LAN dovrebbero usare REJECT. Per Internet, con l'eccezione dell'identità su alcuni server, le connessioni da Internet vengono generalmente ELIMINATE.

L'utilizzo di DROP fa sembrare che la connessione sia verso un indirizzo IP non occupato. Gli scanner possono scegliere di non continuare la scansione degli indirizzi che sembrano non occupati. Dato che NAT può essere utilizzato per reindirizzare una connessione sul firewall, l'esistenza di un servizio noto non indica necessariamente l'esistenza di un server su un indirizzo.

Ident dovrebbe essere passato o rifiutato su qualsiasi indirizzo che fornisce il servizio SMTP. Tuttavia, l'uso delle ricerche di identità da parte dei servizi SMTP è caduto in disuso. Esistono protocolli di chat che si basano anche su un servizio di identificazione funzionante.

EDIT:quando si utilizzano le regole DROP:- I pacchetti UDP verranno eliminati e il comportamento sarà lo stesso della connessione a una porta senza firewall senza servizio. - I pacchetti TCP restituiranno un ACK/RST che è la stessa risposta di una porta aperta senza il servizio su di esso risponderà con. Alcuni router risponderanno con e ACK/RST per conto dei server che non funzionano.

Quando si utilizzano le regole REJECT, viene inviato un pacchetto ICMP che indica che la porta non è disponibile.

Soluzione 2:

La differenza è che il target REJECT invia una risposta di rifiuto all'origine, mentre il target DROP non invia nulla.

Questo può essere utile ad es. per il servizio di identificazione. Se utilizzi REJECT, i client non devono attendere il timeout.

Maggiori informazioni su questo:http://www.linuxtopia.org/Linux_Firewall_iptables/x4550.html

Soluzione 3:

Di solito, vuoi ignorare sonde dagli aggressori a determinate porte, con il che intendo dire che non si desidera rispedire "connessione rifiutata". "Connessione rifiutata" significa:"c'è un server qui" e probabilmente fornisce più informazioni, mentre l'eliminazione di un pacchetto non fornisce indizi su versioni del software, possibili vulnerabilità o persino il fatto che un server stia ascoltando il tuo IP.

Quanto sopra è uno dei motivi principali per utilizzare DROP invece di REJECT.

Soluzione 4:

Vedo molte risposte contrastanti qui e dato che questo è il primo articolo su Google con le parole chiave giuste; ecco la spiegazione corretta.
È semplice:

DROP non fa nulla con il pacchetto. Non viene inoltrato a un host, non riceve risposta. La manpage di IPtables dice che lascia cadere il pacchetto sul pavimento, cioè non fa nulla con il pacchetto.

REJECT differisce da DROP per il fatto che restituisce un pacchetto, ma la risposta è come se un server si trovasse sull'IP, ma non avesse la porta in uno stato di ascolto. IPtables invierà un RST/ACK in caso di TCP o con UDP una porta di destinazione ICMP irraggiungibile.

Soluzione 5:

Se stai cercando di nascondere completamente l'esistenza della tua macchina, -j DROP è appropriato. Ad esempio, potresti usarlo per implementare una lista nera.

Se stai cercando di nascondere il fatto che una porta è aperta, dovresti imitare il comportamento che si verificherebbe se la porta non fosse aperta:

  • TCP:-p tcp -j REJECT --reject-with tcp-reset
  • UDP:-p udp -j REJECT --reject-with icmp-port-unreachable

Se uno scanner di porte vede che alcune porte rilasciano pacchetti mentre la maggior parte li rifiuta, può presumere che i pacchetti rilasciati si trovino su porte aperte ma nascoste.


Linux
  1. Come aprire la porta in Linux

  2. posizione del file temporaneo quando si utilizza tmpfile() in C

  3. Come impedire a nginx di utilizzare la porta 80

  4. Configurazione di SonarQube su AWS utilizzando EC2

  5. comando non trovato quando si utilizza sudo

Come bloccare una porta utilizzando un firewall in Linux

Utilizzo di SSH Port Forwarding come strumento di sicurezza in Linux

Come posso impostare i bit di parità quando utilizzo lo schermo per accedere a una porta seriale

iptables reindirizza le connessioni locali al sistema/porta remoto

Consentire FTP con IPTables

iptables elimina le risposte DNS negative