Portál AbcLinuxu, 1. května 2025 19:03
Pokud mi muzes poslat jak by mel vypadat zapis budu jen rad.
$IPTABLES -A INPUT -p icmp -j ping $IPTABLES -A ping -p ICMP --icmp-type 0 -m limit --limit 5/s --limit-burst 20 -j ACCEPT $IPTABLES -A ping -p ICMP --icmp-type 3 -m limit --limit 5/s --limit-burst 20 -j ACCEPT $IPTABLES -A ping -p ICMP --icmp-type 8 -m limit --limit 5/s --limit-burst 20 -j ACCEPT $IPTABLES -A ping -p ICMP --icmp-type 11 -m limit --limit 5/s --limit-burst 20 -j ACCEPT
Dik zapracuju to tam. V limitech se nevyznam, necham to jak to mas ty.
Pár postřehů ze zběžného pročtení:
1. Použití souboru /tmp/ip.tmp
způsobem, jakým to děláte, je dost hrubá bezpečnostní chyba. Použijte mktemp
, adresář, který není world-writeable, nebo (což ale nestačí) ten soubor aspoň nejdřív smažte.
2. V tomto případě je navíc použití pomocného souboru úplně zbytečné, stačí použít rouru:
awk | while read ...; do done
3. Když konfigurační soubor neexistuje, firewall nenaběhne; to mi nepřipadá příliš rozumné. Nebylo by vhodnější, aby se k němu v takovém případě skript choval jako k prázdnému?
4. Mazání chainu INPUT
děláte příliš krkolomně, proč nepoužijete '-F
'?
5. Doporučuji nespoléhat na to, že aktuální konfigurace vypadá tak jako při startu systému resp. tak, jak vy ji při startu nastavíte, a vyčistit ji pořádně.
6. Pevné nastavení právě tří povolených portů - a navíc stejných tří pro každou adresu - není moc flexibilní.
7. Nemáte-li vážný důvod nepropouštět RELATED
pakety, udělal bych to.
8. Pořadí pravidel je vhodné volit s ohledem na efektivitu. Povolení ESTABLISHED
(a případně RELATED
) paketů bych dal hned za začátek nebo aspoň za lokální smyčku.
9. Psát '-p ALL
' je zbytečné
Wow Super dik, poucim se upravim
JL
Prvni dilci uspech roura pro AWK nasazena, zapis upraven
V Slacku je to tak, že pokiaľ sa nájde v /etc/rc.d/ súbor rc.firewall, tak sa pustí. Prečo je to tak, to vie Patrick.
to je kvůli tomuhle v /etc/rc.d/rc.inet2
# If there is a firewall script, run it before enabling packet forwarding. # See the HOWTOs on http://www.netfilter.org/ for documentation on # setting up a firewall or NAT on Linux. In some cases this might need to # be moved past the section below dealing with IP packet forwarding. if [ -x /etc/rc.d/rc.firewall ]; then /etc/rc.d/rc.firewall start fi
Čili, když sebereš (chmod -x rc.firewall
) spouštěcí bit u rc.firewall, tak se nespustí.
Nejde o to, jestli se spusti rc.firewall nebo ne, ale spis mi slo o to, ze cpat konfiguraci primo do init skriptu se mi zda prinejmensim nevhodne, ale osobne bych rek spis prasarna. Klidne at se spousti rc.firewall, ale ocekaval bych, ze ten skript nacte konfiguraci napr. z /etc/firewall.conf a to pak zpracuje. Jeden duvod muze byt, ze delam backup /etc excl. /etc/rc.d a /etc/init.d.
Dalsi duvod muze byt ten, ze kdyz bude rc.firewall s nejakou logikou, napr. prave nejake skupiny portu a hostu, a budou ten skript vyuzivat i ostatni, tak pri pripadnych upravach toho skriptu budou moct lidi udelat pouze cp src/rc.firewall /etc/rc.d/, protoze skutecna konfigurace bude v /etc/firewall.conf, kdezto kdyz jsou prikazy primo v tom rc.firewall, tak pri aktualizaci to nemuzou ostatni lidi jednoduse zkopirovat.
V tomhle skriptu je sice naznak konfigurace tak, ze IP adresy jsou ulozeny v externim souboru, ale porty jsou napevno v init skriptu. Klidne by v tom rc.firewall mohli zustat ty obvykly pravidla "povoleni established, related", nastaveni vychozich policy, ale zbytek (povoleni urcitych zdroju, cilu a/nebo portu) by mel byt ulozenej v jinem cfg. Tam by mohly byt i nejake "prepinace", jak by se mel firewall chovat, treba nejake hodnoty pro limit nebo logy.
iptables-save
a iptables-restore
má své výhody, ale také nevýhody. Rozhodně bych se to neodvážil označit za jednoznačně lepší volbu než použití klasického skriptu. Spíš naopak, osobně bych až na výjimky upřednostnil skript.
jasne, pomoci iptables-restore nemuzu udelat for cykly.
me nevadi pouzivat init skript s iptables prikazema, ale vadi mi, kdyz ty prikazy obsahuji konkretni hodnoty. Jak jsem napsal v 17:51, jsem pro pouzivani vlastniho init skriptu pro firewall bez pouziti iptables-restore, ale konfigurace musi byt ulozena separatne, ne v tom init skriptu - a klidne to muze delat to same jako iptables-restore, v lepsim pripade muze config soubor obsahovat nejaky pseudo programovaci/konfiguracni jazyk a ten skript by mel pouze zpracovat ten config file a podle toho nastavit firewall. Jak jsem psal, pri aktualizaci toho skriptu muzou jednoduse vsichni nahradit init skript novou verzi a vsechno funguje. Kdyz budou vsechny pravidla napevno v init skriptu, musi vsichni udelat diff a aplikovat jenom zmeny, ktery se netykaji jejich pravidel.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.