Compare commits

..

7 Commits

Author SHA1 Message Date
Mariusz Marciniak
920e180c37 Add session recording 2022-07-12 17:09:38 +02:00
Matthew McClaskey
ba902f8194 Merge branch 'feature/KASM-2801-remove-libnettle-dependency' into 'master'
Resolve KASM-2801 "Feature/ remove libnettle dependency"

Closes KASM-2801

See merge request kasm-technologies/internal/KasmVNC!54
2022-07-08 14:13:05 +00:00
Dmitry Maksyoma
1f5125fb24 Resolve KASM-2801 "Feature/ remove libnettle dependency" 2022-07-08 14:13:05 +00:00
Matthew McClaskey
dc60c73a81 Merge branch 'feature/KASM-2702-README-set-password' into 'master'
Resolve KASM-2702 "Feature/ readme set password"

Closes KASM-2702

See merge request kasm-technologies/internal/KasmVNC!53
2022-07-07 14:40:57 +00:00
Dmitry Maksyoma
1c54f4f921 Improve prompts to create a user 2022-07-06 01:56:32 +12:00
Dmitry Maksyoma
60de5a9791 Add instructions to add a KasmVNC user to README 2022-07-06 01:35:23 +12:00
Matthew McClaskey
480add4fe2 [skip CI] Update readme 2022-07-02 20:50:45 +00:00
9 changed files with 28 additions and 16 deletions

2
.gitmodules vendored
View File

@@ -1,4 +1,4 @@
[submodule "kasmweb"] [submodule "kasmweb"]
path = kasmweb path = kasmweb
url = https://github.com/kasmtech/noVNC.git url = https://github.com/kasmtech/noVNC.git
branch = master branch = innovation/session_recording

View File

