FreeBSD - /etc/rc.local

ZAJDAN

  • *****
  • 2 078
    • Zobrazit profil
    • E-mail
FreeBSD - /etc/rc.local
« kdy: 24. 10. 2018, 11:33:36 »
Zdar...
mám trable ve FreeBSD se spuštěním příkazu v /etc/rc.local
jde konkrétně o Snort3...ve Snort CookBook je citace:
------------------------------------------------------------------------------------------------------------------
The exact methods for starting Snort at boot vary slightly from distribution to distribution. There are likely to be some slight differences between the exact methods of setting this up on each different Linux distribution. The simplest method, if your system supports it, is to modify the /etc/rc.d/rc.local script. This script runs after all the other init scripts on the system, so your system will be unmonitored between the start of network services and the start of Snort. Add a line similar to the following to your rc.local script:

/usr/local/bin/snort -D -c /etc/snort/snort.conf -l /var/log/snort

------------------------------------------------------------------------------------------------------------------
Podobným způsobem jsem to nandal i já ve FreeBSD ale, po rebootu Snort neběží a tak se snažím dopátrat co je špatně.
Pro jistotu jsem si otestoval zda je již vytvořen bridge a výstup z ifconfig zapisuji do souboru. Bridge je v ten moment správně vytvořen.

Kód: [Vybrat]
# nano /etc/rc.local
  GNU nano 2.9.8                                                  /etc/rc.local                                                             

#!/bin/sh

ifconfig >> /home/supervisor/rc-local.txt

/usr/local/snort/bin/snort -c /usr/local/snort/etc/snort/snort.lua -i bridge0

exit 0

pokus manuálně spustím:
sh /etc/rc.local
vše korektně naběhne

ve /var/log/messages  nevidím nic podezdřelého
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.


Vykook

  • ***
  • 135
    • Zobrazit profil
    • homepage
    • E-mail
Re:FreeBSD - /etc/rc.local
« Odpověď #1 kdy: 24. 10. 2018, 12:08:21 »
Já bych na tvém místě použil http://supervisord.org

ZAJDAN

  • *****
  • 2 078
    • Zobrazit profil
    • E-mail
Re:FreeBSD - /etc/rc.local
« Odpověď #2 kdy: 24. 10. 2018, 12:16:02 »
Já bych na tvém místě použil http://supervisord.org
nejprve bych to chtěl vyřešit v nativním prostředí a potom možná nasazovat dodatečné nástroje
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.

user

Re:FreeBSD - /etc/rc.local
« Odpověď #3 kdy: 24. 10. 2018, 12:28:40 »
Snort v2 (v2.9) je po instalacii z pkg alebo z portov normalny servis, takze informacia o spusteni po starte systemu je v rc.conf.
Vo verzii 3 to nejde? Funguje ti prikaz "service snort onestatus" ?
« Poslední změna: 24. 10. 2018, 12:33:15 od user »

ZAJDAN

  • *****
  • 2 078
    • Zobrazit profil
    • E-mail
Re:FreeBSD - /etc/rc.local
« Odpověď #4 kdy: 24. 10. 2018, 12:34:30 »
Snort v2 (v2.9) je po instalacii z pkg alebo z portov normalny servis, takze informacia o spusteni po starte systemu je v rc.conf.
Vo verzii 3 to nejde? Funguje ti "service snort onestatus" ?
Ja mam Snort3 zkompilovanej, takze se do services nepropsal.
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.


Vykook

  • ***
  • 135
    • Zobrazit profil
    • homepage
    • E-mail
Re:FreeBSD - /etc/rc.local
« Odpověď #5 kdy: 24. 10. 2018, 12:39:58 »
Já bych na tvém místě použil http://supervisord.org
nejprve bych to chtěl vyřešit v nativním prostředí a potom možná nasazovat dodatečné nástroje
v tom případě: http://www.defcon1.org/html/rc-local.html
(bez záruky, používám právě na tohle ten supervisord, tak to nemám otestované)

Jinak předpokládám, že to je nějakej "vlastní" snort, protože ten v balíčcích určitě nebude v cestě "/usr/local/snort/bin/snort". Možná by stálo taky za to, vykrást rc script z toho distribučního.

Edit: co balíček "snort3" ?
« Poslední změna: 24. 10. 2018, 12:41:58 od Vykook »

user

