[Iptables] Kan ik meerdere devices in een table opgeven

Pagina: 1
Acties:

  • BSeB
  • Registratie: Juni 2001
  • Laatst online: 22-09-2025
Ik heb algemeen gedefinieerd:

INT_DEV="eth0"

Nu wil ik graag dat INT_DEV="eth0, eth1"

Maar krijg dit niet voor elkaar, is dit mogelijk of is het gewoon onmogelijk?

Natuurlijk bij het gebruik van IPTABLEs onder linux

[ Voor 20% gewijzigd door BSeB op 29-07-2006 19:35 ]


  • BoAC
  • Registratie: Februari 2003
  • Laatst online: 13:09

BoAC

Memento mori

BSeB schreef op zaterdag 29 juli 2006 @ 19:34:
Ik heb algemeen gedefinieerd:

INT_DEV="eth0"
Wat is algemeen? In welke file?
Nu wil ik graag dat INT_DEV="eth0, eth1"

Maar krijg dit niet voor elkaar, is dit mogelijk of is het gewoon onmogelijk?
Wat voor een fout krijg je dan waarin?
Natuurlijk bij het gebruik van IPTABLEs onder linux
Kun je wat meer info geven? zoals: welke distro/iptables-versie.
Of gebruik je Webmin om iptables in te stellen?

[ Voor 3% gewijzigd door BoAC op 29-07-2006 21:53 ]


  • daft_dutch
  • Registratie: December 2003
  • Laatst online: 02-12-2025

daft_dutch

>.< >.< >.< >.<

post je huidige iptable file en wat je er van wilt maken.

je kan ook eth0 en eth1 aan elkar binden tot 1 virtueel eth
mischien is dat wat je wilt

>.< >.< >.< >.<


  • smesjz
  • Registratie: Juli 2002
  • Niet online
INT_DEV o.i.d. heeft niks te maken met iptables. Dat komt waarschijnlijk uit een bash scriptje ofzo.

De iptables manual (man iptables) zegt ->
-i, --in-interface [!] name
Name of an interface via which a packet was received (only for packets entering the INPUT, FORWARD and PREROUTING chains). When the "!"
argument is used before the interface name, the sense is inverted. If the interface name ends in a "+", then any interface which begins
with this name will match. If this option is omitted, any interface name will match.
Je zou dus INT_DEV="eth+" kunnen gebruiken. Die matcht alle netwerkkaarten op je systeem.

Maar e.e.a. dus afhankelijk hoe dat bash scriptje omgaat met de waarde uit die INT_DEV.

Het helpt natuurlijk als je een foutmelding post :) En een linkje naar dat bash script...

  • BSeB
  • Registratie: Juni 2001
  • Laatst online: 22-09-2025
# !/bin/bash

###############################################

# Standard variables

INT_DEV="eth2"
EXT_DEV1="ppp0"
EXT_DEV2="eth0"

iptables --table filter -A FORWARD -i $EXT_DEV2 \
-o $EXT_DEV1 -s 172.20.32.108 -d ! 172.20.32.108 -j ACCEPT

Deze regel moet dus zowel voor eth1 als eth0 gelden. Er zijn ook andere interfaces dus het is niet zinvol, om + te gebruiken. Die andere interfaces zijn bijvoorbeeld ppp0.

Ik denk zoiets als virtueel interface, maar hoe dat moet en waar ik het kan vinden weet ik niet, zoiezo weet ik niet wat het inhoud.

Mijn script is veel langer, dit is alleen een heel klein voorbeeldje.

[ Voor 10% gewijzigd door BSeB op 30-07-2006 17:01 ]


Verwijderd

als die andere interfaces niet met eth beginnen maar ppp, dan werkt die + toch? je zou nog een for-loopje kunnen proberen: for i in "eth0 eth1 eth2 eth3"; do iptables blabla -i $i; done ofzo.

  • smesjz
  • Registratie: Juli 2002
  • Niet online
Oplossing van SenorSnor lijkt de way to go. Je krijgt dan iets als:

#!/bin/bash

for i in "eth0 eth1 ppp0";
do sh /tmp/jouwfirewallscript.sh $i
done;

En in dat jouwfirewallscript.sh vervang je

EXT_DEV2="eth0"
door
EXT_DEV2=$1

Voor de rest is het gewoon bash scripten lijkt me en anders copy/paste je het gewoon.
Pagina: 1