Kleines Skript Problem

pillul

Registered User
Hallo vielleicht kann mir jmd von euch weiterhelfen ;)

Ich habe in der Datei: /etc/ethers folgenden Inhalt

00:00:00:00:00:00 192.168.0.1
11:11:11:11:11:11 192.168.0.2
22:22:22:22:22:22 192.168.0.2

und daraus soll folgender Output generiert werden:

iptables -A FORWARD -i eth1 -m mac --mac-source MACAUSETHERS -s IPAUSETHERS -j ACCEPT

Hoffe jmd kann mir weiterhelfen

Vielen Dank !
 
Code:
for i in `cat /etc/ethers | awk '{ print $1 }'`; do for j in `cat /etc/ethers | awk '{ print $2 }'`; do iptables -A FORWARD -i eth1 -m mac --mac-source $i -s $j -j ACCEPT; done; done
 
Hallo,

Danke für die super schnelle Antwort !!

Funktioniert soweit nur ein kleins Problem ;)

Er trägt für jede MAC Adresse jede IP ein, irgendeine Schleife scheint da falsch zu laufen...

Dankeschön :)
 
Code:
Leider nein:

       0        0 ACCEPT     all  --  eth1   any     10.251.136.188       anywhere            MAC 00:19:DB:35:A7:DB
       0        0 ACCEPT     all  --  eth1   any     10.251.136.151       anywhere            MAC 00:0F:B5:81:A1:82
       0        0 ACCEPT     all  --  eth1   any     10.251.136.152       anywhere            MAC 00:0F:B5:81:A1:82
       0        0 ACCEPT     all  --  eth1   any     10.251.136.153       anywhere            MAC 00:0F:B5:81:A1:82
       0        0 ACCEPT     all  --  eth1   any     10.251.136.154       anywhere            MAC 00:0F:B5:81:A1:82
       0        0 ACCEPT     all  --  eth1   any     10.251.136.155       anywhere            MAC 00:0F:B5:81:A1:82
       0        0 ACCEPT     all  --  eth1   any     10.251.136.156       anywhere            MAC 00:0F:B5:81:A1:82
       0        0 ACCEPT     all  --  eth1   any     10.251.136.157       anywhere            MAC 00:0F:B5:81:A1:82
       0        0 ACCEPT     all  --  eth1   any     10.251.136.158       anywhere            MAC 00:0F:B5:81:A1:82
       0        0 ACCEPT     all  --  eth1   any     10.251.136.159       anywhere            MAC 00:0F:B5:81:A1:82
       0        0 ACCEPT     all  --  eth1   any     10.251.136.160       anywhere            MAC 00:0F:B5:81:A1:82
       0        0 ACCEPT     all  --  eth1   any     10.251.136.161       anywhere            MAC 00:0F:B5:81:A1:82
       0        0 ACCEPT     all  --  eth1   any     10.251.136.162       anywhere            MAC 00:0F:B5:81:A1:82
       0        0 ACCEPT     all  --  eth1   any     10.251.136.163       anywhere            MAC 00:0F:B5:81:A1:82

Für die MAC Adresse 00:0F:B5:81:A1:82 wird jede IP aus ethers einmal eingetragen...

Es soll aber nur die zur MAC Adresse gehörende IP eingtrage werden
 
Code:
for i in `cat ethers | awk '{print $1 $2}'`; do
        macs=`echo $i | /usr/bin/cut -c1-17`
        ips=`echo $i | /usr/bin/cut -c18-31`
        iptables -A FORWARD -i eth1 -m mac --mac-source $macs -s $ips -j ACCEPT
done
 
Hallo zusammen,

Das Skript von djrick funktionier wunderbar ! Vielen Dank !

Lediglich in der ersten Zeile muss /etc/ethers stehen

Vielen Dank für eure Mühen
 
Hi,

Das geht bestimmt noch besser, aber das hab ich zwichen Tür und Angel schnell runter geschrieben :) Und dass du ethers durch /etc/ethers ersetzten musst, hast du natürlich recht, bei meinen Testläufen lag Script und Datei im gleichen Verzeichnis.
 
Hy,

Es tut wunderbar seinen Dienst und läuft auch ratzfatz durch die ~100 Einträge durch.

Was will man mehr, danke!
 
Back
Top