|
@@ -61,11 +61,13 @@ tls_x509_create_server "ca1" "server1"
|
|
tls_x509_create_client "ca1" "client1"
|
|
tls_x509_create_client "ca1" "client1"
|
|
tls_x509_create_client "ca2" "client2"
|
|
tls_x509_create_client "ca2" "client2"
|
|
tls_x509_create_client "ca1" "client3"
|
|
tls_x509_create_client "ca1" "client3"
|
|
|
|
+tls_psk_create_creds "psk1"
|
|
|
|
+tls_psk_create_creds "psk2"
|
|
|
|
|
|
echo
|
|
echo
|
|
echo "== preparing image =="
|
|
echo "== preparing image =="
|
|
_make_test_img 64M
|
|
_make_test_img 64M
|
|
-$QEMU_IO -c 'w -P 0x11 1m 1m' "$TEST_IMG" | _filter_qemu_io
|
|
|
|
|
|
+$QEMU_IO -c 'w -P 0x11 1m 1m' "$TEST_IMG" 2>&1 | _filter_qemu_io
|
|
|
|
|
|
echo
|
|
echo
|
|
echo "== check TLS client to plain server fails =="
|
|
echo "== check TLS client to plain server fails =="
|
|
@@ -74,9 +76,9 @@ nbd_server_start_tcp_socket -f $IMGFMT "$TEST_IMG" 2> "$TEST_DIR/server.log"
|
|
obj=tls-creds-x509,dir=${tls_dir}/client1,endpoint=client,id=tls0
|
|
obj=tls-creds-x509,dir=${tls_dir}/client1,endpoint=client,id=tls0
|
|
$QEMU_IMG info --image-opts --object $obj \
|
|
$QEMU_IMG info --image-opts --object $obj \
|
|
driver=nbd,host=$nbd_tcp_addr,port=$nbd_tcp_port,tls-creds=tls0 \
|
|
driver=nbd,host=$nbd_tcp_addr,port=$nbd_tcp_port,tls-creds=tls0 \
|
|
- 2>&1 | sed "s/$nbd_tcp_port/PORT/g"
|
|
|
|
|
|
+ 2>&1 | _filter_nbd
|
|
$QEMU_NBD_PROG -L -b $nbd_tcp_addr -p $nbd_tcp_port --object $obj \
|
|
$QEMU_NBD_PROG -L -b $nbd_tcp_addr -p $nbd_tcp_port --object $obj \
|
|
- --tls-creds=tls0
|
|
|
|
|
|
+ --tls-creds=tls0 2>&1 | _filter_qemu_nbd_exports
|
|
|
|
|
|
nbd_server_stop
|
|
nbd_server_stop
|
|
|
|
|
|
@@ -88,8 +90,10 @@ nbd_server_start_tcp_socket \
|
|
--tls-creds tls0 \
|
|
--tls-creds tls0 \
|
|
-f $IMGFMT "$TEST_IMG" 2>> "$TEST_DIR/server.log"
|
|
-f $IMGFMT "$TEST_IMG" 2>> "$TEST_DIR/server.log"
|
|
|
|
|
|
-$QEMU_IMG info nbd://localhost:$nbd_tcp_port 2>&1 | sed "s/$nbd_tcp_port/PORT/g"
|
|
|
|
-$QEMU_NBD_PROG -L -b $nbd_tcp_addr -p $nbd_tcp_port
|
|
|
|
|
|
+$QEMU_IMG info nbd://localhost:$nbd_tcp_port \
|
|
|
|
+ 2>&1 | _filter_nbd
|
|
|
|
+$QEMU_NBD_PROG -L -b $nbd_tcp_addr -p $nbd_tcp_port \
|
|
|
|
+ 2>&1 | _filter_qemu_nbd_exports
|
|
|
|
|
|
echo
|
|
echo
|
|
echo "== check TLS works =="
|
|
echo "== check TLS works =="
|
|
@@ -97,21 +101,39 @@ obj1=tls-creds-x509,dir=${tls_dir}/client1,endpoint=client,id=tls0
|
|
obj2=tls-creds-x509,dir=${tls_dir}/client3,endpoint=client,id=tls0
|
|
obj2=tls-creds-x509,dir=${tls_dir}/client3,endpoint=client,id=tls0
|
|
$QEMU_IMG info --image-opts --object $obj1 \
|
|
$QEMU_IMG info --image-opts --object $obj1 \
|
|
driver=nbd,host=$nbd_tcp_addr,port=$nbd_tcp_port,tls-creds=tls0 \
|
|
driver=nbd,host=$nbd_tcp_addr,port=$nbd_tcp_port,tls-creds=tls0 \
|
|
- 2>&1 | sed "s/$nbd_tcp_port/PORT/g"
|
|
|
|
|
|
+ 2>&1 | _filter_nbd
|
|
$QEMU_IMG info --image-opts --object $obj2 \
|
|
$QEMU_IMG info --image-opts --object $obj2 \
|
|
driver=nbd,host=$nbd_tcp_addr,port=$nbd_tcp_port,tls-creds=tls0 \
|
|
driver=nbd,host=$nbd_tcp_addr,port=$nbd_tcp_port,tls-creds=tls0 \
|
|
- 2>&1 | sed "s/$nbd_tcp_port/PORT/g"
|
|
|
|
|
|
+ 2>&1 | _filter_nbd
|
|
$QEMU_NBD_PROG -L -b $nbd_tcp_addr -p $nbd_tcp_port --object $obj1 \
|
|
$QEMU_NBD_PROG -L -b $nbd_tcp_addr -p $nbd_tcp_port --object $obj1 \
|
|
- --tls-creds=tls0
|
|
|
|
|
|
+ --tls-creds=tls0 2>&1 | _filter_qemu_nbd_exports
|
|
|
|
+
|
|
|
|
+echo
|
|
|
|
+echo "== check TLS fail over TCP with mismatched hostname =="
|
|
|
|
+obj1=tls-creds-x509,dir=${tls_dir}/client1,endpoint=client,id=tls0
|
|
|
|
+$QEMU_IMG info --image-opts --object $obj1 \
|
|
|
|
+ driver=nbd,host=localhost,port=$nbd_tcp_port,tls-creds=tls0 \
|
|
|
|
+ 2>&1 | _filter_nbd
|
|
|
|
+$QEMU_NBD_PROG -L -b localhost -p $nbd_tcp_port --object $obj1 \
|
|
|
|
+ --tls-creds=tls0 | _filter_qemu_nbd_exports
|
|
|
|
+
|
|
|
|
+echo
|
|
|
|
+echo "== check TLS works over TCP with mismatched hostname and override =="
|
|
|
|
+obj1=tls-creds-x509,dir=${tls_dir}/client1,endpoint=client,id=tls0
|
|
|
|
+$QEMU_IMG info --image-opts --object $obj1 \
|
|
|
|
+ driver=nbd,host=localhost,port=$nbd_tcp_port,tls-creds=tls0,tls-hostname=127.0.0.1 \
|
|
|
|
+ 2>&1 | _filter_nbd
|
|
|
|
+$QEMU_NBD_PROG -L -b localhost -p $nbd_tcp_port --object $obj1 \
|
|
|
|
+ --tls-creds=tls0 --tls-hostname=127.0.0.1 | _filter_qemu_nbd_exports
|
|
|
|
|
|
echo
|
|
echo
|
|
echo "== check TLS with different CA fails =="
|
|
echo "== check TLS with different CA fails =="
|
|
obj=tls-creds-x509,dir=${tls_dir}/client2,endpoint=client,id=tls0
|
|
obj=tls-creds-x509,dir=${tls_dir}/client2,endpoint=client,id=tls0
|
|
$QEMU_IMG info --image-opts --object $obj \
|
|
$QEMU_IMG info --image-opts --object $obj \
|
|
driver=nbd,host=$nbd_tcp_addr,port=$nbd_tcp_port,tls-creds=tls0 \
|
|
driver=nbd,host=$nbd_tcp_addr,port=$nbd_tcp_port,tls-creds=tls0 \
|
|
- 2>&1 | sed "s/$nbd_tcp_port/PORT/g"
|
|
|
|
|
|
+ 2>&1 | _filter_nbd
|
|
$QEMU_NBD_PROG -L -b $nbd_tcp_addr -p $nbd_tcp_port --object $obj \
|
|
$QEMU_NBD_PROG -L -b $nbd_tcp_addr -p $nbd_tcp_port --object $obj \
|
|
- --tls-creds=tls0
|
|
|
|
|
|
+ --tls-creds=tls0 2>&1 | _filter_qemu_nbd_exports
|
|
|
|
|
|
echo
|
|
echo
|
|
echo "== perform I/O over TLS =="
|
|
echo "== perform I/O over TLS =="
|
|
@@ -121,7 +143,8 @@ $QEMU_IO -c 'r -P 0x11 1m 1m' -c 'w -P 0x22 1m 1m' --image-opts \
|
|
driver=nbd,host=$nbd_tcp_addr,port=$nbd_tcp_port,tls-creds=tls0 \
|
|
driver=nbd,host=$nbd_tcp_addr,port=$nbd_tcp_port,tls-creds=tls0 \
|
|
2>&1 | _filter_qemu_io
|
|
2>&1 | _filter_qemu_io
|
|
|
|
|
|
-$QEMU_IO -f $IMGFMT -r -U -c 'r -P 0x22 1m 1m' "$TEST_IMG" | _filter_qemu_io
|
|
|
|
|
|
+$QEMU_IO -f $IMGFMT -r -U -c 'r -P 0x22 1m 1m' "$TEST_IMG" \
|
|
|
|
+ 2>&1 | _filter_qemu_io
|
|
|
|
|
|
echo
|
|
echo
|
|
echo "== check TLS with authorization =="
|
|
echo "== check TLS with authorization =="
|
|
@@ -139,12 +162,62 @@ nbd_server_start_tcp_socket \
|
|
$QEMU_IMG info --image-opts \
|
|
$QEMU_IMG info --image-opts \
|
|
--object tls-creds-x509,dir=${tls_dir}/client1,endpoint=client,id=tls0 \
|
|
--object tls-creds-x509,dir=${tls_dir}/client1,endpoint=client,id=tls0 \
|
|
driver=nbd,host=$nbd_tcp_addr,port=$nbd_tcp_port,tls-creds=tls0 \
|
|
driver=nbd,host=$nbd_tcp_addr,port=$nbd_tcp_port,tls-creds=tls0 \
|
|
- 2>&1 | sed "s/$nbd_tcp_port/PORT/g"
|
|
|
|
|
|
+ 2>&1 | _filter_nbd
|
|
|
|
|
|
$QEMU_IMG info --image-opts \
|
|
$QEMU_IMG info --image-opts \
|
|
--object tls-creds-x509,dir=${tls_dir}/client3,endpoint=client,id=tls0 \
|
|
--object tls-creds-x509,dir=${tls_dir}/client3,endpoint=client,id=tls0 \
|
|
driver=nbd,host=$nbd_tcp_addr,port=$nbd_tcp_port,tls-creds=tls0 \
|
|
driver=nbd,host=$nbd_tcp_addr,port=$nbd_tcp_port,tls-creds=tls0 \
|
|
- 2>&1 | sed "s/$nbd_tcp_port/PORT/g"
|
|
|
|
|
|
+ 2>&1 | _filter_nbd
|
|
|
|
+
|
|
|
|
+nbd_server_stop
|
|
|
|
+
|
|
|
|
+nbd_server_start_unix_socket \
|
|
|
|
+ --object tls-creds-x509,dir=${tls_dir}/server1,endpoint=server,id=tls0,verify-peer=on \
|
|
|
|
+ --tls-creds tls0 \
|
|
|
|
+ -f $IMGFMT "$TEST_IMG" 2>> "$TEST_DIR/server.log"
|
|
|
|
+
|
|
|
|
+echo
|
|
|
|
+echo "== check TLS fail over UNIX with no hostname =="
|
|
|
|
+obj1=tls-creds-x509,dir=${tls_dir}/client1,endpoint=client,id=tls0
|
|
|
|
+$QEMU_IMG info --image-opts --object $obj1 \
|
|
|
|
+ driver=nbd,path=$nbd_unix_socket,tls-creds=tls0 2>&1 | _filter_nbd
|
|
|
|
+$QEMU_NBD_PROG -L -k $nbd_unix_socket --object $obj1 --tls-creds=tls0 \
|
|
|
|
+ 2>&1 | _filter_qemu_nbd_exports
|
|
|
|
+
|
|
|
|
+echo
|
|
|
|
+echo "== check TLS works over UNIX with hostname override =="
|
|
|
|
+obj1=tls-creds-x509,dir=${tls_dir}/client1,endpoint=client,id=tls0
|
|
|
|
+$QEMU_IMG info --image-opts --object $obj1 \
|
|
|
|
+ driver=nbd,path=$nbd_unix_socket,tls-creds=tls0,tls-hostname=127.0.0.1 \
|
|
|
|
+ 2>&1 | _filter_nbd
|
|
|
|
+$QEMU_NBD_PROG -L -k $nbd_unix_socket --object $obj1 \
|
|
|
|
+ --tls-creds=tls0 --tls-hostname=127.0.0.1 2>&1 | _filter_qemu_nbd_exports
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+echo
|
|
|
|
+echo "== check TLS works over UNIX with PSK =="
|
|
|
|
+nbd_server_stop
|
|
|
|
+
|
|
|
|
+nbd_server_start_unix_socket \
|
|
|
|
+ --object tls-creds-psk,dir=${tls_dir}/psk1,endpoint=server,id=tls0,verify-peer=on \
|
|
|
|
+ --tls-creds tls0 \
|
|
|
|
+ -f $IMGFMT "$TEST_IMG" 2>> "$TEST_DIR/server.log"
|
|
|
|
+
|
|
|
|
+obj1=tls-creds-psk,dir=${tls_dir}/psk1,username=psk1,endpoint=client,id=tls0
|
|
|
|
+$QEMU_IMG info --image-opts --object $obj1 \
|
|
|
|
+ driver=nbd,path=$nbd_unix_socket,tls-creds=tls0 \
|
|
|
|
+ 2>&1 | _filter_nbd
|
|
|
|
+$QEMU_NBD_PROG -L -k $nbd_unix_socket --object $obj1 \
|
|
|
|
+ --tls-creds=tls0 2>&1 | _filter_qemu_nbd_exports
|
|
|
|
+
|
|
|
|
+echo
|
|
|
|
+echo "== check TLS fails over UNIX with mismatch PSK =="
|
|
|
|
+obj1=tls-creds-psk,dir=${tls_dir}/psk2,username=psk2,endpoint=client,id=tls0
|
|
|
|
+$QEMU_IMG info --image-opts --object $obj1 \
|
|
|
|
+ driver=nbd,path=$nbd_unix_socket,tls-creds=tls0 \
|
|
|
|
+ 2>&1 | _filter_nbd
|
|
|
|
+$QEMU_NBD_PROG -L -k $nbd_unix_socket --object $obj1 \
|
|
|
|
+ --tls-creds=tls0 2>&1 | _filter_qemu_nbd_exports
|
|
|
|
|
|
echo
|
|
echo
|
|
echo "== final server log =="
|
|
echo "== final server log =="
|