Ticket #42531: patch-snort-Portfile2.diff

File patch-snort-Portfile2.diff, 10.5 KB (added by jul_bsd@…, 10 years ago)
  • net/snort/Portfile

    old new  
    1 # $Id: Portfile 125738 2014-09-25 14:43:03Z mf2k@macports.org $
     1# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
     2# $Id: Portfile 87104 2011-11-10 19:29:34Z snc@macports.org $
    23
    34PortSystem 1.0
    45
    56name             snort
    6 version          2.9.1.2
     7version          2.9.7.0
    78categories       net
    8 maintainers      nomaintainer
     9maintainers      yahoo.fr:jul_bsd openmaintainer
    910license          GPL-2
    1011description      Open Source Network Intrusion Detection System
    1112long_description \
     
    1718    attacks, SMB probes, OS fingerprinting attempts, and much more.
    1819homepage         http://www.snort.org/
    1920platforms        darwin freebsd
    20 master_sites     ${homepage}dl/snort-current/
     21master_sites     ${homepage}/downloads/snort/
    2122
    22 checksums        rmd160  a28ebd59df80884e1554fb75a4279e97b1dd8b32 \
    23                  sha256  eac98be8138f9debdcc8f77061dab1950e88fa40c18311ddbab0a329852375f5
     23checksums           rmd160  fa49f3660db9ad940c4c9394d823bbb7faf625c1 \
     24                    sha256  9738afea45d20b7f77997cc00055e7dd70f6aea0101209d87efec4bc4eace49b
    2425
    2526depends_lib      port:daq
    2627
    27 startupitem.create  yes
    28 startupitem.start   "${prefix}/share/${name}/snort.sh"
    29 startupitem.stop    "/bin/kill \$(cat /var/run/snort_*.pid)"
     28#patchfiles       patch-src-strlcatu.h.diff patch-src-strlcpyu.h.diff
    3029
    31 variant mysql5 description {mysql 5 support} {
    32     depends_lib-append    path:bin/mysql_config5:mysql5
    33     configure.args-append   --with-mysql-includes=${prefix}/include/mysql5/mysql \
    34                             --with-mysql-libraries=${prefix}/lib/mysql5/mysql
    35 }
     30add_users snort group=snort home=${prefix}/var/snort shell=/sbin/nologin realname=Snort\ user
    3631
    37 variant mysql4 description {mysql 4 support} {
    38     depends_lib-append    port:mysql4
    39     configure.args-append --with-mysql=${prefix}
    40 }
    4132
     33set if en1
     34startupitem.create  yes
     35startupitem.executable ${prefix}/bin/${name} -i ${if} -c ${prefix}/etc/snort/snort.conf -l ${prefix}/var/log/snort -u snort -g snort --pid-path ${prefix}/var/run
     36startupitem.pidfile "${prefix}/var/run/snort_${if}.pid"
     37#startupitem.start   "${prefix}/share/${name}/snort.sh"
     38#startupitem.stop    "/bin/kill \$(cat ${prefix}/var/run/snort_*.pid)"
     39
     40destroot.asroot     yes
    4241post-destroot {
    4342# Copy the Snort database schemas
    44     xinstall -d -m 755 ${destroot}${prefix}/share/${name}/schemas
    45     eval xinstall -m 755 [glob ${worksrcpath}/schemas/create*] ${destroot}${prefix}/share/${name}/schemas
     43#    xinstall -d -m 755 ${destroot}${prefix}/share/${name}/schemas
     44#    eval xinstall -m 755 [glob ${worksrcpath}/schemas/create*] ${destroot}${prefix}/share/${name}/schemas
    4645
    4746# Copy Snort's etc/ files
    4847    xinstall -d -m 755 ${destroot}${prefix}/etc/${name}
    4948    eval xinstall [glob ${worksrcpath}/etc/*.map] ${destroot}${prefix}/etc/${name}
    5049    eval xinstall [glob ${worksrcpath}/etc/*.conf*] ${destroot}${prefix}/etc/${name}
    51     file rename ${destroot}${prefix}/etc/${name}/snort.conf ${destroot}${prefix}/etc/${name}/snort.conf.dist
     50    xinstall -d -m 755 ${destroot}${prefix}/share/examples/${name}
     51    file rename ${destroot}${prefix}/etc/${name}/snort.conf ${destroot}${prefix}/share/examples/${name}/snort.conf.dist
    5252
    5353# fix snort.conf.dist
    54     reinplace "s|dynamicpreprocessor directory /usr/local/lib/snort_dynamicpreprocessor/|dynamicpreprocessor directory ${prefix}/lib/snort_dynamicpreprocessor/|g" ${destroot}${prefix}/etc/${name}/snort.conf.dist
    55     reinplace "s|dynamicengine /usr/local/lib/snort_dynamicengine/libsf_engine.so|dynamicengine ${prefix}/lib/snort_dynamicengine/libsf_engine.dylib|g" ${destroot}${prefix}/etc/${name}/snort.conf.dist
    56     reinplace "s|dynamicdetection directory /usr/local/lib/snort_dynamicrule/|dynamicdetection directory ${prefix}/lib/snort_dynamicrule/|g" ${destroot}${prefix}/etc/${name}/snort.conf.dist
    57     reinplace "s|dynamicdetection file /usr/local/lib/snort_dynamicrule/libdynamicexamplerule.so|dynamicdetection file ${prefix}/lib/snort_dynamicrule/libdynamicexamplerule.dylib|g" ${destroot}${prefix}/etc/${name}/snort.conf.dist
     54    reinplace "s|dynamicpreprocessor directory /usr/local/lib/snort_dynamicpreprocessor/|dynamicpreprocessor directory ${prefix}/lib/snort_dynamicpreprocessor/|g" ${destroot}${prefix}/share/examples/${name}/snort.conf.dist
     55    reinplace "s|dynamicengine /usr/local/lib/snort_dynamicengine/libsf_engine.so|dynamicengine ${prefix}/lib/snort_dynamicengine/libsf_engine.dylib|g" ${destroot}${prefix}/share/examples/${name}/snort.conf.dist
     56    reinplace "s|dynamicdetection directory /usr/local/lib/snort_dynamicrule/|dynamicdetection directory ${prefix}/lib/snort_dynamicrule/|g" ${destroot}${prefix}/share/examples/${name}/snort.conf.dist
     57    reinplace "s|dynamicdetection file /usr/local/lib/snort_dynamicrule/libdynamicexamplerule.so|dynamicdetection file ${prefix}/lib/snort_dynamicrule/libdynamicexamplerule.dylib|g" ${destroot}${prefix}/share/examples/${name}/snort.conf.dist
    5858
     59    xinstall -d ${destroot}${prefix}/share/${name}
    5960    xinstall -m 755 ${filespath}/snort.sh \
    6061        ${destroot}${prefix}/share/${name}/snort.sh
    6162    reinplace "s|__PREFIX__|${prefix}|g" \
    6263        ${destroot}${prefix}/share/${name}/snort.sh
     64
     65    xinstall -d ${destroot}${prefix}/lib/snort_dynamicrules
     66    destroot.keepdirs-append ${destroot}${prefix}/lib/snort_dynamicrules
     67    reinplace "s|/usr/local/lib/snort_dynamicrules|${prefix}/lib/snort_dynamicrules|" \
     68        ${destroot}${prefix}/share/examples/${name}/snort.conf.dist
     69    reinplace "s|dynamicengine ${prefix}/lib/snort_dynamicengine/libsf_engine.dylib|dynamicengine ${prefix}/lib/snort_dynamicengine/libsf_engine.so|" \
     70        ${destroot}${prefix}/share/examples/${name}/snort.conf.dist
     71    xinstall -d ${destroot}${prefix}/etc/snort/rules
     72    destroot.keepdirs-append ${destroot}${prefix}/etc/snort/rules
     73    reinplace "s|var RULE_PATH ../rules|var RULE_PATH /rules|" \
     74        ${destroot}${prefix}/share/examples/${name}/snort.conf.dist
     75    xinstall -d -o snort ${destroot}${prefix}/var/log/snort
     76    destroot.keepdirs-append ${destroot}${prefix}/var/log/snort
     77}
     78
     79post-activate {
     80    if ![file exists ${prefix}/etc/snort/snort.conf ] {
     81        copy ${prefix}/share/examples/${name}/snort.conf.dist ${prefix}/etc/snort/snort.conf
     82    }
    6383}
    6484
    6585notes "
    6686            ***** File locations *****
    6787
    6888The Snort database schemas -> ${prefix}/share/${name}/schemas
    69 The snort.conf sample file -> ${prefix}/etc/${name}/snort.conf.dist (copy to snort.conf)
     89The snort.conf sample file -> ${prefix}/share/examples/${name}/snort.conf.dist
     90If it doesn't exist before, the sample config is copied to ${prefix}/etc/snort.conf
    7091
    7192NOTE: Make sure you do not change the location of the snort.conf file\
    7293or the startup scripts will not be able to find it.
     94
     95Please download rules from https://www.snort.org/snort-rules/#rules either
     96manually or with oinkmaster.
     97
     98Change at least your HOME_NET in snort.conf and Validate your config with
     99    $ snort -T -c ${prefix}/etc/snort/snort.conf
     100
     101By default ${prefix}/share/${name}/snort.sh is configured
     102to listen only on en0 interface.
     103If you want to listen multiple interface, you need to start one snort
     104instance per interface (or bond them)
     105
     106    $ grep 'Snort rules read' /var/log/system.log
     107    $ egrep '^output' ${prefix}/etc/snort/snort.conf
     108If you get empty touched logs, try also to set:
     109    ipvar EXTERNAL_NET !\$HOME_NET
     110instead of any
     111
     112You can test that snort is functionning by using those tool:
     113ftp http://\$EXTERNAL_HOST/cmd.exe
     114ftp http://lteo.net/cmd.exe
     115http://testmyids.com
     116nmap, IDSWakeup, pytbull, metasploit
     117
     118To use blacklist/whitelist, see
     119http://blog.securitymonks.com/2009/07/19/blacklisting-with-snort/
     120http://systemnoise.com/wordpress/?p=89
     121http://labs.snort.org/iplists/
     122
    73123"
    74124
     125if {![variant_isset mysql51] && ![variant_isset mysql55] && ![variant_isset mariadb] && ![variant_isset percona] } {
     126    default_variants +mysql56
     127}
     128
     129variant mysql51 \
     130    conflicts mysql55 mysql56 mariadb percona \
     131    description "Enable MySQL 5.1 support" {
     132
     133    depends_lib-append          port:mysql51
     134    configure.env-append        MYSQL_CONFIG=${prefix}/lib/mysql51/bin/mysql_config
     135    configure.args-append   --with-mysql-includes=${prefix}/include/mysql51/mysql \
     136                            --with-mysql-libraries=${prefix}/lib/mysql51/mysql
     137    configure.env               CFLAGS="-L${prefix}/lib/mysql51/mysql"
     138}
     139
     140variant mysql55 \
     141    conflicts mysql51 mysql56 mariadb percona \
     142    description "Enable MySQL 5.5 support" {
     143
     144    depends_lib-append          port:mysql55
     145    configure.env-append        MYSQL_CONFIG=${prefix}/lib/mysql55/bin/mysql_config
     146    configure.args-append   --with-mysql-includes=${prefix}/include/mysql55/mysql \
     147                            --with-mysql-libraries=${prefix}/lib/mysql55/mysql
     148    configure.env               CFLAGS="-L${prefix}/lib/mysql55/mysql"
     149}
     150
     151variant mysql56 \
     152    conflicts mysql51 mysql55 mariadb percona \
     153    description "Enable MySQL 5.6 support" {
     154
     155    depends_lib-append          port:mysql56
     156    configure.env-append        MYSQL_CONFIG=${prefix}/lib/mysql56/bin/mysql_config
     157    configure.args-append   --with-mysql-includes=${prefix}/include/mysql56/mysql \
     158                            --with-mysql-libraries=${prefix}/lib/mysql56/mysql
     159    configure.env               CFLAGS="-L${prefix}/lib/mysql56/mysql"
     160}
     161
     162variant mariadb \
     163    conflicts mysql51 mysql55 mysql56 percona \
     164    description "Enable MariaDB (MySQL) support" {
     165
     166    depends_lib-append          port:mariadb
     167    configure.env-append        MYSQL_CONFIG=${prefix}/lib/mariadb/bin/mysql_config
     168    configure.args-append   --with-mysql-includes=${prefix}/include/mariadb/mysql \
     169                            --with-mysql-libraries=${prefix}/lib/mariadb/mysql
     170    configure.env               CFLAGS="-L${prefix}/lib/mariadb/mysql"
     171}
     172
     173variant percona \
     174    conflicts mysql51 mysql55 mysql56 mariadb \
     175    description "Enable Percona (MySQL) support" {
     176    depends_lib-append          port:percona
     177    configure.env-append        MYSQL_CONFIG=${prefix}/lib/percona/bin/mysql_config
     178    configure.args-append   --with-mysql-includes=${prefix}/include/percona/mysql \
     179                            --with-mysql-libraries=${prefix}/lib/percona/mysql
     180    configure.env               CFLAGS="-L${prefix}/lib/percona/mysql"
     181}
     182
    75183livecheck.type      regex
    76 livecheck.url       ${homepage}snort-downloads
     184livecheck.url       ${homepage}/downloads
    77185livecheck.regex     >${name}-(\[0-9.\]+)${extract.suffix}<