DSM 6.x und darunter Freigabe/Blockierliste automatisch updaten

Alle DSM Version von DSM 6.x und älter

ClearEyetemAA55

Benutzer
Mitglied seit
14. Apr 2018
Beiträge
272
Punkte für Reaktionen
4
Punkte
18
Hallo,

ich habe mir überlegt eine Blocklist in DSM zu importieren (Systemsteuerung-Sicherheit-Konto-Freigabe/Blockierliste).
Das ist auch soweit kein Problem, aber..

schöner fände ich es, wenn die Datei mit den importierten Listen in schöner Regelmäßigkeit automatisch erneuert und importiert würde. Da hätte ich, ehrlich gesagt, auch mehr Funktionsvielfalt von Synology erwartet. Das vorgehen wäre evtl. so: .txt mit den Blockierungen auf DS ablegen, regelmäßig automatisch erneuern lassen und automatisch in DSM importieren. Nur wie?

TLDR
1. Habt ihr Empfehlungen für Blocklisten? Eine schnelle Recherche ergab zB.:
https://mariushosting.com/wp-content/uploads/2019/09/deny-ip-list.txt

2. Gibt es ein Skript oder einen CMD für den Aufgabenplaner der regelmässig eine Datei downloaded/erneuert, und

3. Gibt es einen CMD der die Blockierliste in DSM erneuert?

EDIT:
https://www.synology-forum.de/showthread.html?80679-Automatischer-Import-einer-Blockliste
 

ClearEyetemAA55

Benutzer
Mitglied seit
14. Apr 2018
Beiträge
272
Punkte für Reaktionen
4
Punkte
18
Hmm,

mit dem Code aus dem Link erhalte ich beim ausführen des Skripts folgenden Hinweis:
Code:
Error: table AutoblockIP has 7 Columns but 5 values are were supplied

Die 5 values werden dann wohl Folgende sein
PHP:
INSERT=`sqlite3 /etc/synoautoblock.db "INSERT INTO AutoBlockIP VALUES ('$BLOCKED_IP','$UNIXTIME','$UNIXTIME_DELETE_IP','1','$IPv6')"`

Die synoautoblock.db enthält tatsächlich
TypDaten (Bsp)
IP167.99.66.83
RecordTime1568792885
ExpireTime0
Deny1
IPStd0000:0000:0000:0000:0000:FFFF:A763:4253
Type0
MetaNULL
 
Zuletzt bearbeitet:

AndiHeitzer

Benutzer
Sehr erfahren
Mitglied seit
30. Jun 2015
Beiträge
3.214
Punkte für Reaktionen
503
Punkte
174
Ich hab mir das heute auch angeschaut und hatte anfänglich die gleichen 'Fehler'.
Es werden daher keine Datensätze geschrieben, folglich auch nix in der Konfig geändert.

Ich bin, so wie Du, direkt in die Datenbank rein und habe mir die Definition angesehen. Es gibt tatsächlich sieben Spalten und nicht nur fünf!

Daher habe ich oben im Script ergänzt:
PHP:
# ADD further Vars for DB
TYPE=0
META='Nur Metainfo'

Die INSERT-Zeile habe ich dann wie folgt ergänzt:
PHP:
INSERT=`sqlite3 /etc/synoautoblock.db "INSERT INTO AutoBlockIP VALUES ('$BLOCKED_IP','$UNIXTIME','$UNIXTIME_DELETE_IP','1','$IPv6','$TYPE','$META')"`

Und schwups, haben sich rund 1096 neue Einträge hinzugesellt :eek:
 

ClearEyetemAA55

Benutzer
Mitglied seit
14. Apr 2018
Beiträge
272
Punkte für Reaktionen
4
Punkte
18
Like this?

PHP:
#!/bin/ash 
# 
# version 0.1 
# Script import IP's from blocklist.de 
# by Ruedi61, 15.11.2016
# DSM 6.0.3 AutoBlockIP Table: 
# CREATE TABLE AutoBlockIP(IP varchar(50) PRIMARY KEY,RecordTime date NOT NULL,ExpireTime date NOT NULL,Deny boolean NOT NULL,IPStd varchr(50) NOT NULL); 
  
