mirror of
https://github.com/rsyslog/rsyslog.git
synced 2025-12-17 05:50:41 +01:00
This adds a test to ensure that a client without certificate can connect to a server with certificates. So it is not exactly "certless". The prime intent of this test is to match config suggestions given by log hosting companies (like loggly) and so ensure that we do not accidently break them. This is espcially important as the capability for certless clients was not properly documented and also become forgotten by the rsyslog team. see also https://github.com/rsyslog/rsyslog/issues/3413
62 lines
1.9 KiB
Bash
Executable File
62 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
# all we want to test is if certless communication works. So we do
|
|
# not need to send many messages.
|
|
# This file is part of the rsyslog project, released under ASL 2.0
|
|
. ${srcdir:=.}/diag.sh init
|
|
export NUMMESSAGES=5000
|
|
# uncomment for debugging support:
|
|
#export RSYSLOG_DEBUG="debug nostdout noprintmutexaction"
|
|
export RSYSLOG_DEBUGLOG="log"
|
|
generate_conf
|
|
# receiver
|
|
export PORT_RCVR="$(get_free_port)"
|
|
add_conf '
|
|
global( defaultNetstreamDriverCAFile="'$srcdir/tls-certs/ca.pem'"
|
|
defaultNetstreamDriverCertFile="'$srcdir/tls-certs/cert.pem'"
|
|
defaultNetstreamDriverKeyFile="'$srcdir/tls-certs/key.pem'"
|
|
defaultNetstreamDriver="gtls"
|
|
)
|
|
|
|
module( load="../plugins/imtcp/.libs/imtcp"
|
|
StreamDriver.Name="gtls"
|
|
StreamDriver.Mode="1"
|
|
StreamDriver.AuthMode="anon" )
|
|
# then SENDER sends to this port (not tcpflood!)
|
|
input( type="imtcp" port="'$PORT_RCVR'" )
|
|
|
|
$template outfmt,"%msg:F,58:2%\n"
|
|
:msg, contains, "msgnum:" action(type="omfile" file="'$RSYSLOG_OUT_LOG'" template="outfmt")
|
|
'
|
|
startup
|
|
|
|
# sender
|
|
export RSYSLOG_DEBUGLOG="log2"
|
|
#valgrind="valgrind"
|
|
generate_conf 2
|
|
#export TCPFLOOD_PORT="$(get_free_port)"
|
|
add_conf '
|
|
global(defaultNetstreamDriverCAFile="'$srcdir/tls-certs/ca.pem'")
|
|
|
|
# Note: no TLS for the listener, this is for tcpflood!
|
|
$ModLoad ../plugins/imtcp/.libs/imtcp
|
|
input( type="imtcp" port="'$TCPFLOOD_PORT'" )
|
|
|
|
action( type="omfwd" protocol="tcp" target="127.0.0.1" port="'$PORT_RCVR'"
|
|
StreamDriver="gtls" StreamDriverMode="1" StreamDriverAuthMode="anon")
|
|
' 2
|
|
startup 2
|
|
|
|
# now inject the messages into instance 2. It will connect to instance 1,
|
|
# and that instance will record the data.
|
|
tcpflood -m$NUMMESSAGES -i1
|
|
wait_file_lines
|
|
# shut down sender when everything is sent, receiver continues to run concurrently
|
|
shutdown_when_empty 2
|
|
wait_shutdown 2
|
|
# now it is time to stop the receiver as well
|
|
shutdown_when_empty
|
|
wait_shutdown
|
|
|
|
seq_check 1 $NUMMESSAGES
|
|
exit_test
|