Sziasztok!
iptables -A OUTPUT -m limit -i eth1 -p tcp --limit 20/second
találtam egy ilyet valahol, de ez így nekem nem működik. Nekem pont ez kéne. Egy hálókártya csomagforgalmát korlátozni.
Kérlek adjatok ötleteket.
Üdv balazsasd
- 1239 megtekintés
Hozzászólások
Ez tulképpen sávszélkorlátozás miatt kellene?
- A hozzászóláshoz be kell jelentkezni
igen :)
- A hozzászóláshoz be kell jelentkezni
Miért nem próbálsz valamilyen wshaper scriptet?
- A hozzászóláshoz be kell jelentkezni
Két hiba van benne. Az egyik a -i, az OUTPUT láncban nem vizsgálhatsz input interfészt, csak a kimenetit a -o használatával.
Továbbá lemaradt a végéről a lényeg, az, hogy mit csináljon, ha teljesül a feltétel. Itt egy -j ACCEPT kellene, ha utána az ilyen forgalmat tiltod, vagy a default policy DROP vagy REJECT.
- A hozzászóláshoz be kell jelentkezni
tehát mit javasolsz? konkrétan mit írjak be? nem vagyok annyira otthon benne, de az Invalid argument kifejezés kezd az agyamra menni.
- A hozzászóláshoz be kell jelentkezni
"konkrétan mit írjak be?"
Ha a fentiek alapján a -i helyett a -o opciót használod, és a végéhez hozzáfűzöd a javasolt -j ACCEPT részt, akkor előáll ez:
iptables -A OUTPUT -m limit -o eth1 -p tcp --limit 20/second -j ACCEPT
- A hozzászóláshoz be kell jelentkezni
Szintén, invalid argument hibaüzenetet kapok.
- A hozzászóláshoz be kell jelentkezni
Akkor egy kicsit több információ kellene a rendszeredről. Milyen Debian kiadás, milyen verziójú az iptables, a kerneled, megvannak-e, illetve be vannak-e töltve a szükséges kernelmodulok? Az iptables a hivatalos kiadásból van-e, vagy esetleg külső repositoryból? A kerneled a disztibúció által szállított, vagy saját fordítású?
- A hozzászóláshoz be kell jelentkezni
iptables v1.3.6
Debial Etch
kernel : 2.6.18-6-sparc64-smp
én a következő modulokat töltöm be:
- ip_tables
- ip_conntrack
- ip_conntrack_ftp
- ip_conntrack_irc
- iptable_nat
- ip_nat_ftp
Az internetmegosztáshoz még a következő dolgokat állítom:
echo "Megoszas konfiguralasa"
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
$IPTABLES -P INPUT ACCEPT
$IPTABLES -F INPUT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -F OUTPUT
$IPTABLES -P FORWARD DROP
$IPTABLES -F FORWARD
$IPTABLES -t nat -F
$IPTABLES -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT
$IPTABLES -A FORWARD -j LOG
$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE
Eddig működik.
- A hozzászóláshoz be kell jelentkezni
Modulként szüksége lesz még a xt_limit és az x_tables modulokra is, de ezeket automatikusan betölti, nem itt lesz a baj.
Fontos részlet a sparc64 architektúra. Ebben az esetben ez valószínűleg egy ismert bug (#468170). Eszerint ez a probléma a 2.6.18-at követően lett megoldva, ezért próbáld meg egy 2.6.19 vagy magasabb verziójú kernellel. A jelenlegi stabil kiadásban, a Lennyben már 2.6.26 (linux-image-2.6.26-1-sparc64-smp) van.
- A hozzászóláshoz be kell jelentkezni
Mostmár elfogadja de nem csinál semmi korlátot.
- A hozzászóláshoz be kell jelentkezni
"Mostmár elfogadja"
Kernelcsere lett, vagy egyéb megoldást találtál?
"...de nem csinál semmi korlátot."
Vagy csak nem látod. Miként tesztelted? Fentebb írtam, hogy a limites szabály után a limit feltételnek meg nem felelő csomagokat tiltani kell vagy egy explicit DROP illetve REJECT, vagy a default policy segítségével. Ez megvolt? Az általad leírt szabályokban az OUTPUT lánc átenged mindent. Ha beírtad, akkor a csomagszámlálók mit mutatnak (iptables -nvL OUTPUT)?
- A hozzászóláshoz be kell jelentkezni
lehet csak azért van mert össze vissza van írva
iptables -A OUTPUT -m limit -o eth1 -p tcp --limit 20/second -j ACCEPT
helyett
iptables -A OUTPUT -o eth1 -p tcp -m limit --limit 20/second -j ACCEPT
- A hozzászóláshoz be kell jelentkezni
Próbáltam, ugyanaz a hibaüzenet.
- A hozzászóláshoz be kell jelentkezni