PDA

View Full Version : [iptables]difesa dall'attacco basato sui frammenti


toni00t
01-08-2015, 21:57
ciao in che modo secondo voi un packet filter può difendersi da un attacco basato sui frammenti ?
ho notato che bloccando i frammenti molto siti web sono lenti da navigare e perdo molta velocità nel download :
potreste mostrare quali regole iptables utilizzate per gestire i frammenti ?

Dane
01-08-2015, 22:17
- quale regola hai usato? Hai tolto solo quella?
- si tratta di regole sul firewall/router o sui singoli host?


hai provato a loggare o dumpare i pacchetti frammentati, tanto per capire che succede?

toni00t
02-08-2015, 07:28
- quale regola hai usato? Hai tolto solo quella?
- si tratta di regole sul firewall/router o sui singoli host?


hai provato a loggare o dumpare i pacchetti frammentati, tanto per capire che succede?

io ho semplicemente droppato i pacchetti sul singolo host ( e non sul router)

iptables -A INPUT -f -j DROP


la regola è messa in cima , subito dopo l'abilitazione del traffico locale e prima delle regole più specifiche

Dane
02-08-2015, 22:19
Un established,related l'hai messo sopra o sotto quella regola?


Comunque, sniffa un po' di traffico e cerca di capire che succede. La sparo, ma potresti anche avere qualche problema a monte del modem (xdsl, o quello che usi).

toni00t
03-08-2015, 07:25
ho trovato qualcosa nello specifico qui
http://digilander.libero.it/amilinux/doc/netfilter-20.html

la soluzione sembra essere abilitare nel kernel ip : always defragment
http://www.tldp.org/HOWTO/Divert-Sockets-mini-HOWTO-5.html

la soluzione però sembra proposta in una macchina che funge da router con il NAT : non avendola testata non la posso garantire ;
posso solo dire che droppando i frammenti bruscamente si riduce notevolmente la velocità in download-upload

The_ouroboros
11-08-2015, 11:21
#### ICMP
iptables -A INPUT -p icmp -m icmp --icmp-type address-mask-request -j DROP
iptables -A INPUT -p icmp -m icmp --icmp-type timestamp-request -j DROP
iptables -A INPUT -p icmp --fragment -j DROP
# Block fragmented ICMP.
# Allow incoming Path MTU Discovery (ICMP destination-unreachable/fragmentation-needed)
iptables -A INPUT -p icmp --icmp-type 3/4 -m state --state NEW -j ACCEPT
# Allow incoming request to decrease rate of sent packets (ICMP Source Quench)
iptables -A INPUT -p icmp --icmp-type 4 -m state --state NEW -j ACCEPT
# Allow and throttle incoming ping (ICMP Echo-Request).
iptables -A INPUT -p icmp --icmp-type 8 -m state --state NEW -m limit --limit 2/s --limit-burst 5 -j ACCEPT
# Drop invalid packets immediately
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
iptables -A OUTPUT -m state --state INVALID -j DROP
# Drop bogus TCP packets
iptables -A INPUT -p tcp -m tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
iptables -A INPUT -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A INPUT -p tcp -m tcp --tcp-flags RST RST -m limit --limit 2/second --limit-burst 2 -j ACCEPT


Questo di solito e' il mio setup generale.

toni00t
11-08-2015, 14:41
tu blocchi i frammenti icmp , mentre quelli a mio avviso realmente pericolosi sono i tcp

The_ouroboros
11-08-2015, 15:56
droppa anche quelli allora :)

Dane
11-08-2015, 16:21
infatti droppandoli ha problemi...

toni00t
11-08-2015, 17:07
infatti droppandoli ha problemi...
la soluzione è un router con NAT e un kernel compilato con l'opzione always defragment , in modo che al firewall arrivino sempre e solo i pacchetti interi

Dane
11-08-2015, 17:17
nei kernel recenti non è già un opzione di default?