From: Peter Popovec Date: Mon, 26 Feb 2007 15:35:05 +0000 (+0100) Subject: import, debian version fwcnt-0.4 X-Git-Tag: fwcnt-0.4 X-Git-Url: http://zub.fei.tuke.sk/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=276d8ce74cc23613543eae8bc92fc2216e85ce64;p=fwcnt import, debian version fwcnt-0.4 --- diff --git a/Makefile b/Makefile index 7b45f2d..3f4e412 100644 --- a/Makefile +++ b/Makefile @@ -4,27 +4,31 @@ fw2rrd: fw2rrd.c -o fw2rrd -lrrd -O2 install: fw2rrd - mkdir /usr/lib/FWcnt;true - cp fw2rrd /usr/lib/FWcnt/ - cp init_FWcnt /usr/lib/FWcnt/ - cp clean_FWcnt /usr/lib/FWcnt/ - cp get_FWcnt /usr/lib/FWcnt/ - cp generate /usr/lib/FWcnt/ - cp FWcnt2rrd /usr/lib/FWcnt/ - mkdir /var/www/mrtg-rrd;true - chown www-data /var/www/mrtg-rrd - mkdir /var/lib/FWcnt;true - mkdir /var/lib/FWcnt/etc;true - mkdir /var/lib/FWcnt/FW_rrd_database;true - mkdir /var/lib/FWcnt/run_conf;true - touch /var/lib/FWcnt/etc/config - chown Debian-ippl -R /var/lib/FWcnt/FW_rrd_database - cp cron.d /etc/cron.d/FWcnt - cat mrtg-rrd.wrapper.cgi >/usr/lib/cgi-bin/mrtg-rrd.wrapper.cgi + install -d $(DESTDIR)/usr/lib/FWcnt + install -m 755 fw2rrd $(DESTDIR)/usr/lib/FWcnt/fw2rrd + install -m 755 init_FWcnt $(DESTDIR)/usr/lib/FWcnt/init_FWcnt + install -m 755 clean_FWcnt $(DESTDIR)/usr/lib/FWcnt/clean_FWcnt + install -m 755 get_FWcnt $(DESTDIR)/usr/lib/FWcnt/get_FWcnt + install -m 755 generate $(DESTDIR)/usr/lib/FWcnt/generate + install -m 755 FWcnt2rrd $(DESTDIR)/usr/lib/FWcnt/FWcnt2rrd + install -m 755 install_FWcnt $(DESTDIR)/usr/lib/FWcnt/install_FWcnt + install -d $(DESTDIR)/var/www/mrtg-rrd + touch $(DESTDIR)/var/www/mrtg-rrd/.placeholder + install -d $(DESTDIR)/var/lib/FWcnt;true + install -d $(DESTDIR)/var/lib/FWcnt/etc + install -d $(DESTDIR)/var/lib/FWcnt/FW_rrd_database + touch $(DESTDIR)/var/lib/FWcnt/FW_rrd_database/.placeholder + install -d $(DESTDIR)/var/lib/FWcnt/run_conf + touch $(DESTDIR)/var/lib/FWcnt/run_conf/.placeholder + touch $(DESTDIR)/var/lib/FWcnt/etc/config + install -m 755 mrtg-rrd.wrapper.cgi $(DESTDIR)/usr/lib/cgi-bin/mrtg-rrd.wrapper.cgi + cp /dev/null $(DESTDIR)/etc/fwcnt.conf + #chown -R FWcnt $(DESTDIR)/var/lib/FWcnt/FW_rrd_database + #chown -R www-data $(DESTDIR)/var/www/mrtg-rrd + #cp cron.d $(DESTDIR)/etc/cron.d/FWcnt -depends: - dpkg -l gawk mrtg-rrd ippl mrtg iptables cron bash librrd2-dev clean: rm -f fw2rrd + rm -f *~ diff --git a/README b/README index 1dc77f3..97aec4c 100644 --- a/README +++ b/README @@ -1,12 +1,35 @@ -Version 0.3pre1 ---------------- - Detailed measuring system for wide range of IPs ----------------------------------------------- +"fast" install +-------------- +for non debian users: +create FWcnt user, +uncommnent install rules + #chown -R FWcnt $(DESTDIR)/var/lib/FWcnt/FW_rrd_database + #chown -R www-data $(DESTDIR)/var/www/mrtg-rrd + #cp cron.d $(DESTDIR)/etc/cron.d/FWcnt + +(or change what needed) + +run "make install" + + +Debian users: +------------- +use "debuild" and create .deb package .. or get binary .deb package + + "fast" setup ------------ +Debian users: all this is in postinst script, sample working config is +created automaticaly. +If You customize /etc/fwcnt.conf then run +/usr/lib/FWcnt/install_FWcnt +show http://YOUR_WEB/cgi-bin/mrtg-rrd.wrapper.cgi + +non debian users: 1. copy this sample in /var/lib/FWcnt/etc/config (replace 192.168.0.0 with your IP) ---------------- cut ---------------- @@ -14,14 +37,37 @@ cntLINK eth0 cntNET 192.168.0.0 ---------------- cut ---------------- -2. run /usr/lib/FWcnt/init_FWcnt +2. run /usr/lib/FWcnt/install_FWcnt 3. run /usr/lib/FWcnt/generate -4. show http://YOUR_WEB/cgi-bin/mrtg-rrd.wrapper.cgi +4. insert FWcnt chain in FORWARD chain (and if needed INPUT and OUTPUT chain) + iptables -I FORWARD -j FWcnt + +5. show http://YOUR_WEB/cgi-bin/mrtg-rrd.wrapper.cgi + +"fast" config manual: +--------------------- +One line per interface for "counting" interface statistics like this: +cntLINK eth0 + +one line per "C-class" net for counting all IP in this IP range: +cntNET 192.168.0.0 + +(last number not needed .. etc cntNET 192.168.0 work fine) + +one line per sub "C-class" range for personalized view: +mrtgNET 192.168.42.128 25 + +create one page with 128 IPs from 192.168.42.128 to 192.168.42.255 +default is 16 sub "C-class" + + +INTERNALS +--------- Part 1: ******* @@ -133,7 +179,7 @@ example cron job: 0-55/5 * * * * root if [ -x /usr/lib/FWcnt/get_FWcnt ]; then \ (env LANG=C /usr/lib/FWcnt/get_FWcnt |su --shell=/bin/bash \ -c '(cd /var/lib/FWcnt/FW_rrd_database/; \ - /usr/lib/FWcnt/fw2rrd' Debian-ippl);fi + /usr/lib/FWcnt/fw2rrd' someuser);fi Counter name is derived vrom IP number. @@ -234,7 +280,13 @@ Keywork "cntNET" is used for definition of counter for "init_FWcnt" command. +SPECIAL +------- +fetching data from RRD: +summary for eth0 bytes: +rrdtool fetch eth0-b.rrd AVERAGE -s $[`date +%s` - 86400 ] -e $[`date +%s` - +300 ]|awk '{A+=$2;B+=$3}END{print A" "B}' diff --git a/TODO b/TODO index 150d474..bd27e5f 100644 --- a/TODO +++ b/TODO @@ -1,3 +1,5 @@ * get name for IP/net -* iptables counter setting (start/stop) from /etc/network/intrfaces +* iptables counter setting (start/stop) from /etc/network/interfaces + (or other method .. ) + diff --git a/clean_FWcnt b/clean_FWcnt index c39c657..ac77e5b 100755 --- a/clean_FWcnt +++ b/clean_FWcnt @@ -1,10 +1,63 @@ #!/bin/bash -for i in `iptables -L FWcnt -n|awk '{if($0 ~ "^FWcnt"){if(NR>2)print $1}}';iptables -F FWcnt` ;do - for j in `iptables -L ${i} -n |awk '{if($0 ~ "^FWcnt"){if(NR>2)print $1}}';iptables -F ${i}` ;do - iptables -F ${j} - iptables -X ${j} - done - iptables -X ${i} -done +iptables-save |gawk 'BEGIN{ + while(getline <"/var/lib/FWcnt/etc/config"){ + if($1 ~ "^cntNET") { + split($2,IP,".") + Nd=sprintf("%d.%d.%d",IP[1],IP[2],IP[3]) + Nx=sprintf("%02X%02X%02X",IP[1],IP[2],IP[3]) + NETx[Nx]=Nd + NETd[Nd]=Nx + } + } +} +{ + if($1 != "-A")next + if($2 != "FWcnt")next + i=1; + while(i/dev/null;true + iptables -D INPUT -j FWcnt 2>/dev/null;true + iptables -D OUTPUT -j FWcnt 2>/dev/null;true + for i in `iptables-save |awk '{if($1 ~ "^:FWcnt"){split($1,A,":");print A[2]}}'|sort -u`;do iptables -X $i ;done + fi +fi diff --git a/cron.d b/cron.d index 9518d65..afa6e3a 100644 --- a/cron.d +++ b/cron.d @@ -1 +1 @@ -0-55/5 * * * * root if [ -x /usr/lib/FWcnt/get_FWcnt ]; then (env LANG=C /usr/lib/FWcnt/get_FWcnt |su --shell=/bin/bash -c '(cd /var/lib/FWcnt/FW_rrd_database/;/usr/lib/FWcnt/FWcnt2rrd)' Debian-ippl);fi +0-55/5 * * * * root if [ -x /usr/lib/FWcnt/get_FWcnt ]; then (env LANG=C /usr/lib/FWcnt/get_FWcnt |su --shell=/bin/bash -c '(cd /var/lib/FWcnt/FW_rrd_database/;/usr/lib/FWcnt/FWcnt2rrd)' FWcnt );fi diff --git a/debian/README b/debian/README new file mode 100644 index 0000000..9b0a724 --- /dev/null +++ b/debian/README @@ -0,0 +1,6 @@ +The Debian Package fwcnt +---------------------------- + +Comments regarding the Package + + -- Peter Popovec Thu, 22 Feb 2007 14:34:16 +0100 diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..5346034 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,5 @@ +fwcnt (0.4) unstable; urgency=low + + * Initial Release. + + -- root Thu, 22 Feb 2007 14:34:16 +0100 diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..7ed6ff8 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +5 diff --git a/debian/conffiles b/debian/conffiles new file mode 100644 index 0000000..a37c10f --- /dev/null +++ b/debian/conffiles @@ -0,0 +1 @@ +/etc/fwcnt.conf diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..1a3190d --- /dev/null +++ b/debian/control @@ -0,0 +1,13 @@ +Source: fwcnt +Section: unknown +Priority: extra +Maintainer: root +Build-Depends: debhelper (>= 5),librrd2-dev +Standards-Version: 3.7.2 + +Package: fwcnt +Architecture: any +Depends: ${shlibs:Depends} ,gawk, mrtg-rrd, mrtg, iptables, cron, rrdtool +Description: Firewall counter + Detailed measuring system for wide range of IPs based on firewall + rules (counters) and mrtg with rrd backend database. diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..3c4a72e --- /dev/null +++ b/debian/copyright @@ -0,0 +1,26 @@ +This is fwcnt, written and maintained by root +on Thu, 22 Feb 2007 14:34:16 +0100. + +The original source can always be found at: + ftp://ftp.debian.org/dists/unstable/main/source/ + +Copyright Holder: root + +License: + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this package; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +On Debian systems, the complete text of the GNU General +Public License can be found in `/usr/share/common-licenses/GPL'. diff --git a/debian/cron.d b/debian/cron.d new file mode 120000 index 0000000..bed16c3 --- /dev/null +++ b/debian/cron.d @@ -0,0 +1 @@ +../cron.d \ No newline at end of file diff --git a/debian/dirs b/debian/dirs new file mode 100644 index 0000000..eb45b02 --- /dev/null +++ b/debian/dirs @@ -0,0 +1,7 @@ +usr/lib/FWcnt +var/lib/FWcnt +var/lib/FWcnt/run_conf +var/lib/FWcnt/FW_rrd_database +var/www +usr/lib/cgi-bin +etc/ diff --git a/debian/docs b/debian/docs new file mode 100644 index 0000000..724e084 --- /dev/null +++ b/debian/docs @@ -0,0 +1,2 @@ +README +TODO diff --git a/debian/emacsen-install.ex b/debian/emacsen-install.ex new file mode 100644 index 0000000..9b73fc8 --- /dev/null +++ b/debian/emacsen-install.ex @@ -0,0 +1,45 @@ +#! /bin/sh -e +# /usr/lib/emacsen-common/packages/install/fwcnt + +# Written by Jim Van Zandt , borrowing heavily +# from the install scripts for gettext by Santiago Vila +# and octave by Dirk Eddelbuettel . + +FLAVOR=$1 +PACKAGE=fwcnt + +if [ ${FLAVOR} = emacs ]; then exit 0; fi + +echo install/${PACKAGE}: Handling install for emacsen flavor ${FLAVOR} + +#FLAVORTEST=`echo $FLAVOR | cut -c-6` +#if [ ${FLAVORTEST} = xemacs ] ; then +# SITEFLAG="-no-site-file" +#else +# SITEFLAG="--no-site-file" +#fi +FLAGS="${SITEFLAG} -q -batch -l path.el -f batch-byte-compile" + +ELDIR=/usr/share/emacs/site-lisp/${PACKAGE} +ELCDIR=/usr/share/${FLAVOR}/site-lisp/${PACKAGE} + +# Install-info-altdir does not actually exist. +# Maybe somebody will write it. +if test -x /usr/sbin/install-info-altdir; then + echo install/${PACKAGE}: install Info links for ${FLAVOR} + install-info-altdir --quiet --section "" "" --dirname=${FLAVOR} /usr/info/${PACKAGE}.info.gz +fi + +install -m 755 -d ${ELCDIR} +cd ${ELDIR} +FILES=`echo *.el` +cp ${FILES} ${ELCDIR} +cd ${ELCDIR} + +cat << EOF > path.el +(setq load-path (cons "." load-path) byte-compile-warnings nil) +EOF +${FLAVOR} ${FLAGS} ${FILES} +rm -f *.el path.el + +exit 0 diff --git a/debian/emacsen-remove.ex b/debian/emacsen-remove.ex new file mode 100644 index 0000000..b67d233 --- /dev/null +++ b/debian/emacsen-remove.ex @@ -0,0 +1,15 @@ +#!/bin/sh -e +# /usr/lib/emacsen-common/packages/remove/fwcnt + +FLAVOR=$1 +PACKAGE=fwcnt + +if [ ${FLAVOR} != emacs ]; then + if test -x /usr/sbin/install-info-altdir; then + echo remove/${PACKAGE}: removing Info links for ${FLAVOR} + install-info-altdir --quiet --remove --dirname=${FLAVOR} /usr/info/fwcnt.info.gz + fi + + echo remove/${PACKAGE}: purging byte-compiled files for ${FLAVOR} + rm -rf /usr/share/${FLAVOR}/site-lisp/${PACKAGE} +fi diff --git a/debian/emacsen-startup.ex b/debian/emacsen-startup.ex new file mode 100644 index 0000000..9b6a164 --- /dev/null +++ b/debian/emacsen-startup.ex @@ -0,0 +1,25 @@ +;; -*-emacs-lisp-*- +;; +;; Emacs startup file, e.g. /etc/emacs/site-start.d/50fwcnt.el +;; for the Debian fwcnt package +;; +;; Originally contributed by Nils Naumann +;; Modified by Dirk Eddelbuettel +;; Adapted for dh-make by Jim Van Zandt + +;; The fwcnt package follows the Debian/GNU Linux 'emacsen' policy and +;; byte-compiles its elisp files for each 'emacs flavor' (emacs19, +;; xemacs19, emacs20, xemacs20...). The compiled code is then +;; installed in a subdirectory of the respective site-lisp directory. +;; We have to add this to the load-path: +(let ((package-dir (concat "/usr/share/" + (symbol-name flavor) + "/site-lisp/fwcnt"))) +;; If package-dir does not exist, the fwcnt package must have +;; removed but not purged, and we should skip the setup. + (when (file-directory-p package-dir) + (setq load-path (cons package-dir load-path)) + (autoload 'fwcnt-mode "fwcnt-mode" + "Major mode for editing fwcnt files." t) + (add-to-list 'auto-mode-alist '("\\.fwcnt$" . fwcnt-mode)))) + diff --git a/debian/fwcnt-default.ex b/debian/fwcnt-default.ex new file mode 100644 index 0000000..1da5747 --- /dev/null +++ b/debian/fwcnt-default.ex @@ -0,0 +1,10 @@ +# Defaults for fwcnt initscript +# sourced by /etc/init.d/fwcnt +# installed at /etc/default/fwcnt by the maintainer scripts + +# +# This is a POSIX shell fragment +# + +# Additional options that are passed to the Daemon. +DAEMON_OPTS="" diff --git a/debian/fwcnt.doc-base.EX b/debian/fwcnt.doc-base.EX new file mode 100644 index 0000000..8f7f9d9 --- /dev/null +++ b/debian/fwcnt.doc-base.EX @@ -0,0 +1,22 @@ +Document: fwcnt +Title: Debian fwcnt Manual +Author: +Abstract: This manual describes what fwcnt is + and how it can be used to + manage online manuals on Debian systems. +Section: unknown + +Format: debiandoc-sgml +Files: /usr/share/doc/fwcnt/fwcnt.sgml.gz + +Format: postscript +Files: /usr/share/doc/fwcnt/fwcnt.ps.gz + +Format: text +Files: /usr/share/doc/fwcnt/fwcnt.text.gz + +Format: HTML +Index: /usr/share/doc/fwcnt/html/index.html +Files: /usr/share/doc/fwcnt/html/*.html + + diff --git a/debian/init.d.ex b/debian/init.d.ex new file mode 100644 index 0000000..95c72dc --- /dev/null +++ b/debian/init.d.ex @@ -0,0 +1,81 @@ +#! /bin/sh +# +# skeleton example file to build /etc/init.d/ scripts. +# This file should be used to construct scripts for /etc/init.d. +# +# Written by Miquel van Smoorenburg . +# Modified for Debian +# by Ian Murdock . +# +# Version: @(#)skeleton 1.9 26-Feb-2001 miquels@cistron.nl +# + +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin +DAEMON=/usr/sbin/fwcnt +NAME=fwcnt +DESC=fwcnt + +test -x $DAEMON || exit 0 + +# Include fwcnt defaults if available +if [ -f /etc/default/fwcnt ] ; then + . /etc/default/fwcnt +fi + +set -e + +case "$1" in + start) + echo -n "Starting $DESC: " + start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \ + --exec $DAEMON -- $DAEMON_OPTS + echo "$NAME." + ;; + stop) + echo -n "Stopping $DESC: " + start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \ + --exec $DAEMON + echo "$NAME." + ;; + #reload) + # + # If the daemon can reload its config files on the fly + # for example by sending it SIGHUP, do it here. + # + # If the daemon responds to changes in its config file + # directly anyway, make this a do-nothing entry. + # + # echo "Reloading $DESC configuration files." + # start-stop-daemon --stop --signal 1 --quiet --pidfile \ + # /var/run/$NAME.pid --exec $DAEMON + #;; + force-reload) + # + # If the "reload" option is implemented, move the "force-reload" + # option to the "reload" entry above. If not, "force-reload" is + # just the same as "restart" except that it does nothing if the + # daemon isn't already running. + # check wether $DAEMON is running. If so, restart + start-stop-daemon --stop --test --quiet --pidfile \ + /var/run/$NAME.pid --exec $DAEMON \ + && $0 restart \ + || exit 0 + ;; + restart) + echo -n "Restarting $DESC: " + start-stop-daemon --stop --quiet --pidfile \ + /var/run/$NAME.pid --exec $DAEMON + sleep 1 + start-stop-daemon --start --quiet --pidfile \ + /var/run/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS + echo "$NAME." + ;; + *) + N=/etc/init.d/$NAME + # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2 + echo "Usage: $N {start|stop|restart|force-reload}" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/debian/manpage.1.ex b/debian/manpage.1.ex new file mode 100644 index 0000000..a7c354d --- /dev/null +++ b/debian/manpage.1.ex @@ -0,0 +1,59 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH FWCNT SECTION "February 22, 2007" +.\" Please adjust this date whenever revising the manpage. +.\" +.\" Some roff macros, for reference: +.\" .nh disable hyphenation +.\" .hy enable hyphenation +.\" .ad l left justify +.\" .ad b justify to both left and right margins +.\" .nf disable filling +.\" .fi enable filling +.\" .br insert line break +.\" .sp insert n+1 empty lines +.\" for manpage-specific macros, see man(7) +.SH NAME +fwcnt \- program to do something +.SH SYNOPSIS +.B fwcnt +.RI [ options ] " files" ... +.br +.B bar +.RI [ options ] " files" ... +.SH DESCRIPTION +This manual page documents briefly the +.B fwcnt +and +.B bar +commands. +.PP +.\" TeX users may be more comfortable with the \fB\fP and +.\" \fI\fP escape sequences to invode bold face and italics, +.\" respectively. +\fBfwcnt\fP is a program that... +.SH OPTIONS +These programs follow the usual GNU command line syntax, with long +options starting with two dashes (`-'). +A summary of options is included below. +For a complete description, see the Info files. +.TP +.B \-h, \-\-help +Show summary of options. +.TP +.B \-v, \-\-version +Show version of program. +.SH SEE ALSO +.BR bar (1), +.BR baz (1). +.br +The programs are documented fully by +.IR "The Rise and Fall of a Fooish Bar" , +available via the Info system. +.SH AUTHOR +fwcnt was written by . +.PP +This manual page was written by root , +for the Debian project (but may be used by others). diff --git a/debian/manpage.sgml.ex b/debian/manpage.sgml.ex new file mode 100644 index 0000000..de6c788 --- /dev/null +++ b/debian/manpage.sgml.ex @@ -0,0 +1,156 @@ + manpage.1'. You may view + the manual page with: `docbook-to-man manpage.sgml | nroff -man | + less'. A typical entry in a Makefile or Makefile.am is: + +manpage.1: manpage.sgml + docbook-to-man $< > $@ + + + The docbook-to-man binary is found in the docbook-to-man package. + Please remember that if you create the nroff version in one of the + debian/rules file targets (such as build), you will need to include + docbook-to-man in your Build-Depends control field. + + --> + + + FIRSTNAME"> + SURNAME"> + + February 22, 2007"> + + SECTION"> + popovec@fei.tuke.sk"> + + FWCNT"> + + + Debian"> + GNU"> + GPL"> +]> + + + +
+ &dhemail; +
+ + &dhfirstname; + &dhsurname; + + + 2003 + &dhusername; + + &dhdate; +
+ + &dhucpackage; + + &dhsection; + + + &dhpackage; + + program to do something + + + + &dhpackage; + + + + + + + + DESCRIPTION + + This manual page documents briefly the + &dhpackage; and bar + commands. + + This manual page was written for the &debian; distribution + because the original program does not have a manual page. + Instead, it has documentation in the &gnu; + Info format; see below. + + &dhpackage; is a program that... + + + + OPTIONS + + These programs follow the usual &gnu; command line syntax, + with long options starting with two dashes (`-'). A summary of + options is included below. For a complete description, see the + Info files. + + + + + + + + Show summary of options. + + + + + + + + Show version of program. + + + + + + SEE ALSO + + bar (1), baz (1). + + The programs are documented fully by The Rise and + Fall of a Fooish Bar available via the + Info system. + + + AUTHOR + + This manual page was written by &dhusername; &dhemail; for + the &debian; system (but may be used by others). Permission is + granted to copy, distribute and/or modify this document under + the terms of the &gnu; General Public License, Version 2 any + later version published by the Free Software Foundation. + + + On Debian systems, the complete text of the GNU General Public + License can be found in /usr/share/common-licenses/GPL. + + + +
+ + + + diff --git a/debian/manpage.xml.ex b/debian/manpage.xml.ex new file mode 100644 index 0000000..5023cbf --- /dev/null +++ b/debian/manpage.xml.ex @@ -0,0 +1,148 @@ + +.
will be generated. You may view the +manual page with: nroff -man .
| less'. A +typical entry in a Makefile or Makefile.am is: + +DB2MAN=/usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\ +manpages/docbook.xsl +XP=xsltproc -''-nonet + +manpage.1: manpage.dbk + $(XP) $(DB2MAN) $< + +The xsltproc binary is found in the xsltproc package. The +XSL files are in docbook-xsl. Please remember that if you +create the nroff version in one of the debian/rules file +targets (such as build), you will need to include xsltproc +and docbook-xsl in your Build-Depends control field. + +--> + + + FIRSTNAME"> + SURNAME"> + + February 22, 2007"> + + SECTION"> + popovec@fei.tuke.sk"> + + FWCNT"> + + + Debian"> + GNU"> + GPL"> +]> + + + +
+ &dhemail; +
+ + &dhfirstname; + &dhsurname; + + + 2003 + &dhusername; + + &dhdate; +
+ + &dhucpackage; + + &dhsection; + + + &dhpackage; + + program to do something + + + + &dhpackage; + + + + + + + + DESCRIPTION + + This manual page documents briefly the + &dhpackage; and bar + commands. + + This manual page was written for the &debian; distribution + because the original program does not have a manual page. + Instead, it has documentation in the &gnu; + Info format; see below. + + &dhpackage; is a program that... + + + + OPTIONS + + These programs follow the usual &gnu; command line syntax, + with long options starting with two dashes (`-'). A summary of + options is included below. For a complete description, see the + Info files. + + + + + + + + Show summary of options. + + + + + + + + Show version of program. + + + + + + SEE ALSO + + bar (1), baz (1). + + The programs are documented fully by The Rise and + Fall of a Fooish Bar available via the + Info system. + + + AUTHOR + + This manual page was written by &dhusername; &dhemail; for + the &debian; system (but may be used by others). Permission is + granted to copy, distribute and/or modify this document under + the terms of the &gnu; General Public License, Version 2 any + later version published by the Free Software Foundation. + + + On Debian systems, the complete text of the GNU General Public + License can be found in /usr/share/common-licenses/GPL. + + + +
+ diff --git a/debian/menu.ex b/debian/menu.ex new file mode 100644 index 0000000..4c30f38 --- /dev/null +++ b/debian/menu.ex @@ -0,0 +1,2 @@ +?package(fwcnt):needs="X11|text|vc|wm" section="Apps/see-menu-manual"\ + title="fwcnt" command="/usr/bin/fwcnt" diff --git a/debian/postinst b/debian/postinst new file mode 100644 index 0000000..d019b5a --- /dev/null +++ b/debian/postinst @@ -0,0 +1,59 @@ +#!/bin/sh +# postinst script for fwcnt +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `configure' +# * `abort-upgrade' +# * `abort-remove' `in-favour' +# +# * `abort-remove' +# * `abort-deconfigure' `in-favour' +# `removing' +# +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + + +case "$1" in + configure) + if ! getent group FWcnt > /dev/null; then + # echo Adding system group: mserv. + addgroup --system --force-badname FWcnt + fi + + # create mserv user if necessary. + if ! getent passwd FWcnt > /dev/null; then + adduser --system --force-badname --home /var/lib/FWcnt/FW_rrd_database/ --no-create-home --ingroup FWcnt FWcnt + fi + chown www-data /var/www/mrtg-rrd + chown -R FWcnt /var/lib/FWcnt/FW_rrd_database + if [ ! -s /etc/fwcnt.conf ]; then + echo "Creating initial /etc/fwcnt.conf" + echo "# This is initial automatic generated file" >/etc/fwcnt.conf + echo "# " >>/etc/fwcnt.conf + route -n|awk -F'.' '{if(NR<3)next;if($0 ~ "^0.0.0.0")next;if($0 ~ "^127.0.0")next;print "cntNET "$1"."$2"."$3}'|sort -u >>/etc/fwcnt.conf + awk -F':' '{if($0 ~ ":")print "cntLINK "$1}' /proc/net/dev >>/etc/fwcnt.conf + fi + ln -sf /etc/fwcnt.conf /var/lib/FWcnt/etc/config + /usr/lib/FWcnt/install_FWcnt + /usr/lib/FWcnt/generate + ;; + abort-upgrade|abort-remove|abort-deconfigure) + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 diff --git a/debian/postinst.ex b/debian/postinst.ex new file mode 100644 index 0000000..0206562 --- /dev/null +++ b/debian/postinst.ex @@ -0,0 +1,41 @@ +#!/bin/sh +# postinst script for fwcnt +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `configure' +# * `abort-upgrade' +# * `abort-remove' `in-favour' +# +# * `abort-remove' +# * `abort-deconfigure' `in-favour' +# `removing' +# +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + + +case "$1" in + configure) + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 + + diff --git a/debian/postrm.ex b/debian/postrm.ex new file mode 100644 index 0000000..d958a6f --- /dev/null +++ b/debian/postrm.ex @@ -0,0 +1,39 @@ +#!/bin/sh +# postrm script for fwcnt +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `remove' +# * `purge' +# * `upgrade' +# * `failed-upgrade' +# * `abort-install' +# * `abort-install' +# * `abort-upgrade' +# * `disappear' +# +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + + +case "$1" in + purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) + ;; + + *) + echo "postrm called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 + + diff --git a/debian/preinst.ex b/debian/preinst.ex new file mode 100644 index 0000000..bea910f --- /dev/null +++ b/debian/preinst.ex @@ -0,0 +1,37 @@ +#!/bin/sh +# preinst script for fwcnt +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `install' +# * `install' +# * `upgrade' +# * `abort-upgrade' +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + + +case "$1" in + install|upgrade) + ;; + + abort-upgrade) + ;; + + *) + echo "preinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 + + diff --git a/debian/prerm b/debian/prerm new file mode 100644 index 0000000..80af0bb --- /dev/null +++ b/debian/prerm @@ -0,0 +1,43 @@ +#!/bin/sh +# prerm script for fwcnt +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `remove' +# * `upgrade' +# * `failed-upgrade' +# * `remove' `in-favour' +# * `deconfigure' `in-favour' +# `removing' +# +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + + +case "$1" in + remove) + /usr/lib/FWcnt/clean_FWcnt force + ;; + upgrade|deconfigure) + ;; + + failed-upgrade) + ;; + + *) + echo "prerm called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 + + diff --git a/debian/prerm.ex b/debian/prerm.ex new file mode 100644 index 0000000..b65720f --- /dev/null +++ b/debian/prerm.ex @@ -0,0 +1,40 @@ +#!/bin/sh +# prerm script for fwcnt +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `remove' +# * `upgrade' +# * `failed-upgrade' +# * `remove' `in-favour' +# * `deconfigure' `in-favour' +# `removing' +# +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + + +case "$1" in + remove|upgrade|deconfigure) + ;; + + failed-upgrade) + ;; + + *) + echo "prerm called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 + + diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..b0159de --- /dev/null +++ b/debian/rules @@ -0,0 +1,97 @@ +#!/usr/bin/make -f +# -*- makefile -*- +# Sample debian/rules that uses debhelper. +# This file was originally written by Joey Hess and Craig Small. +# As a special exception, when this file is copied by dh-make into a +# dh-make output file, you may use that output file without restriction. +# This special exception was added by Craig Small in version 0.37 of dh-make. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + + + + +CFLAGS = -Wall -g + +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + CFLAGS += -O0 +else + CFLAGS += -O2 +endif + +configure: configure-stamp +configure-stamp: + dh_testdir + # Add here commands to configure the package. + + touch configure-stamp + + +build: build-stamp + +build-stamp: configure-stamp + dh_testdir + + # Add here commands to compile the package. + $(MAKE) + #docbook-to-man debian/fwcnt.sgml > fwcnt.1 + + touch $@ + +clean: + dh_testdir + dh_testroot + rm -f build-stamp configure-stamp + + # Add here commands to clean up after the build process. + -$(MAKE) clean + + dh_clean + +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + + # Add here commands to install the package into debian/fwcnt. + $(MAKE) DESTDIR=$(CURDIR)/debian/fwcnt install + +# Build architecture-independent files here. +binary-indep: build install +# We have nothing to do by default. + +# Build architecture-dependent files here. +binary-arch: build install + dh_testdir + dh_testroot + dh_installchangelogs + dh_installdocs + dh_installexamples +# dh_install +# dh_installmenu +# dh_installdebconf +# dh_installlogrotate +# dh_installemacsen +# dh_installpam +# dh_installmime +# dh_python +# dh_installinit + dh_installcron +# dh_installinfo + dh_installman + dh_link + dh_strip + dh_compress + dh_fixperms +# dh_perl +# dh_makeshlibs + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install configure diff --git a/debian/watch.ex b/debian/watch.ex new file mode 100644 index 0000000..7748247 --- /dev/null +++ b/debian/watch.ex @@ -0,0 +1,22 @@ +# Example watch control file for uscan +# Rename this file to "watch" and then you can run the "uscan" command +# to check for upstream updates and more. +# See uscan(1) for format + +# Compulsory line, this is a version 3 file +version=3 + +# Uncomment to examine a Webpage +# +#http://www.example.com/downloads.php fwcnt-(.*)\.tar\.gz + +# Uncomment to examine a Webserver directory +#http://www.example.com/pub/fwcnt-(.*)\.tar\.gz + +# Uncommment to examine a FTP server +#ftp://ftp.example.com/pub/fwcnt-(.*)\.tar\.gz debian uupdate + +# Uncomment to find new files on sourceforge, for debscripts >= 2.9 +# http://sf.net/fwcnt/fwcnt-(.*)\.tar\.gz + + diff --git a/generate b/generate index 3fb1181..0334598 100755 --- a/generate +++ b/generate @@ -1,4 +1,9 @@ #!/bin/bash +if [ $# -ge 1 ]; then + MAINT=$1 +else + MAINT="FWcnt" +fi iptables -L FWcnt -n|gawk -v CONVFMT="%d" '{if($1 ~ "^FWcntIN"){split ($NF,N,"/");print N[1]}}'|sort -u -n -t . -k1,1 -k2,2 -k3,3 -k4,4| gawk -v CONVFMT="%d" ' @@ -38,7 +43,7 @@ function print_target(IP,TARGET,NAME,Ofile,HREF){ printf("Options[%s-b]: bits\n",TARGET)>>OUT printf("PageTop[%s-b]:

Bytes to/from %s (%s)\n",TARGET,IP,IP) >> OUT printf(" %s

\n \n \n",IP) >> OUT - printf(" \n
System:router
Maintainer:krak3n
\n\n") >> OUT + printf(" Maintainer:%s\n \n\n",MAINT) >> OUT printf("Target[%s-p]: none\n",TARGET) >> OUT printf("MaxBytes[%s-p]: %s\n",TARGET,65000) >> OUT @@ -49,7 +54,7 @@ function print_target(IP,TARGET,NAME,Ofile,HREF){ printf("YLegend[%s-p]: Pkts per Second\n",TARGET) >> OUT printf("PageTop[%s-p]:

Pkts to/from %s\n",TARGET,IP) >> OUT printf("

\n \n \n") >> OUT - printf(" \n
System:router
Maintainer:krak3n
\n\n") >> OUT + printf(" Maintainer:%s\n \n\n",MAINT) >> OUT } BEGIN{ @@ -116,4 +121,5 @@ netC=IPn[1]"."IPn[2]"."IPn[3] } i+=j } -}' +}' MAINT=$MAINT + diff --git a/init_FWcnt b/init_FWcnt index 3404e99..2d216d0 100755 --- a/init_FWcnt +++ b/init_FWcnt @@ -18,24 +18,25 @@ if [ ${NET_C} -gt 255 ]; then fi iptables -N FWcnt 2>/dev/null -NET_Ah=`printf "%X" ${NET_A}` -NET_Bh=`printf "%X" ${NET_B}` -NET_Ch=`printf "%X" ${NET_C}` +NET_Ah=`printf "%02X" ${NET_A}` +NET_Bh=`printf "%02X" ${NET_B}` +NET_Ch=`printf "%02X" ${NET_C}` iptables -L FWcntIN_${NET_Ah}${NET_Bh}${NET_Ch} -n 2>/dev/null >/dev/null if [ $? == 0 ]; then - echo "Warning, counters for net ${NET_A}.${NET_B}.${NET_C}.0/24 exists...." + echo "Counters for already net ${NET_A}.${NET_B}.${NET_C}.0/24 exists...." else - +echo -n "${NET_A}.${NET_B}.${NET_C}:" iptables -N FWcntIN_${NET_Ah}${NET_Bh}${NET_Ch} iptables -N FWcntOUT_${NET_Ah}${NET_Bh}${NET_Ch} +echo -n "." #create counters for nets /25 iptables -A FWcntIN_${NET_Ah}${NET_Bh}${NET_Ch} -d ${NET_A}.${NET_B}.${NET_C}.0/25 iptables -A FWcntIN_${NET_Ah}${NET_Bh}${NET_Ch} -d ${NET_A}.${NET_B}.${NET_C}.128/25 iptables -A FWcntOUT_${NET_Ah}${NET_Bh}${NET_Ch} -s ${NET_A}.${NET_B}.${NET_C}.0/25 iptables -A FWcntOUT_${NET_Ah}${NET_Bh}${NET_Ch} -s ${NET_A}.${NET_B}.${NET_C}.128/25 - +echo -n "." #create counters for nets /26 iptables -A FWcntIN_${NET_Ah}${NET_Bh}${NET_Ch} -d ${NET_A}.${NET_B}.${NET_C}.0/26 iptables -A FWcntIN_${NET_Ah}${NET_Bh}${NET_Ch} -d ${NET_A}.${NET_B}.${NET_C}.64/26 @@ -45,6 +46,7 @@ iptables -A FWcntOUT_${NET_Ah}${NET_Bh}${NET_Ch} -s ${NET_A}.${NET_B}.${NET_C}.0 iptables -A FWcntOUT_${NET_Ah}${NET_Bh}${NET_Ch} -s ${NET_A}.${NET_B}.${NET_C}.64/26 iptables -A FWcntOUT_${NET_Ah}${NET_Bh}${NET_Ch} -s ${NET_A}.${NET_B}.${NET_C}.128/26 iptables -A FWcntOUT_${NET_Ah}${NET_Bh}${NET_Ch} -s ${NET_A}.${NET_B}.${NET_C}.192/26 +echo -n "." #create counters for nets /27 iptables -A FWcntIN_${NET_Ah}${NET_Bh}${NET_Ch} -d ${NET_A}.${NET_B}.${NET_C}.0/27 @@ -63,6 +65,7 @@ iptables -A FWcntOUT_${NET_Ah}${NET_Bh}${NET_Ch} -s ${NET_A}.${NET_B}.${NET_C}.1 iptables -A FWcntOUT_${NET_Ah}${NET_Bh}${NET_Ch} -s ${NET_A}.${NET_B}.${NET_C}.160/27 iptables -A FWcntOUT_${NET_Ah}${NET_Bh}${NET_Ch} -s ${NET_A}.${NET_B}.${NET_C}.192/27 iptables -A FWcntOUT_${NET_Ah}${NET_Bh}${NET_Ch} -s ${NET_A}.${NET_B}.${NET_C}.224/27 +echo -n "." #create subchains for counters (/28) i=0 @@ -77,11 +80,12 @@ while [ $i -lt 16 ]; do iptables -A FWcntOUT_${NET_Ah}${NET_Bh}${NET_Ch}${ih} -s ${NET_A}.${NET_B}.${NET_C}.${j}/29 iptables -A FWcntOUT_${NET_Ah}${NET_Bh}${NET_Ch}${ih} -s ${NET_A}.${NET_B}.${NET_C}.$[${j} + 8 ]/29 #create counters for chunk 16 IP + echo -n "." k=0 while [ $k -lt 16 ]; do iptables -A FWcntIN_${NET_Ah}${NET_Bh}${NET_Ch}${ih} -d ${NET_A}.${NET_B}.${NET_C}.$[ ${k} + ${j} ] -j RETURN iptables -A FWcntOUT_${NET_Ah}${NET_Bh}${NET_Ch}${ih} -s ${NET_A}.${NET_B}.${NET_C}.$[ ${k} + ${j} ] -j RETURN - k=$[$k + 1 ] + k=$[$k + 1 ] done iptables -A FWcntIN_${NET_Ah}${NET_Bh}${NET_Ch} -d ${NET_A}.${NET_B}.${NET_C}.${j}/28 -j FWcntIN_${NET_Ah}${NET_Bh}${NET_Ch}${ih} iptables -A FWcntOUT_${NET_Ah}${NET_Bh}${NET_Ch} -s ${NET_A}.${NET_B}.${NET_C}.${j}/28 -j FWcntOUT_${NET_Ah}${NET_Bh}${NET_Ch}${ih} @@ -90,5 +94,8 @@ done iptables -A FWcnt -j FWcntIN_${NET_Ah}${NET_Bh}${NET_Ch} -d ${NET_A}.${NET_B}.${NET_C}.0/24 iptables -A FWcnt -j FWcntOUT_${NET_Ah}${NET_Bh}${NET_Ch} -s ${NET_A}.${NET_B}.${NET_C}.0/24 +echo "" fi done + + diff --git a/install_FWcnt b/install_FWcnt new file mode 100755 index 0000000..65194c2 --- /dev/null +++ b/install_FWcnt @@ -0,0 +1,30 @@ +#!/bin/bash +/usr/lib/FWcnt/init_FWcnt +/usr/lib/FWcnt/clean_FWcnt + + +iptables-save|awk 'BEGIN{ +C["FORWARD"]="iptables -I FORWARD -j FWcnt" +C["INPUT"]="iptables -I INPUT -j FWcnt" +C["OUTPUT"]="iptables -I OUTPUT -j FWcnt" +} +{ + if($1 != "-A")next + if($0 ~ "FWcnt..?._")next + if($0 !~ "FWcnt")next + i=1; + while(i4){ - split(INP,IP,".") - split(INP,N,"_") - X=strtonum(IP[4]) - IP[4]=X - NX=strtonum(N[2]) - if(NX!=0){ - X=sprintf ("%d.%d.%d.%d_%d",IP[1],IP[2],IP[3],IP[4],NX) - } - else{ - X=sprintf ("%d.%d.%d.%d",IP[1],IP[2],IP[3],IP[4]) - } - if(ENVIRON["PATH_INFO"] ~ ".png$") {OUTX=TP[X];exit 0} - if(ENVIRON["PATH_INFO"] ~ ".html$") {OUTX=TP[X];exit 0} - OUTX=X + if (length(INP)>1){ + split(INP,NAME,"-") + if(NAME[1] in TP) OUTX=TP[NAME[1]] + if(ENVIRON["PATH_INFO"] ~ ".png$") exit 0 + if(ENVIRON["PATH_INFO"] ~ ".html$") exit 0 + OUTX=NAME[1] PATH_INFO="/" } - else OUTX="default" } {#BLANK BODY } diff --git a/wrapper/w0.cgi b/wrapper/w0.cgi deleted file mode 100755 index 6aab91b..0000000 --- a/wrapper/w0.cgi +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash -C="default.cfg" -if [ $# -eq 1 ]; then - C=`echo $1|awk '{print $1".cfg"}'` -fi -CFG=/var/lib/FWcnt/etc/${C} -if [ -e ${CFG} ]; then - export MRTGRRDCONF=${CFG} -fi -exec /usr/lib/cgi-bin/mrtg-rrd.cgi - diff --git a/wrapper/w1.cgi b/wrapper/w1.cgi deleted file mode 100755 index 59e65a4..0000000 --- a/wrapper/w1.cgi +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/bash -IPI=${PATH_INFO} -Cxx=`echo "${PATH_INFO}"|awk 'BEGIN{ -while (getline <"/var/lib/FWcnt/etc/target.parent"){ - gsub("/","_") - TP[$2]=$1 - } -close("/var/lib/FWcnt/etc/target.parent") -FS="-" -} -{ -gsub("/","") -if (length($1)>4){ -split($1,IP,".") -split($1,N,"_") -X=strtonum(IP[4]) -IP[4]=X -NX=strtonum(N[2]) -if(NX!=0){ -X=sprintf ("%d.%d.%d.%d_%d",IP[1],IP[2],IP[3],IP[4],NX) -} -else{ -X=sprintf ("%d.%d.%d.%d",IP[1],IP[2],IP[3],IP[4]) -} -#print(TP[X]) -if(ENVIRON["PATH_INFO"] ~ ".png$") {print(TP[X]);exit 0} -if(ENVIRON["PATH_INFO"] ~ ".html$") {print(TP[X]);exit 0} -print X -exit 1 -} -else { - printf("default\n"); - } -}'` -if [ $? == 1 ]; then - export PATH_INFO="/" -fi - -CFG=/var/lib/FWcnt/etc/${Cxx}.cfg -echo $CFG >> /var/lib/FWcnt/etc/debug -echo "incoming PATH_INFO: "$IPI >>/var/lib/FWcnt/etc/debug -echo "PATH_INFO: $PATH_INFO" >>/var/lib/FWcnt/etc/debug -echo $Cxx >>/var/lib/FWcnt/etc/debug - -if [ -e ${CFG} ]; then - echo "OK" >> /var/lib/FWcnt/etc/debug - export MRTGRRDCONF=${CFG} - exec /usr/lib/cgi-bin/mrtg-rrd.cgi -else - echo "Content-type: text/html" - echo "X-Powered-By: shell" - echo "" - echo "no CFG "$CFG -fi diff --git a/wrapper/w2.cgi b/wrapper/w2.cgi deleted file mode 100755 index 7021ab5..0000000 --- a/wrapper/w2.cgi +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/bash -Cxx=`echo "${PATH_INFO}"|awk 'BEGIN{ -while (getline <"/var/lib/FWcnt/etc/target.parent"){ - gsub("/","_") - TP[$2]=$1 - } -close("/var/lib/FWcnt/etc/target.parent") -FS="-" -} -{ -gsub("/","") -if (length($1)>4){ -split($1,IP,".") -split($1,N,"_") -X=strtonum(IP[4]) -IP[4]=X -NX=strtonum(N[2]) -if(NX!=0){ -X=sprintf ("%d.%d.%d.%d_%d",IP[1],IP[2],IP[3],IP[4],NX) -} -else{ -X=sprintf ("%d.%d.%d.%d",IP[1],IP[2],IP[3],IP[4]) -} -#print(TP[X]) -if(ENVIRON["PATH_INFO"] ~ ".png$") {print(TP[X]);exit 0} -if(ENVIRON["PATH_INFO"] ~ ".html$") {print(TP[X]);exit 0} -print X -exit 1 -} -else { - printf("default\n"); - } -}'` -if [ $? == 1 ]; then - export PATH_INFO="/" -fi - -CFG=/var/lib/FWcnt/etc/${Cxx}.cfg - -if [ -e ${CFG} ]; then - export MRTGRRDCONF=${CFG} - exec /usr/lib/cgi-bin/mrtg-rrd.cgi -else - echo "Content-type: text/html" - echo "X-Powered-By: shell" - echo "" - echo "no CFG "$CFG -fi diff --git a/wrapper/w4.cgi b/wrapper/w4.cgi deleted file mode 100755 index aac0e96..0000000 --- a/wrapper/w4.cgi +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/bash -awk 'BEGIN{ - while (getline <"/var/lib/FWcnt/run_conf/target.parent"){ - gsub("/","_") - TP[$2]=$1 - } - close("/var/lib/FWcnt/run_conf/target.parent") - FS="-" - INP=ENVIRON["PATH_INFO"] - PATH_INFO=INP - gsub("/","",INP) - if (length(INP)>2){ - split(INP,IP,".") - split(INP,N,"_") - X=strtonum(IP[4]) - IP[4]=X - NX=strtonum(N[2]) - if(NX!=0){ - X=sprintf ("%d.%d.%d.%d_%d",IP[1],IP[2],IP[3],IP[4],NX) - } - else{ - X=sprintf ("%d.%d.%d.%d",IP[1],IP[2],IP[3],IP[4]) - } - if(X in TP){ - OUTX=TP[X] - } - else{ - OUTX="default" - } - if(ENVIRON["PATH_INFO"] ~ ".png$") {exit 0} - if(ENVIRON["PATH_INFO"] ~ ".html$") {exit 0} - OUTX=X - PATH_INFO="/" - } - else OUTX="default" -} -{#BLANK BODY -} -END{ - CFG="/var/lib/FWcnt/run_conf/"OUTX".cfg" - if((getline