KUVPN v2.0.0
KUVPN is a simple CLI tool written in Rust that retrieves the DSID cookie and executes the OpenConnect command to connect to the VPN for Koç University.
Table of Contents
Features
- ✅ Login to vpn.ku.edu.tr on Linux/Mac.
- ✅ Retrieve DSID cookie
- ✅ Execute OpenConnect command
- ✅ Headless Execution
- ✅ Session management
- ✅ CLI Based
- ✅ Openconnect Wrapper
Prerequisites
- Mandatory: OpenConnect
- On Ubuntu:
- On Ubuntu:
Installation
Binary Install (Recommended)
Install KUVPN with the following command:
|
Note: Always inspect scripts before running commands from the internet!
Binary Install (Manual)
-
Download: Get the latest binary from the GitHub releases page.
-
Move the binary: Place it in a directory that's in your
$PATH(e.g.,/usr/local/bin/): -
Make it executable:
-
Verify installation:
Build & Install from Source
-
Install Rustup:
Use the following command (or your package manager) to install Rustup. Although Cargo is available through some package managers, using Rustup is recommended:| -
Install KUVPN from source:
Usage
Simply run KUVPN with: ( No arguments required )
For help and more details:
Command-line Options
Below is the help message displayed when running kuvpn --help:
A convenient tool for connecting to Koç University's VPN using OpenConnect.
Usage: kuvpn [OPTIONS]
Options:
-u, --url <URL>
The URL to the page where we will start logging in and looking for DSID
[default: https://vpn.ku.edu.tr]
-l, --level <LEVEL>
The level of logging
Possible values:
- off: No logs
- info: Informational messages
- warn: Warning messages
- debug: Debugging messages
- error: Error messages
- trace: Detailed stacktrace messages
[default: error]
--domain <DOMAIN>
The Domain of the DSID found
[default: vpn.ku.edu.tr]
-g, --get-dsid
Gives the user the dsid without running openconnect
-d, --disable-headless
Gets DSID without headless mode
-c, --clean
Delete session information
-r, --run-command <RUN_COMMAND>
Command to run openconnect with (e.g., doas, sudo, pkexec, or a custom script)
--openconnect-path <OPENCONNECT_PATH>
Path or command name for openconnect. Defaults to 'openconnect'. Can be a relative or absolute path
[default: openconnect]
-h, --help
Print help (see a summary with '-h')
-V, --version
Print version
Troubleshooting: Cookie Rejection
If you get this error, the easiest fix is to clear your session:
Unexpected 302 result from server
Creating SSL connection failed
Cookie was rejected by server; exiting.
You can clear your session like this:
kuvpn -c
License
This project is licensed under the MIT License. See the LICENSE file for details.
Contributing
Contributions are welcome! If you have ideas, bug fixes, or improvements, please open an issue or submit a pull request.