Řešení 1:
Jako obecné pravidlo použijte REJECT, když chcete, aby druhý konec věděl, že port je nedosažitelný. Použijte DROP pro připojení k hostitelům, které nechcete, aby lidé viděli.
Obvykle by všechna pravidla pro připojení uvnitř vaší LAN měla používat REJECT. Pro internet, s výjimkou ident na určitých serverech, připojení z internetu obvykle RUŠÍ.
Použití DROP způsobí, že připojení bude vypadat jako na neobsazenou IP adresu. Skenery se mohou rozhodnout nepokračovat ve skenování adres, které se zdají být neobsazené. Vzhledem k tomu, že NAT lze použít k přesměrování připojení na firewallu, existence dobře známé služby nemusí nutně znamenat existenci serveru na adrese.
Ident by měl být předán nebo odmítnut na jakékoli adrese poskytující službu SMTP. Používání vyhledávání identit serverem SMTP se však přestalo používat. Existují protokoly chatu, které také spoléhají na fungující službu ident.
EDIT:Při použití pravidel DROP:- UDP pakety budou zahazovány a chování bude stejné jako při připojení k nefirewallovanému portu bez služby.- TCP pakety vrátí ACK/RST, což je stejná odpověď jako u otevřeného portu bez služba na to odpoví. Některé směrovače odpoví a ACK/RST jménem serverů, které jsou mimo provoz.
Při použití pravidel REJECT je odeslán paket ICMP, který indikuje, že port je nedostupný.
Řešení 2:
Rozdíl je v tom, že cíl REJECT posílá odmítavou odpověď zdroji, zatímco cíl DROP neposílá nic.
To může být užitečné např. pro službu identifikace. Pokud použijete REJECT, klienti nemusí čekat na časový limit.
Více o tomto:http://www.linuxtopia.org/Linux_Firewall_iptables/x4550.html
Řešení 3:
Obvykle chcete ignorovat sondy od útočníků k určitým portům, čímž myslím, že nechcete posílat zpět 'spojení odmítnuto'. 'Připojení odmítnuto' znamená:'zde je server' a možná poskytuje více informací, zatímco zahození paketu neprozradí informace o verzích softwaru, možných zranitelnostech nebo dokonce o skutečnosti, že server poslouchá vaši IP.
Výše uvedené je jedním z hlavních důvodů, proč používat DROP místo REJECT.
Řešení 4:
Vidím zde mnoho protichůdných odpovědí a vzhledem k tomu, že toto je první článek v Google se správnými klíčovými slovy; zde je správné vysvětlení.
Je to jednoduché:
DROP s paketem nedělá vůbec nic. Nedostane se přesměrován na hostitele, nedostane odpověď. Manuálová stránka IPtables říká, že paket upustí na podlahu, tj. s paketem nic nedělá.
REJECT se liší od DROP tím, že posílá paket zpět, ale odpověď je, jako by se server nacházel na IP, ale neměl port ve stavu naslouchání. IPtables odešle RST/ACK v případě, že TCP nebo UDP je cílový port ICMP nedostupný.
Řešení 5:
Pokud se snažíte zcela skrýt existenci svého počítače, -j DROP
je vhodné. Můžete to například použít k implementaci černé listiny.
Pokud se snažíte skrýt skutečnost, že je port otevřený, měli byste napodobit chování, které by nastalo, kdyby port otevřený nebyl:
- TCP:
-p tcp -j REJECT --reject-with tcp-reset
- UDP:
-p udp -j REJECT --reject-with icmp-port-unreachable
Pokud skener portů zjistí, že několik portů zahazuje pakety, zatímco většina je odmítá, může předpokládat, že zahozené pakety jsou na portech, které jsou otevřené, ale skryté.