# Fastd peer IP blacklisting am server/fastd.conf ?

**URL:** <https://forum.freifunk.net/t/fastd-peer-ip-blacklisting-am-server-fastd-conf/13212>\
**Category:** Technik\
**Created:** [4. August 2016 um 04:53 UTC](https://forum.freifunk.net/t/fastd-peer-ip-blacklisting-am-server-fastd-conf/13212 "2016-08-04T04:53:30Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![fuzzle](https://forum.freifunk.net/user_avatar/forum.freifunk.net/fuzzle/32/5599_2.png) [@fuzzle](https://forum.freifunk.net/u/fuzzle)\
**Post date:** [4. August 2016 um 04:53 UTC](https://forum.freifunk.net/t/fastd-peer-ip-blacklisting-am-server-fastd-conf/13212/1 "2016-08-04T04:53:30Z")

</div>

unter der annahme jemand hat einen validen fastd pubkey am server hinterlegt und dieser jemand versuht sich via einer ip xy mit dem server zu verbinden …

konkret : jemand versucht sich aus dem freifunknetz von uns (ffrl exit ip) mit einem fstd server von uns zu verbinden, so ein henne - ei ding – oder freifunk durch freifunk … macht keinen sinn

jemand sowas schon geschickt eingebaut … bspw. in die fastd.conf oder ähnliches … denke da über **on connect** und **$PEER\_ADDRESS** gegen eine **blacklist** zu checken  
danke für Hinweise

---

<div class="post-metadata">

**Author:** ![Comacho](https://forum.freifunk.net/user_avatar/forum.freifunk.net/comacho/32/6820_2.png) [@Comacho](https://forum.freifunk.net/u/Comacho)\
**Post date:** [4. August 2016 um 08:00 UTC](https://forum.freifunk.net/t/fastd-peer-ip-blacklisting-am-server-fastd-conf/13212/2 "2016-08-04T08:00:21Z")

</div>

iptables -A INPUT -p udp --dport {fastD-port} -s {ffrl-exit-ip} -j DROP

warum so kompliziert?

---

<div class="post-metadata">

**Author:** ![fuzzle](https://forum.freifunk.net/user_avatar/forum.freifunk.net/fuzzle/32/5599_2.png) [@fuzzle](https://forum.freifunk.net/u/fuzzle)\
**Post date:** [4. August 2016 um 08:02 UTC](https://forum.freifunk.net/t/fastd-peer-ip-blacklisting-am-server-fastd-conf/13212/3 "2016-08-04T08:02:24Z")

</div>

ja dacht ich mir auch, aber zu sehen welcher key das versucht is schon auch spannend, hilft beim debuggen vor ort

---

<div class="post-metadata">

**Author:** ![steneu](https://forum.freifunk.net/user_avatar/forum.freifunk.net/steneu/32/1397_2.png) [@steneu](https://forum.freifunk.net/u/steneu)\
**Post date:** [4. August 2016 um 09:25 UTC](https://forum.freifunk.net/t/fastd-peer-ip-blacklisting-am-server-fastd-conf/13212/4 "2016-08-04T09:25:46Z")

</div>

Ich hab das mal irgendwo gesehen und bei mir so eingebaut:

```
on verify "fastd-blacklist.sh $PEER_KEY"; #alle keys die nicht auf der blacklist stehen sind erlaubt
#on verify "true"; #alle keys sind erlaubt (blacklist wird nicht genutzt)
#on verify "false"; #nur eingetragene keys sind erlaubt

```

und die fastd-blacklist.sh sieht so aus:

```
#!/bin/bash
PEER_KEY=$1

if /bin/grep -Fq $PEER_KEY /etc/fastd/fastd-blacklist.json; then
   exit 1
else
   exit 0
fi

```

und noch die fastd-blacklist.json

```
{
  "peers": 
  [
    {
      "pubkey": "78a61042764d1f3dae43c48a0978eaf6f8768fd1b263e27bf7299f6d47f66ac0",
      "comment": "dummy eintrag"
    },
    {
      "pubkey": "418cbe17f3214abfaba7f23d67ea21ac0d521b19d0abc532e139bb7904187501",
      "comment": "dummy eintrag"
    }
  ]
}

```

---

<div class="post-metadata">

**Author:** ![fuzzle](https://forum.freifunk.net/user_avatar/forum.freifunk.net/fuzzle/32/5599_2.png) [@fuzzle](https://forum.freifunk.net/u/fuzzle)\
**Post date:** [4. August 2016 um 10:52 UTC](https://forum.freifunk.net/t/fastd-peer-ip-blacklisting-am-server-fastd-conf/13212/5 "2016-08-04T10:52:51Z")

</div>

@steneu … und der exitwert != 0 im onverify führt dann dazu das das einloggen nicht klappt ?

---

<div class="post-metadata">

**Author:** ![adorfer](https://forum.freifunk.net/user_avatar/forum.freifunk.net/adorfer/32/17910_2.png) [@adorfer](https://forum.freifunk.net/u/adorfer)\
**Post date:** [4. August 2016 um 15:37 UTC](https://forum.freifunk.net/t/fastd-peer-ip-blacklisting-am-server-fastd-conf/13212/6 "2016-08-04T15:37:28Z")

</div>

> [@fuzzle](#):
>
> und der exitwert != 0 im onverify führt dann dazu das das einloggen nicht klappt ?

Das gezeigte Script kann nur 0 oder 1 zurückliefern.  
Aber Rückgabewert von „false“ sollten meiner Ansicht nach auch funktionieren.  
Ein nicht vorhandenes Script oder eine nicht vorhandene blacklist-Datei führt ebenso zu „niemand kommt herein.“

---

<div class="post-metadata">

**Author:** ![anon68922371](https://forum.freifunk.net/letter_avatar_proxy/v4/letter/a/8491ac/32.png) [@anon68922371](https://forum.freifunk.net/u/anon68922371)\
**Post date:** [22. Mai 2017 um 23:21 UTC](https://forum.freifunk.net/t/fastd-peer-ip-blacklisting-am-server-fastd-conf/13212/7 "2017-05-22T23:21:30Z")

</div>

Lassen sich auch alle Keys blacklisten, die in einem peers Ordner liegen?

Ich möchte auf einem GW nur Verbindungen von Knoten erlauben die nicht im Netz registriert sind.

---

<div class="post-metadata">

**Author:** ![adorfer](https://forum.freifunk.net/user_avatar/forum.freifunk.net/adorfer/32/17910_2.png) [@adorfer](https://forum.freifunk.net/u/adorfer)\
**Post date:** [23. Mai 2017 um 00:45 UTC](https://forum.freifunk.net/t/fastd-peer-ip-blacklisting-am-server-fastd-conf/13212/8 "2017-05-23T00:45:12Z")

</div>

> [@anon68922371](#):
>
> Lassen sich auch alle Keys blacklisten, die in einem peers Ordner liegen?

Du rufst ein Shellscript auf.  
Und wenn das mit einem Code ungleich 0 zurückkommt, dann fliegt der Client beim Fastd kommentarlos raus.

Sprich: Was Du da mit der shellscript machst, das sei Dir überlassen. Entweder lustige grep-Einzeiler, oder eben was python oder awk so hergeben.

---

<div class="post-metadata">

**Author:** ![anon68922371](https://forum.freifunk.net/letter_avatar_proxy/v4/letter/a/8491ac/32.png) [@anon68922371](https://forum.freifunk.net/u/anon68922371)\
**Post date:** [23. Mai 2017 um 06:58 UTC](https://forum.freifunk.net/t/fastd-peer-ip-blacklisting-am-server-fastd-conf/13212/9 "2017-05-23T06:58:47Z")

</div>

Jo wie das hier funktioniert hatte ich gesehen. Das Problem dabei ist ich müsste erstmal 1200 Keys in die Json bringen.

Daher die Frage, ob man mit so einfach Blacklisten kann wie man peers inkludiert.

---

<div class="post-metadata">

**Author:** ![adorfer](https://forum.freifunk.net/user_avatar/forum.freifunk.net/adorfer/32/17910_2.png) [@adorfer](https://forum.freifunk.net/u/adorfer)\
**Post date:** [23. Mai 2017 um 12:17 UTC](https://forum.freifunk.net/t/fastd-peer-ip-blacklisting-am-server-fastd-conf/13212/10 "2017-05-23T12:17:54Z")

</div>

> [@anon68922371](#):
>
> Das Problem dabei ist ich müsste erstmal 1200 Keys in die Json bringen.

Es muss doch kein json sein, eine beliebige Ascii-Liste reicht auch.  
Du kannst ja durchaus einen find/exec/grep machen.

---

<div class="post-metadata">

**Author:** ![rotanid](https://forum.freifunk.net/letter_avatar_proxy/v4/letter/r/3ec8ea/32.png) [@rotanid](https://forum.freifunk.net/u/rotanid)\
**Post date:** [25. Mai 2017 um 00:59 UTC](https://forum.freifunk.net/t/fastd-peer-ip-blacklisting-am-server-fastd-conf/13212/11 "2017-05-25T00:59:20Z")

</div>

> <https://gist.github.com/rotanid/489075e72472fafa9a209e0313aee9d7>

in der Datei dann eine Liste der fastd keys (mit beliebigem Text dahinter, z.B. als Kommentar)

---

<div class="post-metadata">

**Author:** ![adorfer](https://forum.freifunk.net/user_avatar/forum.freifunk.net/adorfer/32/17910_2.png) [@adorfer](https://forum.freifunk.net/u/adorfer)\
**Post date:** [25. Mai 2017 um 01:04 UTC](https://forum.freifunk.net/t/fastd-peer-ip-blacklisting-am-server-fastd-conf/13212/12 "2017-05-25T01:04:48Z")

</div>

@anon68922371  
Falls es nicht passen sollte, dann beschreibe mal, was Du da GENAU hast. Also ein Verzeichnis. Oder eine Gruppe von Dateien, die zu einem Wildcard passen o.ä.

---

<div class="post-metadata">

**Author:** ![rubo77](https://forum.freifunk.net/user_avatar/forum.freifunk.net/rubo77/32/799_2.png) [@rubo77](https://forum.freifunk.net/u/rubo77)\
**Post date:** [1. Februar 2018 um 13:57 UTC](https://forum.freifunk.net/t/fastd-peer-ip-blacklisting-am-server-fastd-conf/13212/13 "2018-02-01T13:57:02Z")

</div>

habe das mal in ein update script gepackt, das man auf einem gateway einfach ausführen kann:

```auto
FASTDPATH=/etc/fastd/ffnord-mvpn

cat >>/etc/fastd/fastd-blacklist.sh << EOF
#!/bin/bash
  PEER_KEY=$1
  if /bin/grep -Fq $PEER_KEY /etc/fastd/fastd-blacklist.json; then
       exit 1
  else
       exit 0
  fi
EOF

chmod +x /etc/fastd/fastd-blacklist.sh
rm /etc/fastd/fastd-blacklist.json
cat >>/etc/fastd/fastd-blacklist.json<< EOF
{
  "peers": 
  [
    {
      "pubkey": "78a61042764d1f3dae43c48a0978eaf6f8768fd1b263e27bf7299f6d47f66ac0",
      "comment": "dummy eintrag"
    },
    {
      "pubkey": "78a61042764d1f3dae43c48a0978eaf6f8768fd1b263e27bf7299f6d47f66ac0",
      "comment": "dummy eintrag"
    },
   
  ]
}
EOF

sed -i 's~on verify "true";~on verify "/etc/fastd/fastd-blacklist.sh $PEER_KEY";~g' $FASTDPATH/fastd.conf

service fastd stop
service fastd start

```

---

<div class="post-metadata">

**Author:** ![adorfer](https://forum.freifunk.net/user_avatar/forum.freifunk.net/adorfer/32/17910_2.png) [@adorfer](https://forum.freifunk.net/u/adorfer)\
**Post date:** [1. Februar 2018 um 14:56 UTC](https://forum.freifunk.net/t/fastd-peer-ip-blacklisting-am-server-fastd-conf/13212/14 "2018-02-01T14:56:58Z")

</div>

Das ist ja das übliche Verfahren. Aber warum eigentlich als json?  
(Das frage ich mich schon seit Jahren…)  
Wenn man da eh nur „blöde“ durchgrept zeilenweise, warum dann nicht einfach nur CSV oder html…  
Also im Ernst: aus welcher Toolchain bekommt man das so als json, dass man das dann per Cut&Paste da hineinfallen lassen könnte?

---

<div class="post-metadata">

**Author:** ![MisterCrumble](https://forum.freifunk.net/letter_avatar_proxy/v4/letter/m/f1d935/32.png) [@MisterCrumble](https://forum.freifunk.net/u/MisterCrumble)\
**Post date:** [1. Februar 2018 um 15:45 UTC](https://forum.freifunk.net/t/fastd-peer-ip-blacklisting-am-server-fastd-conf/13212/15 "2018-02-01T15:45:55Z")

</div>

hallo,

wenn du ein script hast das dir neigbours aus einer alfred.json rausparst als bsp