@@ -8,6 +8,10 @@
- Security - The RFB specification (VNC) limits the password field to 8 characters, so while the client may take a longer password, only the first 8 characters are sent. KasmVNC defaults to HTTPS with HTTP Basic Auth and disables the legacy VNC authentication method which is not sufficiently secure for internet accessible systems. - Security - The RFB specification (VNC) limits the password field to 8 characters, so while the client may take a longer password, only the first 8 characters are sent. KasmVNC defaults to HTTPS with HTTP Basic Auth and disables the legacy VNC authentication method which is not sufficiently secure for internet accessible systems.
- Simplicity - KasmVNC aims at being simple to deploy and configure. - Simplicity - KasmVNC aims at being simple to deploy and configure.
# Releases
Since this is a fast evolving project, the documents on the tip of master are chaning rapidly and will not match releases. Be sure to use the README and other documentation from the release branch that matches the version of KasmVNC you are using. Do not use the README from the master branch, unless you are compiling KasmVNC yourself from the tip of master. All releases starting at 0.9.3 have a branch named in the format 'release/0.9.3', for example.
# New Features! # New Features!
- Webp image compression for better bandwidth usage - Webp image compression for better bandwidth usage
@@ -16,6 +20,7 @@
- [Full screen video detection](https://github.com/kasmtech/KasmVNC/wiki/Video-Rendering-Options#video-mode), goes into configurable video mode for better full screen videoo playback performance. - [Full screen video detection](https://github.com/kasmtech/KasmVNC/wiki/Video-Rendering-Options#video-mode), goes into configurable video mode for better full screen videoo playback performance.
- [Dynamic jpeg/webp image coompression](https://github.com/kasmtech/KasmVNC/wiki/Video-Rendering-Options#dynamic-image-quality) quality settings based on screen change rates - [Dynamic jpeg/webp image coompression](https://github.com/kasmtech/KasmVNC/wiki/Video-Rendering-Options#dynamic-image-quality) quality settings based on screen change rates
- Seemless clipboard support (on Chromium based browsers) - Seemless clipboard support (on Chromium based browsers)
- Binary clipboard support for text, images, and formatted text (on Chromium based browsers)
- Allow client to set/change most configuration settings - Allow client to set/change most configuration settings
- [Data Loss Prevention features](https://github.com/kasmtech/KasmVNC/wiki/Data-Loss-Prevention) - [Data Loss Prevention features](https://github.com/kasmtech/KasmVNC/wiki/Data-Loss-Prevention)
- Key stroke logging - Key stroke logging
@@ -25,17 +30,20 @@
- Keyboard input rate limit - Keyboard input rate limit
- Screen region selection - Screen region selection
- Deb packages for Debian, Ubuntu, and Kali Linux included in release. - Deb packages for Debian, Ubuntu, and Kali Linux included in release.
- RPM packages for CentOS, Fedora. RPM packages are currently not updatable and not released, though you can build and install them. See build documentation. - RPM packages for CentOS, Oracle, OpenSUSE, Fedora. RPM packages are currently not updatable and not released, though you can build and install them. See build documentation.
- Web [API](https://github.com/kasmtech/KasmVNC/wiki/API) added for remotely controlling and getting information from KasmVNC - Web [API](https://github.com/kasmtech/KasmVNC/wiki/API) added for remotely controlling and getting information from KasmVNC
- Multi-User with ability to pass control to other users. - Multi-User support with permissions that can be changed via the API
- Web UI uses a webpack for faster load times. - Web UI uses a webpack for faster load times.
- Network and CPU bottleneck statistics - Network and CPU bottleneck statistics
- Relative cursor support (game pointer mode)
- Cursor lock
- IME support for languages with extended characters
- Better mobile support
Future Goals: Future Goals:
- Support uploads and downloads - UDP transport for faster frame rates
- Pre-build Packages for all major Linux distributions - H264 encoding
### Installation ### Installation
@@ -58,6 +66,9 @@ sudo ln -s /usr/share/doc/kasmvncserver/examples/kasmvncserver-easy-start /usr/b
sudo addgroup $USER ssl-cert sudo addgroup $USER ssl-cert
# You will need to re-connect in order to pick up the group change # You will need to re-connect in order to pick up the group change
# Create a KasmVNC user able to use keyboard and mouse:
vncpasswd -u $USER -w
# Create ~/.vnc directory and corresponding files. # Create ~/.vnc directory and corresponding files.
kasmvncserver-easy-start -d && kasmvncserver-easy-start -kill kasmvncserver-easy-start -d && kasmvncserver-easy-start -kill

View File

@@ -36,7 +36,8 @@ sed -i -e '/find_package(FLTK/s@^@#@' \
-e '/add_subdirectory(tests/s@^@#@' \ -e '/add_subdirectory(tests/s@^@#@' \
CMakeLists.txt CMakeLists.txt
cmake -D CMAKE_BUILD_TYPE=RelWithDebInfo . -DBUILD_VIEWER:BOOL=OFF cmake -D CMAKE_BUILD_TYPE=RelWithDebInfo . -DBUILD_VIEWER:BOOL=OFF \
-DENABLE_GNUTLS:BOOL=OFF
make -j5 make -j5
tar -C unix/xserver -xf /tmp/xorg-server-${XORG_VER}.tar.bz2 --strip-components=1 tar -C unix/xserver -xf /tmp/xorg-server-${XORG_VER}.tar.bz2 --strip-components=1
@@ -65,6 +66,7 @@ fi
--with-xkb-output=/var/lib/xkb \ --with-xkb-output=/var/lib/xkb \
--with-xkb-bin-directory=/usr/bin \ --with-xkb-bin-directory=/usr/bin \
--with-default-font-path="/usr/share/fonts/X11/misc,/usr/share/fonts/X11/cyrillic,/usr/share/fonts/X11/100dpi/:unscaled,/usr/share/fonts/X11/75dpi/:unscaled,/usr/share/fonts/X11/Type1,/usr/share/fonts/X11/100dpi,/usr/share/fonts/X11/75dpi,built-ins" \ --with-default-font-path="/usr/share/fonts/X11/misc,/usr/share/fonts/X11/cyrillic,/usr/share/fonts/X11/100dpi/:unscaled,/usr/share/fonts/X11/75dpi/:unscaled,/usr/share/fonts/X11/Type1,/usr/share/fonts/X11/100dpi,/usr/share/fonts/X11/75dpi,built-ins" \
--with-sha1=libcrypto \
--without-dtrace --disable-dri \ --without-dtrace --disable-dri \
--disable-static \ --disable-static \
--disable-xinerama --disable-xvfb --disable-xnest --disable-xorg \ --disable-xinerama --disable-xvfb --disable-xnest --disable-xorg \

View File

@@ -9,10 +9,8 @@ RUN zypper -n install -y \
# deps and rpm install # deps and rpm install
RUN zypper -n install -y \ RUN zypper -n install -y \
libglvnd \ libglvnd \
libgnutls30 \
libgomp1 \ libgomp1 \
libjpeg8 \ libjpeg8 \
libnettle6 \
libpixman-1-0 \ libpixman-1-0 \
libXdmcp6 \ libXdmcp6 \
libXfont2-2 \ libXfont2-2 \
@@ -36,4 +34,4 @@ USER foo:kasmvnc-cert
RUN mkdir ~/.vnc && echo '/usr/bin/xterm &' >> ~/.vnc/xstartup && \ RUN mkdir ~/.vnc && echo '/usr/bin/xterm &' >> ~/.vnc/xstartup && \
chmod +x ~/.vnc/xstartup chmod +x ~/.vnc/xstartup
ENTRYPOINT bash -c "echo -e \"$VNC_PW\n$VNC_PW\n\" | kasmvncpasswd -w -u \"$VNC_USER\" && vncserver :1 -interface 0.0.0.0 && vncserver -kill :1 && vncserver :1 -depth 24 -geometry 1280x1050 -websocketPort 6901 -cert /etc/pki/tls/private/kasmvnc.pem -sslOnly -FrameRate=24 -interface 0.0.0.0 -httpd /usr/share/kasmvnc/www && tail -f $HOME/.vnc/*.log " ENTRYPOINT bash -c "echo -e \"$VNC_PW\n$VNC_PW\n\" | kasmvncpasswd -w -u \"$VNC_USER\" && vncserver :1 -interface 0.0.0.0 && vncserver -kill :1 && vncserver :1 -depth 24 -geometry 1280x1050 -websocketPort 8443 -cert /etc/pki/tls/private/kasmvnc.pem -sslOnly -FrameRate=24 -interface 0.0.0.0 -httpd /usr/share/kasmvnc/www && tail -f $HOME/.vnc/*.log "

View File

@@ -12,7 +12,7 @@ RUN apt-get update && \
RUN apt-get update && apt-get install -y --no-install-recommends tzdata RUN apt-get update && apt-get install -y --no-install-recommends tzdata
RUN apt-get update && apt-get -y build-dep xorg-server libxfont-dev RUN apt-get update && apt-get -y build-dep xorg-server libxfont-dev
RUN apt-get update && apt-get -y install cmake git libjpeg-dev libgnutls28-dev vim wget tightvncserver RUN apt-get update && apt-get -y install cmake git libjpeg-dev vim wget
RUN apt-get update && apt-get -y install libpng-dev libtiff-dev libgif-dev libavcodec-dev libssl-dev libxrandr-dev libxcursor-dev RUN apt-get update && apt-get -y install libpng-dev libtiff-dev libgif-dev libavcodec-dev libssl-dev libxrandr-dev libxcursor-dev
# Additions for webp # Additions for webp

Submodule kasmweb updated: 7e5a302a7a...43ab612108

View File

@@ -7,7 +7,7 @@ License: GPLv2+
URL: https://github.com/kasmtech/KasmVNC URL: https://github.com/kasmtech/KasmVNC
BuildRequires: rsync BuildRequires: rsync
Requires: xauth, libxkbcommon-x11-0, xkeyboard-config, x11-tools, openssl, perl, libpixman-1-0, libnettle6, libjpeg8, libgomp1, libgnutls30, libXfont2-2, libXdmcp6, libglvnd, xkbcomp Requires: xauth, libxkbcommon-x11-0, xkeyboard-config, x11-tools, openssl, perl, libpixman-1-0, libjpeg8, libgomp1, libXfont2-2, libXdmcp6, libglvnd, xkbcomp
Conflicts: tigervnc, tigervnc-x11vnc Conflicts: tigervnc, tigervnc-x11vnc
%description %description

View File

@@ -33,14 +33,15 @@
static void usage(const char *prog) static void usage(const char *prog)
{ {
fprintf(stderr, "Usage: %s -u username [-wnod] [file]\n" fprintf(stderr, "Usage: %s -u username [-wnod] [password_file]\n"
"-r Read permission\n" "-r Read permission\n"
"-w Write permission\n" "-w Write permission\n"
"-o Owner\n" "-o Owner\n"
"-n Don't change password, change permissions only\n" "-n Don't change password, change permissions only\n"
"-d Delete this user\n" "-d Delete this user\n"
"\n" "\n"
"The file is updated atomically.\n\n" "The password file is updated atomically.\n"
"For more information, run \"man vncpasswd\".\n\n"
"To pass the password via a pipe, use\n" "To pass the password via a pipe, use\n"
"echo -e \"password\\npassword\\n\" | %s [-args]\n", "echo -e \"password\\npassword\\n\" | %s [-args]\n",
prog, prog); prog, prog);

View File

@@ -281,7 +281,7 @@ $kasmAuthEnabled = 1;
if ($kasmAuthEnabled) { if ($kasmAuthEnabled) {
if (!(-e "$ENV{HOME}/.kasmpasswd")) { if (!(-e "$ENV{HOME}/.kasmpasswd")) {
warn "\nYou will require a password to access your desktops.\n\n"; warn "\nYou need to create a KasmVNC user to access your desktops.\n\n";
system($exedir."kasmvncpasswd $ENV{HOME}/.kasmpasswd"); system($exedir."kasmvncpasswd $ENV{HOME}/.kasmpasswd");
if (($? >> 8) != 0) { if (($? >> 8) != 0) {
exit 1; exit 1;