# version 0.2  
# by AndiHeitzer, 18.09.2019 
# DSM 6.2.1 AutoBlockIP 
# ADD further Vars for DB
TYPE=0
META='Nur Metainfo' 

# Download from www.blocklist.de 
# Select Typ: {all} {ssh} {mail} {apache} {imap} {ftp} {sip} {bots} {strongips} {ircbot} {bruteforcelogin} 
BLOCKLIST_TYP="bruteforcelogin" 

# Delete IP after x Day's OR use 0 for permanent block 
DELETE_IP_AFTER="1"  

# Show Time this Script need at the bottom; 0=no 1=yes 
SHOW_TIME="0" 


############################################################################################################### 
# Do NOT change after here 
UNIXTIME=`date +%s` 
UNIXTIME_DELETE_IP=`date -d "+$DELETE_IP_AFTER days" +%s` 
wget -q "https://lists.blocklist.de/lists/$BLOCKLIST_TYP.txt" -O /tmp/blocklist.txt 

cat "/tmp/blocklist.txt" | while read BLOCKED_IP 
do 
    # Check if IP valid 
    VALID_IPv4=`echo "$BLOCKED_IP" | grep -Eo "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$" | wc -l` 

    if [[ $VALID_IPv4 -eq 1 ]]; then 
        # Convert IPv4 to IPv6 :) 
        IPv4=`echo $BLOCKED_IP | sed 's/\./ /g'` 
        IPv6=`printf "0000:0000:0000:0000:0000:FFFF:%02X%02X:%02X%02X" $IPv4` 
        CHECK_IF_EXISTS=`sqlite3 /etc/synoautoblock.db "SELECT DENY FROM AutoBlockIP WHERE IP = '$BLOCKED_IP'" | wc -l` 
        if [[ $CHECK_IF_EXISTS -lt 1 ]]; then 
            INSERT=`sqlite3 /etc/synoautoblock.db "INSERT INTO AutoBlockIP VALUES ('$BLOCKED_IP','$UNIXTIME','$UNIXTIME_DELETE_IP','1','$IPv6','$TYPE','$META')"` 
            echo "IP added to Database!   -->  $BLOCKED_IP" 
        else 
            echo "IP already in Database! -->  $BLOCKED_IP" 
        fi 
    fi 
done 

rm /tmp/blocklist.txt 

if [[ $SHOW_TIME -eq 1 ]]; then 
    END=`date +%s` 
    RUNTIME=$((END-UNIXTIME)) 
    echo "Finish after $RUNTIME Seconds" 
fi 
exit 0


Und Ausführung dann wie? per Aufgabenplaner 3xdie Woche?
Code:
/usr/local/bin/blocklist.sh &
 
Zuletzt bearbeitet:

AndiHeitzer

Benutzer
Sehr erfahren
Mitglied seit
30. Jun 2015
Beiträge
3.214
Punkte für Reaktionen
503
Punkte
174
Ja, so habe ich das bei mir auch :eek:
 

ClearEyetemAA55

Benutzer
Mitglied seit
14. Apr 2018
Beiträge
272
Punkte für Reaktionen
4
Punkte
18
ja, das geht wohl, aber... :confused:

schaut dann ssh-teminal so aus:
Code:
@Diskstation:~$ sudo /usr/local/bin/blocklist.sh &
[1] 31373
@Diskstation:~$ 
Redirecting output to '[B]wget-log.1[/B]'.
IP added to Database!   -->  1.179.137.10
IP added to Database!   -->  1.199.30.123
IP added to Database!   -->  1.255.70.114
IP added to Database!   -->  1.255.70.86
IP added to Database!   -->  100.24.24.172
[...]
IP added to Database!   -->  98.143.146.166
IP added to Database!   -->  98.143.147.14

und erst nachdem ich ENTER drücke folgt:
Code:
[1]+  Done                    sudo /usr/local/bin/blocklist.sh
@Diskstation:~$

Außerdem, wo finde ich wget-log.1 und wieviele dieser Dateien werde ich dort mit der Zeit finden?
 

AndiHeitzer

Benutzer
Sehr erfahren
Mitglied seit
30. Jun 2015
Beiträge
3.214
Punkte für Reaktionen
503
Punkte
174
Auf der Konsole dann:
PHP:
sqlite3 /etc/synoautoblock.db "select * from AutoBlockIP;"

Ergibt dann den Inhalt der Datenbank.
bl.jpg
Nicht erschrecken über die 192.168....., ich fülle auch die ALLOWLIST in gleicher weise, das ist den mehreren SYNOs und dem CMS geschuldet.

Visuell kannst das dann hier einsehen:
blocklist.jpg
 

ClearEyetemAA55

Benutzer
Mitglied seit
14. Apr 2018
Beiträge
272
Punkte für Reaktionen
4
Punkte
18
Das die Liste importiert wird, steht ausser Frage (visuell als auch per shell-cmd gecheckt). Ich habe nur den Verdacht geäussert das "Prozess" des Imports nicht sauber terminiert wird. Und beobachtet das mir diese wget-logdateien /usr/local/bin/ fluten
 
Zuletzt bearbeitet:

AndiHeitzer

Benutzer
Sehr erfahren
Mitglied seit
30. Jun 2015
Beiträge
3.214
Punkte für Reaktionen
503
Punkte
174
Puhhh ... da kann ich nix dazu sagen, was bei Dir da anders ist, als bei mir ...

Daher einfach mal das Script, dass bei mir anstandslos rennt:
Rich (BBCode):
#!/bin/ash
################################################################################
# Job creates WHITELIST/BLOCKLIST
################################################################################
# Gefunden: https://www.synology-forum.de/showthread.html?80679-Automatischer-Import-einer-Blockliste&p=668935&viewfull=1#post668935
################################################################################

# version 0.1
# Script import IP's from blocklist.de
# by Ruedi61, 15.11.2016
#
# DSM 6.0.3 AutoBlockIP Table:
# CREATE TABLE AutoBlockIP(IP varchar(50) PRIMARY KEY,RecordTime date NOT NULL,ExpireTime date NOT NULL,Deny boolean NOT NULL,IPStd varchr(50) NOT NULL,Type INTEGER,Meta varchar(256));

##### Setting Variables
export LOGFILE=/volume1/_WARTUNGS-LOGS_/aktuelle_aufgabe_ablauf.txt
export dateiname=$(basename "$0")
export HOSTNAME="$(hostname)"

date +"[%Y%m%d - %H%M%S] ${dateiname} - BEGINN">>$LOGFILE

# Download from www.blocklist.de
# Select Typ: {all} {ssh} {mail} {apache} {imap} {ftp} {sip} {bots} {strongips} {ircbot} {bruteforcelogin}
# List of Type see here: https://lists.blocklist.de/lists/
BLOCKLIST_TYP="bruteforcelogin"

# Delete IP after x Day's OR use 0 for permanent block
DELETE_IP_AFTER="1" 

# ADD further Vars for DB, because Columns differs from original Script
TYPE=0
META='Nur Metainfo'

# Show Time this Script need at the bottom; 0=no 1=yes
SHOW_TIME="0"

###############################################################################################################
# Inserting WHITELIST from own TEXTFILE
UNIXTIME=`date +%s`
UNIXTIME_DELETE_IP=`date -d "+$DELETE_IP_AFTER days" +%s`

