Freesco, NND, CDN, EOS
http://forum.freesco.pl/

ip-up i dodatkowe funkcje
http://forum.freesco.pl/viewtopic.php?f=22&t=15419
Strona 1 z 1

Autor:  Albercik [ środa, 30 maja 2007, 23:32 ]
Tytuł:  ip-up i dodatkowe funkcje

Używam pppoe i w plikach ip-up i ip-down staram się umieścić kilka dodatkowych funkcji . W tym wypadku są to wywołania blokad zależnie od klienta, mianowicie:są sobie pliki "blok" i "komunikat", tam wpisuję klientów zależnie od ich zadłużenia, albo wyświetla się komunikat z przyciskiem (tablica ogłoszeń) albo pełna blokada. To działa. Teraz tylko brakuje mi pewnej rzeczy: chciałbym, aby zanim uruchomią się te blokady/komunikaty skrypt sprawdzał plik "wyjatki" w którym były by IP osób wykluczonych z blokad/komunikatów i zależnie , czy dane IP było by wpisane czy nie blokował/komunikował lub nie.


: [/] [] ()
#blokowanie całkowite
IP_BLOK=$PPP_REMOTE
IP_KLIENT=`grep -w $IP_BLOK blok`
if [ "$IP_KLIENT" = "$IP_BLOK" ]; then
    $i -t nat -A PREROUTING -p tcp -s $IP_KLIENT -j REDIRECT --to-port 84
    $i -A PREROUTING -t nat -s $IP_KLIENT -p udp --dport ! 22:80 -j DROP
    $i -A PREROUTING -t nat -s $IP_KLIENT -p tcp --dport ! 22:80 -j DROP
else
    echo "nie wykonuję skryptu blokowania dla $IP_BLOK !!!"
fi


#komunikat
IP_KOM=$PPP_REMOTE
IP_KOMUN=`grep -w $IP_KOM komunikat`
if [ "$IP_KOMUN" = "$IP_KLIENT" ]; then
    exit
else
    if [ "$IP_KOMUN" = "$IP_KOM" ]; then
        $i -t nat -A PREROUTING -p tcp -s $IP_KOMUN -j REDIRECT --to-port 82
        echo "wykonuję komunikat dla $IP_KOM !!!"
    else
        echo "nie wykonuję skryptu komunikat dla $IP_KOM !!!"
    fi
fi


echa są oczywiście niepotrzebne, ale dają jasność skryptu. Proszę o pomoc.

Autor:  zciech [ czwartek, 31 maja 2007, 00:02 ]
Tytuł: 

Dlaczego robisz to w plikach ip-up i ip-down a nie w skrypcie firewala?
Jaki to ma sens, takie ciagle mieszanie w regulach firewala?

zrob to jako pierwsze sprawdzenie i jesli jest zgodnosc to exit
: [/] [] ()
IP_WYJ=$PPP_REMOTE
IP_KLIENT=`grep -w $IP_WYJ wyjatki`
if [ "$IP_KLIENT" = "$IP_WYJ" ]; then
echo "$IP_WYJ To kuzyn królika"
else
#blokowanie całkowite
.
.
fi


uwaga:
nie wszystko co wyje jest wyjątkiem.

Autor:  Albercik [ niedziela, 3 czerwca 2007, 23:35 ]
Tytuł: 

Jeszcze małe pytanko : jak zrobić aby np. plik z ip formatu:
: [/] [] ()
192.168.1.10
192.168.1.11
192.168.1.12
.
.
.
192.168.1.nnn


był czytany linia po linii i podstawiany do zmiennej ?

Autor:  Mis' [ poniedziałek, 4 czerwca 2007, 01:26 ]
Tytuł: 

Albercik pisze:
jak zrobić aby np. plik z ip formatu:
: [/] [] ()
192.168.1.10
192.168.1.11
192.168.1.12
.
.
.
192.168.1.nnn


był czytany linia po linii i podstawiany do zmiennej ?


na przykład tak:

: [/] [] ()

while read line; do
      echo "$line"
done < plik_z_ipkami


Autor:  Albercik [ wtorek, 5 czerwca 2007, 00:47 ]
Tytuł: 

Męczę dalej , bo sam nie radzę sobie :wink: . Są dwa pliki z IP, nazwijmy je plik1 i plik2 . W plik1 znajdują się ip :
: [/] [] ()
192.168.1.10
192.168.1.11
192.168.1.12


a w plik2 znajdują się :
: [/] [] ()
192.168.1.10
192.168.1.11
192.168.1.12
192.168.1.13
192.168.1.14


Nie mam pojęcia jak to zrobić, aby skrypt w bash'u porównał te dwa pliki i wpisał do trzeciego pliku, np plik3 , ip które, są różnicą tych dwóch plików, czyli:
: [/] [] ()
192.168.1.13
192.168.1.14

Autor:  Mis' [ wtorek, 5 czerwca 2007, 01:43 ]
Tytuł: 

Albercik pisze:
Nie mam pojęcia jak to zrobić, aby skrypt w bash'u porównał te dwa pliki i wpisał do trzeciego pliku, np plik3 , ip które, są różnicą tych dwóch plików,


masz parę rzeczy do wyboru:
diff
cmp
comm
sed
awk

proponuję jednak uzyć:

grep -vf plik1 plik2 > plik3 (i ewentualnie grep -vf plik2 plik1 >> plik3)

Zwróć tylko uwagę aby nie nadpisac plik3 jesli użyjesz drugiego polecenia (operator >> zamiast >)

Autor:  Albercik [ wtorek, 5 czerwca 2007, 09:35 ]
Tytuł: 

Twoja pomoc jest nieoceniona, ogromne podziękowania. Nie chcę cały czas pytać "jak to" a "jak tamto" , ale nie mogę znaleźć jakiegoś rozbudowanego kursu bash'a. Zna ktoś coś takiego? Wszystkie te kursy są raczej podstawami, takich szczegółów niestety nie potrafię w tym wypatrzeć.

Autor:  Mis' [ wtorek, 5 czerwca 2007, 09:44 ]
Tytuł: 

Albercik pisze:
nie mogę znaleźć jakiegoś rozbudowanego kursu bash'a. Zna ktoś coś takiego?


http://freshmeat.net/projects/introtoba ... minghowto/
http://freshmeat.net/projects/advancedb ... tingguide/

choć na twoim miejscu raczej szukałbym terminu "programowanie w shellu".
Byłoby to bliższe temu co chcesz robić...

Autor:  Albercik [ wtorek, 5 czerwca 2007, 11:15 ]
Tytuł: 

Mis' pisze:
Albercik pisze:
nie mogę znaleźć jakiegoś rozbudowanego kursu bash'a. Zna ktoś coś takiego?


http://freshmeat.net/projects/introtoba ... minghowto/
http://freshmeat.net/projects/advancedb ... tingguide/

choć na twoim miejscu raczej szukałbym terminu "programowanie w shellu".
Byłoby to bliższe temu co chcesz robić...


Po raz n-ty dziękuję bardzo.

Strona 1 z 1 Strefa czasowa UTC+2godz.
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/