Re:FreeBSD - /etc/rc.local
« Odpověď #6 kdy: 24. 10. 2018, 12:50:39 »
Mas nejaku specificku verziu? Ja ked chcem mat software skompilovany, pripadne ked chcem upravit zdrojaky, tak to spravim cez porty (ak sa tam teda software nachadza, snort3 tam je od 12/2017). Ak mas rozbaleny aktualny portsnap, tak v /usr/ports/security/snort3/ stiahnes zdrojaky cez "make fetch", nasledne upravis alebo skontrolujes co potrebujes, a das "make install". Tie zdrojaky su uz pripravene pre FreeBSD, takze je to bezproblemove a mas z toho servis.

Ak to chces mat priamo z gitu, mozes si pozret ako to je spravene vo FreeBSD porte a spravit to so zdrojakom z gitu rovnako.

Nuz a ak to chces cez rc.local, tak ti bohuzial nepomozem, ja si spravim vzdy aj na custom software servis :)
« Poslední změna: 24. 10. 2018, 12:52:59 od user »

ZAJDAN

  • *****
  • 2 078
    • Zobrazit profil
    • E-mail
Re:FreeBSD - /etc/rc.local
« Odpověď #7 kdy: 24. 10. 2018, 13:07:04 »
ano..kompiloval jsem verzi z Gitu
divam se, že bych to obšlahnul z portů:
/usr/ports/security/snort3/
ale nic s tím související tam není, budu to muset tedy fetchnout aby se to natahlo a podívam se
« Poslední změna: 24. 10. 2018, 13:11:29 od ZAJDAN »
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.

user

Re:FreeBSD - /etc/rc.local
« Odpověď #8 kdy: 24. 10. 2018, 13:39:12 »
Skusil som nainstalovat z portu snort3 a on tam ten init asi naozaj nie je.. (nie je ten port hotovy?). Skus pozriet init z portu snort (v2) a nejako to zbastli z toho (uprav a uloz do /usr/local/etc/rc.d/)
https://svnweb.freebsd.org/ports/head/security/snort/files/snort.in?view=markup

Ja som chcel tiez aktualizovat snort, tak ak ti to bude fungovat, tak sem postni :D

ZAJDAN

  • *****
  • 2 078
    • Zobrazit profil
    • E-mail
Re:FreeBSD - /etc/rc.local
« Odpověď #9 kdy: 24. 10. 2018, 13:42:27 »
Skusil som nainstalovat z portu snort3 a on tam ten init asi naozaj nie je.. (nie je ten port hotovy?).
super....dobře, že to vím a nebudu se trápit s 3kovou verzí z portů
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.

user

Re:FreeBSD - /etc/rc.local
« Odpověď #10 kdy: 24. 10. 2018, 14:01:12 »
Skus pozriet init z portu snort (v2) a nejako to zbastli z toho (uprav a uloz do /usr/local/etc/rc.d/)
https://svnweb.freebsd.org/ports/head/security/snort/files/snort.in?view=markup

Ja som chcel tiez aktualizovat snort, tak ak ti to bude fungovat, tak sem postni :D

Inak zbehol som ten subor snort.in a podla mna ho vobec netreba upravovat, pojde ti rovno aj so snort3. Daj vediet, ja to budem riesit az buduci tyzden.

ZAJDAN

  • *****
  • 2 078
    • Zobrazit profil
    • E-mail
Re:FreeBSD - /etc/rc.local
« Odpověď #11 kdy: 24. 10. 2018, 14:30:21 »
Inak zbehol som ten subor snort.in a podla mna ho vobec netreba upravovat, pojde ti rovno aj so snort3. Daj vediet, ja to budem riesit az buduci tyzden.
určitě to úpravit bude potřeba, třeba jen
[ -z "$snort_conf" ]      && snort_conf="%%PREFIX%%/etc/snort/snort.conf"
je pro Snort3 nepoužitelné, defaultně má všechny konfiguráky .lua (psané v jazyce LUA)

Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.

samalama

Re:FreeBSD - /etc/rc.local
« Odpověď #12 kdy: 24. 10. 2018, 15:22:38 »
zajdan, este ti len linuxove mlieko tecie po brade a uz sa pustas do *bsd...?

ZAJDAN

  • *****
  • 2 078
    • Zobrazit profil
    • E-mail
