Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Check and switch existing logging mode #104

Merged
merged 4 commits into from Oct 10, 2017
Merged
Changes from 1 commit
Commits
File filter...
Filter file types
Jump to…
Jump to file
Failed to load files.

Always

Just for now

Next

Check and switch existing logging mode

  • Loading branch information
Ubuntu
Ubuntu committed Sep 18, 2017
commit 3c2e7d82b6d2574889a26dc70bfe40be3cbefae7
@@ -40,6 +40,9 @@ MIN_RSYSLOG_VERSION=5.8.0
#this variable will hold the users syslog version
RSYSLOG_VERSION=

#this variable will hold the existing syslog port of 22-loggly.conf
EXISTING_SYSLOG_PORT=

#this variable will hold the host name
HOST_NAME=
#this variable will hold the name of the linux distribution
@@ -659,8 +662,8 @@ fi
#write the contents to 22-loggly.conf file
writeContents()
{
checkIfTLS
confString
checkScriptRunningMode
installTLSDependencies
switchToInsecureModeIfTLSNotFound
WRITE_SCRIPT_CONTENTS="false"
@@ -924,33 +927,82 @@ getPassword()
echo
}

#Change TLS settings
checkIfTLS()
#function to switch system logging to insecure mode if user runs the modular script in insecure mode
switchSystemLoggingToInsecure()
{
if [[ $LOGGLY_SYSLOG_PORT == 514 ]]; then

if [ "$SUPPRESS_PROMPT" == "false" ]; then
while true;
do
read -p "Hey you are going to setup system logs in insecure mode. Do you want to overwrite this with secure mode? (yes/no)" yn
case $yn in
[Yy]* )
logMsgToConfigSysLog "INFO" "INFO: Going to overwrite the conf file: $LOGGLY_RSYSLOG_CONFFILE with secure configuration";
LOGGLY_TLS_SENDING="true"
LOGGLY_SYSLOG_PORT=6514
break;;
[Nn]* )
break;;
* ) echo "Please answer yes or no.";;
esac
done
else
logMsgToConfigSysLog "WARN" "WARN: Your system logs are being send insecurely. We prefer to send system logs securely so switching to secure configuration."
LOGGLY_TLS_SENDING="true"
LOGGLY_SYSLOG_PORT=6514

fi
fi
if [ -f $LOGGLY_RSYSLOG_CONFFILE ]; then
if [[ $RSYSLOG_VERSION_TMP -le "7" ]]; then
EXISTING_SYSLOG_PORT=$(grep 6514 $LOGGLY_RSYSLOG_CONFFILE | awk {'print $2'} | cut -d':' -f2 | cut -d';' -f1)
elif [[ "$RSYSLOG_VERSION_TMP" -ge "8" ]]; then

This comment has been minimized.

@mostlyjason

mostlyjason Sep 18, 2017
Contributor

I'm not sure you should switch this off the version number, since the newer versions are also compatible with the legacy syntax

This comment has been minimized.

@Shwetajain148

Shwetajain148 Sep 19, 2017
Author Contributor

@mostlyjason Actually the TLS configuration for rsyslog version less than 7 and greater than 8 is different and since I need to grep the port 6514 from the TLS configuration of 22-loggly.conf file, I had to use two grep commands to grep port 6514 from different places in both the configurations.

TLS configuration for rsyslog version less than 7 can be see here- https://github.com/loggly/install-script/blob/master/Linux%20Script/configure-linux.sh#L521-L546

TLS configuration for rsyslog version greater than 8 can be see here- https://github.com/loggly/install-script/blob/master/Linux%20Script/configure-linux.sh#L549-L569

That is why I used two different commands to grep the 6514 port based on rsyslog versions.

Also, the NON-TLS configuration is same for any rsyslog version so I used only one grep command to pick the port 514 from 22-loggly.conf file.

EXISTING_SYSLOG_PORT=$(grep 6514 $LOGGLY_RSYSLOG_CONFFILE | awk {'print $4'} | cut -d'"' -f2)
fi
if [[ $EXISTING_SYSLOG_PORT == 6514 ]]; then
if [ "$SUPPRESS_PROMPT" == "false" ]; then
while true;
do
read -p "You are running the script using insecure mode, but your system logs are using secure mode. The script only supports a single mode for both, so would you like to switch your system logs to insecure mode? (yes/no)" yn
case $yn in
[Yy]* )
logMsgToConfigSysLog "INFO" "INFO: Going to overwrite the conf file: $LOGGLY_RSYSLOG_CONFFILE with insecure configuration";
LOGGLY_TLS_SENDING="false"

This comment has been minimized.

@mchaudhary

mchaudhary Oct 10, 2017
Contributor

Please fix the indentation for the next PR. @Shweta-jain please create JIRA for it.

LOGGLY_SYSLOG_PORT=514
break;;
[Nn]* )
logMsgToConfigSysLog "INFO" "INFO: Please re-run the script in secure mode if you want to setup secure logging"
exit 1;;
* ) echo "Please answer yes or no.";;
esac
done
else
logMsgToConfigSysLog "WARN" "WARNING: You are running the script using insecure mode, but your system logs are using secure mode. The script only supports a single mode for both, so we are switching the system logs to insecure mode as well."
LOGGLY_TLS_SENDING="false"
LOGGLY_SYSLOG_PORT=514
fi
fi
fi
}

#function to switch system logging to secure mode if user runs the modular script in secure mode
switchSystemLoggingToSecure()
{
if [ -f $LOGGLY_RSYSLOG_CONFFILE ]; then
EXISTING_SYSLOG_PORT=$(grep 514 $LOGGLY_RSYSLOG_CONFFILE | awk {'print $2'} | cut -d':' -f2 | cut -d';' -f1)
if [[ $EXISTING_SYSLOG_PORT == 514 ]]; then
if [ "$SUPPRESS_PROMPT" == "false" ]; then
while true;
do
read -p "You are running the script using secure mode, but your system logs are using insecure mode. The script only supports a single mode for both, so would you like to switch your system logs to secure mode? (yes/no)" yn
case $yn in
[Yy]* )
logMsgToConfigSysLog "INFO" "INFO: Going to overwrite the conf file: $LOGGLY_RSYSLOG_CONFFILE with secure configuration";
LOGGLY_TLS_SENDING="true"
LOGGLY_SYSLOG_PORT=6514
break;;
[Nn]* )
logMsgToConfigSysLog "INFO" "INFO: Please re-run the script in insecure mode if you want to setup insecure logging"
exit 1;;
* ) echo "Please answer yes or no.";;
esac
done
else
logMsgToConfigSysLog "WARN" "WARNING: You are running the script using secure mode, but your system logs are using insecure mode. The script only supports a single mode for both, so we are switching the system logs to secure mode as well."
LOGGLY_TLS_SENDING="true"
LOGGLY_SYSLOG_PORT=6514
fi
fi
fi
}

#check whether the user is running the script in secure or insecure mode and then switch system logging accordingly.
checkScriptRunningMode()
{
if [ "$FORCE_SECURE" == "false" ]; then
if [[ $LOGGLY_SYSLOG_PORT == 514 ]]; then
switchSystemLoggingToInsecure
else
switchSystemLoggingToSecure
fi
fi
}

#display usage syntax
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.