Puncte:0

IPTABLES Prerouting, adaos de masă

drapel be

poate cineva știe cum pot adăuga în masă ca 1 400 000 de ip-uri la iptables cu comandă:

iptables -I PREROUTING -t raw -d $ipban -j DROP

chiar acum folosesc:

în timp ce citește ipban
do
iptables -I PREROUTING -t raw -d $ipban -j DROP
terminat < ips.txt

Dar deja a durat mai mult de 20 de ore pentru a adăuga.

Vps-ul meu este foarte mic, cum ar fi 1gb ram și 1vcpu, așa că nu este atât de rapid.

Am încercat să fac restaurarea iptables, dar am primit câteva erori, așa că caut cea mai rapidă soluție.

Doug Smythies avatar
drapel gn
Pentru grupuri mari de adrese IP, priviți `ipset`.
Puncte:0
drapel in

Scriptul de mai jos ar trebui să facă ceea ce aveți nevoie. Rețineți că numele fișierului din care veți citi IP-urile este ips.txt în script. Îl puteți înlocui cu propriul nume de fișier.

#!/bin/bash

ip_addresses=$(cat ips.txt)

echo -n "" > iptables_configuration
echo "*raw" >> iptables_configuration
echo „:PREROUTING ACCEPT [0:0]” >> iptables_configuration
echo ":OUTPUT ACCEPT [0:0]" >> iptables_configuration

pentru i în $ip_addresses
do
echo -A PREROUTING -d $i/32 -j DROP >> iptables_configuration
Terminat
echo "COMMIT" >> iptables_configuration

echo "*filtru" >> iptables_configuration
echo „:INPUT ACCEPT [0:0]” >> iptables_configuration
echo „: FORWARD ACCEPT [0:0]” >> iptables_configuration
echo ":OUTPUT ACCEPT [0:0]" >> iptables_configuration
echo "-A INPUT -p tcp -m tcp --dport 25565 --tcp-opțiunea 8 --tcp-flags FIN,SYN,RST,ACK SYN -j REJECT --reject-with icmp-port-inaccessible" >> iptables_configuration
echo "COMMIT" >> iptables_configuration

cat iptables_configuration | iptables-restore
rm iptables_configuration

iptables -t brut -A PREROUTING -p tcp --dport 25565 -j ACCEPT
iptables -t raw -A PREROUTING -p tcp --dport 25565 -m stare --state RELATED,ESTABLISHED -j ACCEPT
iptables -t raw -A PREROUTING -p tcp --dport 25565 --tcp-flags FIN,SYN,RST,ACK SYN -m connlimit --connlimit-above 150 --connlimit-mask 32 --connlimit-saddr -j DROP
iptables -t raw -A PREROUTING -p tcp --dport 25565 --tcp-flags FIN,SYN,RST,ACK SYN -m connlimit --connlimit-above 10 --connlimit-mask 32 --connlimit-saddr -j DROP

Tot ce trebuie să faceți este să executați scriptul în care este prezent fișierul ips.txt. De restul se va ocupa de scenariu.

drapel be
Problema este că nu vreau să blochez intervale sau subrețele. Vreau doar să blochez IP-urile specificate din fișierul txt.
Muhammed Özen avatar
drapel in
Inteleg acum. Știu soluția la problema ta. Problema este că de fiecare dată când adăugați o nouă regulă, executați din nou binarul iptables. Trebuie să scrieți un fișier de configurare care conține toate regulile și veți executa iptables o singură dată pentru a adăuga toate aceste reguli. Am scris un script pentru tine care face ceea ce ai nevoie, dar când vei aplica scriptul, regulile tale iptables existente vor dispărea și regulile pentru interzicerea adreselor IP din fișier vor fi prezente numai. Dacă doriți să includeți alte reguli, trebuie să modificați fișierul iptables_configuration în funcție de nevoile dvs. Verificați postarea mea.
drapel be
Sigur, prietene, am reguli ca acestea: https://pastebin.com/MW4x9QNa Dacă este posibil, faceți-l să folosească prerouting-ul este mai eficient :D Mă bucur că vrei să mă ajuți și să scrii o postare atât de mare!
Muhammed Özen avatar
drapel in
Cu multa placere. Dar aveți câteva variabile în scriptul dvs. pe care nu le-ați definit, cum ar fi $port și $limit_global_connections_max. Dacă îmi dați valorile lor exacte, doar atunci vă pot ajuta
drapel be
Îmi pare rău, nu am observat asta, iată versiunea de lucru https://pastebin.com/LxJvqF51 Dacă știi și cum să le faci PRERUTARE ar fi minunat (ar fi mai eficient).
drapel be
Și îmi puteți explica de ce există`/32` în -A PREROUTING -d $i/32 -j DROP?
Muhammed Özen avatar
drapel in
Tocmai am editat din nou postarea. Acum nici nu trebuie să vă faceți griji pentru iptables-restore. Tot ce trebuie cu adevărat este să rulezi scriptul și va pregăti totul pentru tine. De asemenea, am pus toate regulile în lanțul PREROUTING, cu excepția uneia, deoarece avea opțiuni nevalide pentru PREROUTING. În ceea ce privește a doua întrebare, /32 înseamnă o singură adresă IP în notație CIDR. Dacă specificați orice valoare în afară de 32, aceasta va specifica o subrețea care include mai multe adrese IP.Dar din moment ce trebuie doar să interzicem adrese IP individuale și nu vrem să blocăm o subrețea sau o serie de IP-uri, avem nevoie de /32 aici.
drapel be
Multumesc pentru ajutor! Am făcut tot ce ai spus și funcționează!
Muhammed Özen avatar
drapel in
Bine ai venit prietene. Ma bucur ca ti-am putut fi de ajutor :)
drapel be
Problema pe care am găsit-o acum este că atunci când am aplicat totul, viteza mea de internet merge la 5Mb/s de la 1gbs
Muhammed Özen avatar
drapel in
Cred că motivul pentru asta este că ai multe reguli. După cum ați spus, aveți atât de multe reguli încât a durat mult timp pentru a le înregistra pe toate în firewall. Ori de câte ori un pachet de rețea lovește computerul dvs., nucleul îl compară cu fiecare regulă din firewall. Și dacă primește o trecere de la toate aceste reguli, atunci veți obține conexiunea în stiva locală TCP/UDP. Cu cât aveți mai multe reguli în firewall, cu atât conexiunea va fi mai lentă. Trebuie să păstrați echilibrul între securitate și viteza rețelei
drapel be
Da, mi-am cerut ajutor gazdei și mi-au spus că oricum vor bloca acele ip-uri. Multumesc pentru ajutor !

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.