# BlockHosts + iptables



## hahni (1. Apr. 2008)

Hallo zusammen,

scheinbar läuft bei mir BlockHosts jetzt wunschgemäß! Allerdings werden die Verbindungen, die geblockt wurden, zwar in iptables hinterlegt, aber eben nicht gänzlich geblockt. So ergibt "iptables --list blockhosts --numeric" folgende Ausgabe, nach der die IP gesperrt sein müsste! Ist aber nicht der Fall:

---
Chain blockhosts (1 references)
target     prot opt source               destination
DROP       all  --  79.209.106.127       0.0.0.0/0
---

Die Notify-E-Mail zeigt immer die "geblockte" IP an und diese wird zudem beobachtet. Allerdings zeigen die vielen weiteren Versuche, dass die IP nicht geblockt wird. Doch dies kann nichts mit BlockHosts zu tun haben, sondern der Wurm muss irgendwie in Verbindung mit iptables zu suchen sein, oder?

---
Blocking hosts:
  79.209.106.127 Watching hosts:
  79.209.106.127   count:   55   updated at:  2008-03-29 14:05:01 CET
 Log messages:
blockhosts 2.3.1 started: 2008-03-29 14:05:01 CET ... loaded /etc/hosts.allow, starting counts: blocked 1, watched 1 ... loading log file /var/log/auth.log, offset: 848868 ... loading log file /var/log/mail.err, offset: 39734 ... discarding all host entries older than 2008-03-29 02:05:01 CET
Notice: count=55, blocking host:  79.209.106.127  ... final counts: blocked 1, watched 1
---

Vielen Dank für Eure Überlegungen zu dieser Problematik!

Hahni


----------



## hahni (3. Apr. 2008)

Kann mir hier tatsächlich keiner helfen?

Auch Till und Falko nicht?  Immerhin kommt ja von Falko der Beitrag für die BlockHosts


----------



## Till (3. Apr. 2008)

Wie testest Du denn, ob die IP geblockt wird?


----------



## hahni (3. Apr. 2008)

Hallo Till,

schön von dir diesbezüglich zu hören! Eigentlich nach Hausfrauenmanier 

Ich logge mich via SSH einfach 3-5x falsch ein. Dann warte ich ein Weilchen, weil ja Falkos CronJob aller 5x die Datenbank bereinigt.

Doch ich könnte weitere Versuche starten und werde nicht geblockt. Dies sollte (so meine ich) mit meinen Einstellungen aber nicht möglich sein!


----------



## hahni (7. Apr. 2008)

iptables -L gibt übrigens folgendes zurück:

---
Chain INPUT (policy DROP)
target prot opt source destination
DROP  tcp -- anywhere 127.0.0.0/8
ACCEPT all -- anywhere anywhere state  RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
DROP all --  BASE-ADDRESS.MCAST.NET/4 anywhere
PUB_IN all -- anywhere anywhere
PUB_IN  all -- anywhere anywhere
PUB_IN all -- anywhere anywhere
PUB_IN all --  anywhere anywhere
DROP all -- anywhere anywhere
blockhosts all -- anywhere  anywhere

Chain FORWARD (policy DROP)
target prot opt source  destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
DROP  all -- anywhere anywhere

Chain INT_IN (0 references)
target prot opt  source destination
ACCEPT icmp -- anywhere anywhere
DROP all -- anywhere  anywhere

Chain INT_OUT (0 references)
target prot opt source  destination
ACCEPT icmp -- anywhere anywhere
ACCEPT all -- anywhere  anywhere

Chain OUTPUT (policy ACCEPT)
target prot opt source  destination
PUB_OUT all -- anywhere anywhere
PUB_OUT all -- anywhere  anywhere
PUB_OUT all -- anywhere anywhere
PUB_OUT all -- anywhere  anywhere

Chain PAROLE (11 references)
target prot opt source  destination
ACCEPT all -- anywhere anywhere

Chain PUB_IN (4  references)
target prot opt source destination
ACCEPT icmp -- anywhere  anywhere icmp destination-unreachable
ACCEPT icmp -- anywhere anywhere icmp  echo-reply
ACCEPT icmp -- anywhere anywhere icmp time-exceeded
ACCEPT icmp  -- anywhere anywhere icmp echo-request
PAROLE tcp -- anywhere anywhere tcp  dpt:ftp
PAROLE tcp -- anywhere anywhere tcp dpt:ssh
PAROLE tcp -- anywhere  anywhere tcp dpt:smtp
PAROLE tcp -- anywhere anywhere tcp  dpt:domain
PAROLE tcp -- anywhere anywhere tcp dpt:www
PAROLE tcp --  anywhere anywhere tcp dptop3
PAROLE tcp -- anywhere anywhere tcp  dpt:https
PAROLE tcp -- anywhere anywhere tcp dpt:10000
PAROLE tcp --  anywhere anywhere tcp dpt:22
PAROLE tcp -- anywhere anywhere tcp  dpt:mysql
ACCEPT udp -- anywhere anywhere udp dpt:domain
DROP icmp --  anywhere anywhere
DROP all -- anywhere anywhere

Chain PUB_OUT (4  references)
target prot opt source destination
ACCEPT all -- anywhere  anywhere

Chain blockhosts (1 references)
target prot opt source  destination
---


----------



## tom.1 (14. Apr. 2008)

In Deiner INPUT Chain steht die Regel  

blockhosts all -- anywhere  anywhere

deutlich zu weit unten. Da wo sie jetzt steht, kann sie keine Wirkung mehr entfalten, da schon mit der Regel davor (DROP all -- anywhere anywhere) sämtliche Pakete, die es überhaupt bis dorthin geschafft haben, verworfen werden.

Sofern man eine Firewall hat, die auf iptables basiert, muss man sich für benutzerdefinierte DROP-Listen einen sinnvollen Platz in der von der Firewall vorgegebenen Prüffolge suchen (ohne Firewall packt man sie einfach als erste Regel in die INPUT-Chain). Bei Dir wäre vor der ersten pub_in-Regel ein passender Platz. Da sind bis auf die Multicast-Pakete noch alle da und es ist noch nichts an irgendwelche Anwendungen weitergereicht worden.

Wie Du die Regel an einer bestimmten Stelle in einer Chain einfügst, steht im Manual (weiß ich jetzt nicht aus dem Kopf). Die anderen Regeln werden dadurch nach unten geschoben. 

Soweit es mir noch in Erinnerung ist, musst Du die Regel nach einem Neustart des Systems oder Firewall von Hand neu einfügen oder das Bastille-Script entsprechend ändern.


----------

