kengdal Skrevet 8. mai 2006 Del Skrevet 8. mai 2006 Er det noe mulighet til å få iptables til å lese fra en fil? Jeg har lyst til å ha en fil med macadresser som er sperret. Det hadde vært mye bedre å vedlikeholdt en fil i steden får å gå inn i iptables scriptet. Takker for svar Mvh Kengdal Lenke til kommentar
comicz Skrevet 8. mai 2006 Del Skrevet 8. mai 2006 Kan du ikke bare lage en løkke som leser MAC-adresser fra en fil, da? Det er jo tross alt et script, du har anledning til å hente informasjon utenfra om du vil. Lenke til kommentar
kengdal Skrevet 9. mai 2006 Forfatter Del Skrevet 9. mai 2006 Kan du ikke bare lage en løkke som leser MAC-adresser fra en fil, da? Det er jo tross alt et script, du har anledning til å hente informasjon utenfra om du vil. 6061427[/snapback] Takker for svar, har du et eksempel på en slik løkke. Er ikke så kjent med slik scripting. Lenke til kommentar
kengdal Skrevet 9. mai 2006 Forfatter Del Skrevet 9. mai 2006 (endret) for macaddresse in `cat macaddresse.txt $1` /sbin/iptables -A FORWARD -p ALL -i $eth0 -m mac --mac-source $macaddressse -j DROP Noe sånt? Er en stund siden jeg jobbet med noe sånt. Takker for svar MVH KEngdal Endret 9. mai 2006 av kengdal Lenke til kommentar
|FSK| Skrevet 9. mai 2006 Del Skrevet 9. mai 2006 for n in $(ls -1 --color=none sperr.txt);do iptables -A INPUT -m mac --mac-source $n -j DROP;done Uten å ha testet, tror jeg den vil sperre macadresser i sperr.txt, så lenge det er en mac på hver linje. Orker ikke teste ettersom jeg ikke sitter på noen fysisk boks, og ikke orker peset om jeg stenger meg selv ute Lenke til kommentar
kengdal Skrevet 9. mai 2006 Forfatter Del Skrevet 9. mai 2006 Takker for svar, skal teste dettte ut nå. Lenke til kommentar
kengdal Skrevet 9. mai 2006 Forfatter Del Skrevet 9. mai 2006 Den sier den ikke finner sperr.txt. Jeg har lagt den i mappen der hvor iptables scriptet ligger. Noen forslag? Lenke til kommentar
comicz Skrevet 9. mai 2006 Del Skrevet 9. mai 2006 Øh. Hva er vitsen med "ls", FSK? Han skal ikke liste filen, han skal ha innholdet i den. #!/bin/bash for i in `cat sperr.txt` do echo "$i" done exit 0 Bytt ut echo "$i" med den aktuelle iptables-kommandoen ;--) Dette forutsetter at MAC'ene er på hver sin linje: cat sperr.txt 88:77:11:22:44 77:22:33:11:11 Lenke til kommentar
kengdal Skrevet 10. mai 2006 Forfatter Del Skrevet 10. mai 2006 Denne her funker fint. /sbin/iptables -A FORWARD -p ALL -i $GREEN_DEV -m mac --mac-source 00:11:22:33:44:55 -j DROP Denne funker ikke for sperr in `cat /etc/sperr.txt` do /sbin/iptables -A FORWARD -p ALL -i $GREEN_DEV -m mac --mac-source $sperr -j DROP done Noen råd? Lenke til kommentar
comicz Skrevet 10. mai 2006 Del Skrevet 10. mai 2006 Du burde i hvert fall slenge "" rundt $sperr: "$sperr". Det er alltid et fint triks å kjøre echo i stedet for/i tillegg til kommandoen du skal kjøre, slik at du ser akkurat hva den bruker. Sleng en echo "$sperr" over iptables-linja og se hvordan det ser ut. Lenke til kommentar
kengdal Skrevet 10. mai 2006 Forfatter Del Skrevet 10. mai 2006 Jeg satt echo "$sperr" å den hentet ut mac-adressen. Så det funket fint. Men den klarer likevell ikke å sperre. Lenke til kommentar
kengdal Skrevet 10. mai 2006 Forfatter Del Skrevet 10. mai 2006 Distroen som bli kjørt her er ipcop. Den konfigurerer iptables selv. Dette fungerer fint: #!/bin/sh # # $Id: rc.firewall,v 1.7.2.19 2005/10/03 00:34:12 gespinasse Exp $ # eval $(/usr/local/bin/readhash /var/ipcop/ppp/settings) eval $(/usr/local/bin/readhash /var/ipcop/ethernet/settings) IFACE=`/bin/cat /var/ipcop/red/iface 2> /dev/null | /usr/bin/tr -d '\012'` if [ -f /var/ipcop/red/device ]; then DEVICE=`/bin/cat /var/ipcop/red/device 2> /dev/null | /usr/bin/tr -d '\012'` fi iptables_init() { # Flush all rules and delete all custom chains /sbin/iptables -F /sbin/iptables -t nat -F /sbin/iptables -t mangle -F /sbin/iptables -X /sbin/iptables -t nat -X /sbin/iptables -t mangle -X # Set up policies /sbin/iptables -P INPUT DROP /sbin/iptables -P FORWARD DROP /sbin/iptables -P OUTPUT ACCEPT /sbin/iptables -A FORWARD -p ALL -i $GREEN_DEV -m mac --mac-source 00:11:22:33:44:55 -j DROP Dette fungerer ikke #!/bin/sh # # $Id: rc.firewall,v 1.7.2.19 2005/10/03 00:34:12 gespinasse Exp $ # eval $(/usr/local/bin/readhash /var/ipcop/ppp/settings) eval $(/usr/local/bin/readhash /var/ipcop/ethernet/settings) IFACE=`/bin/cat /var/ipcop/red/iface 2> /dev/null | /usr/bin/tr -d '\012'` if [ -f /var/ipcop/red/device ]; then DEVICE=`/bin/cat /var/ipcop/red/device 2> /dev/null | /usr/bin/tr -d '\012'` fi iptables_init() { # Flush all rules and delete all custom chains /sbin/iptables -F /sbin/iptables -t nat -F /sbin/iptables -t mangle -F /sbin/iptables -X /sbin/iptables -t nat -X /sbin/iptables -t mangle -X # Set up policies /sbin/iptables -P INPUT DROP /sbin/iptables -P FORWARD DROP /sbin/iptables -P OUTPUT ACCEPT for sperr in `cat /etc/sperr.txt` do /sbin/iptables -A FORWARD -p ALL -i $GREEN_DEV -m mac --mac-source "$sperr" -j DROP done Lenke til kommentar
comicz Skrevet 10. mai 2006 Del Skrevet 10. mai 2006 (endret) Du kaller /bin/sh, ikke /bin/bash. Dette betyr sikkert annen syntaks - jeg kjenner ikke /bin/sh så godt. Så vidt jeg kan se skulle det ikke være noen problem å kjøre bash fremfor sh(altså bytte ut /bin/sh med /bin/bash i den første linja.) Edit: Hmm, syntaks skal være mer eller mindre den samme. Du kan prøve med bash og se hva som skjer? Evt kan du slenge de linjene i et eget skript, som invoker bash, og kjøre det fra iptables-skriptet(altså en form for wrapperskript). Endret 10. mai 2006 av comicz Lenke til kommentar
olear Skrevet 11. mai 2006 Del Skrevet 11. mai 2006 /bin/sh er garantert en symlink til bash. Lenke til kommentar
kengdal Skrevet 11. mai 2006 Forfatter Del Skrevet 11. mai 2006 (endret) Det som er så rart er hvis jeg skriver echo /sbin/iptables -A FORWARD -p ALL -i $GREEN_DEV -m mac --mac-source "$sperr" -j DROP Så viser den /sbin/iptables -A FORWARD -p ALL -i $GREEN_DEV -m mac --mac-source 00:11:22:33:44:55 -j DROP Dette er merkelig. Skulle nesten tro at den ikke liker at det står " for sperr in `cat /etc/sperr.txt` do" Virker som den ikke bryr seg om det som skjer etter denne linja. Resten av scriptet fungerer nedover. Går det ann å legge til $sperr som henter ut infomasjon lenger oppe i scriptet så den bare henter ut det når den trenger det. Litt dårlig forklart men. Så det ser sånn ut. /sbin/iptables -P INPUT DROP /sbin/iptables -P FORWARD DROP /sbin/iptables -P OUTPUT ACCEPT /sbin/iptables -A FORWARD -p ALL -i $GREEN_DEV -m mac --mac-source "$sperr" -j DROP Noen som skjønte det Endret 15. mai 2006 av kengdal Lenke til kommentar
kengdal Skrevet 15. mai 2006 Forfatter Del Skrevet 15. mai 2006 Ingen som har noen nye forslag? Noen andre metoder jeg kansje kan prøve på? Lenke til kommentar
|FSK| Skrevet 15. mai 2006 Del Skrevet 15. mai 2006 Øh. Hva er vitsen med "ls", FSK? Han skal ikke liste filen, han skal ha innholdet i den. Akk, det må være en av de bedre typoene mine på lang tid. Selvfølgelig burde det ha vært cat sperr.txt inne i bildet der... Jaja Lenke til kommentar
arokh Skrevet 16. mai 2006 Del Skrevet 16. mai 2006 Dere tenker litt for tungvindt: iptables -A FORWARD -p ALL -i $GREENDEV -m mac --mac-source 00:14:22:1b:2a:a6 -j DROP iptables -A FORWARD -p ALL -i $GREENDEV -m mac --mac-source 00:14:22:1b:2a:a7 -j DROP iptables -A FORWARD -p ALL -i $GREENDEV -m mac --mac-source 00:14:22:1b:2a:a8 -j DROP Ikke noe poeng å putte mac-addressene i en egen fil. Om du absolutt vil organisere det litt "penere" kan du jo gjøre noe slik: MACS="00:14:22:1b:2a:a8 " MACS="$MACS 00:14:22:1b:2a:a9 " MACS="$MACS 00:14:22:1b:2a:a7 " MACS="$MACS 00:14:22:1b:2a:a6" Deretter kan du bruke "for a in $MACS" osv. Lenke til kommentar
kengdal Skrevet 16. mai 2006 Forfatter Del Skrevet 16. mai 2006 Jeg har mange adresser som ligger i en txt.fil som jeg skulle hatt sperret. Det er mye lettere å legge til eller fjærne mac-adresser fra en fil, en å gå inn i scriptet å manuelt redigere dette hvergang. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå