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.
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).
## [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
### Major Changes
......
......@@ -65,6 +65,56 @@
- Supports all tunneling modes and transport options
- 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
### From Source
......@@ -234,6 +284,9 @@ WSSSH uses intelligent hostname parsing with the format:
## Configuration
### Server Configuration (`/etc/wssshd.conf`)
The wssshd daemon supports configuration via `/etc/wssshd.conf`:
```ini
[wssshd]
host = 0.0.0.0
......@@ -245,13 +298,78 @@ web-port = 8080
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 registration configuration:
```ini
[wssshc]
password = mysecret
server-ip = 192.168.1.100
# WebSocket server IP address or hostname
server-ip = wssshd.example.com
# WebSocket server port
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
......@@ -329,16 +447,6 @@ sudo cp service.conf.example /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
### SSH with Custom Options
......@@ -354,6 +462,9 @@ service = ssh
# Debug mode to see the actual commands
./wsssh --debug user@myclient.example.com
# SSH with tunnel control transport
./wsssh --tunnel-control websocket user@myclient.example.com
```
### SCP with Advanced Options
......@@ -369,6 +480,9 @@ service = ssh
# SCP with custom encoding
./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
......@@ -382,6 +496,33 @@ telnet localhost 49234
nc localhost 49234
# or
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
......
# 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
- [x] **Complete Architecture Migration**: Transitioned from Python/PyInstaller to native C implementation
- 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
wsscp \- SCP wrapper with WebSocket ProxyCommand support
.SH SYNOPSIS
.B wsscp
[\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\-\-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
.B wsscp
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').
.TP
.B \-\-tunnel\-control \fItransport\fR
Select control channel transport (comma-separated or 'any').
.TP
.B \-\-enc \fIencoding\fR
Data encoding: hex, base64, or bin (default: hex)
.SH DESTINATION FORMAT
The destination specification follows the format:
.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
wsssh \- SSH wrapper with WebSocket ProxyCommand support
.SH SYNOPSIS
.B wsssh
[\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\-\-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...]
.SH DESCRIPTION
.B wsssh
......@@ -35,6 +35,9 @@ Select data channel transport (comma-separated or 'any').
.TP
.B \-\-tunnel\-control \fItransport\fR
Select control channel transport (comma-separated or 'any').
.TP
.B \-\-enc \fIencoding\fR
Data encoding: hex, base64, or bin (default: hex)
.SH TARGET FORMAT
The target specification follows the format:
.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
wssshc \- WSSH Client for registration
.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
wsssht \- WSSH Tunnel Setup Tool
.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