Definire multiplu utilizând numai adrese unu iptables
comanda folosind ! --sursă
nu e posibil.
O adresă poate fi fie un nume de rețea, fie un nume de gazdă (probabil un
idee proastă de a folosi nume de gazdă), o adresă IP de rețea (cu /mask) sau o adresă IP simplă.
Masca poate fi fie o mască de rețea, fie un număr simplu.
Ați putea lua în considerare modificarea setului de reguli implicit de la permis la eliminare. Acest lucru vă va permite să definiți doar pe baza a ceea ce ar trebui să fie permis, adică similar așa:
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m stare --state RELATED,STABLISHED -j ACCEPT
... celelalte reguli ale tale merg aici...
iptables -A INPUT -m stare --state NOU -p tcp --dport 22 -s 1.2.3.4,11.22.33.44 -j ACCEPT
iptables -P INPUT DROP
Avantajul/frumusețea este că un astfel de set de reguli ar fi mult mai performant, având în vedere starea pachetelor. Plus că permite sintaxa dorită. Plus este, de asemenea, modalitatea recomandată de a defini regulile de firewall.
Cu toate acestea, vă rugăm să rețineți că, dacă utilizați o sintaxă așa cum se arată mai sus: -s 1.2.3.4,11.22.33.44
creează în continuare 2 intrări individuale de tabel, după cum puteți vedea folosind comanda iptables -L INPUT
. În plus, nu funcționează cu toate versiunile de iptables. În plus, personal îmi este greu de citit sau de întreținut. Acesta este motivul pentru care incerc sa evit, in favoarea folosirii a 2 comenzi separate.
În cazul în care dorința dvs. este să minimizați cantitatea de reguli, cel mai apropiat lucru pe care îl puteți face este să utilizați unu iptables
folosirea regulilor --Meci
in schimb --sursă
. Totuși, mai trebuie să definiți potrivirea, folosind comenzi suplimentare. Cum funcționează acest lucru a fost explicat perfect în celălalt comentariu care tratează ipset.