cat "/volume1/_WARTUNGS-SCRIPTE_/autoblock__allow-list.txt" | while read ALLOWED_IP
do
  # Check if IP valid
  VALID_IPv4=`echo "$ALLOWED_IP" | grep -Eo "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$" | wc -l`
  
  if [[ $VALID_IPv4 -eq 1 ]]; then
    # Convert IPv4 to IPv6 :)
    IPv4=`echo $ALLOWED_IP | sed 's/\./ /g'`
    IPv6=`printf "0000:0000:0000:0000:0000:FFFF:%02X%02X:%02X%02X" $IPv4`
    CHECK_IF_EXISTS=`sqlite3 /etc/synoautoblock.db "SELECT DENY FROM AutoBlockIP WHERE IP = '$ALLOWED_IP'" | wc -l`
    if [[ $CHECK_IF_EXISTS -lt 1 ]]; then
      INSERT=`sqlite3 /etc/synoautoblock.db "INSERT INTO AutoBlockIP VALUES ('$ALLOWED_IP','$UNIXTIME','$UNIXTIME_DELETE_IP','0','$IPv6','$TYPE','$META')"`
      echo "IP added to Database as allow!   -->  $ALLOWED_IP"
    else
      echo "IP already in Database as allow! -->  $ALLOWED_IP"
    fi
  fi
done

###############################################################################################################
# Inserting BLOCKLIST from 'blocklist.de'
UNIXTIME=`date +%s`
UNIXTIME_DELETE_IP=`date -d "+$DELETE_IP_AFTER days" +%s`
wget -q "https://lists.blocklist.de/lists/$BLOCKLIST_TYP.txt" -O /volume1/_WARTUNGS-SCRIPTE_/autoblock__block-list__$HOSTNAME.txt

cat "/volume1/_WARTUNGS-SCRIPTE_/autoblock__block-list__$HOSTNAME.txt" | while read BLOCKED_IP
do
  # Check if IP valid
  VALID_IPv4=`echo "$BLOCKED_IP" | grep -Eo "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$" | wc -l`
  
  if [[ $VALID_IPv4 -eq 1 ]]; then
    # Convert IPv4 to IPv6 :)
    IPv4=`echo $BLOCKED_IP | sed 's/\./ /g'`
    IPv6=`printf "0000:0000:0000:0000:0000:FFFF:%02X%02X:%02X%02X" $IPv4`
    CHECK_IF_EXISTS=`sqlite3 /etc/synoautoblock.db "SELECT DENY FROM AutoBlockIP WHERE IP = '$BLOCKED_IP'" | wc -l`
    if [[ $CHECK_IF_EXISTS -lt 1 ]]; then
      INSERT=`sqlite3 /etc/synoautoblock.db "INSERT INTO AutoBlockIP VALUES ('$BLOCKED_IP','$UNIXTIME','$UNIXTIME_DELETE_IP','1','$IPv6','$TYPE','$META')"`
      echo "IP added to Database as deny!   -->  $BLOCKED_IP"
    else
      echo "IP already in Database as deny! -->  $BLOCKED_IP"
    fi
  fi
done


if [[ $SHOW_TIME -eq 1 ]]; then
  END=`date +%s`
  RUNTIME=$((END-UNIXTIME))
  echo "Finish after $RUNTIME Seconds"
fi

date +"[%Y%m%d - %H%M%S] ${dateiname} - ENDE">>$LOGFILE

exit 0

Vielleicht hilft Dir das weiter?
 

ClearEyetemAA55

Benutzer
Mitglied seit
14. Apr 2018
Beiträge
272
Punkte für Reaktionen
4
Punkte
18
Nach Anpassung der Nutzer/Gruppe und Zugriffsrechte mit chmod,chown bin ich zumindest die wget-logs los.
Sehr erfreulich..

Dein Script ist natürlich auch nicht schlecht. Ersetzt ja fast schon die Firewall..
 

AndiHeitzer

Benutzer
Sehr erfahren
Mitglied seit
30. Jun 2015
Beiträge
3.214
Punkte für Reaktionen
503
Punkte
174
Nach Anpassung der Nutzer/Gruppe und Zugriffsrechte mit chmod,chown bin ich zumindest die wget-logs los.

Nur, damit ich u.U. sicher bin. Das Script hast Du schon immer als ROOT laufen lassen?
Wenn nicht, dann 'klemmt' es latürnich.

Dein Script ist natürlich auch nicht schlecht. Ersetzt ja fast schon die Firewall..

Nuja, nur gut 'ausgeliehen'.
Das Original habe ich hier gefunden:
https://www.synology-forum.de/showt...ner-Blockliste&p=668935&viewfull=1#post668935
Keine Ahnung, warum der User 'Ruedi61' gesperrt ist, dem gebührt Dein Dank :eek:

Ich hab's lediglich auf meine Bedürfnisse und die aktuelle Datenbankstruktur angepasst/ergänzt.
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.371
Punkte für Reaktionen
1.188
Punkte
234
Hallo zusammen,

sehr schöne Idee, die ich erst jetzt gesehen habe.

Die einzigen fehlgeschlagenen Loginversuche stammen bei mir vom Mailserver (dessen Ports kann ich ja schlecht verbiegen). Entsprechende IPs konnte ich aber in der 'bruteforcelogin'-Liste nicht finden, sondern nur in mail.txt, bzw. all.txt. Also nutze ich die 'all'-Liste. Diese hat aber über 30.000 Einträge. Aufgrund dieser Größe hat der initiale Import ~1,5 Stunden gedauert. Der tägliche Run dann ~10 bis 15 Minuten. Weil mir das immer noch zu lange war (jede IP wurde ja einzeln auf Vorhandensein in der DB geprüft), habe ich das Skript etwas modifiziert:
  1. zunächst exportiere ich die vorhandene DB in eine Textdatei,
  2. lade dann die Onlineliste und
  3. erstelle mit diff eine Liste, die lediglich die fehlenden IPs enthält, welche ich dann wie gewohnt über die Schleife einpflege.
Das Ganze dauert dann nur noch wenige Sekunden und lasse ich stündlich laufen.

… Und Ausführung dann wie? per Aufgabenplaner 3xdie Woche?…
Bei einer Ablaufzeit von EINEM Tag wie in deinem Skript, würde ich es auch täglich laufen lassen, sonst stehst du ja 4 Tage die Woche mit leerer Blocklist da.

Rich (BBCode):
#!/bin/sh
# Script import IP's from blocklist.de 
#
# version 0.1 by Ruedi61,       15.11.2016 / DSM 6.0.3
# version 0.2 by AndiHeitzer,   18.09.2019 / DSM 6.2.1 > add further Vars for DB
# version 0.3 by geimist,       20.09.2019 / DSM 6.2.2 > add Stats / Loglevel / speed improvement

# Deny=1 > Blacklist / Deny=0 > Whitelist
Deny=1

# Download from www.blocklist.de | Select Typ: {all} {ssh} {mail} {apache} {imap} {ftp} {sip} {bots} {strongips} {ircbot} {bruteforcelogin} 
BLOCKLIST_TYP="all" 

# Delete IP after x Day's OR use 0 for permanent block 
DELETE_IP_AFTER="7"  

# Loglevel 1: Show Stats at the bottom / Loglevel 2: Show all / Loglevel 0: disable
LOGLEVEL=1

TYPE=0 
META='' 

############################################################################################################### 
# Do NOT change after here!

# SQL Create-Statement for restore:
# 'CREATE TABLE AutoBlockIP(IP varchar(50) PRIMARY KEY,RecordTime date NOT NULL,ExpireTime date NOT NULL,Deny boolean NOT NULL,IPStd varchr(50) NOT NULL,Type INTEGER,Meta varchar(256))'
if [ $(whoami) != "root" ]; then
    echo "WARNING: this script must run from root!" >&2
    exit 1
fi
    
