LenoX Napisano Sierpień 9, 2009 Zgłoszenie Share Napisano Sierpień 9, 2009 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 More sharing options...
@WalDo Napisano Sierpień 9, 2009 Zgłoszenie Share Napisano Sierpień 9, 2009 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 More sharing options...
sokar620 Napisano Sierpień 9, 2009 Zgłoszenie Share Napisano Sierpień 9, 2009 Możesz też poczytać o uruchamianiu perla w perldoc perlrun (wersja html) Na początek przyda Ci się opcja -e. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
LenoX Napisano Sierpień 9, 2009 Autor Zgłoszenie Share Napisano Sierpień 9, 2009 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 More sharing options...
@WalDo Napisano Sierpień 9, 2009 Zgłoszenie Share Napisano Sierpień 9, 2009 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 More sharing options...
sokar620 Napisano Sierpień 9, 2009 Zgłoszenie Share Napisano Sierpień 9, 2009 Zobacz sobie przykłady - link Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
morsik Napisano Sierpień 9, 2009 Zgłoszenie Share Napisano Sierpień 9, 2009 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 More sharing options...
LenoX Napisano Sierpień 9, 2009 Autor Zgłoszenie Share Napisano Sierpień 9, 2009 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 More sharing options...
fafig Napisano Sierpień 10, 2009 Zgłoszenie Share Napisano Sierpień 10, 2009 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 More sharing options...
Rekomendowane odpowiedzi
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ę