Puncte:0

Utilizarea unui ipset pentru a bloca IP-urile

drapel gi

Ce este iptables comandă pentru a bloca toate IP-urile dintr-un ipset? Am încercat INTRARE și IEȘIRE și src și dst, dar nimic din ce am încercat nu funcționează.

Aparatul este routerul meu de acasă care face mascarada; are două interfețe de ieșire care fac failover.

Aici e al meu iptables scenariu:

# cat bin/iptables.sh
#!/bin/sh

iptables -t nat -F
iptables -t mangle -F
iptables -F
iptables -X

# Blocker
ipset -L blocat >/dev/null 2>&1
dacă [ $? -ne 0]
atunci
        echo „Se creează ipset: blocat”
        ipset crea hash blocat:ip
fi

dacă [ -f /root/blocked_domains.txt ]
atunci
        Flush ipset blocat
        pentru domeniul în $(cat /root/blocked_domains.txt); do
                pentru adresa în $( dig a $domain +short | grep -P -e '^(\d{1,3}\.){3}\d{1,3}$' ); do
                        echo $domeniu " -> " $adresă
                        ipset adauga $address blocat
                Terminat
        Terminat

        ipset -L blocat >/dev/null 2>&1
        dacă [ $? -eq 0]
        atunci
                ecou „Blocare”
                # # # Ce se întâmplă aici? # # #
                iptables -A INPUT -m set --match-set blocat src -j DROP         
        fi
fi

# Permiteți numai lucrurilor din această casetă să folosească conexiunea de failover (alocație limitată de date.)
iptables -A FORWARD -s localhost -j ACCEPT
iptables -A FORWARD -s 192.168.1.0/24 -o enp0s6f1u2 -j DROP

# Mascaradă
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -F POSTROUTING
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp0s6f1u2 -j MASQUERADE

Actualizați

# iptables -vnL INPUT
INTRARE în lanț (politica ACCEPTĂ 15M pachete, 16G octeți)
 pkts bytes target prot opt ​​in out source destination
    0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 setul de meciuri blocat src

(Trunchiat; dar clar aceasta este linia relevantă.)

Încă o actualizare

De asemenea, m-am confuz deoarece unul dintre domeniile pe care încerc să le blochez pare să-și schimbe IP-ul (răspunsuri diferite de la același server de nume -- care este hotspot-ul WiFi de pe telefonul meu Android.)

# Data; dig b.scorecardresearch.com
Vineri, 2 iulie 09:34:36 BST 2021

; <<>> DiG 9.11.5-P4-5.1+deb10u5-Debian <<>> b.scorecardresearch.com
;; opțiuni globale: +cmd
;; Am raspuns:
;; ->>HEADER<<- opcode: QUERY, stare: NOERROR, id: 3185
;; steaguri: qr rd ra; ÎNTREBARE: 1, RĂSPUNS: 4, AUTORITATE: 0, SUPLIMENTARE: 1

;; PSEUDOSECȚIE OPT:
; EDNS: versiunea: 0, steaguri:; udp: 1280
;; SECȚIUNEA DE ÎNTREBĂRI:
;b.scorecardresearch.com. ÎN A

;; SECȚIUNEA RĂSPUNSURI:
b.scorecardresearch.com. 1 IN A 143.204.198.94
b.scorecardresearch.com. 1 IN A 143.204.198.59
b.scorecardresearch.com. 1 IN A 143.204.198.111
b.scorecardresearch.com. 1 IN A 143.204.198.90

;; Timp de interogare: 35 ms
;; SERVER: 192.168.43.214#53(192.168.43.214)
;; CÂND: vineri, 02 iulie, 09:34:36 BST 2021
;; MSG SIZE rcvd: 116


# Data; dig b.scorecardresearch.com
Vineri, 2 iulie 09:34:51 BST 2021

; <<>> DiG 9.11.5-P4-5.1+deb10u5-Debian <<>> b.scorecardresearch.com
;; opțiuni globale: +cmd
;; Am raspuns:
;; ->>HEADER<<- opcode: QUERY, stare: NOERROR, id: 52849
;; steaguri: qr rd ra; ÎNTREBARE: 1, RĂSPUNS: 4, AUTORITATE: 0, SUPLIMENTARE: 1

;; PSEUDOSECȚIE OPT:
; EDNS: versiunea: 0, steaguri:; udp: 1280
;; SECȚIUNEA DE ÎNTREBĂRI:
;b.scorecardresearch.com. ÎN A

;; SECȚIUNEA RĂSPUNSURI:
b.scorecardresearch.com. 24 IN A 99.84.15.95
b.scorecardresearch.com. 24 IN A 99.84.15.83
b.scorecardresearch.com. 24 IN A 99.84.15.117
b.scorecardresearch.com. 24 IN A 99.84.15.65

;; Timp de interogare: 63 ms
;; SERVER: 192.168.43.214#53(192.168.43.214)
;; CÂND: vineri, 02 iulie, 09:34:51 BST 2021
;; MSG SIZE rcvd: 116


drapel it
Trebuie să creați o regulă iptables care să facă referire la ipset. https://serverfault.com/questions/837705/configure-iptables-with-ipset
drapel gi
Asta e întrebarea mea: ce este comanda? Această comandă nu funcționează: `iptables -A INPUT -m set --match-set blocked src -j DROP`.
drapel it
Îmi pare rău că am ratat referința pe care o aveți în fragment. O pot vedea acum. Ce arată rezultatul `iptables -vnL INPUT`? Arată vreo atingere împotriva acestei reguli?
drapel it
Ar putea fi cazul în care ați aplicat acest lucru la lanțul greșit? `INPUT` este pentru lucruri destinate gazdei actuale. Intenția dvs. este de a bloca traficul direcționat sau NAT care trece prin gazdă? Dacă da, nu veți primi accesări în lanțul `INPUT` și va trebui să modificați regula de potrivire pentru a fi fie în lanțul `FOWARD`, fie o regulă NAT corespunzătoare în lanțul `POSTROUTING`.
Puncte:1
drapel cw

Iată un exemplu

ipset create banned_hosts hash:net family inet hashsize 1048576 maxelem 1500000 contoare comentariu

Iată regula iptables

iptables -t nat -A PREROUTING -i eth0 -m set --match-set banned_hosts src -j DROP
drapel gi
Trebuie să folosesc `FORWARD` nu `PREROUTING` deoarece `iptables v1.8.2 (nf_tables): lanțul 'PREROUTING' nu există`. Mai mult, cred că în `iptables` (spre deosebire de `ipchains`) lanțul `INPUT` se potrivește doar pachetelor care sunt destinate localhost. De asemenea, m-am încurcat deoarece unul dintre domeniile pe care încerc să le blochez (un server de anunțuri) pare să-și schimbe IP-ul la fiecare câteva minute.
drapel it
@RichardBarraclough Asigurați-vă că utilizați argumente `-t nat` în comanda dumneavoastră iptables. Am reguli de lucru iptables ipset care rulează pe lanțul `PREROUTING`.
drapel it
Cred că ținta `-j DROP` trebuie ajustată pentru a fi `-j RETURN` și pe lanțurile `-t nat`. Dacă cineva ar putea confirma acest lucru, vă rugăm să editați răspunsul de mai sus în consecință.
drapel cw
OP dorește blocarea adreselor IP blocul -J RETURN nu face acest lucru. Vrei -J DROP. Ai putea folosi -J REJECT, dar asta trimite pachetele înapoi la sursă indicând o respingere. Acest lucru cu siguranță nu este ceva pentru care doriți să pierdeți lățime de bandă, deoarece doar trimiteți către un bot de scanare porturi.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.