Freesco, NND, CDN, EOS

http://www.freesco.pl
Dzisiaj jest wtorek, 17 czerwca 2025, 14:40

Strefa czasowa UTC+2godz.




Nowy temat Odpowiedz w temacie  [ Posty: 3 ] 
Autor Wiadomość
Post: wtorek, 5 kwietnia 2005, 20:51 
Czesc ,mam taki problem ... wybrany host moze miec dostep do neta tylko gdy ilosc aktywnych hostow bedzie <4 ,w justice zrobilem juz sobie odpowiednie warunki teraz tylko potrzebuje wykonac jakis plik dla nich tak aby po sprawdzeniu w cyklu justice uruchamialo plik blokujacy badz dopuszczajacy tego jegomoscia do netu...

Problem polega na tym ze po kazdym cyklu gdy ilosc hostow <4 uruchomi sie np regulka dodajaca wpisy np
: [/] [] ()
IPFWADM -I -i accept -W eth0 -S 192.168.1.4
i po kilku miniutach takich wpisow regul bedzie rowniez kilka a przy warunku odwrotnym gdy ilosc hostow >4 uruchomi sie
: [/] [] ()
ipfwadm -I -d accept -W eth0 -S 192.168.1.4
i moze nie usunac wszytkich regul akceptujacych pakiety od tego jegomoscia...

Reasumujac problem polega na dopuszczaniu danego osbnika w zaleznosci od ilosci aktynych hostow ,przyklad rozwiazania ktory podalem u gory jest bardzo prymitywny ,pelnia szczescia bylo by dla mnie wpsianie pod jakas zmienna regul dla jednego hosta jednak nie wiem jak uzyc ipfwadm aby wylistowalo mi reguly dla jednego ip. probowalem
: [/] [] ()
ipfwadm -I -S 192.168.1.4 -l
ale nie dziala ... wynik tego dzialania sprawdzic odpwiednimi warunkami i podjac odpwiednia akcje ,taki jest moj pomysl ,moze Wy macie lepsze ..... tak wiec narazie czekam na podpowiedz jak wylsitowac reguly dla jednego hosta i przechowac wynik po jakas zmienna w skrypcie ? Dzieki wielkie!


Na górę
  
 
 Tytuł:
Post: wtorek, 5 kwietnia 2005, 22:42 
Przemyslalem sprawe ,troche poszperalem w regulach listowania niestety nie znalazlem nic o listowaniu regul wybranego hosta ,podejrzewam ze niemozliwe jest wylistowanie regul dla jednego hosta wiec pomysl mam taki.

Trzeba wpisywac wszystkie reguly do pliku np

ipfwadm -I -l > /mnt/home/reguly

W kazdym cyklu uruchamiac w zaleznosci od ilosci hostow albo
1. skrypt Zablokuj jesli losc hostow >3
2. skrypt Odblokuj jesli ilosc hostow <=3

(ilosc hsotow jest liczona razem z tym osobnikiem ,zdaje sobie sprawe ze czlowiek mialby pelny dostep tylko gdy oprocz niego na lini siedzialoby jeszcze dwoch ludzi, ale o to wlasnie mi chodzi)

Zablokuj - w petli sprawdzamy kazda linie pliku reguly ,za kazdym razem gdy w petli zajdzie warunek ze linia pliku reguly ma postac ipfwadm -I -i accept -W eth0 -S 192.168.1.4 dajemy ipfwadm -I -d accept -W eth0 -S 192.168.1.4

Odblokuj - ustawiamy jakas zmienna np ILE na zero ,w petli sprawdzamy kazda linie pliku reguly ,za kazdym razem gdy natrafimy na linie postaci ipfwadm -I -i accept -W eth0 -S 192.168.1.4 inkrementujemy zmienna ILE ,po wykonaniu sie petli sprawdzamy wartosc zmiennej ILE ,jesli jest rowna zero to wstawiamy regule ipfwadm -I -i accept -W eth0 -S 192.168.1.4

I tak przy kazdym wykonaiu sie justice czyli co 30 sekund.

Wiem ze to nie jest forum basha a problem bardziej nadawalby sie na forum programistyczne jednak sprawa dotyczy Freesco dlatego licze na wasze komentarze i sugestie. Bylbym bardzo wdzieczny jesli ktos pokazalby mi petle ktora dzialalaby w opisany wyzej sposob tzn, podstawiala kolejne linie pliku pod zmienna aby pozniej mozna bylo sprawdizc jej zawartosc. Nie bardzo znam sie na skryptach shellowych. Z gory dziekuje i pozdrawiami.


gdy


Na górę
  
 
Post: piątek, 8 kwietnia 2005, 01:43 
Oto jak zrealizowalem to zadanie:

1.Pod /mnt/home stworzylem plik reguly gdzie laduje wynik ipfwadm -I -l
2.Edycja pliku skryptu justice ,dopisalem takie linie:
: [/] [] ()
done
#######
ipfwadm -I -l >/mnt/home/reguly
echo "Ilosc hostow: $ilosc" >/mnt/home/ilosc_hostow
if [ $ilosc -gt 3 ] ; then
/bin/Zablokuj /mnt/home/reguly
else /bin/Odblokuj /mnt/home/reguly
fi
########
cw=$(expr "$maxtran" / 4 )

3.Skrypt Zablokuj wyglada tak:
: [/] [] ()
#!/bin/bash
clear
while read linia; do
  if [ "$linia" = "acc   all  192.168.1.4          anywhere             n/a" ] ; then
   ipfwadm -I -d accept -W eth0 -S 192.168.1.4
  fi
done<$1;

4.Skrypt Odblokuj wyglada tak:
: [/] [] ()
#!/bin/bash
clear
l=0;
while read linia; do
  if [ "$linia" = "acc   all  192.168.1.4          anywhere             n/a" ] ; then
   l=$(($l+1));
  fi
done<$1;
if [ "$l" = "0" ] ; then
 ipfwadm -I -i accept -W eth0 -S 192.168.1.4
fi

Skrypty wywolywane sa przy kazdym cyklu justice ,jako argumenty skryptow Odblokuj/Zablokuj podawany jest plik z aktualnymi regulami firewalla. W zaleznosci od ilosci hostow wywolywany jest albo Zablokuj albo Odblokuj. Jak widac wszystko dziala dla hosta 192.168.1.4. Narazie smiga dobrze ,blokuje kogo trzeba i kiedy trzeba co mnie osobiscie bardzo cieszy :) Pozdrawiam


Na górę
  
 
Wyświetl posty nie starsze niż:  Sortuj wg  
Nowy temat Odpowiedz w temacie  [ Posty: 3 ] 

Strefa czasowa UTC+2godz.


Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 8 gości


Nie możesz tworzyć nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Przejdź do:  
cron
Technologię dostarcza phpBB® Forum Software © phpBB Group
Hosting: Compus-Net
RobertKonik.pl