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
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
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.).
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.
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.
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.