Overview
Gate is a Golang-powered Authorization and Transmissions Entry-point that revolutionizes authorization and data transmissions. Using robust access control and TCP connection handling, Gate serves as a secure gateway, bridging the gap between network security and application connectivity in just-one-click. This innovative server application empowers you to efficiently manage user permissions and establish uninterrupted data flow, ensuring that sensitive resources remain protected while applications maintain high performance and responsiveness.
Features
- Authorization Handling: Efficiently manages HTTP or HTTPS requests for IP display and logging, ensuring that only authorized users gain access to sensitive resources.
- Transmissions Handling: Seamlessly facilitates TCP connections between local and remote addresses, equipped with IP-based access control for enhanced security.
- In-Memory Certificate: Provides a self-signed HTTPS certificate with a one-year validity, stored entirely in memory, ensuring maximum security for authorization process.
- Enhanced HTTP Security: Defaults to HTTPS for authorization to maximize security, with the option to specify HTTP mode when needed.
- No External Dependencies: Entirely built using Go's standard library, ensuring a lightweight and efficient solution.
Usage
To run the server, utilize the following command with the appropriate flags for authorization and transmission:
./gate http/https://authAddr/secretPath#localAddr/remoteAddr
- authScheme: The option allows you to choose between using HTTP or HTTPS.
- authAddr: The server address and port designated for authorization handling.
- secretPath: The secret endpoint for processing authorization requests.
- localAddr: The local address and port for listening to TCP connections.
- remoteAddr: The remote address and port for forwarding connections.
Example
./gate https://:443/auth#:9000/127.0.0.1:9001
In this example:
- The server handles authorization at
https://server_ip:443/auth
, that when you visit the url and the program logs authorized IPs.
- The server listens on port
server_ip:9000
for incoming TCP connections and forwards them to 127.0.0.1:9001
, validating IPs.
Container Usage
You can also run Gate using a Docker container. The image is available at ghcr.io/raymondragon/gate.
Below is an example command:
docker run --rm ghcr.io/raymondragon/gate https://:443/auth#:9000/127.0.0.1:9001
License
This project is licensed under the MIT License. See the LICENSE file for details.