|
|
ed1062e |
#!/bin/bash
|
|
|
ed1062e |
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
|
|
|
ed1062e |
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
ed1062e |
#
|
|
|
ed1062e |
# runtest.sh of /CoreOS/lftp/Sanity/tls12
|
|
|
ed1062e |
# Description: Test TLS 1.2 support
|
|
|
ed1062e |
# Author: Martin Frodl <mfrodl@redhat.com>
|
|
|
ed1062e |
#
|
|
|
ed1062e |
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
ed1062e |
#
|
|
|
ed1062e |
# Copyright (c) 2016 Red Hat, Inc.
|
|
|
ed1062e |
#
|
|
|
ed1062e |
# This program is free software: you can redistribute it and/or
|
|
|
ed1062e |
# modify it under the terms of the GNU General Public License as
|
|
|
ed1062e |
# published by the Free Software Foundation, either version 2 of
|
|
|
ed1062e |
# the License, or (at your option) any later version.
|
|
|
ed1062e |
#
|
|
|
ed1062e |
# This program is distributed in the hope that it will be
|
|
|
ed1062e |
# useful, but WITHOUT ANY WARRANTY; without even the implied
|
|
|
ed1062e |
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
|
ed1062e |
# PURPOSE. See the GNU General Public License for more details.
|
|
|
ed1062e |
#
|
|
|
ed1062e |
# You should have received a copy of the GNU General Public License
|
|
|
ed1062e |
# along with this program. If not, see http://www.gnu.org/licenses/.
|
|
|
ed1062e |
#
|
|
|
ed1062e |
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
ed1062e |
|
|
|
ed1062e |
# Include Beaker environment
|
|
|
ed1062e |
. /usr/share/beakerlib/beakerlib.sh || exit 1
|
|
|
ed1062e |
|
|
|
ed1062e |
PACKAGES="lftp"
|
|
|
ed1062e |
|
|
|
ed1062e |
rlJournalStart
|
|
|
ed1062e |
rlPhaseStartSetup
|
|
|
9b1f083 |
rlRun "rlImport distribution/epel" || rlDie
|
|
|
9b1f083 |
rlRun "rlImport openssl/certgen" || rlDie
|
|
|
ed1062e |
rlAssertRpm --all
|
|
|
ed1062e |
|
|
|
ed1062e |
if rlIsRHEL; then
|
|
|
ed1062e |
if rlIsRHEL '<=7'; then
|
|
|
ed1062e |
rlRun "yum -y --enablerepo epel --enablerepo epel-testing install proftpd" 0 "Install proftpd"
|
|
|
ed1062e |
else
|
|
|
ed1062e |
rlRun "yum -y --enablerepo epel --enablerepo epel-playground install proftpd" 0 "Install proftpd"
|
|
|
ed1062e |
fi
|
|
|
ed1062e |
fi
|
|
|
ed1062e |
|
|
|
ed1062e |
CONF="/etc/proftpd.conf"
|
|
|
ed1062e |
rlFileBackup ${CONF}
|
|
|
ed1062e |
rlRun "cp proftpd.conf ${CONF}" 0 "Configuring FTP server"
|
|
|
ed1062e |
|
|
|
ed1062e |
SYSCONF="/etc/sysconfig/proftpd"
|
|
|
ed1062e |
rlFileBackup ${SYSCONF}
|
|
|
ed1062e |
rlRun "echo 'PROFTPD_OPTIONS=\"-DANONYMOUS_FTP -DTLS\"' > ${SYSCONF}" 0 "Enabling anonymous access over TLS"
|
|
|
ed1062e |
|
|
|
ed1062e |
rlRun "rlFileBackup --clean /var/ftp" 0 "Backing up FTP server contents"
|
|
|
ed1062e |
rlRun "echo 'Quack!' > /var/ftp/duck" 0 "Creating a test file on FTP server"
|
|
|
ed1062e |
|
|
|
ed1062e |
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
|
|
|
ed1062e |
rlRun "cp fetch ${TmpDir}" 0 "Copying lftp script to tmp directory"
|
|
|
ed1062e |
rlRun "pushd ${TmpDir}"
|
|
|
ed1062e |
|
|
|
ed1062e |
rlRun "x509KeyGen server" 0 "Generating server key pair"
|
|
|
ed1062e |
rlRun "x509KeyGen ca" 0 "Generating CA certificate"
|
|
|
ed1062e |
rlRun "x509SelfSign ca" 0 "Self-signing CA certificate"
|
|
|
ed1062e |
rlRun "x509CertSign --CA ca server" 0 "Signing server certificate"
|
|
|
ed1062e |
|
|
|
ed1062e |
rlFileBackup --clean /etc/pki
|
|
|
ed1062e |
rlRun "cat $(x509Cert ca) >> /etc/pki/tls/certs/ca-bundle.crt"
|
|
|
ed1062e |
rlRun "cp $(x509Cert server) /etc/pki/tls/certs/localhost.crt"
|
|
|
ed1062e |
rlRun "cp $(x509Key server) /etc/pki/tls/private/localhost.key"
|
|
|
ed1062e |
|
|
|
ed1062e |
rlRun "rlServiceStart proftpd" 0 "Starting FTP server"
|
|
|
ed1062e |
rlPhaseEnd
|
|
|
ed1062e |
|
|
|
ed1062e |
rlPhaseStartTest
|
|
|
ed1062e |
rlRun -s "curl -v --ftp-ssl ftp://localhost/duck" 0 "Checking that FTP server is up and working properly"
|
|
|
ed1062e |
rlAssertGrep 'Quack!' ${rlRun_LOG}
|
|
|
ed1062e |
|
|
|
ed1062e |
rlRun -s "lftp -d -f ./fetch" 0 "Downloading test file with lftp"
|
|
|
ed1062e |
rlAssertNotGrep 'A TLS packet with unexpected length was received' ${rlRun_LOG}
|
|
|
ed1062e |
rlAssertExists "duck"
|
|
|
ed1062e |
rlAssertGrep 'Quack!' "duck"
|
|
|
ed1062e |
rlPhaseEnd
|
|
|
ed1062e |
|
|
|
ed1062e |
rlPhaseStartCleanup
|
|
|
ed1062e |
rlRun "rlServiceStop proftpd" 0 "Stopping FTP server"
|
|
|
ed1062e |
rlRun "x509RmAlias server"
|
|
|
ed1062e |
rlRun "x509RmAlias ca"
|
|
|
ed1062e |
rlRun "popd"
|
|
|
ed1062e |
rlRun "rm -r ${TmpDir}" 0 "Removing tmp directory"
|
|
|
ed1062e |
rlFileRestore
|
|
|
ed1062e |
rlPhaseEnd
|
|
|
ed1062e |
rlJournalPrintText
|
|
|
ed1062e |
rlJournalEnd
|