Skocz do zawartości

Skrypt W Perl "iptebles-podobny" Do Blokowania Ip


LenoX

Rekomendowane odpowiedzi

Witam,

 

na wstępie powiem, że nie znam PERL. Potrzebuję jednak użyć skrypt, który ma blokować określone nry IP na prymitywnym serverku z PERL.

(Nie moge miec firewalla ani np moblock)

 

Skrypt wygląda tak ipblock.sh:

system "route add -host 192.168.1.200 reject"

 

uruchamiam tak:

nohup perl /ffp/start/ipblock.sh 2> /dev/null > /dev/null &

 

Czy można powyższe kody połączyć tak, aby w jednej linijce terminala to się zmieściłą?

Chodzi mi o coś takiego:

nohup perl 'system "route add -host 192.168.1.200 reject' 2> /dev/null > /dev/null &

 

Odnośnik do komentarza
Udostępnij na innych stronach

Czy można powyższe kody połączyć tak, aby w jednej linijce terminala to się zmieściłą?

Chodzi mi o coś takiego:

nohup perl 'system "route add -host 192.168.1.200 reject' 2> /dev/null > /dev/null &

Można i to co napisałeś jest prawie OK - "man perl" ;)

 

Odnośnik do komentarza
Udostępnij na innych stronach

dzięki za pomoc,

 

...jakże mi się nie chce uczyć perla......

 

proszę jeszcze o pomoc do poprawienia wpisu w skrypcie uruchamianym na końcu odpalania systemu.

System to klon Debiana coś na kształt Lenny

 

na samym końcu wpisałem

nohup perl /mnt/HD_a4/ffp/start/ipblock.sh 2> /dev/null > /dev/null &

niestety nie startuje ten skrypt...........

 

Jeżeli powyższą zawartość da się do terminala to wtedy działa

 

 

#!/bin/sh

# switch to safe working directory on ramdisk
cd /

# kill SAMBA server

killall smbd

# write a log, in case sth goes wrong
FFP_LOG=/mnt/HD_a2/ffp.log
#FFP_LOG=/dev/null
exec >>$FFP_LOG 2>&1

# real path to ffp
FFP_PATH=/mnt/HD_a4/ffp

# where to search for the install tarball
FFP_TARBALL=/mnt/HD_a2/fun_plug.tgz

# setup script (used for ffp on USB disk)
FFP_SETUP_SCRIPT=/mnt/HD_a2/.bootstrap/setup.sh

# rc file path
FFP_RC=/ffp/etc/rc


echo "**** fun_plug script for DNS-323 (2008-08-11 [email protected]) ****"
date


# check for setup script. an example use for this is to load USB
# kernel modules and mount a USB storage device. The script is
# sourced, that means you can change variables, e.g. FFP_PATH to point
# to the USB device.
if [ -x $FFP_SETUP_SCRIPT ]; then
   echo "* Running $FFP_SETUP_SCRIPT ..."
   . $FFP_SETUP_SCRIPT
fi

# create /ffp link
echo "ln -snf $FFP_PATH /ffp"
ln -snf $FFP_PATH /ffp

# install tarball
if [ -r $FFP_TARBALL ]; then
   echo "* Installing $FFP_TARBALL ..."
   mkdir -p $FFP_PATH && tar xzf $FFP_TARBALL -C $FFP_PATH && /ffp/bin/tar xzf $FFP_TARBALL -C $FFP_PATH
   if [ $? -eq 0 ]; then
       echo "* OK"
   fi
   rm $FFP_TARBALL
fi

# suid busybox
if [ -x /ffp/bin/busybox ]; then
   chown root.root /ffp/bin/busybox
   chmod 0755 /ffp/bin/busybox
   chmod u+s /ffp/bin/busybox
fi

# run fun_plug.init, if present
if [ -x /ffp/etc/fun_plug.init ]; then
   echo "* Running /ffp/etc/fun_plug.init ..."
   /ffp/etc/fun_plug.init
fi

