From aa0f5b38aec14428b4b80e06f90ff781f8bca5f1 Mon Sep 17 00:00:00 2001 From: Rene Mayrhofer Date: Mon, 22 May 2006 05:12:18 +0000 Subject: Import initial strongswan 2.7.0 version into SVN. --- programs/klipsdebug/.cvsignore | 1 + programs/klipsdebug/Makefile | 80 +++++++ programs/klipsdebug/klipsdebug.5 | 138 +++++++++++++ programs/klipsdebug/klipsdebug.8 | 164 +++++++++++++++ programs/klipsdebug/klipsdebug.c | 436 +++++++++++++++++++++++++++++++++++++++ 5 files changed, 819 insertions(+) create mode 100644 programs/klipsdebug/.cvsignore create mode 100644 programs/klipsdebug/Makefile create mode 100644 programs/klipsdebug/klipsdebug.5 create mode 100644 programs/klipsdebug/klipsdebug.8 create mode 100644 programs/klipsdebug/klipsdebug.c (limited to 'programs/klipsdebug') diff --git a/programs/klipsdebug/.cvsignore b/programs/klipsdebug/.cvsignore new file mode 100644 index 000000000..03c1d474c --- /dev/null +++ b/programs/klipsdebug/.cvsignore @@ -0,0 +1 @@ +klipsdebug diff --git a/programs/klipsdebug/Makefile b/programs/klipsdebug/Makefile new file mode 100644 index 000000000..6c98e7592 --- /dev/null +++ b/programs/klipsdebug/Makefile @@ -0,0 +1,80 @@ +# Makefile for the KLIPS interface utilities +# Copyright (C) 1998, 1999 Henry Spencer. +# Copyright (C) 1999, 2000, 2001 Richard Guy Briggs +# +# 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. See . +# +# 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. +# +# RCSID $Id: Makefile,v 1.1 2004/03/15 20:35:28 as Exp $ + +FREESWANSRCDIR=../.. +include ${FREESWANSRCDIR}/Makefile.inc + +PROGRAM:=klipsdebug +EXTRA5PROC=${PROGRAM}.5 + +LIBS:=${FREESWANLIB} + +include ../Makefile.program + +# +# $Log: Makefile,v $ +# Revision 1.1 2004/03/15 20:35:28 as +# added files from freeswan-2.04-x509-1.5.3 +# +# Revision 1.4 2002/06/03 20:25:31 mcr +# man page for files actually existant in /proc/net changed back to +# ipsec_foo via new EXTRA5PROC process. +# +# Revision 1.3 2002/06/02 22:02:14 mcr +# changed TOPDIR->FREESWANSRCDIR in all Makefiles. +# (note that linux/net/ipsec/Makefile uses TOPDIR because this is the +# kernel sense.) +# +# Revision 1.2 2002/04/26 01:21:26 mcr +# while tracking down a missing (not installed) /etc/ipsec.conf, +# MCR has decided that it is not okay for each program subdir to have +# some subset (determined with -f) of possible files. +# Each subdir that defines $PROGRAM, MUST have a PROGRAM.8 file as well as a PROGRAM file. +# Optional PROGRAM.5 files have been added to the makefiles. +# +# Revision 1.1 2002/04/24 07:55:32 mcr +# #include patches and Makefiles for post-reorg compilation. +# +# +# + + +# +# $Log: Makefile,v $ +# Revision 1.1 2004/03/15 20:35:28 as +# added files from freeswan-2.04-x509-1.5.3 +# +# Revision 1.4 2002/06/03 20:25:31 mcr +# man page for files actually existant in /proc/net changed back to +# ipsec_foo via new EXTRA5PROC process. +# +# Revision 1.3 2002/06/02 22:02:14 mcr +# changed TOPDIR->FREESWANSRCDIR in all Makefiles. +# (note that linux/net/ipsec/Makefile uses TOPDIR because this is the +# kernel sense.) +# +# Revision 1.2 2002/04/26 01:21:26 mcr +# while tracking down a missing (not installed) /etc/ipsec.conf, +# MCR has decided that it is not okay for each program subdir to have +# some subset (determined with -f) of possible files. +# Each subdir that defines $PROGRAM, MUST have a PROGRAM.8 file as well as a PROGRAM file. +# Optional PROGRAM.5 files have been added to the makefiles. +# +# Revision 1.1 2002/04/24 07:55:32 mcr +# #include patches and Makefiles for post-reorg compilation. +# +# +# diff --git a/programs/klipsdebug/klipsdebug.5 b/programs/klipsdebug/klipsdebug.5 new file mode 100644 index 000000000..8e5f985f0 --- /dev/null +++ b/programs/klipsdebug/klipsdebug.5 @@ -0,0 +1,138 @@ +.TH IPSEC_KLIPSDEBUG 5 "26 Jun 2000" +.\" +.\" RCSID $Id: klipsdebug.5,v 1.1 2004/03/15 20:35:28 as Exp $ +.\" +.SH NAME +ipsec_klipsdebug \- list KLIPS (kernel IPSEC support) debug features and level +.SH SYNOPSIS +.B ipsec +.B klipsdebug +.PP +.B cat +.B /proc/net/ipsec_klipsdebug +.SH DESCRIPTION +.I /proc/net/ipsec_klipsdebug +lists flags that control various parts of the debugging output of Klips +(the kernel portion of FreeS/WAN IPSEC). +At this point it is a read-only file. +.PP +A table entry consists of: +.IP + 3 +a KLIPS debug variable +.IP + +a '=' separator for visual and automated parsing between the variable +name and its current value +.IP + +hexadecimal bitmap of variable's flags. +.PP +The variable names roughly describe the scope of the debugging variable. +Currently, no flags are documented or individually accessible yet except +tunnel-xmit. +.ne 5 +.PP +The variable names are: +.TP 8 +.B tunnel +tunnelling code +.TP +.B netlink +userspace communication code (obsolete) +.TP +.B xform +transform selection and manipulation code +.TP +.B eroute +eroute table manipulation code +.TP +.B spi +SA table manipulation code +.TP +.B radij +radij tree manipulation code +.TP +.B esp +encryptions transforms code +.TP +.B ah +authentication transforms code +.TP +.B rcv +receive code +.TP +.B ipcomp +ip compression transforms code +.TP +.B verbose +give even more information, beware this will probably trample the 4k kernel printk buffer giving inaccurate output +.PP +All KLIPS debug output appears as +.B kernel.info +messages to +.IR syslogd (8). +Most systems are set up +to log these messages to +.IR /var/log/messages . +.PP +.SH EXAMPLES +.LP +.B debug_tunnel=00000010. +.br +.B debug_netlink=00000000. +.br +.B debug_xform=00000000. +.br +.B debug_eroute=00000000. +.br +.B debug_spi=00000000. +.br +.B debug_radij=00000000. +.br +.B debug_esp=00000000. +.br +.B debug_ah=00000000. +.br +.B debug_rcv=00000000. +.br +.B debug_pfkey=ffffffff. +.LP +means that one +.B tunnel +flag has been set (tunnel-xmit), +full +.B pfkey +sockets debugging has been set and everything else is not set. +.LP +.SH FILES +/proc/net/ipsec_klipsdebug, /usr/local/bin/ipsec +.SH "SEE ALSO" +ipsec(8), ipsec_manual(8), ipsec_tncfg(8), ipsec_eroute(8), +ipsec_spi(8), ipsec_spigrp(8), ipsec_klipsdebug(5), ipsec_version(5), +ipsec_pf_key(5) +.SH HISTORY +Written for the Linux FreeS/WAN project + +by Richard Guy Briggs. +.\" +.\" $Log: klipsdebug.5,v $ +.\" Revision 1.1 2004/03/15 20:35:28 as +.\" added files from freeswan-2.04-x509-1.5.3 +.\" +.\" Revision 1.5 2002/04/24 07:35:38 mcr +.\" Moved from ./klips/utils/klipsdebug.5,v +.\" +.\" Revision 1.4 2000/10/10 20:10:19 rgb +.\" Added support for debug_ipcomp and debug_verbose to klipsdebug. +.\" +.\" Revision 1.3 2000/06/30 18:21:55 rgb +.\" Update SEE ALSO sections to include ipsec_version(5) and ipsec_pf_key(5) +.\" and correct FILES sections to no longer refer to /dev/ipsec which has +.\" been removed since PF_KEY does not use it. +.\" +.\" Revision 1.2 2000/06/28 12:44:12 henry +.\" format touchup +.\" +.\" Revision 1.1 2000/06/28 05:43:00 rgb +.\" Added manpages for all 5 klips utils. +.\" +.\" +.\" diff --git a/programs/klipsdebug/klipsdebug.8 b/programs/klipsdebug/klipsdebug.8 new file mode 100644 index 000000000..60d018eec --- /dev/null +++ b/programs/klipsdebug/klipsdebug.8 @@ -0,0 +1,164 @@ +.TH IPSEC_KLIPSDEBUG 8 "21 Jun 2000" +.\" +.\" RCSID $Id: klipsdebug.8,v 1.1 2004/03/15 20:35:28 as Exp $ +.\" +.SH NAME +ipsec klipsdebug \- set KLIPS (kernel IPSEC support) debug features and level +.SH SYNOPSIS +.B ipsec +.B klipsdebug +.PP +.B ipsec +.B klipsdebug +.B \-\-set +flagname +.PP +.B ipsec +.B klipsdebug +.B \-\-clear +flagname +.PP +.B ipsec +.B klipsdebug +.B \-\-all +.PP +.B ipsec +.B klipsdebug +.B \-\-none +.PP +.B ipsec +.B klipsdebug +.B \-\-help +.PP +.B ipsec +.B klipsdebug +.B \-\-version +.SH DESCRIPTION +.I Klipsdebug +sets and clears flags that control +various parts of the debugging output of Klips +(the kernel portion of FreeS/WAN IPSEC). +The form with no additional arguments lists the present contents of +/proc/net/ipsec_klipsdebug. +The +.B \-\-set +form turns the specified flag on, +while the +.B \-\-clear +form turns the specified flag off. +The +.B \-\-all +form +turns all flags on except verbose, while the +.B \-\-none +form turns all flags off. +.PP +The current flag names are: +.TP 8 +.B tunnel +tunnelling code +.TP +.B tunnel-xmit +tunnelling transmit only code +.TP +.B pfkey +userspace communication code +.TP +.B xform +transform selection and manipulation code +.TP +.B eroute +eroute table manipulation code +.TP +.B spi +SA table manipulation code +.TP +.B radij +radij tree manipulation code +.TP +.B esp +encryptions transforms code +.TP +.B ah +authentication transforms code +.B rcv +receive code +.TP +.B ipcomp +ip compression transforms code +.TP +.B verbose +give even more information, BEWARE: +a)this will print authentication and encryption keys in the logs +b)this will probably trample the 4k kernel printk buffer giving inaccurate output +.PP +All Klips debug output appears as +.B kernel.info +messages to +.IR syslogd (8). +Most systems are set up +to log these messages to +.IR /var/log/messages . +Beware that +.B klipsdebug +.B \-\-all +produces a lot of output and the log file will grow quickly. +.PP +The file format for /proc/net/ipsec_klipsdebug is discussed in +ipsec_klipsdebug(5). +.SH EXAMPLES +.TP +.B klipsdebug \-\-all +turns on all KLIPS debugging except verbose. +.TP +.B klipsdebug \-\-clear tunnel +turns off only the +.B tunnel +debugging messages. +.LP +.SH FILES +/proc/net/ipsec_klipsdebug, /usr/local/bin/ipsec +.SH "SEE ALSO" +ipsec(8), ipsec_manual(8), ipsec_tncfg(8), ipsec_eroute(8), +ipsec_spi(8), ipsec_spigrp(8), ipsec_klipsdebug(5) +.SH HISTORY +Written for the Linux FreeS/WAN project + +by Richard Guy Briggs. +.SH BUGS +It really ought to be possible to set or unset selective combinations +of flags. +.\" +.\" $Log: klipsdebug.8,v $ +.\" Revision 1.1 2004/03/15 20:35:28 as +.\" added files from freeswan-2.04-x509-1.5.3 +.\" +.\" Revision 1.18 2002/04/24 07:35:39 mcr +.\" Moved from ./klips/utils/klipsdebug.8,v +.\" +.\" Revision 1.17 2000/10/10 20:10:19 rgb +.\" Added support for debug_ipcomp and debug_verbose to klipsdebug. +.\" +.\" Revision 1.16 2000/08/18 17:33:11 rgb +.\" Updated obsolete netlink reference and added pfkey and tunnel-xmit. +.\" +.\" Revision 1.15 2000/06/30 18:21:55 rgb +.\" Update SEE ALSO sections to include ipsec_version(5) and ipsec_pf_key(5) +.\" and correct FILES sections to no longer refer to /dev/ipsec which has +.\" been removed since PF_KEY does not use it. +.\" +.\" Revision 1.14 2000/06/28 05:53:09 rgb +.\" Mention that netlink is obsolete. +.\" +.\" Revision 1.13 2000/06/21 16:54:58 rgb +.\" Added 'no additional args' text for listing contents of +.\" /proc/net/ipsec_* files. +.\" +.\" Revision 1.12 1999/07/19 18:47:24 henry +.\" fix slightly-misformed comments +.\" +.\" Revision 1.11 1999/04/06 04:54:37 rgb +.\" Fix/Add RCSID Id: and Log: bits to make PHMDs happy. This includes +.\" patch shell fixes. +.\" +.\" diff --git a/programs/klipsdebug/klipsdebug.c b/programs/klipsdebug/klipsdebug.c new file mode 100644 index 000000000..c205038a1 --- /dev/null +++ b/programs/klipsdebug/klipsdebug.c @@ -0,0 +1,436 @@ +/* + * control KLIPS debugging options + * Copyright (C) 1996 John Ioannidis. + * Copyright (C) 1998, 1999, 2000, 2001 Richard Guy Briggs + * 2001 Michael Richardson + * + * 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. See . + * + * 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. + */ + +char klipsdebug_c_version[] = "RCSID $Id: klipsdebug.c,v 1.2 2004/06/07 15:16:34 as Exp $"; + + +#include +#include /* new */ +#include +#include +#include /* system(), strtoul() */ +#include /* open() */ +#include /* open() */ + +#include + +#include +#include + + + +#include +#include +#if 0 +#include /* CONFIG_IPSEC_PFKEYv2 */ +#endif + +/* permanently turn it on since netlink support has been disabled */ +#include +#include +#include + +#include "freeswan/radij.h" +#include "freeswan/ipsec_encap.h" +#ifndef CONFIG_IPSEC_DEBUG +#define CONFIG_IPSEC_DEBUG +#endif /* CONFIG_IPSEC_DEBUG */ +#include "freeswan/ipsec_tunnel.h" + +#include +#include + +__u32 bigbuf[1024]; +char *program_name; + +int pfkey_sock; +fd_set pfkey_socks; +uint32_t pfkey_seq = 0; + +char copyright[] = +"Copyright (C) 1999 Henry Spencer, Richard Guy Briggs, D. Hugh Redelmeier,\n\ + Sandy Harris, Angelos D. Keromytis, John Ioannidis.\n\ +\n\ + This program is free software; you can redistribute it and/or modify it\n\ + under the terms of the GNU General Public License as published by the\n\ + Free Software Foundation; either version 2 of the License, or (at your\n\ + option) any later version. See .\n\ +\n\ + This program is distributed in the hope that it will be useful, but\n\ + WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n\ + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License\n\ + (file COPYING in the distribution) for more details.\n"; + +static void +usage(char * arg) +{ + fprintf(stdout, "usage: %s {--set|--clear} {tunnel|tunnel-xmit|netlink|xform|eroute|spi|radij|esp|ah|rcv|pfkey|ipcomp|verbose}\n", arg); + fprintf(stdout, " %s {--all|--none}\n", arg); + fprintf(stdout, " %s --help\n", arg); + fprintf(stdout, " %s --version\n", arg); + fprintf(stdout, " %s\n", arg); + fprintf(stdout, " [ --debug ] is optional to any %s command\n", arg); + fprintf(stdout, " [ --label