Update documentation: README, CHANGELOG, TODO, and man pages

- Updated README.md with comprehensive config sections, examples, and detailed web interface description
- Added new CHANGELOG entry for v1.7.1 with RDP fixes
- Updated TODO.md with completed RDP improvements
- Updated man pages with missing --enc options and corrected versions
- Added detailed web interface documentation covering dashboard, SSH terminal, VNC, and RDP functionality
parent add2853c
...@@ -5,6 +5,27 @@ All notable changes to this project will be documented in this file. ...@@ -5,6 +5,27 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [1.7.1] - 2025-09-25
### Fixed
- **RDP Web Interface Issues**: Comprehensive fixes for RDP page functionality
- Fixed buffer overflow in RDP page JavaScript causing connection failures
- Added proper keyboard and mouse event handling from rdp.wasm example
- Implemented try-catch blocks around RDP script initialization
- Added DOM element existence checks and detailed event listener debugging
- Fixed RDP page buttons not responding to clicks
- Removed overly restrictive Content Security Policy (CSP) that blocked JavaScript execution
- Simplified CSP to allow necessary WebAssembly and JavaScript functionality
### Added
- **RDP Testing Tool**: Added `test_rdp_client` for RDP tunneling testing and validation
### Technical Details
- **WebAssembly Integration**: Improved RDP WebAssembly module loading and error handling
- **Event Handling**: Enhanced keyboard and mouse input processing for RDP sessions
- **Security Policy**: Balanced CSP that allows RDP functionality while maintaining security
- **Debug Logging**: Added comprehensive debug logging for RDP connection troubleshooting
## [1.7.0] - 2025-09-21 ## [1.7.0] - 2025-09-21
### Major Changes ### Major Changes
......
...@@ -38,32 +38,82 @@ ...@@ -38,32 +38,82 @@
#### Client Tools (`wssshtools/`) #### Client Tools (`wssshtools/`)
1. **`wssshc`** - WSSH Client Registration 1. **`wssshc`** - WSSH Client Registration
- Registers client machines with the daemon - Registers client machines with the daemon
- Maintains persistent connection to the server - Maintains persistent connection to the server
- Automatic reconnection with configurable intervals - Automatic reconnection with configurable intervals
- Minimal dependencies (OpenSSL only) - Minimal dependencies (OpenSSL only)
- Optimized for embedded systems and resource-constrained environments - Optimized for embedded systems and resource-constrained environments
2. **`wsssh`** - SSH Wrapper with Tunneling 2. **`wsssh`** - SSH Wrapper with Tunneling
- Simplified CLI that eliminates the need to specify "ssh" commands explicitly - Simplified CLI that eliminates the need to specify "ssh" commands explicitly
- Intelligent parsing of SSH commands and hostnames - Intelligent parsing of SSH commands and hostnames
- Automatic establishment of tunnels - Automatic establishment of tunnels
- Launches SSH client to local tunnel port - Launches SSH client to local tunnel port
- Direct system integration with no Python runtime required - Direct system integration with no Python runtime required
- High performance for production environments - High performance for production environments
3. **`wsscp`** - SCP Wrapper with Tunneling 3. **`wsscp`** - SCP Wrapper with Tunneling
- Simplified CLI that eliminates the need to specify "scp" commands explicitly - Simplified CLI that eliminates the need to specify "scp" commands explicitly
- Optimized for file transfer operations through secure tunnels - Optimized for file transfer operations through secure tunnels
- Handles both upload and download operations - Handles both upload and download operations
- Consistent design with the SSH wrapper - Consistent design with the SSH wrapper
- Enterprise-ready performance for large file transfers - Enterprise-ready performance for large file transfers
4. **`wsssht`** - Tunnel Setup Tool 4. **`wsssht`** - Tunnel Setup Tool
- Manual tunnel establishment without automatic command execution - Manual tunnel establishment without automatic command execution
- Provides connection information for use with any TCP client - Provides connection information for use with any TCP client
- Supports all tunneling modes and transport options - Supports all tunneling modes and transport options
- Perfect for integration with third-party tools and custom workflows - Perfect for integration with third-party tools and custom workflows
## Web Interface
WSSSH provides a comprehensive web-based management interface accessible through the wssshd daemon. The web interface offers professional remote access capabilities with modern browser-based clients.
### Dashboard (`/`)
- **Client Management**: View all registered clients with their connection status
- **Service Access**: Direct access buttons for SSH, VNC, and RDP services per client
- **System Information**: Display of WebSocket port, domain, and client count
- **Real-time Updates**: Automatic refresh of client status every 5 seconds
- **User Authentication**: Secure login/logout with session management
### SSH Terminal (`/terminal/<client_id>`)
- **HTML5 Terminal**: Full-featured terminal emulator using xterm.js
- **Real-time Connection**: WebSocket-based bidirectional communication
- **Username Configuration**: Input field for SSH username
- **Fullscreen Support**: Toggle between windowed and fullscreen modes
- **Responsive Design**: Adapts to different screen sizes
- **Session Management**: Connect/disconnect controls with automatic cleanup
### VNC Remote Desktop (`/vnc/<client_id>`)
- **noVNC Integration**: Browser-based VNC client using the noVNC project
- **Password Authentication**: Secure credential input for VNC connections
- **Zoom Controls**: Toggle between scaled fit and actual size views
- **Fullscreen Mode**: Immersive remote desktop experience
- **Real-time Updates**: Smooth remote desktop interaction
- **Connection Management**: Connect/disconnect with status feedback
### RDP Remote Desktop (`/rdp/<client_id>`)
- **rdp.wasm Integration**: WebAssembly-based RDP client
- **Advanced Configuration**: Comprehensive connection settings modal
- Authentication (username, password, domain)
- Display settings (resolution, color depth, graphics implementation)
- Keyboard layout and input method configuration
- Advanced options and JSON configuration support
- **Multiple Graphics Backends**: Canvas 2D, WebGL, and WebGL2 support
- **Zoom and Fullscreen**: Flexible viewing options
- **Real-time Performance**: Optimized for smooth remote desktop access
### Security Features
- **HTTPS Support**: Optional SSL/TLS encryption for web interface
- **Session Security**: Secure WebSocket connections for all remote access
- **Authentication**: User login system with password protection
- **Access Control**: Client-specific service access restrictions
### Browser Compatibility
- **Modern Browsers**: Full support for Chrome, Firefox, Safari, and Edge
- **Mobile Support**: Responsive design works on tablets and smartphones
- **WebAssembly**: RDP functionality requires WebAssembly support
- **WebSocket**: Real-time communication requires WebSocket support
## Installation ## Installation
...@@ -234,6 +284,9 @@ WSSSH uses intelligent hostname parsing with the format: ...@@ -234,6 +284,9 @@ WSSSH uses intelligent hostname parsing with the format:
## Configuration ## Configuration
### Server Configuration (`/etc/wssshd.conf`) ### Server Configuration (`/etc/wssshd.conf`)
The wssshd daemon supports configuration via `/etc/wssshd.conf`:
```ini ```ini
[wssshd] [wssshd]
host = 0.0.0.0 host = 0.0.0.0
...@@ -245,13 +298,78 @@ web-port = 8080 ...@@ -245,13 +298,78 @@ web-port = 8080
web-https = false web-https = false
``` ```
Configuration options:
- `host`: IP address to bind the WebSocket server (default: 0.0.0.0)
- `port`: WebSocket server port (default: 9898)
- `password`: Registration password for client authentication
- `domain`: Default domain for hostname parsing
- `web-host`: IP address to bind the web interface (default: 0.0.0.0)
- `web-port`: Web interface port (default: 8080)
- `web-https`: Enable HTTPS for web interface (default: false)
### Client Configuration (`~/.config/wsssh/wssshc.conf`) ### Client Configuration (`~/.config/wsssh/wssshc.conf`)
Client registration configuration:
```ini ```ini
[wssshc] [wssshc]
password = mysecret # WebSocket server IP address or hostname
server-ip = 192.168.1.100 server-ip = wssshd.example.com
# WebSocket server port
port = 9898 port = 9898
id = client01
# Client ID for registration with the server
id = my-client
# Registration password (must match server configuration)
password = my-secret-password
# Reconnection interval in seconds (default: 30)
interval = 30
# Directory containing service configuration files (default: /etc/wsssh.d/)
services-path = /etc/wsssh.d/
# Default service name for tunnel requests (default: ssh)
service = ssh
```
### Tunnel Tool Configuration (`~/.config/wsssh/wsssht.conf`)
Configuration for the wsssht tunnel tool:
```ini
[wssht]
# wssshd server hostname
wssshd-host = mbetter.nexlab.net
# Client ID for the tunnel
clientid = myclient
# Operating mode: interactive, silent, bridge, script
mode = interactive
# Enable daemon mode (true/false)
daemon = false
# Transport types for data channel (comma-separated or 'any')
tunnel = any
# Transport types for control channel (comma-separated or 'any')
tunnel-control = any
# Service type (default: ssh)
service = ssh
# Local tunnel host (default: 127.0.0.1)
tunnel-host = 127.0.0.1
# Connection retry interval in seconds (default: 5)
interval = 5
# Data encoding: hex, base64, or bin (default: hex)
enc = hex
``` ```
### Service Configuration Files ### Service Configuration Files
...@@ -329,16 +447,6 @@ sudo cp service.conf.example /etc/wsssh.d/vnc.conf ...@@ -329,16 +447,6 @@ sudo cp service.conf.example /etc/wsssh.d/vnc.conf
sudo editor /etc/wsssh.d/vnc.conf sudo editor /etc/wsssh.d/vnc.conf
``` ```
### Tools Configuration (`~/.config/wsssh/wsssh.conf`)
```ini
[default]
port = 9898
domain = example.com
tunnel = websocket
tunnel-control = websocket
service = ssh
```
## Advanced Usage Examples ## Advanced Usage Examples
### SSH with Custom Options ### SSH with Custom Options
...@@ -354,6 +462,9 @@ service = ssh ...@@ -354,6 +462,9 @@ service = ssh
# Debug mode to see the actual commands # Debug mode to see the actual commands
./wsssh --debug user@myclient.example.com ./wsssh --debug user@myclient.example.com
# SSH with tunnel control transport
./wsssh --tunnel-control websocket user@myclient.example.com
``` ```
### SCP with Advanced Options ### SCP with Advanced Options
...@@ -369,6 +480,9 @@ service = ssh ...@@ -369,6 +480,9 @@ service = ssh
# SCP with custom encoding # SCP with custom encoding
./wsscp --enc base64 localfile user@myclient.example.com:/remote/path/ ./wsscp --enc base64 localfile user@myclient.example.com:/remote/path/
# SCP with tunnel control transport
./wsscp --tunnel-control websocket localfile user@myclient.example.com:/remote/path/
``` ```
### Tunnel Setup for Manual Use ### Tunnel Setup for Manual Use
...@@ -382,6 +496,33 @@ telnet localhost 49234 ...@@ -382,6 +496,33 @@ telnet localhost 49234
nc localhost 49234 nc localhost 49234
# or # or
ssh -p 49234 user@localhost ssh -p 49234 user@localhost
# Tunnel with specific service
./wsssht ssh://myclient@example.com
# Tunnel with custom encoding
./wsssht --enc base64 myclient@example.com
# Silent mode tunnel
./wsssht --silent myclient@example.com
# Bridge mode for programmatic use
./wsssht --bridge myclient@example.com
# Daemon mode for lazy initialization
./wsssht --daemon myclient@example.com
```
### Client Registration Examples
```bash
# Register with basic options
./wssshc --server-ip 192.168.1.100 --port 9898 --id workstation01 --password mysecret
# Register with custom transports
./wssshc --server-ip server.example.com --id laptop01 --password secret --tunnel websocket --tunnel-control websocket
# Register with custom services path
./wssshc --server-ip server.example.com --id client01 --password secret --services-path /etc/wsssh.d/
``` ```
## Security Considerations ## Security Considerations
......
# WSSSH: Warp-Powered Stefy's Spatial Secure Hyperdrive - Future Enhancements Roadmap # WSSSH: Warp-Powered Stefy's Spatial Secure Hyperdrive - Future Enhancements Roadmap
## Recently Completed (v1.7.1) - RDP Web Interface Fixes
### RDP Web Interface Improvements
- [x] **RDP Page Functionality Fixes**: Comprehensive fixes for RDP web interface
- Fixed buffer overflow issues causing connection failures
- Added proper keyboard and mouse event handling
- Implemented error handling for WebAssembly module loading
- Fixed button click responsiveness and event listener issues
- Removed restrictive Content Security Policy blocking JavaScript execution
- Added comprehensive debug logging for troubleshooting
### Testing and Validation
- [x] **RDP Testing Tool**: Added test_rdp_client for RDP tunneling validation
## Recently Completed (v1.7.0) - Major C Implementation Transition ## Recently Completed (v1.7.0) - Major C Implementation Transition
- [x] **Complete Architecture Migration**: Transitioned from Python/PyInstaller to native C implementation - [x] **Complete Architecture Migration**: Transitioned from Python/PyInstaller to native C implementation
- Replaced Python wssshd with high-performance C daemon (`wssshd2/`) - Replaced Python wssshd with high-performance C daemon (`wssshd2/`)
......
.TH WSSCP 1 "September 2024" "wsscp 1.0" "WSSSH: Warp-Powered Stefy's Spatial Secure Hyperdrive" .TH WSSCP 1 "September 2024" "wsscp 1.7.1" "WSSSH: Warp-Powered Stefy's Spatial Secure Hyperdrive"
.SH NAME .SH NAME
wsscp \- SCP wrapper with WebSocket ProxyCommand support wsscp \- SCP wrapper with WebSocket ProxyCommand support
.SH SYNOPSIS .SH SYNOPSIS
.B wsscp .B wsscp
[\fB\-\-help\fR] [\fB\-\-clientid\fR \fIclient_id\fR] [\fB\-\-wssshd\-host\fR \fIhost\fR] [\fB\-\-help\fR] [\fB\-\-clientid\fR \fIclient_id\fR] [\fB\-\-wssshd\-host\fR \fIhost\fR]
[\fB\-\-wssshd\-port\fR \fIport\fR] [\fB\-\-debug\fR] [\fB\-\-tunnel\fR \fItransport\fR] [\fB\-\-wssshd\-port\fR \fIport\fR] [\fB\-\-debug\fR] [\fB\-\-tunnel\fR \fItransport\fR]
[\fB\-\-tunnel\-control\fR \fItransport\fR] \fIsource_file\fR \fIdestination\fR [\fB\-\-tunnel\-control\fR \fItransport\fR] [\fB\-\-enc\fR \fIencoding\fR] \fIsource_file\fR \fIdestination\fR
.SH DESCRIPTION .SH DESCRIPTION
.B wsscp .B wsscp
is an SCP wrapper that automatically configures SCP to use WebSocket tunnels through is an SCP wrapper that automatically configures SCP to use WebSocket tunnels through
...@@ -34,6 +34,9 @@ Select data channel transport (comma-separated or 'any'). ...@@ -34,6 +34,9 @@ Select data channel transport (comma-separated or 'any').
.TP .TP
.B \-\-tunnel\-control \fItransport\fR .B \-\-tunnel\-control \fItransport\fR
Select control channel transport (comma-separated or 'any'). Select control channel transport (comma-separated or 'any').
.TP
.B \-\-enc \fIencoding\fR
Data encoding: hex, base64, or bin (default: hex)
.SH DESTINATION FORMAT .SH DESTINATION FORMAT
The destination specification follows the format: The destination specification follows the format:
.sp .sp
......
.TH WSSH 1 "September 2024" "wsssh 1.0" "WSSSH: Warp-Powered Stefy's Spatial Secure Hyperdrive" .TH WSSH 1 "September 2024" "wsssh 1.7.1" "WSSSH: Warp-Powered Stefy's Spatial Secure Hyperdrive"
.SH NAME .SH NAME
wsssh \- SSH wrapper with WebSocket ProxyCommand support wsssh \- SSH wrapper with WebSocket ProxyCommand support
.SH SYNOPSIS .SH SYNOPSIS
.B wsssh .B wsssh
[\fB\-\-help\fR] [\fB\-\-clientid\fR \fIclient_id\fR] [\fB\-\-wssshd\-host\fR \fIhost\fR] [\fB\-\-help\fR] [\fB\-\-clientid\fR \fIclient_id\fR] [\fB\-\-wssshd\-host\fR \fIhost\fR]
[\fB\-\-wssshd\-port\fR \fIport\fR] [\fB\-\-debug\fR] [\fB\-\-tunnel\fR \fItransport\fR] [\fB\-\-wssshd\-port\fR \fIport\fR] [\fB\-\-debug\fR] [\fB\-\-tunnel\fR \fItransport\fR]
[\fB\-\-tunnel\-control\fR \fItransport\fR] [\fIuser\fR][\fB@\fR[\fIclientid\fR][\fB.\fR[\fIwssshd\-host\fR]][\fB:\fR[\fIsshstring\fR]]] [\fB\-\-tunnel\-control\fR \fItransport\fR] [\fB\-\-enc\fR \fIencoding\fR] [\fIuser\fR][\fB@\fR[\fIclientid\fR][\fB.\fR[\fIwssshd\-host\fR]][\fB:\fR[\fIsshstring\fR]]]
[\fIssh_options\fR...] [\fIssh_options\fR...]
.SH DESCRIPTION .SH DESCRIPTION
.B wsssh .B wsssh
...@@ -35,6 +35,9 @@ Select data channel transport (comma-separated or 'any'). ...@@ -35,6 +35,9 @@ Select data channel transport (comma-separated or 'any').
.TP .TP
.B \-\-tunnel\-control \fItransport\fR .B \-\-tunnel\-control \fItransport\fR
Select control channel transport (comma-separated or 'any'). Select control channel transport (comma-separated or 'any').
.TP
.B \-\-enc \fIencoding\fR
Data encoding: hex, base64, or bin (default: hex)
.SH TARGET FORMAT .SH TARGET FORMAT
The target specification follows the format: The target specification follows the format:
.sp .sp
......
.TH WSSHc 1 "September 2025" "wsssh-tools 1.4.0" "WSSSH: Warp-Powered Stefy's Spatial Secure Hyperdrive" .TH WSSHc 1 "September 2024" "wsssh-tools 1.7.1" "WSSSH: Warp-Powered Stefy's Spatial Secure Hyperdrive"
.SH NAME .SH NAME
wssshc \- WSSH Client for registration wssshc \- WSSH Client for registration
.SH SYNOPSIS .SH SYNOPSIS
......
.TH WSSSHT 1 "September 2024" "WSSSH: Warp-Powered Stefy's Spatial Secure Hyperdrive" "User Commands" .TH WSSSHT 1 "September 2024" "WSSSH: Warp-Powered Stefy's Spatial Secure Hyperdrive 1.7.1" "User Commands"
.SH NAME .SH NAME
wsssht \- WSSH Tunnel Setup Tool wsssht \- WSSH Tunnel Setup Tool
.SH SYNOPSIS .SH SYNOPSIS
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment