Compare commits
2 Commits
2ac9f6ce44
...
193aed8580
Author | SHA1 | Date | |
---|---|---|---|
193aed8580 | |||
07882d26a6 |
22
compose.yml
22
compose.yml
@@ -1,5 +1,18 @@
|
||||
|
||||
services:
|
||||
flodpodmaster:
|
||||
image: git.send.nrw/sendnrw/flod-pod:latest
|
||||
container_name: ipblock-master
|
||||
networks:
|
||||
- flod_nw
|
||||
environment:
|
||||
# Beispiel – mehrere Listen in einer Kategorie „spam“
|
||||
BLOCKLIST_MODE: master
|
||||
REDIS_ADDR: redis:6379
|
||||
HASH_NAME: bl:flodpod
|
||||
MASTER_URL: https://flod-proxy.send.nrw
|
||||
#ports:
|
||||
#- "8080:8080" # <host>:<container>
|
||||
restart: unless-stopped
|
||||
api:
|
||||
image: git.send.nrw/sendnrw/flod:latest
|
||||
container_name: ipblock-api
|
||||
@@ -8,15 +21,12 @@ services:
|
||||
depends_on:
|
||||
- redis
|
||||
environment:
|
||||
# Beispiel – mehrere Listen in einer Kategorie „spam“
|
||||
BLOCKLIST_SOURCES: |
|
||||
spam:https://ipv64.net/blocklists/ipv64_blocklist_firehole_l1.txt|https://rules.emergingthreats.net/blocklist/compromised-ips.txt
|
||||
# Redis-Adresse schon per Docker-Netzwerk korrekt:
|
||||
REDIS_ADDR: redis:6379
|
||||
ROLE: worker
|
||||
TTL_HOURS: "720"
|
||||
ports:
|
||||
- "8080:8080" # <host>:<container>
|
||||
#ports:
|
||||
#- "8080:8080" # <host>:<container>
|
||||
restart: unless-stopped
|
||||
|
||||
redis:
|
||||
|
34
main.go
34
main.go
@@ -20,15 +20,36 @@ import (
|
||||
// Redis + Context
|
||||
var ctx = context.Background()
|
||||
var rdb = redis.NewClient(&redis.Options{
|
||||
Addr: "10.10.5.249:6379",
|
||||
Addr: "redis:6379",
|
||||
})
|
||||
|
||||
// URLs der Blocklisten
|
||||
var blocklistURLs = map[string]string{
|
||||
"firehol": "https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/firehol_level1.netset",
|
||||
"bitwire": "https://raw.githubusercontent.com/bitwire-it/ipblocklist/refs/heads/main/ip-list.txt",
|
||||
"RU": "https://ipv64.net/blocklists/countries/ipv64_blocklist_RU.txt",
|
||||
"CN": "https://ipv64.net/blocklists/countries/ipv64_blocklist_CN.txt",
|
||||
"firehol": "https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/firehol_level1.netset",
|
||||
"bitwire": "https://raw.githubusercontent.com/bitwire-it/ipblocklist/refs/heads/main/ip-list.txt",
|
||||
"RU": "https://ipv64.net/blocklists/countries/ipv64_blocklist_RU.txt",
|
||||
"CN": "https://ipv64.net/blocklists/countries/ipv64_blocklist_CN.txt",
|
||||
"blocklist_de_ssh": "https://lists.blocklist.de/lists/ssh.txt",
|
||||
"blocklist_de_mail": "https://lists.blocklist.de/lists/mail.txt",
|
||||
"blocklist_de_apache": "https://lists.blocklist.de/lists/apache.txt",
|
||||
"blocklist_de_imap": "https://lists.blocklist.de/lists/imap.txt",
|
||||
"blocklist_de_ftp": "https://lists.blocklist.de/lists/ftp.txt",
|
||||
"blocklist_de_sip": "https://lists.blocklist.de/lists/sip.txt",
|
||||
"blocklist_de_bots": "https://lists.blocklist.de/lists/bots.txt",
|
||||
"blocklist_de_strongips": "https://lists.blocklist.de/lists/strongips.txt",
|
||||
"blocklist_de_bruteforcelogin": "https://lists.blocklist.de/lists/bruteforcelogin.txt",
|
||||
"firehol_org_botscout_30d": "https://iplists.firehol.org/files/botscout_30d.ipset",
|
||||
"firehol_org_cleantalk_30d": "https://iplists.firehol.org/files/cleantalk_30d.ipset",
|
||||
"firehol_org_cleantalk_new_30d": "https://iplists.firehol.org/files/cleantalk_new_30d.ipset",
|
||||
"firehol_org_abuse_30d": "https://iplists.firehol.org/files/firehol_abusers_30d.netset",
|
||||
"firehol_org_gpf_comics": "https://iplists.firehol.org/files/gpf_comics.ipset",
|
||||
"firehol_org_stopforumspam_365d": "https://iplists.firehol.org/files/stopforumspam_365d.ipset",
|
||||
"firehol_org_tor_exit_30d": "https://iplists.firehol.org/files/tor_exits_30d.ipset",
|
||||
"firehol_org_shield_30d": "https://iplists.firehol.org/files/dshield_30d.netset",
|
||||
"firehol_org_firehol_webserver": "https://iplists.firehol.org/files/firehol_webserver.netset",
|
||||
"firehol_org_php_dictionary_30d": "https://iplists.firehol.org/files/php_dictionary_30d.ipset",
|
||||
"firehol_org_php_harvesters_30d": "https://iplists.firehol.org/files/php_harvesters_30d.ipset",
|
||||
"firehol_org_php_spammers_30d": "https://iplists.firehol.org/files/php_spammers_30d.ipset",
|
||||
}
|
||||
|
||||
// Präfix-Cache
|
||||
@@ -106,6 +127,7 @@ func importBlocklists() error {
|
||||
return fmt.Errorf("Blocklisten-Import teilweise fehlgeschlagen")
|
||||
}
|
||||
fmt.Println("✅ Blocklisten-Import abgeschlossen")
|
||||
blocklistURLs["flodpod"] = "null"
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -150,7 +172,7 @@ func importCategory(cat, url string) error {
|
||||
}
|
||||
}
|
||||
if err := scanner.Err(); err != nil {
|
||||
return fmt.Errorf("Lesefehler: %v", err)
|
||||
return fmt.Errorf("lesefehler: %v", err)
|
||||
}
|
||||
if batchCount > 0 {
|
||||
if _, err := pipe.Exec(ctx); err != nil {
|
||||
|
Reference in New Issue
Block a user