# run fun_plug.local, if present
if [ -x /ffp/etc/fun_plug.local ]; then
   echo "* Running /ffp/etc/fun_plug.local ..."
   /ffp/etc/fun_plug.local
fi

# run commands
if [ -x $FFP_RC ]; then
   echo "* Running $FFP_RC ..."
   $FFP_RC
   echo "*  OK"
else
   echo "$FFP_RC: Not found or not executable"
fi

#run ipblocker
nohup perl /mnt/HD_a4/ffp/start/ipblock.sh 2> /dev/null > /dev/null &

Odnośnik do komentarza
Udostępnij na innych stronach

proszę jeszcze o pomoc do poprawienia wpisu w skrypcie uruchamianym na końcu odpalania systemu.
nohup perl /mnt/HD_a4/ffp/start/ipblock.sh 2> /dev/null > /dev/null &

Może podanie pełnej ścieżki dostępu do perla (np. w Fedorze /usr/bin/perl) wystarczy?

Strzelam w ciemno, bo nie podajesz żadnych logów, z których można wyczytać co się dzieje - może na początek nie wypuszczaj wyjścia błędów na /dev/null tylko obejrzyj na ekranie albo przekieruj do jakiegoś pliku.

 

Odnośnik do komentarza
Udostępnij na innych stronach

Skrypt wygląda tak ipblock.sh:

system "route add -host 192.168.1.200 reject"

To nie jest skrypt perlowy

uruchamiam tak:

nohup perl /ffp/start/ipblock.sh 2> /dev/null > /dev/null &

Tym próbujesz wykonać skrypt powyżej interpreterem perla... coś jest źle!

nohup perl 'system "route add -host 192.168.1.200 reject' 2> /dev/null > /dev/null &

Co to jest w ogóle? Uruchamiasz perla, żeby uruchomić polecenie systemowe? Dziwne... Nie lepiej poprostu w terminalu dać:

root@localhost$ route add -host 192.168.1.200 reject

Swoją drogą, ten ostatni kod ma błąd składniowy. Otwierasz cudzysłów " ale go nie zamykasz.

Odnośnik do komentarza
Udostępnij na innych stronach

ano, skrypt perlowy zrobiłem na podstawie tego co znalazłem na forum dedykowanym mojemu serverkowi

DNS-313 forum

skrypt czyta w pętli logi i banuje "włamywacza"

 

to czego mi potrzeba to właśnie polecenie "route" ....

 

tak jak morsik pisze"

wpisałem w skrypt odpalany automatycznie na starcie "fun_plug":

route add -host 192.168.1.200 reject

 

.............................

aczkolwiek wcześniej osiągnąłem cel w sposób siłowy. Inaczej nie umiałem, może komuś się przyda mój sposób.

wpisałem w skrypt odpalany automatycznie na starcie "fun_plug":

/mnt/HD_at/ip.sh

ip.sh wygląda:

#!/bin/bash
# ip.sh
nohup perl /mnt/HD_a4/ffp/start/ipblock.sh 2> /dev/null > /dev/null &
exit

 

ipblock.sh jest w /mnt/HD_a4/ffp/start/ i wygląda:

#!/mnt/HD_a4/ffp/bin/perl
system "route add -host 192.168.1.120 reject";

 

..........................................

 

Na koniec prawdziwa bomba,

Po umieszczeniu skruptów w katalogu /mnt/HD_a4/ffp/start, są one bez łaski uruchamiane przy restarcie serverka

Zatem 3i sposób polega na wrzuceniu ipblock.sh do /mnt/HD_a4/ffp/start

 

Zaraz napisze HOWto na for forum DNS-323 / DNS-313

Dziękuję Bardzo Za Pomoc

 

Odnośnik do komentarza
Udostępnij na innych stronach

nie chce nic mowic ale man route:

 

 

......
reject     install a blocking route, which will force a route lookup to fail.  This is for example used to mask out networks before  using
              the default route. >>> This is NOT for firewalling. <<<

......

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...