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

switch-to-insecure-mode-if-tlsdownload-fails #97

Merged
merged 8 commits into from Jul 20, 2017
Next

switch-to-insecure-mode-if-tlsdownload-fails

  • Loading branch information
root
root committed Jun 14, 2017
commit 8822c1b94189022a38bfbf6720f9ebf02ef70946
@@ -102,7 +102,7 @@ checkLinuxLogglyCompatibility()
checkIfUserHasRootPrivileges

#check if the OS is supported by the script. If no, then exit
checkIfSupportedOS
checkIfSupportedOS

This comment has been minimized.

@mostlyjason

mostlyjason Jun 14, 2017
Contributor

Did you change the spacing here?


#check if package-manager is installed
checkIfPackageManagerIsInstalled
@@ -215,15 +215,11 @@ checkIfUserHasRootPrivileges()
checkIfPackageManagerIsInstalled()
{
if [ -x "$(command -v apt-get)" ]; then

PKG_MGR="apt-get"

else
if [ -x "$(command -v yum)" ]; then

if [ -x "$(command -v yum)" ]; then
PKG_MGR="yum"
fi

fi
}

@@ -238,7 +234,7 @@ checkIfSupportedOS()
*"ubuntu"* )
echo "INFO: Operating system is Ubuntu."
;;
*"redhat"* )
*"red"* )
echo "INFO: Operating system is Red Hat."
;;
*"centos"* )
@@ -582,32 +578,71 @@ elif [ "$RSYSLOG_VERSION_TMP" -ge "8" ]; then
inputStrTls=$inputStr_TLS_RSYS_8
fi
inputStr=$inputStr_NO_TLS
}

#install the certificate and check if gnutls package is installed
installTLSDependencies()
{
if [ $LOGGLY_TLS_SENDING == "true" ]; then
downloadTlsCerts

/bin/bash -c "sudo $PKG_MGR install rsyslog-gnutls"
if [ "$SUPPRESS_PROMPT" == "true" ]; then
/bin/bash -c "sudo $PKG_MGR install -y rsyslog-gnutls"
else
/bin/bash -c "sudo $PKG_MGR install rsyslog-gnutls"
fi

if [ "$PKG_MGR" == "yum" ]; then

if [ $(rpm -qa | grep -c "rsyslog-gnutls") -eq 0 ]; then
logMsgToConfigSysLog "ERROR" "ERROR: The rsyslog-gnutls package could not be installed automatically. Please install it and then run the script again. Manual instructions to configure rsyslog are available at https://www.loggly.com/docs/rsyslog-tls-configuration/. Rsyslog troubleshooting instructions are available at https://www.loggly.com/docs/troubleshooting-rsyslog/."
exit 1
exit 1
fi


elif [ "$PKG_MGR" == "apt-get" ]; then
elif [ "$PKG_MGR" == "apt-get" ]; then

if [ $(dpkg-query -W -f='${Status}' rsyslog-gnutls 2>/dev/null | grep -c "ok installed") -eq 0 ]; then
logMsgToConfigSysLog "ERROR" "ERROR: The rsyslog-gnutls package could not be installed automatically. Please install it and then run the script again. Manual instructions to configure rsyslog are available at https://www.loggly.com/docs/rsyslog-tls-configuration/. Rsyslog troubleshooting instructions are available at https://www.loggly.com/docs/troubleshooting-rsyslog/."
logMsgToConfigSysLog "ERROR" "ERROR: The rsyslog-gnutls package could not be installed automatically. Please install it and then run the script again. Manual instructions to configure rsyslog are available at https://www.loggly.com/docs/rsyslog-tls-configuration/. Rsyslog troubleshooting instructions are available at https://www.loggly.com/docs/troubleshooting-rsyslog/."
exit 1
fi

else
fi
elif [ "$FORCE_SECURE" == "true" ]; then

logMsgToConfigSysLog "WARN" "WARN: The rsyslog-gnutls package could not be download automatically because your package manager could not be found. Please install it and restart the rsyslog service to send logs to Loggly."
else
DEPENDENCIES_INSTALLED="false";
fi
inputStr=$inputStrTls
fi
}

logMsgToConfigSysLog "WARN" "WARN: The rsyslog-gnutls package could not be download automatically because your package manager couldn't be found. Please download it manually for your distribution and then run the script again."

fi
inputStr=$inputStrTls
#prompt users if they want to switch to insecure mode on gnutls-package download failure
switchToInsecureModeIfTLSNotFound()
{
if [ "$DEPENDENCIES_INSTALLED" == "false" ]; then

if [ "$SUPPRESS_PROMPT" == "false" ]; then

logMsgToConfigSysLog "WARN" "WARN: The rsyslog-gnutls package could not be download automatically because your package manager could not be found."

while true;
do
read -p "Do you wish to continue with insecure mode? (yes/no)" yn
case $yn in
[Yy]* )
logMsgToConfigSysLog "INFO" "INFO: Going to overwrite the conf file: $LOGGLY_RSYSLOG_CONFFILE with insecure configuration";

This comment has been minimized.

@mostlyjason

mostlyjason Jun 14, 2017
Contributor

Does it display this if they are installing for the first time?

This comment has been minimized.

@Shwetajain148

Shwetajain148 Jun 15, 2017
Author Contributor

@mostlyjason This code will be executed whenever rsyslog-gnutls package couldn't be download or package manager is not found in the system. It will prompt the user to switch to insecure mode. For example, if I am in SUSE environment where the package manager is different from yum and apt-get so the rsyslog-gnutls package will not be downloaded. In that case, the script will prompt the user to switch to insecure mode.

LOGGLY_SYSLOG_PORT=514
break;;
[Nn]* )
break;;
* ) echo "Please answer yes or no.";;
esac
done
else
logMsgToConfigSysLog "WARN" "WARN: The rsyslog-gnutls package could not be download automatically because your package manager could not be found, continuing with insecure mode."
LOGGLY_SYSLOG_PORT=514
fi
confString
fi
}

@@ -616,6 +651,8 @@ writeContents()
{
checkIfTLS
confString
installTLSDependencies
switchToInsecureModeIfTLSNotFound
WRITE_SCRIPT_CONTENTS="false"

if [ -f "$LOGGLY_RSYSLOG_CONFFILE" ]; then
@@ -949,6 +986,11 @@ if [ "$1" != "being-invoked" ]; then
LOGGLY_TLS_SENDING="false"
LOGGLY_SYSLOG_PORT=514
;;
--force-secure )
FORCE_SECURE="true"
LOGGLY_TLS_SENDING="true"
LOGGLY_SYSLOG_PORT=6514
;;
-h | --help)
usage
exit
@@ -978,6 +1020,3 @@ fi
########## Get Inputs from User - End ########## -------------------------------------------------------
# End of Syslog Logging Directives for Loggly
#



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