diff --git a/configure.ac b/configure.ac index 320c50b0a..c00cb801b 100644 --- a/configure.ac +++ b/configure.ac @@ -1956,6 +1956,7 @@ AC_CONFIG_FILES([ src/checksum/Makefile src/conftest/Makefile src/pt-tls-client/Makefile + src/sw-collector/Makefile src/swanctl/Makefile scripts/Makefile testing/Makefile @@ -1988,6 +1989,8 @@ AC_CONFIG_FILES([ src/swanctl/swanctl.8 src/swanctl/swanctl.conf.5.head src/swanctl/swanctl.conf.5.tail + src/pt-tls-client/pt-tls-client.1 + src/sw-collector/sw-collector.8 ]) AC_OUTPUT diff --git a/src/Makefile.am b/src/Makefile.am index df171b270..193b77c1a 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -135,3 +135,7 @@ endif if USE_AIKGEN SUBDIRS += aikgen endif + +if USE_IMC_SWIMA + SUBDIRS += sw-collector +endif diff --git a/src/libimcv/plugins/imc_swima/Makefile.am b/src/libimcv/plugins/imc_swima/Makefile.am index e14556c62..4a29e7949 100644 --- a/src/libimcv/plugins/imc_swima/Makefile.am +++ b/src/libimcv/plugins/imc_swima/Makefile.am @@ -19,8 +19,7 @@ $(swid_tag) : $(regid)__strongSwan.swidtag.in AM_CPPFLAGS = \ -I$(top_srcdir)/src/libstrongswan \ -I$(top_srcdir)/src/libtncif \ - -I$(top_srcdir)/src/libimcv \ - -DPLUGINS=\""random openssl sqlite curl"\" + -I$(top_srcdir)/src/libimcv AM_CFLAGS = \ $(PLUGIN_CFLAGS) $(json_CFLAGS) @@ -32,23 +31,3 @@ imc_swima_la_LIBADD = \ $(top_builddir)/src/libstrongswan/libstrongswan.la imc_swima_la_SOURCES = imc_swima.c imc_swima_state.h imc_swima_state.c imc_swima_la_LDFLAGS = -module -avoid-version -no-undefined - -ipsec_PROGRAMS = sw-collector -sw_collector_SOURCES = \ - sw_collector/sw-collector.c \ - sw_collector/sw_collector_db.h sw_collector/sw_collector_db.c \ - sw_collector/sw_collector_dpkg.h sw_collector/sw_collector_dpkg.c \ - sw_collector/sw_collector_history.h sw_collector/sw_collector_history.c \ - sw_collector/sw_collector_info.h sw_collector/sw_collector_info.c \ - sw_collector/sw_collector_rest_api.h sw_collector/sw_collector_rest_api.c - -sw_collector_LDADD = \ - $(top_builddir)/src/libstrongswan/libstrongswan.la \ - $(top_builddir)/src/libimcv/libimcv.la \ - $(json_LIBS) - -sw-collector.o : $(top_builddir)/config.status - -templatesdir = $(pkgdatadir)/templates/database/sw-collector -dist_templates_DATA = sw_collector/sw_collector_tables.sql - diff --git a/src/sw-collector/.gitignore b/src/sw-collector/.gitignore new file mode 100644 index 000000000..152dd9557 --- /dev/null +++ b/src/sw-collector/.gitignore @@ -0,0 +1,2 @@ +sw-collector +sw-collector.8 diff --git a/src/sw-collector/Makefile.am b/src/sw-collector/Makefile.am new file mode 100644 index 000000000..c36aa37b8 --- /dev/null +++ b/src/sw-collector/Makefile.am @@ -0,0 +1,33 @@ +sbin_PROGRAMS = sw-collector + +sw_collector_SOURCES = \ + sw-collector.c \ + sw_collector_db.h sw_collector_db.c \ + sw_collector_dpkg.h sw_collector_dpkg.c \ + sw_collector_history.h sw_collector_history.c \ + sw_collector_info.h sw_collector_info.c \ + sw_collector_rest_api.h sw_collector_rest_api.c + +sw-collector.o : $(top_builddir)/config.status + +AM_CPPFLAGS = \ + -I$(top_srcdir)/src/libstrongswan \ + -I$(top_srcdir)/src/libtncif \ + -I$(top_srcdir)/src/libimcv \ + -DPLUGINS=\""random openssl sqlite curl"\" + +AM_CFLAGS = $(json_CFLAGS) + +sw_collector_LDADD = \ + $(top_builddir)/src/libstrongswan/libstrongswan.la \ + $(top_builddir)/src/libimcv/libimcv.la \ + $(json_LIBS) + +templatesdir = $(pkgdatadir)/templates/database/sw-collector +dist_templates_DATA = sw_collector_tables.sql + +man8_MANS = sw-collector.8 + +CLEANFILES = $(man8_MANS) + + diff --git a/src/sw-collector/sw-collector.8.in b/src/sw-collector/sw-collector.8.in new file mode 100644 index 000000000..a31c40194 --- /dev/null +++ b/src/sw-collector/sw-collector.8.in @@ -0,0 +1,90 @@ +.TH SW-COLLECTOR 1 "2017-07-15" "@PACKAGE_VERSION@" "strongSwan" +. +.SH "NAME" +. +sw-collector \- Extracts software installation events from dpkg history log +. +.SH "SYNOPSIS" +. +.SY "sw-collector" +.OP \-\-debug level +.OP \-\-quiet +.OP \-\-count event-count +.YS +. +.SY "sw-collector" +.OP \-\-debug level +.OP \-\-quiet +.BR \-\-list |\fB\-\-unregistered\fR|\fB\-\-generate\fR|\fB\-\-migrate +.YS +. +.SY "sw-collector" +.B \-h +| +.B \-\-help +.YS +. +.SH "DESCRIPTION" +. +.B sw-collector +extracts information about software package installation, update or removal +events from the apt history log and stores the software events in an SQLite +database. The retrieved history information is then merged and made consistent +with the actual list of installed software packages obtained with dpkg-query. +. +.SH "OPTIONS" +. +.TP +.B "\-h, \-\-help" +Prints usage information and a short summary of the available commands. +.TP +.BI "\-v, \-\-debug " level +Set debug level, default: 2. +.TP +.B "\-q, \-\-quiet +Disable debug output to stderr. +.TP +.B "\-l, \-\-list +Lists all software packages stored in the collector database showing their +installation status. +.TP +.B "\-u, \-\-unregistered +Lists all software packages residing in the local collector database but for +which no SWID tags exist yet in a central collector database reachable via a +REST interface. +.TP +.B "\-g, \-\-generate +Generates minimal SWID tags for all deleted software packages residing in the +local collector database but for which no SWID tags exist in a central collector +database reachable via a REST interface. +.TP +.B "\-m, \-\-migrate +Can be used to migrate collector database versions. Currently all architecture +suffixes are removed from dpkg package names. +. +.SH "CONFIGURATION" +. +The following parameters can be configured in strongswan.conf: +.P + sw-collector { + database = sqlite:///etc/pts/collector.db + history = /var/log/apt/history.log + first_time = 2016-04-22T20:55:14Z + rest_api { + uri = https://admin-user:ietf99hackathon@tnc.strongswan.org/api/ + timeout = 120 + } + tag_creator { + name = strongSwan Project + regid = strongswan.org + } + } +. +.SH "FILES" +. +@PKGDATADIR@/templates/database/sw-collector/sw_collector_tables.sql +. +.SH "SEE ALSO" +. +.BR strongswan.conf (5) + diff --git a/src/libimcv/plugins/imc_swima/sw_collector/sw-collector.c b/src/sw-collector/sw-collector.c similarity index 100% rename from src/libimcv/plugins/imc_swima/sw_collector/sw-collector.c rename to src/sw-collector/sw-collector.c diff --git a/src/libimcv/plugins/imc_swima/sw_collector/sw_collector_db.c b/src/sw-collector/sw_collector_db.c similarity index 100% rename from src/libimcv/plugins/imc_swima/sw_collector/sw_collector_db.c rename to src/sw-collector/sw_collector_db.c diff --git a/src/libimcv/plugins/imc_swima/sw_collector/sw_collector_db.h b/src/sw-collector/sw_collector_db.h similarity index 100% rename from src/libimcv/plugins/imc_swima/sw_collector/sw_collector_db.h rename to src/sw-collector/sw_collector_db.h diff --git a/src/libimcv/plugins/imc_swima/sw_collector/sw_collector_dpkg.c b/src/sw-collector/sw_collector_dpkg.c similarity index 100% rename from src/libimcv/plugins/imc_swima/sw_collector/sw_collector_dpkg.c rename to src/sw-collector/sw_collector_dpkg.c diff --git a/src/libimcv/plugins/imc_swima/sw_collector/sw_collector_dpkg.h b/src/sw-collector/sw_collector_dpkg.h similarity index 100% rename from src/libimcv/plugins/imc_swima/sw_collector/sw_collector_dpkg.h rename to src/sw-collector/sw_collector_dpkg.h diff --git a/src/libimcv/plugins/imc_swima/sw_collector/sw_collector_history.c b/src/sw-collector/sw_collector_history.c similarity index 100% rename from src/libimcv/plugins/imc_swima/sw_collector/sw_collector_history.c rename to src/sw-collector/sw_collector_history.c diff --git a/src/libimcv/plugins/imc_swima/sw_collector/sw_collector_history.h b/src/sw-collector/sw_collector_history.h similarity index 100% rename from src/libimcv/plugins/imc_swima/sw_collector/sw_collector_history.h rename to src/sw-collector/sw_collector_history.h diff --git a/src/libimcv/plugins/imc_swima/sw_collector/sw_collector_info.c b/src/sw-collector/sw_collector_info.c similarity index 100% rename from src/libimcv/plugins/imc_swima/sw_collector/sw_collector_info.c rename to src/sw-collector/sw_collector_info.c diff --git a/src/libimcv/plugins/imc_swima/sw_collector/sw_collector_info.h b/src/sw-collector/sw_collector_info.h similarity index 100% rename from src/libimcv/plugins/imc_swima/sw_collector/sw_collector_info.h rename to src/sw-collector/sw_collector_info.h diff --git a/src/libimcv/plugins/imc_swima/sw_collector/sw_collector_rest_api.c b/src/sw-collector/sw_collector_rest_api.c similarity index 100% rename from src/libimcv/plugins/imc_swima/sw_collector/sw_collector_rest_api.c rename to src/sw-collector/sw_collector_rest_api.c diff --git a/src/libimcv/plugins/imc_swima/sw_collector/sw_collector_rest_api.h b/src/sw-collector/sw_collector_rest_api.h similarity index 100% rename from src/libimcv/plugins/imc_swima/sw_collector/sw_collector_rest_api.h rename to src/sw-collector/sw_collector_rest_api.h diff --git a/src/libimcv/plugins/imc_swima/sw_collector/sw_collector_tables.sql b/src/sw-collector/sw_collector_tables.sql similarity index 100% rename from src/libimcv/plugins/imc_swima/sw_collector/sw_collector_tables.sql rename to src/sw-collector/sw_collector_tables.sql