Re:FreeBSD - /etc/rc.local
« Odpověď #13 kdy: 24. 10. 2018, 15:28:22 »
pči kompilaci jsem použil parameter --prefix
Kód: [Vybrat]
#./configure_cmake.sh --define=ICONV_ACCEPTS_NONCONST_INPUT:BOOL=true --prefix=/usr/local/snort
převzal jsem tedy zmíněný init script ze Snort2 a upravil jsem tedy potřebné:
do /etc/rc.conf přidal:
Kód: [Vybrat]
#SNORT
snort_enable="YES"
snort_flags="-Dq"
snort_interface="bridge0"
snort_conf="${PREFIX}/etc/snort/snort.lua"
snort_expression=""
a vytvořil soubor /usr/local/etc/rc.d/snort a nastavil chmod +x , chmod 555
jeho obsah:
Kód: [Vybrat]
#!/bin/sh
        # $FreeBSD$

        # PROVIDE: snort
        # REQUIRE: DAEMON
        # BEFORE: LOGIN
        # KEYWORD: shutdown

        # Add the following lines to /etc/rc.conf to enable snort:
        # snort_enable (bool):          Set to YES to enable snort
        #                               Default: NO
        # snort_flags (str):            Extra flags passed to snort
        #                               Default: -D -q
        # snort_interface (str):        Network interface to sniff
        #                               Default: ""
        # snort_conf (str):             Snort configuration file
        #                               Default: ${PREFIX}/etc/snort/snort.conf
        # snort_expression (str):       filter expression
        #                               If your expression is very long, set
        #                               kern.ps_arg_cache_limit sysctl variable
        #                               to large value. Otherwise, snort won't
        #                               restart!
        #                               Default: ""
        #
        # To enable multi interface, use:
        # snort_rules="eth0 eth1"
        # defaults will follow, snort.conf becomes 'snort_eth0.conf', etc.

        . /etc/rc.subr

        name="snort"
        rcvar=snort_enable
        extra_commands=reload

        command="%%PREFIX%%/bin/snort"

        load_rc_config $name

        [ -z "$snort_enable" ]    && snort_enable="NO"
        [ -z "$snort_conf" ]      && snort_conf="%%PREFIX%%/etc/snort/snort.lua"
        [ -z "$snort_flags" ]     && snort_flags="-D -q"

        [ -n "$snort_interface" ] && snort_flags="$snort_flags -i $snort_interface" \
                                  && pidfile="/var/run/snort_${snort_interface}.pid"
        [ -n "$snort_conf" ]      && snort_flags="$snort_flags -c $snort_conf"
        [ -n "$snort_expression" ] && snort_flags="$snort_flags $snort_expression"

        if [ -n "$snort_rules" ]; then
          _1=$1
          if [ $# -gt 1 ]; then shift; snort_rules=$*; fi
          snort_conf=""
          snort_flags=""
          rc=0
          for i in ${snort_rules}; do
                eval _conf=\$snort_${i}_conf
                eval _flags=\$snort_${i}_flags
                [ -z "$_flags" ] && _flags="-D -q"
                eval _intf=\$snort_${i}_interface
                eval _expr=\$snort_${i}_expression
                if [ -n "$_intf" ] ;then
                    _conf="$_conf -i $_intf"
                   eval pidfile="/var/run/snort_$_intf.pid"
                fi
                command_args="$_flags -c $_conf $_expr"
                run_rc_command "$_1"
                if [ $? -ne 0 ]; then rc=1; fi
                unset _pidcmd _rc_restart_done
           done
           exit $rc
        else
           run_rc_command "$1"
        fi
v něm jsem změnil
[ -z "$snort_conf" ]      && snort_conf="%%PREFIX%%/etc/snort/snort.lua"

v /etc/rc.local
Kód: [Vybrat]
/usr/local/snort/bin/snort -c /usr/local/snort/etc/snort/snort.lua -i bridge0
udělal jsem reboot, ale snort po bootu neběží
ten init script stejně řeší jen přepínače(start, restart, stop, status, etc) ...ten já v podstatě vůbec nepotřebuju
mě kurna stačí jen nastartovat Snort po bootu

« Poslední změna: 24. 10. 2018, 15:32:47 od ZAJDAN »
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.

k3dAR

  • *****
  • 2 838
  • porad nemam telo, ale uz mam hlavu... nobody
    • Zobrazit profil
    • E-mail
Re:FreeBSD - /etc/rc.local
« Odpověď #14 kdy: 24. 10. 2018, 15:40:03 »
nevim o cem pises, ale obecne k rc.local
1. pokud nevis zda se vubec pousti, pridas (treba): touch /tmp/bezim a uvidis zda se vytvori (resp. to sis overil presmerovanim ifconfig do souboru)
2. pokud vis ze se rc.local pousti, ale nepousti(?) se pridanej prikaz, pridas presmerovani (stdout a stderr) toho prikazu do souboru