install_sympa.sh: support for patch that prevents user IP addresses from being logged.

This commit is contained in:
Christoph 2022-06-10 18:32:29 +02:00
parent 52285b5d88
commit 98827ca563
2 changed files with 196 additions and 62 deletions

52
do-not-log-usr-ip.patch Normal file
View File

@ -0,0 +1,52 @@
diff -Naur sympa/src/cgi/wwsympa.fcgi.in sympa-changed/src/cgi/wwsympa.fcgi.in
--- sympa/src/cgi/wwsympa.fcgi.in 2022-01-24 08:05:58.000000000 +0100
+++ sympa-changed/src/cgi/wwsympa.fcgi.in 2022-06-10 18:13:06.474595910 +0200
@@ -1842,7 +1842,7 @@
my %options = %{$data || {}};
- $options{'client'} = $param->{'remote_addr'};
+ $options{'client'} = '127.127.0.1';
$options{'daemon'} = 'wwsympa';
$options{'robot'} ||= $robot;
$options{'list'} ||= $list->{'name'} if ref $list eq 'Sympa::List';
@@ -1870,7 +1870,7 @@
$options{'operation'} ||= $param->{'action'};
$options{'list'} ||= $list->{'name'} if ref $list eq 'Sympa::List';
$options{'daemon'} = 'wwsympa';
- $options{'client'} = $param->{'remote_addr'};
+ $options{'client'} = '127.127.0.1';
$options{'robot'} ||= $robot;
unless ($log->add_stat(%options)) {
diff -Naur sympa/src/lib/Sympa/Log.pm sympa-changed/src/lib/Sympa/Log.pm
--- sympa/src/lib/Sympa/Log.pm 2021-12-09 09:54:08.000000000 +0100
+++ sympa-changed/src/lib/Sympa/Log.pm 2022-06-10 18:15:53.437052215 +0200
@@ -299,7 +299,12 @@
my $status = $options{'status'};
my $error_type = $options{'error_type'};
my $user_email = $options{'user_email'};
- my $client = $options{'client'};
+ my $client;
+ if (defined $options{'client'} && length $options{'client'} > 0) {
+ $client = '127.127.0.1';
+ } else {
+ $client = $options{'client'};
+ }
my $daemon = $self->{_service} || 'sympa';
my ($date, $usec) = Sympa::Tools::Time::gettimeofday();
@@ -357,7 +362,12 @@
my $date = time;
my $mail = $options{'mail'};
my $daemon = $self->{_service} || 'sympa';
- my $ip = $options{'client'};
+ my $ip;
+ if (defined $options{'client'} && length $options{'client'} > 0) {
+ $ip = '127.127.0.1';
+ } else {
+ $ip = $options{'client'};
+ }
my $robot = $options{'robot'};
my $parameter = $options{'parameter'};
my $read = 0;

View File

@ -256,6 +256,10 @@ DEFAULT_SYMPA_SYSTEMD_DIR="/etc/systemd/system"
DEFAULT_VSERVER_GUEST="no"
PATCH_FILE_NO_LOG_USER_IP="${working_dir}/do-not-log-usr-ip.patch"
DEFAULT_APPLY_LOG_NO_USER_IP="np"
echo
echononl "\tInclude Configuration file.."
if [[ ! -f $conf_file ]]; then
@ -284,6 +288,7 @@ DEFAULT_SYMPA_WEB_URL="https://$SYMPA_DOMAIN/wws"
[[ -n "$SYMPA_DB_USER" ]] && DEFAULT_SYMPA_DB_USER="$SYMPA_DB_USER"
[[ -n "$VSERVER_GUEST" ]] && DEFAULT_VSERVER_GUEST="$VSERVER_GUEST"
[[ -n "$SYMPA_DB_PASSWD" ]] && DEFAULT_SYMPA_DB_PASSWD="$SYMPA_DB_PASSWD"
[[ -n "$APPLY_LOG_NO_USER_IP" ]] && DEFAULT_APPLY_LOG_NO_USER_IP="$APPLY_LOG_NO_USER_IP"
# -
[[ -n "$SYMPA_SYSTEMD_DIR" ]] && DEFAULT_SYMPA_SYSTEMD_DIR="$SYMPA_SYSTEMD_DIR"
@ -1233,6 +1238,37 @@ else
fi
OK=
echo ""
echo -e "\033[32m--\033[m"
echo ""
echo "Apply Patch to prevent logging user IPs "
echo ""
if [[ ! -f "$PATCH_FILE_NO_LOG_USER_IP" ]] ; then
warn Patchfile "\033[1m$PATCH_FILE_NO_LOG_USER_IP\033[m" NOT FOUND
APPLY_LOG_NO_USER_IP=false
else
echononl "Apply Patch (yes/no) [$DEFAULT_APPLY_LOG_NO_USER_IP]: "
read OK
if [ "X$OK" = "X" ]; then
OK=$DEFAULT_APPLY_LOG_NO_USER_IP
fi
OK=`echo "$OK" | tr '[:upper:]' '[:lower:]'`
while [ "X$OK" != "Xyes" -a "X$OK" != "Xno" ]; do
echo ""
echononl "\twrong entry! [yes/no]: "
read OK
OK=`echo "$OK" | tr '[:upper:]' '[:lower:]'`
done
if [ "$OK" = "yes" ]; then
APPLY_LOG_NO_USER_IP=true
else
APPLY_LOG_NO_USER_IP=false
fi
fi
OK=
echo ""
echo -e "\033[32m--\033[m"
@ -1276,102 +1312,109 @@ else
fi
if $UPDATE_SYMPA ; then
echo ""
echo "Old (current) sympa version.....: $SYMPA_OLD_VERSION"
echo " Current Installation dir.....: $CURRENT_INSTALL_DIR"
echo "Old (current) sympa version.........: $SYMPA_OLD_VERSION"
echo " Current Installation dir.........: $CURRENT_INSTALL_DIR"
if [[ -z "$CURRENT_INSTALL_SYMLINK" ]]; then
echo " Current Install dir symlink..: - not in use -"
echo " Current Install dir symlink......: - not in use -"
else
echo " Current Install dir symlink..: $CURRENT_INSTALL_SYMLINK"
echo " Current Install dir symlink......: $CURRENT_INSTALL_SYMLINK"
fi
echo " Current Data base directory..: $CURRENT_SYMPA_LIST_DATA_BASE_PATH"
echo " Current Data base directory......: $CURRENT_SYMPA_LIST_DATA_BASE_PATH"
if [[ -z "$CURRENT_SYMPA_LIST_DATA_SYMLINK" ]]; then
echo " Current Data dir symlink.....: - not in use -"
echo " Current Data dir symlink.........: - not in use -"
else
echo " Current Data dir symlink.....: $CURRENT_SYMPA_LIST_DATA_SYMLINK"
echo " Current Data dir symlink.........: $CURRENT_SYMPA_LIST_DATA_SYMLINK"
fi
echo ""
fi
echo ""
echo -e "\033[1mSympa new version\033[m...............: \033[1m$SYMPA_VERSION\033[m"
echo " First (initial) Install......: $_new"
echo " Update ......................: $_update"
echo -e "\033[1mSympa new version\033[m...................: \033[1m$SYMPA_VERSION\033[m"
echo " First (initial) Install..........: $_new"
echo " Update ..........................: $_update"
echo ""
if ! $UPDATE_SYMPA ; then
echo "Sympa support for multidomains..: $SYMPA_SUPPORT_MULTIDOMAINS"
echo "Sympa support for multidomains......: $SYMPA_SUPPORT_MULTIDOMAINS"
fi
echo "Sympa user......................: $SYMPA_USER (id: ${SYMPA_UID})"
echo "Sympa group.....................: $SYMPA_GROUP (id: ${SYMPA_GID})"
echo "Sympa user..........................: $SYMPA_USER (id: ${SYMPA_UID})"
echo "Sympa group.........................: $SYMPA_GROUP (id: ${SYMPA_GID})"
echo ""
echo "Installation directory..........: $SYMPA_INSTALL_DIR"
echo "Sympa's bin directory...........: $SYMPA_BIN_DIR"
echo "Sympa's pid directory...........: $SYMPA_PID_DIR"
echo "Sympa's cgi directory...........: $SYMPA_CGI_DIR"
echo "Sympa's libexec directory.......: $SYMPA_LIBEXEC_DIR"
echo "Sympa's static directory........: $SYMPA_STATIC_DIR"
echo "Sympa's manpages directory......: $SYMPA_MANPATH"
echo "Sympa's main conf directory.....: $SYMPA_MAIN_CONF_DIR"
echo "Installation directory..............: $SYMPA_INSTALL_DIR"
echo "Sympa's bin directory...............: $SYMPA_BIN_DIR"
echo "Sympa's pid directory...............: $SYMPA_PID_DIR"
echo "Sympa's cgi directory...............: $SYMPA_CGI_DIR"
echo "Sympa's libexec directory...........: $SYMPA_LIBEXEC_DIR"
echo "Sympa's static directory............: $SYMPA_STATIC_DIR"
echo "Sympa's manpages directory..........: $SYMPA_MANPATH"
echo "Sympa's main conf directory.........: $SYMPA_MAIN_CONF_DIR"
echo ""
echo "Sympa's Data directory..........: $SYMPA_LIST_DATA_DIR"
echo "Sympa's Data base path..........: $SYMPA_LIST_DATA_BASE_PATH"
echo "Sympa's Data root dirctory......: $SYMPA_LIST_DATA_ROOT_DIR"
echo "Sympa's Data directory symlink..: $SYMPA_LIST_DATA_SYMLINK"
echo "Sympa's Data directory..............: $SYMPA_LIST_DATA_DIR"
echo "Sympa's Data base path..............: $SYMPA_LIST_DATA_BASE_PATH"
echo "Sympa's Data root dirctory..........: $SYMPA_LIST_DATA_ROOT_DIR"
echo "Sympa's Data directory symlink......: $SYMPA_LIST_DATA_SYMLINK"
echo ""
echo "Sympa's list archive path.......: $SYMPA_LIST_ARC_PATH"
echo "Sympa's list archive symlink....: $SYMPA_LIST_ARC_SYMLINK"
echo "Sympa's list archive path...........: $SYMPA_LIST_ARC_PATH"
echo "Sympa's list archive symlink........: $SYMPA_LIST_ARC_SYMLINK"
echo ""
echo "Sympa's aliases file................: $SYMPA_ALIAS_FILE"
echo ""
if $APPLY_LOG_NO_USER_IP ; then
echo -e "Patch to prevent logging user IPs...: \033[33m\033[1mYes\033[m"
else
echo -e "Patch to prevent logging user IPs...: \033[33m\033[1mNo\033[m"
fi
echo ""
echo "Sympa's aliases file............: $SYMPA_ALIAS_FILE"
if ! $UPDATE_SYMPA ; then
echo ""
echo "(default) domain................: $SYMPA_DOMAIN"
echo "Listmaster......................: $SYMPA_LISTMASTER"
echo "URL for web interface...........: $SYMPA_WEB_URL"
echo "SctiptAlias Directory...........: $_wwsympa_dir"
echo "(default) domain....................: $SYMPA_DOMAIN"
echo "Listmaster..........................: $SYMPA_LISTMASTER"
echo "URL for web interface...............: $SYMPA_WEB_URL"
echo "SctiptAlias Directory...............: $_wwsympa_dir"
echo ""
echo "Database management system......: $SYMPA_DB_TYPE"
echo "Database host...................: $SYMPA_DB_HOST"
echo "Database port...................: $SYMPA_DB_PORT"
echo "Database name...................: $SYMPA_DB_NAME"
echo "Database user...................: $SYMPA_DB_USER"
echo "Database password...............: $SYMPA_DB_PASSWD"
echo "Database management system..........: $SYMPA_DB_TYPE"
echo "Database host.......................: $SYMPA_DB_HOST"
echo "Database port.......................: $SYMPA_DB_PORT"
echo "Database name.......................: $SYMPA_DB_NAME"
echo "Database user.......................: $SYMPA_DB_USER"
echo "Database password...................: $SYMPA_DB_PASSWD"
echo ""
fi
echo "Start at boot time..............: $START_AT_BOOTTIME"
echo "Start at boot time..................: $START_AT_BOOTTIME"
echo ""
echo "Directory for init scripts......: $SYMPA_INIT_DIR"
echo "Directory for init scripts..........: $SYMPA_INIT_DIR"
echo ""
echo "Use systemd.....................: $SYSTEMD_SUPPORTED"
echo "Use systemd.........................: $SYSTEMD_SUPPORTED"
if $SYSTEMD_SUPPORTED ; then
echo "Directory Systemd unit files....: $SYMPA_SYSTEMD_DIR"
echo "Directory Systemd unit files........: $SYMPA_SYSTEMD_DIR"
fi
echo ""
echo "IPv4 Address....................: $IPv4"
echo "IPv6 Address....................: $IPv6"
echo "IPv4 Address........................: $IPv4"
echo "IPv6 Address........................: $IPv6"
echo ""
echo "Apache User.....................: $HTTPD_USER"
echo "Apache User.........................: $HTTPD_USER"
if ! $UPDATE_SYMPA ; then
echo "Apache VHost directory..........: $apache_vhost_dir"
echo "Apache Log Directory............: $apache_log_dir"
echo "Apache VHost directory..............: $apache_vhost_dir"
echo "Apache Log Directory................: $apache_log_dir"
echo ""
echo "Postfix Configuration Directory.: $POSTFIX_CONF_DIR"
echo "Postfix Configuration Directory.....: $POSTFIX_CONF_DIR"
fi
if $UPDATE_SYMPA ; then
echo ""
echo -e "-- \033[34m\033[1mSome determined defines of the installed Sympa System\033[m --"
echo ""
echo " Apache VHost directory..........: $apache_vhost_dir"
echo " Apache Log Directory............: $apache_log_dir"
echo " Apache VHost directory..............: $apache_vhost_dir"
echo " Apache Log Directory................: $apache_log_dir"
echo ""
echo " (default) domain..................: $SYMPA_DOMAIN"
echo " Listmaster........................: $SYMPA_LISTMASTER"
echo " URL for web interface.............: $SYMPA_WEB_URL"
echo " SctiptAlias Directory.............: $_wwsympa_dir"
echo " (default) domain......................: $SYMPA_DOMAIN"
echo " Listmaster............................: $SYMPA_LISTMASTER"
echo " URL for web interface.................: $SYMPA_WEB_URL"
echo " SctiptAlias Directory.................: $_wwsympa_dir"
echo ""
echo " Database management system........: $SYMPA_DB_TYPE"
echo " Database host.....................: $SYMPA_DB_HOST"
echo " Database port.....................: $SYMPA_DB_PORT"
echo " Database name.....................: $SYMPA_DB_NAME"
echo " Database user.....................: $SYMPA_DB_USER"
echo " Database password.................: $SYMPA_DB_PASSWD"
echo " Database management system............: $SYMPA_DB_TYPE"
echo " Database host.........................: $SYMPA_DB_HOST"
echo " Database port.........................: $SYMPA_DB_PORT"
echo " Database name.........................: $SYMPA_DB_NAME"
echo " Database user.........................: $SYMPA_DB_USER"
echo " Database password.....................: $SYMPA_DB_PASSWD"
echo ""
fi
echo ""
@ -1478,6 +1521,12 @@ echo "## - Sympa's list archive symlink......: $SYMPA_LIST_ARC_SYMLINK" >> $_log
echo "## -" >> $_log_file
echo "## - Sympa's aliases file..............: $SYMPA_ALIAS_FILE" >> $_log_file
echo "## -" >> $_log_file
if $APPLY_LOG_NO_USER_IP ; then
echo "## - Patch to prevent logging user IPs.: Yes" >> $_log_file
else
echo "## - Patch to prevent logging user IPs..: No" >> $_log_file
fi
echo "## -" >> $_log_file
if ! $UPDATE_SYMPA ; then
echo "## -" >> $_log_file
echo "## - (default) domain..................: $SYMPA_DOMAIN" >> $_log_file
@ -1574,6 +1623,8 @@ echo "SYMPA_LIST_ARC_SYMLINK=$SYMPA_LIST_ARC_SYMLINK" >> $_log_file
echo "" >> $_log_file
echo "SYMPA_ALIAS_FILE=$SYMPA_ALIAS_FILE" >> $_log_file
echo "" >> $_log_file
echo "APPLY_LOG_NO_USER_IP=$APPLY_LOG_NO_USER_IP" >> $_log_file
echo "" >> $_log_file
echo "SYMPA_DOMAIN=$SYMPA_DOMAIN" >> $_log_file
echo "SYMPA_LISTMASTER=$SYMPA_LISTMASTER" >> $_log_file
echo "SYMPA_WEB_URL=$SYMPA_WEB_URL" >> $_log_file
@ -2333,8 +2384,8 @@ else
echononl "\tBackup current data base directory ($CURRENT_SYMPA_LIST_DATA_BASE_PATH).."
echo "## - Backup current data base directory ($CURRENT_SYMPA_LIST_DATA_BASE_PATH).." >> $_log_file
echo "## -" >> $_log_file
echo "cp -a \"${CURRENT_SYMPA_LIST_DATA_BASE_PATH}\" \"${CURRENT_SYMPA_LIST_DATA_BASE_PATH}.$backup_date\"" >> $_log_file
cp -a "${CURRENT_SYMPA_LIST_DATA_BASE_PATH}" "${CURRENT_SYMPA_LIST_DATA_BASE_PATH}.$backup_date" >> $_log_file 2>&1
echo "cp -al \"${CURRENT_SYMPA_LIST_DATA_BASE_PATH}\" \"${CURRENT_SYMPA_LIST_DATA_BASE_PATH}.$backup_date\"" >> $_log_file
cp -al "${CURRENT_SYMPA_LIST_DATA_BASE_PATH}" "${CURRENT_SYMPA_LIST_DATA_BASE_PATH}.$backup_date" >> $_log_file 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
@ -2616,6 +2667,37 @@ else
See '${_log_file}' for further informations."
fi
## - Patch to prevent logging user IPs
## -
echononl "\tApply Patch to prevent from logging user IPs .."
if $APPLY_LOG_NO_USER_IP ; then
echo "" >> $_log_file
echo "## - Apply Patch to prevent from logging user IPs .." >> $_log_file
echo "## -" >> $_log_file
echo "patch -d $_builddir -p1 < $PATCH_FILE_NO_LOG_USER_IP" >> $_log_file
patch -d $_builddir -p1 < $PATCH_FILE_NO_LOG_USER_IP >> $_log_file 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
error "Cannot apply patchfile '$PATCH_FILE_NO_LOG_USER_IP'..\n
See '${_log_file}' for further informations."
echo ""
echononl "continue anyway [yes/no]: "
read OK
OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')"
while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do
echononl "Wrong entry! - repeat [yes/no]: "
read OK
done
echo ""
fi
else
echo_skipped
fi
## - Configure sympa
## -