countadded=0
countskipped=0
UNIXTIME=$(date +%s)
UNIXTIME_DELETE_IP=$(date -d "+$DELETE_IP_AFTER days" +%s) 
# current IP-list:
sqlite3 -header -csv /etc/synoautoblock.db "select IP FROM AutoBlockIP WHERE Deny='1' ORDER BY 'IP' ASC;" | sed -e '1d' | sort > /tmp/before.txt
# load online IP-list:
curl -s "https://lists.blocklist.de/lists/${BLOCKLIST_TYP}.txt" | sort > /tmp/onlinelist.txt
# filter diffs:
diff "/tmp/before.txt" "/tmp/onlinelist.txt" | grep '^>' | sed -e 's/> //' > /tmp/blocklist.txt  # only diffs from left to right
# stats …
IPcountdiffs=$(cat "/tmp/blocklist.txt" | grep -Eo "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$" | wc -l)
IPcountList=$(cat "/tmp/onlinelist.txt" | grep -Eo "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$" | wc -l)

while read BLOCKED_IP 
    do 
        # Check if IP valid 
        VALID_IPv4=$(echo "$BLOCKED_IP" | grep -Eo "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$" | wc -l) 
    
        if [[ $VALID_IPv4 -eq 1 ]]; then 
            # Convert IPv4 to IPv6 :) 
            IPv4=$(echo $BLOCKED_IP | sed 's/\./ /g')
            IPv6=$(printf "0000:0000:0000:0000:0000:FFFF:%02X%02X:%02X%02X" $IPv4)
            CHECK_IF_EXISTS=$(sqlite3 /etc/synoautoblock.db "SELECT DENY FROM AutoBlockIP WHERE IP = '$BLOCKED_IP'" | wc -l)
            if [[ $CHECK_IF_EXISTS -lt 1 ]]; then 
                INSERT=$(sqlite3 /etc/synoautoblock.db "INSERT INTO AutoBlockIP VALUES ('$BLOCKED_IP','$UNIXTIME','$UNIXTIME_DELETE_IP','$Deny','$IPv6','$TYPE','$META')")
                countadded=$(( $countadded + 1 ))
                if [[ $LOGLEVEL -eq 2 ]]; then 
                    echo "IP added to Database!    -->  $BLOCKED_IP" 
                elif [[ $LOGLEVEL -eq 1 ]]; then
                    echo -n "."
                fi
            else 
                countskipped=$(( $countskipped + 1 ))
                if [[ $LOGLEVEL -eq 2 ]]; then
                    echo "IP already in Database!  -->  $BLOCKED_IP" 
                elif [[ $LOGLEVEL -eq 1 ]]; then
                    echo -n "."
                fi
            fi 
        fi 
    done < /tmp/blocklist.txt

rm /tmp/blocklist.txt 
rm /tmp/before.txt
rm /tmp/onlinelist.txt

if [[ $LOGLEVEL -eq 1 ]] || [[ $LOGLEVEL -eq 2 ]]; then 
    END=$(date +%s) 
    RUNTIME=$((END-UNIXTIME)) 
    echo -e
    echo "duration of the process:      $RUNTIME Seconds" 
    echo "count of IPs in list:         $IPcountList"
    echo "count of diffs:               $IPcountdiffs"
    echo "added IPs:                    $countadded"
    echo "skipped IPs:                  $countskipped"
    echo "count of blocked IPs:         $(sqlite3 /etc/synoautoblock.db "SELECT count(IP) FROM AutoBlockIP WHERE Deny='1' " )"
fi 

exit 0

Auf der Konsole dann:
PHP:
sqlite3 /etc/synoautoblock.db "select * from AutoBlockIP;"
Ergibt dann den Inhalt der Datenbank.
Nicht erschrecken über die 192.168....., ich fülle auch die ALLOWLIST in gleicher weise, das ist den mehreren SYNOs und dem CMS geschuldet. …
Mach diesen:
Rich (BBCode):
sqlite3 /etc/synoautoblock.db "select * from AutoBlockIP WHERE TYPE='0' ;"

… Keine Ahnung, warum der User 'Ruedi61' gesperrt ist, dem gebührt Dein Dank :eek:
guckst du hier: https://www.synology-forum.de/showt...ine-ACCOUNT!!!&p=751825&viewfull=1#post751825
 
Zuletzt bearbeitet:

AndiHeitzer

