GridAdmin is an advanced, multithreaded Client-Server application written in C, designed for the centralized administration of workstations within a local area network (LAN). It establishes a secure communication channel using a custom TCP protocol and features a graphical user interface (GUI) built with GTK+3.
- 🔒 Secure Communication: All TCP traffic between the client and server is encrypted using AES-256 (via OpenSSL).
- ⚡ Multithreaded Architecture: The server efficiently handles multiple concurrent client connections.
- 🖥️ Remote Shell Execution: Execute shell commands securely on remote workstations (SSH-like functionality).
- 🔌 Power Management: Features Wake-on-LAN (via UDP broadcasts) and remote shutdown capabilities.
- 📊 Live Monitoring: Real-time tracking of workstation status (Online/Offline) and network discovery using raw sockets.
- 🗄️ Data Persistence: Integrated SQLite for secure logging and data storage.
- Language: C
- Networking: TCP/UDP Sockets
- Cryptography: OpenSSL (AES-256)
- GUI: GTK+3
- Database: SQLite
The project includes an automated Makefile for easy compilation. Open a terminal in the project directory and run:
1. Install Dependencies:
make setup2. Compile Server and Client:
make3. Start the Server:
./server <num_threads> <encryption_key>4. Start the Client:
./client <server_IP> <server_PORT> <server_encryption_key>🔑 Default Credentials To access the administrative functions within the client GUI, use the following default credentials:
user: admin
password: adminpass