X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=snort.spec;h=50fb373a4e4f0999bd20ba8140695459bfcc130e;hb=4888629;hp=81ee07c76ea1ba0bb4c6939b20f1d070f506ecdb;hpb=e4d730b3bc1a00d18c118517f7e6ff5e1de3b9b2;p=packages%2Fsnort.git diff --git a/snort.spec b/snort.spec index 81ee07c..50fb373 100644 --- a/snort.spec +++ b/snort.spec @@ -1,44 +1,79 @@ # +# TODO: - snort rules - fix description +# - clamav support - cleanup, add some docs +# - snort_inline - prepare separate sets of config-files, rules +# and startup script, adds some docs +# - snort 2.6 +# # Conditional build: -# _without_pgsql build without PostgreSQL support -# _without_mysql build without MySQL support -# _without_snmp without SNMP support +%bcond_without pgsql # build without PostgreSQL storage support +%bcond_without mysql # build without MySQL storage support +%bcond_without snmp # build without SNMP support +%bcond_without inline # build without inline support +%bcond_without prelude # build without prelude support +%bcond_without clamav # build w/o ClamAV preprocessor support (anti-vir) +%bcond_with registered # build with rules available for registered users # -Summary: Network intrusion detection system -Summary(pl): System wykrywania intruzów w sieciach -Summary(pt_BR): Ferramenta de detecção de intrusos -Summary(ru): Snort - ÓÉÓÔÅÍÁ ÏÂÎÁÒÕÖÅÎÉÑ ÐÏÐÙÔÏË ×ÔÏÒÖÅÎÉÑ × ÓÅÔØ -Summary(uk): Snort - ÓÉÓÔÅÍÁ ×ÉÑ×ÌÅÎÎÑ ÓÐÒÏ ×ÔÏÒÇÎÅÎÎÑ × ÍÅÒÅÖÕ +Summary: Network intrusion detection system (IDS/IPS) +Summary(pl.UTF-8): System wykrywania intruzów w sieciach (IDS/IPS) +Summary(pt_BR.UTF-8): Ferramenta de detecção de intrusos +Summary(ru.UTF-8): Snort - система обнаружения попыток вторжения в сеть +Summary(uk.UTF-8): Snort - система виявлення спроб вторгнення в мережу Name: snort -Version: 1.9.0 -Release: 2 -License: GPL -Vendor: Marty Roesch +Version: 2.8.4.1 +Release: 0.1 +License: GPL v2 (vrt rules on VRT-License) Group: Networking Source0: http://www.snort.org/dl/%{name}-%{version}.tar.gz -# snort rules from: Sat Oct 26 14:15:30 2002 GMT -Source1: http://www.snort.org/dl/signatures/%{name}rules-stable.tar.gz -Source2: %{name}.init -Source3: %{name}.logrotate +# Source0-md5: 63f4e76ae96a2d133f4c7b741bad5458 +Source1: http://www.snort.org/pub-bin/downloads.cgi/Download/vrt_pr/%{name}rules-pr-2.4.tar.gz +# Source1-md5: 35d9a2486f8c0280bb493aa03c011927 +%if %{with registered} +Source2: http://www.snort.org/pub-bin/downloads.cgi/Download/vrt_os/%{name}rules-snapshot-2.6.tar.gz +# NoSource2-md5: 0405ec828cf9ad85a03cbf670818f690 +NoSource: 2 +%endif +Source3: http://www.snort.org/pub-bin/downloads.cgi/Download/comm_rules/Community-Rules-2.4.tar.gz +# Source3-md5: f236b8a4ac12e99d3e7bd81bf3b5a482 +Source4: %{name}.init +Source5: %{name}.logrotate +Patch0: %{name}-libnet1.patch +Patch1: %{name}-lib64.patch URL: http://www.snort.org/ -BuildRequires: libnet-devel -BuildRequires: libpcap-devel -%{!?_without_mysql:BuildRequires: mysql-devel} -%{!?_without_pgsql:BuildRequires: postgresql-devel} -BuildRequires: openssl-devel >= 0.9.7 -%{!?_without_snmp:BuildRequires: net-snmp-devel >= 5.0.7} -BuildRequires: zlib-devel BuildRequires: autoconf BuildRequires: automake -%{!?_without_mysql:Provides: snort(mysql) = %{version}} -%{!?_without_pgsql:Provides: snort(pgsql) = %{version}} -Prereq: rc-scripts >= 0.2.0 -Prereq: /sbin/chkconfig -Prereq: %{_sbindir}/useradd -Prereq: %{_sbindir}/groupadd +%{?with_clamav:BuildRequires: clamav-devel} +%{?with_inline:BuildRequires: iptables-devel} +BuildRequires: iptables-static +BuildRequires: libnet1-devel = 1.0.2a +BuildRequires: libpcap-devel +%{?with_prelude:BuildRequires: libprelude-devel} +BuildRequires: libtool +%{?with_mysql:BuildRequires: mysql-devel} +%{?with_snmp:BuildRequires: net-snmp-devel >= 5.0.7} +BuildRequires: openssl-devel >= 0.9.7d +BuildRequires: pcre-devel +%{?with_pgsql:BuildRequires: postgresql-devel} +BuildRequires: rpmbuild(macros) >= 1.202 +BuildRequires: rpmbuild(macros) >= 1.268 +BuildRequires: zlib-devel +Requires(post,preun): /sbin/chkconfig +Requires(postun): /usr/sbin/groupdel +Requires(postun): /usr/sbin/userdel +Requires(pre): /bin/id +Requires(pre): /usr/bin/getgid +Requires(pre): /usr/sbin/groupadd +Requires(pre): /usr/sbin/useradd +Requires: libnet1 = 1.0.2a +Requires: rc-scripts >= 0.2.0 +Provides: group(snort) +%{?with_mysql:Provides: snort(mysql) = %{version}} +%{?with_pgsql:Provides: snort(pgsql) = %{version}} +Provides: user(snort) +Obsoletes: snort-rules +Conflicts: logrotate < 3.7-4 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) -%define _sysconfdir /etc/snort %define _bindir %{_sbindir} %description @@ -54,128 +89,160 @@ Snort has a real- time alerting capability as well, incorporating alerting mechanisms for syslog, user specified files, a UNIX socket, or WinPopup messages to Windows clients using Samba's smbclient. -%description -l pl -Snort to bazuj±cy na open source NIDS (network intrusion detection -systems) wykonuj±cy w czasie rzeczywistym analizê ruchu oraz logowanie -pakietów w sieciach IP. Jego mo¿liwo¶ci to analiza protoko³u oraz -zawarto¶ci w poszukiwaniu ró¿nego rodzaju ataków lub prób takich jak -przepe³nienia bufora, skanowanie portów typu stealth, ataki CGI, -próbkowanie SMB, OS fingerprinting i du¿o wiêcej. Snort u¿ywa -elastycznego jêzyka regu³ek do opisu ruchu, który nale¿y -przeanalizowaæ jak równie¿ silnika wykrywaj±cego, wykorzystuj±cego -modu³ow± architekturê. Snort umo¿liwia alarmowanie w czasie -rzeczywistym poprzez sysloga, osobny plik lub jako wiadomo¶æ WinPopup +Sourcefire VRT Certified Rules requires registration. +https://www.snort.org/pub-bin/register.cgi + +%description -l pl.UTF-8 +Snort to bazujący na open source NIDS (network intrusion detection +systems) wykonujący w czasie rzeczywistym analizę ruchu oraz logowanie +pakietów w sieciach IP. Jego możliwości to analiza protokołu oraz +zawartości w poszukiwaniu różnego rodzaju ataków lub prób takich jak +przepełnienia bufora, skanowanie portów typu stealth, ataki CGI, +próbkowanie SMB, OS fingerprinting i dużo więcej. Snort używa +elastycznego języka regułek do opisu ruchu, który należy +przeanalizować jak również silnika wykrywającego, wykorzystującego +modułową architekturę. Snort umożliwia alarmowanie w czasie +rzeczywistym poprzez sysloga, osobny plik lub jako wiadomość WinPopup poprzez klienta Samby: smbclient. -%description -l pt_BR -Snort é um sniffer baseado em libpcap que pode ser usado como um -pequeno sistema de detecção de intrusos. Tem como característica o -registro de pacotes baseado em regras e também pode executar uma -análise do protocolo, pesquisa de padrões e detectar uma variedade de +Reguły certyfikowane poprzez Sourcefire wymagają rejestracji. +https://www.snort.org/pub-bin/register.cgi + +%description -l pt_BR.UTF-8 +Snort é um sniffer baseado em libpcap que pode ser usado como um +pequeno sistema de detecção de intrusos. Tem como característica o +registro de pacotes baseado em regras e também pode executar uma +análise do protocolo, pesquisa de padrões e detectar uma variedade de assinaturas de ataques, como estouros de buffer, varreduras "stealth" de portas, ataques CGI, pesquisas SMB, tentativas de descobrir o sistema operacional e muito mais. Possui um sistema de alerta em tempo real, com alertas enviados para o syslog, um arquivo de alertas em separado ou como uma mensagem Winpopup. -%description -l ru -Snort - ÜÔÏ ÓÎÉÆÆÅÒ ÐÁËÅÔÏ×, ËÏÔÏÒÙÊ ÍÏÖÅÔ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ËÁË ÓÉÓÔÅÍÁ -ÏÂÎÁÒÕÖÅÎÉÑ ÐÏÐÙÔÏË ×ÔÏÒÖÅÎÉÑ × ÓÅÔØ. Snort ÐÏÄÄÅÒÖÉ×ÁÅÔ -ÐÒÏÔÏËÏÌÉÒÏ×ÁÎÉÅ ÐÁËÅÔÏ× ÎÁ ÏÓÎÏ×Å ÐÒÁ×ÉÌ, ÍÏÖÅÔ ×ÙÐÏÌÎÑÔØ ÁÎÁÌÉÚ -ÐÒÏÔÏËÏÌÏ×, ÐÏÉÓË × ÓÏÄÅÒÖÉÍÏÍ ÐÁËÅÔÏ×. íÏÖÅÔ ÔÁËÖÅ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÄÌÑ -ÏÂÎÁÒÕÖÅÎÉÑ ÁÔÁË É "ÒÁÚ×ÅÄÏË", ÔÁËÉÈ ËÁË ÐÏÐÙÔËÉ ÁÔÁË ÔÉÐÁ -"ÐÅÒÅÐÏÌÎÅÎÉÅ ÂÕÆÅÒÁ", ÓËÒÙÔÏÇÏ ÓËÁÎÉÒÏ×ÁÎÉÑ ÐÏÒÔÏ×, CGI ÁÔÁË, SMB -ÒÁÚ×ÅÄÏË, ÐÏÐÙÔÏË ÏÂÎÁÒÕÖÅÎÉÑ ÔÉÐÁ ïó É ÍÎÏÇÏ ÄÒÕÇÏÇÏ. Snort ÍÏÖÅÔ -ÉÎÆÏÒÍÉÒÏ×ÁÔØ Ï ÓÏÂÙÔÉÑÈ × ÒÅÁÌØÎÏÍ ×ÒÅÍÅÎÉ, ÐÏÓÙÌÁÑ ÓÏÏÂÝÅÎÉÑ × -syslog, ÏÔÄÅÌØÎÙÊ ÆÁÊÌ ÉÌÉ ËÁË WinPopup ÓÏÏÂÝÅÎÉÑ ÞÅÒÅÚ smbclient. - -%description -l uk -Snort - ÃÅ ÓΦÆÅÒ ÐÁËÅÔ¦×, ÝÏ ÍÏÖÅ ×ÉËÏÒÉÓÔÏ×Õ×ÁÔÉÓØ ÑË ÓÉÓÔÅÍÁ -×ÉÑ×ÌÅÎÎÑ ÓÐÒÏ ×ÔÏÒÇÎÅÎØ × ÍÅÒÅÖÕ. Snort ЦÄÔÒÉÍÕ¤ ÐÒÏÔÏËÏÌÀ×ÁÎÎÑ -ÐÁËÅÔ¦× ÎÁ ÏÓÎÏצ ÐÒÁ×ÉÌ, ÍÏÖÅ ×ÉËÏÎÕ×ÁÔÉ ÁÎÁÌ¦Ú ÐÒÏÔÏËÏ̦×, ÐÏÛÕË Õ -×ͦÓÔ¦ ÐÁËÅÔ¦×. íÏÖÅ ÔÁËÏÖ ×ÉËÏÒÉÓÔÏ×Õ×ÁÔÉÓØ ÄÌÑ ×ÉÑ×ÌÅÎÎÑ ÁÔÁË ÔÁ -"ÒÏÚצÄÏË", ÔÁËÉÈ ÑË ÓÐÒÏÂÉ ÁÔÁË ÔÉÐÕ "ÐÅÒÅÐÏ×ÎÅÎÎÑ ÂÕÆÅÒÁ", -ÐÒÉÈÏ×ÁÎÏÇÏ ÓËÁÎÕ×ÁÎÎÑ ÐÏÒÔ¦×, CGI ÁÔÁË, SMB ÒÏÚצÄÏË, ÓÐÒÏ ×ÉÑ×ÌÅÎÎÑ -ÔÉÐÕ ïó ÔÁ ÂÁÇÁÔÏ ¦ÎÛÏÇÏ. Snort ÍÏÖÅ ¦ÎÆÏÒÍÕ×ÁÔÉ ÐÒÏ ÐÏĦ§ × ÒÅÁÌØÎÏÍÕ -ÞÁÓ¦, ÎÁÄÓÉÌÁÀÞÉ ÐÏצÄÏÍÌÅÎÎÑ ÄÏ syslog, ÏËÒÅÍÏÇÏ ÆÁÊÌÕ ÞÉ ÑË WinPopup -ÐÏצÄÏÍÌÅÎÎÑ ÞÅÒÅÚ smbclient. +%description -l ru.UTF-8 +Snort - это сниффер пакетов, который может использоваться как система +обнаружения попыток вторжения в сеть. Snort поддерживает +протоколирование пакетов на основе правил, может выполнять анализ +протоколов, поиск в содержимом пакетов. Может также использоваться для +обнаружения атак и "разведок", таких как попытки атак типа +"переполнение буфера", скрытого сканирования портов, CGI атак, SMB +разведок, попыток обнаружения типа ОС и много другого. Snort может +информировать о событиях в реальном времени, посылая сообщения в +syslog, отдельный файл или как WinPopup сообщения через smbclient. + +%description -l uk.UTF-8 +Snort - це сніфер пакетів, що може використовуватись як система +виявлення спроб вторгнень в мережу. Snort підтримує протоколювання +пакетів на основі правил, може виконувати аналіз протоколів, пошук у +вмісті пакетів. Може також використовуватись для виявлення атак та +"розвідок", таких як спроби атак типу "переповнення буфера", +прихованого сканування портів, CGI атак, SMB розвідок, спроб виявлення +типу ОС та багато іншого. Snort може інформувати про події в реальному +часі, надсилаючи повідомлення до syslog, окремого файлу чи як WinPopup +повідомлення через smbclient. %prep -%setup -q -a1 +%setup -q %{!?with_registered:-a1} %{?with_registered:-a2} -a3 +%patch0 -p1 +%if "%{_lib}" == "lib64" +%patch1 -p1 +%endif + +sed -i "s#var\ RULE_PATH.*#var RULE_PATH /etc/snort/rules#g" rules/snort.conf +_DIR=$(pwd) +cd rules +for I in community-*.rules; do + echo "include \$RULE_PATH/$I" >> snort.conf +done +cd $_DIR %build -rm -f missing +%{__libtoolize} %{__aclocal} %{__autoconf} %{__automake} +# we don't need libnsl, so don't use it %configure \ + no_libnsl=yes \ --enable-smbalerts \ --enable-flexresp \ - --with%{?_without_snmp:out}-snmp \ + %{?with_inline:--enable-inline } \ + %{?with_inline:--with-libipq-includes=%{_includedir}/libipq } \ + --with-libnet-includes=%{_includedir} \ + --with%{!?with_snmp:out}-snmp \ --without-odbc \ - --with%{?_without_pgsql:out}-postgresql \ - --with%{?_without_mysql:out}-mysql + --enable-perfmonitor \ + --with%{!?with_pgsql:out}-postgresql \ + --with%{!?with_mysql:out}-mysql \ + %{?with_prelude:--enable-prelude } \ + %{?with_clamav:--enable-clamav --with-clamav-defdir=/var/lib/clamav} -%{__make} +%{__make} -j1 %install rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,%{name},cron.daily,logrotate.d} \ - $RPM_BUILD_ROOT%{_var}/log/{%{name},archiv/%{name}} \ - $RPM_BUILD_ROOT%{_datadir}/mibs/site +install -d $RPM_BUILD_ROOT%{_initrddir} \ + $RPM_BUILD_ROOT%{_sysconfdir}/%{name} \ + $RPM_BUILD_ROOT%{_sysconfdir}/{cron.daily,logrotate.d} \ + $RPM_BUILD_ROOT%{_var}/log/{%{name},archive/%{name}} \ + $RPM_BUILD_ROOT%{_datadir}/mibs/site \ + $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/rules %{__make} install \ DESTDIR=$RPM_BUILD_ROOT -install etc/*MIB*.txt $RPM_BUILD_ROOT%{_datadir}/mibs/site -install etc/snort.conf $RPM_BUILD_ROOT%{_sysconfdir} -install rules/*.{rules,config} $RPM_BUILD_ROOT%{_sysconfdir} -install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name} -install %{SOURCE3} $RPM_BUILD_ROOT/etc/logrotate.d/%{name} +install rules/*.config $RPM_BUILD_ROOT%{_sysconfdir}/%{name} +install etc/unicode.map $RPM_BUILD_ROOT%{_sysconfdir}/%{name} +install rules/*.rules $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/rules +install %{SOURCE4} $RPM_BUILD_ROOT%{_initrddir}/%{name} +install %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/%{name} +install rules/snort.conf $RPM_BUILD_ROOT%{_sysconfdir}/%{name} + +mv schemas/create_mysql schemas/create_mysql.sql +mv schemas/create_postgresql schemas/create_postgresql.sql %clean rm -rf $RPM_BUILD_ROOT %pre -if [ -z "`getgid %{name}`" ]; then - %{_sbindir}/groupadd -g 46 -r snort 2> /dev/null || true -fi - -if [ -z "`id -u %{name} 2>/dev/null`" ]; then - %{_sbindir}/useradd -u 46 -g %{name} -M -r -d %{_var}/log/%{name} -s /bin/false \ - -c "SNORT" snort 2> /dev/null || true -fi +%groupadd -g 46 -r snort +%useradd -u 46 -g snort -M -r -d %{_var}/log/snort -s /bin/false -c "SNORT IDS/IPS" snort %post -if [ "$1" = "1" ] ; then - /sbin/chkconfig --add snort - touch %{_var}/log/%{name} && chown snort.snort %{_var}/log/%{name} -fi +/sbin/chkconfig --add snort +%service snort restart %preun if [ "$1" = "0" ] ; then - if [ -f /var/lock/subsys/snort ]; then - /etc/rc.d/init.d/snort stop 1>&2 - fi + %service snort stop /sbin/chkconfig --del snort fi %postun if [ "$1" = "0" ] ; then - %{_sbindir}/userdel snort 2> /dev/null || true - %{_sbindir}/groupdel snort 2> /dev/null || true + %userremove snort + %groupremove snort fi %files %defattr(644,root,root,755) -%doc doc/{AUTHORS,BUGS,CREDITS,FAQ,NEWS,README*,RULES*,TODO,USAGE} -%doc contrib/create* doc/*.pdf -%attr(755,root,root) %{_sbindir}/* +%doc doc/{AUTHORS,BUGS,CREDITS,INSTALL,NEWS,PROBLEMS,README*,TODO,USAGE,WISHLIST,generators,*.pdf} +%doc schemas/create_{mysql,postgresql}.sql +%attr(755,root,root) %{_sbindir}/* %attr(770,root,snort) %dir %{_var}/log/%{name} -%attr(770,root,snort) %dir %{_var}/log/archiv/%{name} -%attr(750,root,snort) %dir %{_sysconfdir} -%attr(640,root,snort) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/* -%attr(754,root,root) /etc/rc.d/init.d/%{name} -%attr(640,root,root) /etc/logrotate.d/* -%{_datadir}/mibs/site/*.txt +%attr(770,root,snort) %dir %{_var}/log/archive/%{name} +%attr(750,root,snort) %dir %{_sysconfdir}/%{name} +%attr(640,root,snort) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/unicode.map +%attr(640,root,snort) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.config +%attr(640,root,snort) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/%{name}.conf +%attr(750,root,snort) %dir %{_sysconfdir}/%{name}/rules +%attr(640,root,snort) %{_sysconfdir}/%{name}/rules/ +%attr(754,root,root) %{_initrddir}/%{name} +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/logrotate.d/* %{_mandir}/man?/* +%dir %{_libdir}/snort_dynamicengine +%dir %{_libdir}/snort_dynamicpreprocessor +%dir %{_libdir}/snort_dynamicrules +%attr(755,root,root) %{_libdir}/snort_dynamicengine/libsf_engine.so* +%attr(755,root,root) %{_libdir}/snort_dynamicpreprocessor/*.so* +%attr(755,root,root) %{_libdir}/snort_dynamicrules/lib_sfdynamic_example_rule.so*