Benutzer
Sehr erfahren
Mitglied seit
30. Jun 2015
Beiträge
3.214
Punkte für Reaktionen
503
Punkte
174
Mach diesen:
Rich (BBCode):
sqlite3 /etc/synoautoblock.db "select * from AutoBlockIP WHERE TYPE='0' ;"

Danke für den Hinweis, ich hätte dafür rumsuchen müssen.
SQLITE ist nicht so mein Ding, bin beruflich in MSSQL und MySQL unterwegs :eek:
Scheint aber nicht sooo weit weg von meinen Erfahrungen zu sein.


Oha ...

Ansonsten, danke für Deinen Codeschnippsel, ich hab mir den mal auf die Seite gelegt :)
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.371
Punkte für Reaktionen
1.188
Punkte
234
Ich hatte kürzlich mal die Performance etwas verbessert, indem ich nicht mehr jede DB-Anpassung einzeln schreibe, sondern alle Änderungen zunächst als SQL-Commit sammle und am Ende in einem Rutsch in die DB importiere. Das macht das Ganz noch spürbar schneller.

v0.4
 

*kw*

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
10. Aug 2013
Beiträge
1.575
Punkte für Reaktionen
617
Punkte
134
@geimist:

Hallo Stephan,

dein Script läuft seit längerem wunderbar, nur haben sich seit Beginn über 100k Einträge in der blockist angesammelt und meine DS meckert aktuell, dass sie zu voll sei.

log_error.jpg
Wie kann ich die Liste denn am besten auf einen Schlag löschen, bzw. sie "zurücksetzen" und das Script einfach initial neu starten?

Mir ist noch eingefallen, dass ich die Schotten nach draußen komplett dicht gemacht habe, seitdem ich docker, adguard & Co. einsetze.

firewall.jpg

Dann wäre das eh hinfällig?

Oliver

[edit:] ich habe völlig übersehen, dass das hier DSM 6.x und früher ist. Oder bei DSM7 identisch?
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.371
Punkte für Reaktionen
1.188
Punkte
234
[edit:] ich habe völlig übersehen, dass das hier DSM 6.x und früher ist. Oder bei DSM7 identisch?
Die letzten Updates wurden hier kommuniziert: https://www.synology-forum.de/threads/staendige-anmeldeversuche-am-dsm.122250/
Hier gibt es die neuste Version: https://github.com/geimist/Update_Blocklist/

dein Script läuft seit längerem wunderbar, nur haben sich seit Beginn über 100k Einträge in der blockist angesammelt und meine DS meckert aktuell, dass sie zu voll sei.
  • Dann solltest du den Wert DELETE_IP_AFTER=7 (= 7 Tage) anpassen. Ich bin mir aber gerade nicht sicher, ob das nur für neue Werte greift.
  • Löschen kannst du natürlich direkt im DSM (man kann auch mehrere Einträge markieren).
  • Löschen kannst du alle Blockierungen auch über die Shell / Aufgabenplaner (als root) mit dieser Zeile:
    sqlite3 /etc/synoautoblock.db "DELETE FROM AutoBlockIP WHERE Deny='1' "

Dann wäre das eh hinfällig?
Ohne externen Zugriff brauchst du es in der Tat nicht.
 
  • Like
Reaktionen: *kw*

update-freak

Benutzer
Mitglied seit
19. Feb 2018
Beiträge
356
Punkte für Reaktionen
21
Punkte
18
@geimist

Bekomme seit heute auch folgenden Fehler
Failure on attempt 1
Failure on attempt 2
Failure on attempt 3
Failure on attempt 4
Failure on attempt 5
Block list could not be loaded. Maximum number (5) of attempts reached.

Muss ich dann auch DELETE_IP_AFTER anpassen?
 

Monacum

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
03. Jan 2022
Beiträge
2.023
Punkte für Reaktionen
888
Punkte
204
Bei mir auch, ich glaube eher, dass das gerade ein Problem mit dem Zugriff auf die Liste ist.
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat