mirror of
https://gitlab.com/openconnect/ocserv.git
synced 2026-10-12 01:26:48 +08:00
full-test, unix-test: modified to operate in Fedora as well
That also enables a check for ping in the IPv6 address.
This commit is contained in:
+1
-1
@@ -3,7 +3,7 @@ EXTRA_DIST = ca-key.pem ca.pem common.sh server-cert.pem server-key.pem test1.co
|
|||||||
user-config/test user-config-opt/test test-pass-script.config test-multi-cookie.config test-pam.config \
|
user-config/test user-config-opt/test test-pass-script.config test-multi-cookie.config test-pam.config \
|
||||||
test-stress.config user-cert-wrong.pem connect-script test-group.passwd \
|
test-stress.config user-cert-wrong.pem connect-script test-group.passwd \
|
||||||
test-group-pass.config user-group-cert.pem user-group-key.pem test-user-group-cert.config \
|
test-group-pass.config user-group-cert.pem user-group-key.pem test-user-group-cert.config \
|
||||||
test-user-group-cert-no-pass.config
|
test-user-group-cert-no-pass.config docker-common.sh
|
||||||
|
|
||||||
SUBDIRS = docker-ocserv
|
SUBDIRS = docker-ocserv
|
||||||
|
|
||||||
|
|||||||
Executable
+74
@@ -0,0 +1,74 @@
|
|||||||
|
if test -x /usr/bin/docker;then
|
||||||
|
DOCKER=/usr/bin/docker
|
||||||
|
else
|
||||||
|
DOCKER=/usr/bin/docker.io
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! test -x $DOCKER;then
|
||||||
|
echo "The docker program is needed to perform this test"
|
||||||
|
exit 77
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -f /etc/debian_version;then
|
||||||
|
DEBIAN=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -f /etc/fedora-release;then
|
||||||
|
FEDORA=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -z $FEDORA && test -z $DEBIAN;then
|
||||||
|
echo "******************************************************"
|
||||||
|
echo "This test requires compiling ocserv in a Debian or Fedora systems"
|
||||||
|
echo "******************************************************"
|
||||||
|
exit 77
|
||||||
|
fi
|
||||||
|
|
||||||
|
lockfile docker.lock
|
||||||
|
if test "$UNIX" = 1;then
|
||||||
|
$DOCKER stop test_unix >/dev/null 2>&1
|
||||||
|
$DOCKER rm test_unix >/dev/null 2>&1
|
||||||
|
else
|
||||||
|
$DOCKER stop test_ocserv >/dev/null 2>&1
|
||||||
|
$DOCKER rm test_ocserv >/dev/null 2>&1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$FEDORA" = 1;then
|
||||||
|
echo "Using the fedora image"
|
||||||
|
$DOCKER pull fedora:21
|
||||||
|
if test $? != 0;then
|
||||||
|
echo "Cannot pull docker image"
|
||||||
|
rm -f docker.lock
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if test "$UNIX" = 1;then
|
||||||
|
cp docker-ocserv/Dockerfile-fedora-unix docker-ocserv/Dockerfile
|
||||||
|
else
|
||||||
|
cp docker-ocserv/Dockerfile-fedora-tcp docker-ocserv/Dockerfile
|
||||||
|
fi
|
||||||
|
else #DEBIAN
|
||||||
|
echo "Using the Debian image"
|
||||||
|
$DOCKER pull debian:jessie
|
||||||
|
if test $? != 0;then
|
||||||
|
echo "Cannot pull docker image"
|
||||||
|
rm -f docker.lock
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if test "$UNIX" = 1;then
|
||||||
|
cp docker-ocserv/Dockerfile-debian-unix docker-ocserv/Dockerfile
|
||||||
|
else
|
||||||
|
cp docker-ocserv/Dockerfile-debian-tcp docker-ocserv/Dockerfile
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
cp ../src/ocserv ../src/ocpasswd ../src/occtl docker-ocserv/
|
||||||
|
|
||||||
|
echo "Creating image $IMAGE"
|
||||||
|
$DOCKER build -t $IMAGE docker-ocserv/
|
||||||
|
if test $? != 0;then
|
||||||
|
echo "Cannot build docker image"
|
||||||
|
rm -f docker.lock
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f docker.lock
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
FROM tianon/debian:jessie
|
FROM debian:jessie
|
||||||
|
|
||||||
RUN apt-get update;sleep 3
|
RUN apt-get update;sleep 3
|
||||||
RUN apt-get install -y libgnutls-deb0-28
|
RUN apt-get install -y libgnutls-deb0-28
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
FROM tianon/debian:jessie
|
FROM debian:jessie
|
||||||
|
|
||||||
RUN apt-get update
|
RUN apt-get update
|
||||||
RUN apt-get install -y haproxy
|
RUN apt-get install -y haproxy
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
FROM fedora:21
|
||||||
|
|
||||||
|
RUN yum install -y gnutls gnutls-utils protobuf-c iproute pcllib http-parser tcp_wrappers pam systemd libseccomp
|
||||||
|
RUN yum install -y bash openssh-server nuttcp
|
||||||
|
RUN yum install -y libnl3 libtalloc
|
||||||
|
RUN systemctl enable sshd
|
||||||
|
RUN sed 's/PermitRootLogin without-password/PermitRootLogin yes/g' -i /etc/ssh/sshd_config
|
||||||
|
|
||||||
|
RUN echo 'root:root' |chpasswd
|
||||||
|
RUN useradd -m -d /home/admin -s /bin/bash admin
|
||||||
|
RUN echo 'admin:admin' |chpasswd
|
||||||
|
EXPOSE 5000
|
||||||
|
EXPOSE 5000/udp
|
||||||
|
EXPOSE 5001
|
||||||
|
EXPOSE 5001/udp
|
||||||
|
EXPOSE 5551
|
||||||
|
EXPOSE 5551/udp
|
||||||
|
EXPOSE 22
|
||||||
|
|
||||||
|
RUN mkdir /etc/ocserv
|
||||||
|
|
||||||
|
|
||||||
|
ADD key.pem /etc/ocserv/
|
||||||
|
ADD cert.pem /etc/ocserv/
|
||||||
|
ADD ocserv.conf /etc/ocserv/
|
||||||
|
ADD passwd /etc/ocserv/
|
||||||
|
ADD ocserv /usr/sbin/
|
||||||
|
ADD ocpasswd /usr/bin/
|
||||||
|
ADD occtl /usr/bin/
|
||||||
|
ADD myscript /usr/bin/
|
||||||
|
# It's not possible to use mknod inside a container with the default LXC
|
||||||
|
# template, so we untar it from this archive.
|
||||||
|
ADD dev-tun.tgz /dev/
|
||||||
|
|
||||||
|
CMD nuttcp -S;sshd-keygen;/usr/sbin/sshd;mkdir -p /tmp/disconnect/;usr/sbin/ocserv -d 1 -f;sleep 3600
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
FROM fedora:21
|
||||||
|
|
||||||
|
RUN yum install -y gnutls gnutls-utils protobuf-c iproute pcllib http-parser tcp_wrappers pam systemd libseccomp
|
||||||
|
RUN yum install -y bash openssh-server nuttcp
|
||||||
|
RUN systemctl enable sshd
|
||||||
|
RUN yum install -y libnl3 libtalloc
|
||||||
|
RUN sed 's/PermitRootLogin without-password/PermitRootLogin yes/g' -i /etc/ssh/sshd_config
|
||||||
|
|
||||||
|
RUN echo 'root:root' |chpasswd
|
||||||
|
RUN useradd -m -d /home/admin -s /bin/bash admin
|
||||||
|
RUN echo 'admin:admin' |chpasswd
|
||||||
|
EXPOSE 6000
|
||||||
|
EXPOSE 6000/udp
|
||||||
|
EXPOSE 6001
|
||||||
|
EXPOSE 6001/udp
|
||||||
|
EXPOSE 6551
|
||||||
|
EXPOSE 6551/udp
|
||||||
|
EXPOSE 22
|
||||||
|
|
||||||
|
RUN mkdir /etc/ocserv
|
||||||
|
|
||||||
|
|
||||||
|
ADD key.pem /etc/ocserv/
|
||||||
|
ADD cert.pem /etc/ocserv/
|
||||||
|
ADD combo.pem /etc/ocserv/
|
||||||
|
ADD haproxy.cfg /etc/haproxy/
|
||||||
|
ADD ocserv-unix.conf /etc/ocserv/ocserv.conf
|
||||||
|
ADD passwd /etc/ocserv/
|
||||||
|
ADD ocserv /usr/sbin/
|
||||||
|
ADD ocpasswd /usr/bin/
|
||||||
|
ADD occtl /usr/bin/
|
||||||
|
ADD myscript /usr/bin/
|
||||||
|
# It's not possible to use mknod inside a container with the default LXC
|
||||||
|
# template, so we untar it from this archive.
|
||||||
|
ADD dev-tun.tgz /dev/
|
||||||
|
|
||||||
|
CMD nuttcp -S;sshd-keygen;/usr/sbin/sshd;mkdir -p /tmp/disconnect/;/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg;/usr/sbin/ocserv -d 1 -f;sleep 3600
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
EXTRA_DIST = passwd ocserv.conf Dockerfile-tcp dev-tun.tgz myscript key.pem cert.pem \
|
EXTRA_DIST = passwd ocserv.conf Dockerfile-debian-tcp dev-tun.tgz myscript key.pem cert.pem \
|
||||||
Dockerfile-unix ocserv-unix.conf haproxy.cfg combo.pem
|
Dockerfile-debian-unix ocserv-unix.conf haproxy.cfg combo.pem Dockerfile-fedora-unix \
|
||||||
|
Dockerfile-fedora-tcp
|
||||||
|
|
||||||
TESTS_ENVIRONMENT = srcdir="$(srcdir)" \
|
TESTS_ENVIRONMENT = srcdir="$(srcdir)" \
|
||||||
top_builddir="$(top_builddir)"
|
top_builddir="$(top_builddir)"
|
||||||
|
|||||||
+13
-37
@@ -26,23 +26,8 @@ if [ $? != 0 ];then
|
|||||||
exit 77
|
exit 77
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test -x /usr/bin/docker;then
|
IMAGE=ocserv-test1
|
||||||
DOCKER=/usr/bin/docker
|
. ./docker-common.sh
|
||||||
else
|
|
||||||
DOCKER=/usr/bin/docker.io
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! test -x $DOCKER;then
|
|
||||||
echo "The docker program is needed to perform this test"
|
|
||||||
exit 77
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! test -f /etc/debian_version;then
|
|
||||||
echo "******************************************************"
|
|
||||||
echo "This test requires compiling ocserv in a Debian system"
|
|
||||||
echo "******************************************************"
|
|
||||||
exit 77
|
|
||||||
fi
|
|
||||||
|
|
||||||
stop() {
|
stop() {
|
||||||
$DOCKER stop test_ocserv
|
$DOCKER stop test_ocserv
|
||||||
@@ -50,30 +35,13 @@ stop() {
|
|||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
$DOCKER pull tianon/debian:jessie
|
$DOCKER run -P --privileged=true -p 5000:5000/udp -p 5001:5001/udp -p 22 -p 5551:5551/udp --tty=false -d --name test_ocserv $IMAGE
|
||||||
if test $? != 0;then
|
|
||||||
echo "Cannot pull docker image"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
cp ../src/ocserv ../src/ocpasswd ../src/occtl docker-ocserv/
|
|
||||||
|
|
||||||
cp docker-ocserv/Dockerfile-tcp docker-ocserv/Dockerfile
|
|
||||||
$DOCKER build -t ocserv-test1 docker-ocserv/
|
|
||||||
if test $? != 0;then
|
|
||||||
echo "Cannot build docker image"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
$DOCKER stop test_ocserv >/dev/null 2>&1
|
|
||||||
$DOCKER rm test_ocserv >/dev/null 2>&1
|
|
||||||
|
|
||||||
$DOCKER run -P --privileged=true -p 5000:5000/udp -p 5001:5001/udp -p 22 -p 5551:5551/udp --tty=false -d --name test_ocserv ocserv-test1
|
|
||||||
if test $? != 0;then
|
if test $? != 0;then
|
||||||
echo "Cannot run docker image"
|
echo "Cannot run docker image"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
echo "ocserv image was run"
|
||||||
#wait for ocserv to server
|
#wait for ocserv to server
|
||||||
sleep 5
|
sleep 5
|
||||||
|
|
||||||
@@ -82,9 +50,10 @@ if test -z "$IP";then
|
|||||||
echo "Detected IP is null!"
|
echo "Detected IP is null!"
|
||||||
stop
|
stop
|
||||||
fi
|
fi
|
||||||
|
echo "Detected IP: $IP"
|
||||||
|
|
||||||
printf "test\ntest\n" >pass.tmp
|
printf "test\ntest\n" >pass.tmp
|
||||||
openconnect $IP:5551 -u test --passwd-on-stdin --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 < pass.tmp &
|
openconnect $IP:5551 -u test --passwd-on-stdin -v --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 < pass.tmp &
|
||||||
PID=$!
|
PID=$!
|
||||||
|
|
||||||
rm -f pass.tmp
|
rm -f pass.tmp
|
||||||
@@ -107,6 +76,13 @@ if test $? != 0;then
|
|||||||
stop
|
stop
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
ping6 -w 5 fd91:6d87:7341:db6a:0:52:190c:be00
|
||||||
|
if test $? != 0;then
|
||||||
|
kill $PID
|
||||||
|
echo "Cannot ping the IPv6 of ocserv"
|
||||||
|
stop
|
||||||
|
fi
|
||||||
|
|
||||||
echo "UserKnownHostsFile ./known-hosts.tmp" >config.tmp
|
echo "UserKnownHostsFile ./known-hosts.tmp" >config.tmp
|
||||||
printf "#\!/bin/sh\n" >echo-admin.tmp
|
printf "#\!/bin/sh\n" >echo-admin.tmp
|
||||||
printf "echo yes" >>echo-admin.tmp
|
printf "echo yes" >>echo-admin.tmp
|
||||||
|
|||||||
+4
-37
@@ -26,23 +26,9 @@ if [ $? != 0 ];then
|
|||||||
exit 77
|
exit 77
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test -x /usr/bin/docker;then
|
UNIX=1
|
||||||
DOCKER=/usr/bin/docker
|
IMAGE=ocserv-test2
|
||||||
else
|
. ./docker-common.sh
|
||||||
DOCKER=/usr/bin/docker.io
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! test -x $DOCKER;then
|
|
||||||
echo "The docker program is needed to perform this test"
|
|
||||||
exit 77
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! test -f /etc/debian_version;then
|
|
||||||
echo "******************************************************"
|
|
||||||
echo "This test requires compiling ocserv in a Debian system"
|
|
||||||
echo "******************************************************"
|
|
||||||
exit 77
|
|
||||||
fi
|
|
||||||
|
|
||||||
stop() {
|
stop() {
|
||||||
$DOCKER stop test_unix
|
$DOCKER stop test_unix
|
||||||
@@ -50,26 +36,7 @@ stop() {
|
|||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
$DOCKER pull tianon/debian:jessie
|
$DOCKER run -P --privileged=true -p 6000:6000/udp -p 6001:6001/udp -p 22 -p 6551:6551/udp --tty=false -d --name test_unix $IMAGE
|
||||||
if test $? != 0;then
|
|
||||||
echo "Cannot pull docker image"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
cp ../src/ocserv ../src/ocpasswd ../src/occtl docker-ocserv/
|
|
||||||
|
|
||||||
cp docker-ocserv/Dockerfile-unix docker-ocserv/Dockerfile
|
|
||||||
$DOCKER build -t ocserv-test2 docker-ocserv/
|
|
||||||
#$DOCKER build --no-cache=true -t ocserv-test2 docker-ocserv/
|
|
||||||
if test $? != 0;then
|
|
||||||
echo "Cannot build docker image"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
$DOCKER stop test_unix >/dev/null 2>&1
|
|
||||||
$DOCKER rm test_unix >/dev/null 2>&1
|
|
||||||
|
|
||||||
$DOCKER run -P --privileged=true -p 6000:6000/udp -p 6001:6001/udp -p 22 -p 6551:6551/udp --tty=false -d --name test_unix ocserv-test2
|
|
||||||
if test $? != 0;then
|
if test $? != 0;then
|
||||||
echo "Cannot run docker image"
|
echo "Cannot run docker image"
|
||||||
exit 1
|
exit 1
|
||||||
|
|||||||
Reference in New Issue
Block a user