webForumDet fria alternativet

Banna tillfälligt ip från ssh med iptables

Linux & BSD

10 svar · 782 visningar · startad av Jontto

Medlem sedan okt. 2001125 inlägg
Frågan#1

Hej!

Har en debian som ligger snällt och snurrar i all skens ro i skrubben dagarna i ända. Nu undrade jag om jag skulle göra ngt åt alla som försöker komma in via ssh på port 22 till servern (och givetvis inte har mycket där att göra).

Går det att med iptables kolla om samma ip försöker ta / tar kontakt typ 5 ggr på fem minuter, men inte kommer in och sedan banna den IP:n temporärt typ 30 min? Tanken var att dom inte skulle kunna slutföra sin påbörjade scan på dåliga lösen. Tror inte att ngn kommer in, men auth.log börjar bli lite fullt med sådant.

Ifall ngn vet svaret med ja/nej, så bra och ifall ngn t.o.m. har lite tips om kod, så ännu mera tjohej :birp

Inget annat nytt från öster,
Jontto

Medlem sedan dec. 19992 555 inlägg
#2

Följande rader tillåter 3 försök under en 60-sekundersperiod och spärrar efter det IP-adressen tills en minut har gått. Använder den själv med framgång. De flesta scriptkiddies ger upp efter tre inloggningsförsök.

iptables -A INPUT -p tcp -m state --state NEW --dport 22 -m recent --update --seconds 60 --hitcount 3 -j DROP
iptables -A INPUT -p tcp -m state --state NEW --dport 22 -m recent --set -j ACCEPT
Medlem sedan dec. 19992 555 inlägg
#3

Robban skrev:

Följande rader tillåter 3 försök under en 60-sekundersperiod och spärrar efter det IP-adressen tills en minut har gått. Använder den själv med framgång. De flesta scriptkiddies ger upp efter tre inloggningsförsök.

iptables -A INPUT -p tcp -m state --state NEW --dport 22 -m recent --update --seconds 60 --hitcount 3 -j DROP
iptables -A INPUT -p tcp -m state --state NEW --dport 22 -m recent --set -j ACCEPT

Du vill inte låsa ute en IP-adress för länge, för då öppnar du upp för en DoS-attack (att någon spoofar din IP-adress så att du blir utelåst från din egen server, t.ex.).

Medlem sedan okt. 2001125 inlägg
#4

tackar ska ta å testa

Medlem sedan okt. 2001125 inlägg
#5

har inte haft ngn som försökt komma in på servern nu på en stund, men märkte att när jag kör dessa så krånglar min putty till ssh oxå. När jag öppnat en terminal så får jag inte igång en till av ngn anledning. Detta trots att jag väntar länge och väl och inte skriver fel lösen...
Är det jag som inte vet vad jag håller på med?

Kan väl tillägga att nrä jag sedan flushar min iptables, så fungerar det ok. Flushade också före jag skrev ovannämnda kommandon.

// Jontto

Medlem sedan dec. 19992 555 inlägg
#6

Sorry. Ryckte bara ut raderna ur mitt iptables-skript utan att tänka. Det räcker inte med dessa två rader för att få ett fungerande iptables-skript. De använder stateful inspection så du måste ha med en rad liknande denna också:

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Denna rad släpper igenom redan etablerade anslutningar.

Medlem sedan okt. 2001125 inlägg
#7

Vill inte ännu heller ge en till terminal åt mig. Anslutningen timear out från min sida bara. En kommer igång nog och fungerar hur bra som helst.

Såhär ser det ut nu alltså.

# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
DROP       tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh recent: UPDATE seconds: 60 hit_count: 3 name: DEFAULT side: source
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh recent: SET name: DEFAULT side: source
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED

Chain FORWARD (policy DROP)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

MVH,
Jontto

Medlem sedan dec. 19992 555 inlägg
#8

Hmm, märkligt. Ser, efter vad jag kan avgöra, ut som hos mig (förutom att jag har policy DROP, men det borde inte inverka) och där fungerar det. Kan logga in 3 ggr från samma IP inom en 60-sekundersperiod men inloggningsförsök utöver det droppas.

Du kan ju tillfälligt byta ut -j DROP mot -j LOG. Borde ge lite information i loggarna om vad som händer.

recent-modulen finns f.ö. dokumenterad här:

http://www.netfilter.org/documentation/HOWTO//netfilter-extensions-HOWTO-3.html#ss3.16

Medlem sedan dec. 19992 555 inlägg
#9

Verkar som om ditt problem kan bero på en bugg i recent-modulen.

http://bugs.centos.org/view.php?id=1048

Medlem sedan okt. 2001125 inlägg
#10

Jo, har 2.6.8-2 på servern, så kanske man borde uppdatera.

Lite mera att läsa om ämnet:
http://blog.blackdown.de/2005/05/09/fixing-the-ipt_recent-netfilter-module/
samt
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=322237

Tack och adjö,
Jontto

Medlem sedan okt. 2001125 inlägg
#11

uppdaterade till 2.6.12 och där verkar det fungera.

Tackar robban!

254 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)