Skip to content

Latest commit

 

History

History
126 lines (86 loc) · 3.37 KB

README.md

File metadata and controls

126 lines (86 loc) · 3.37 KB
# AuthProject-PUBLIC

A high-performance server application with integrated DDoS protection, encryption, and user management. This project uses ENet for networking, OpenSSL for encryption, and nlohmann/json for JSON parsing.

## Features

- **DDoS Protection:** Protects the server from DDoS attacks by limiting request rates and packet sizes.
- **Encryption:** Secures communication using AES-256 encryption.
- **User Management:** Manages user data, including adding, removing, banning, and searching for users.

## Prerequisites

- **CMake**: Ensure you have CMake installed. You can download it from [here](https://cmake.org/download/).
- **vcpkg**: This project uses vcpkg for dependency management. Install it by following these steps:

  ```sh
  git clone https://github.com/microsoft/vcpkg.git
  cd vcpkg
  ./bootstrap-vcpkg.sh

Getting Started

Dependency Installation

Use vcpkg to install the necessary libraries:

[ LINUX ] 
./vcpkg install enet
./vcpkg install openssl
./vcpkg install nlohmann-json
[ WINDOWS ]
vcpkg install enet
vcpkg install openssl
vcpkg install nlohmann-json

Building the Project

  1. Clone the repository:

    git clone https://github.com/subugt/AuthProject-PUBLIC.git
    cd AuthProject-PUBLIC
  2. Create a build directory and navigate into it:

    mkdir build
    cd build
  3. Configure the project using CMake:

    cmake .. -DCMAKE_TOOLCHAIN_FILE=$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake

    Ensure that the VCPKG_ROOT environment variable is set to your vcpkg installation path.

  4. Build the project:

    cmake --build .

Running the Server

After building, you can run the server executable located in the build directory:

[LINUX]
./MyServer
[WINDOWS]
cmd MyServer.exe

Code Overview

DDoS Protection

The DDoSProtection class monitors and controls the rate of requests and packet sizes to prevent DDoS attacks. It registers requests from IP addresses and blocks those that exceed a specified rate or packet size.

Encryption

The Encryption class provides methods for encrypting and decrypting messages using AES-256.

User Management

The UserManager class handles operations related to user management, including adding, removing, banning, and searching for users. It also manages maintenance modes and request blocking.

Contributing

Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.

License

This project is licensed under the MIT License. See the https://github.com/subugt/AuthProject-PUBLIC/blob/master/LICENSE.txt file for details.

Acknowledgments

TO DO LIST

  • Create Users
  • Ban Users
  • Search users by username
  • Extend version etc.
  • Full Ddos protection (limits - low level)
  • Build Files ( i will generate visual studio and cmake, gcc for easy build on every os
  • Forward INVALID REQUESTS TO GOOGLE
  • ENCRYPTION AND SAVE WITH JSON
  • EXTRA SECURITY ( WEB TOKENS )
  • MACOS, LINUX Support ( not tested but it should support at all we are not sure so unchecked )
  • to cease updating the project indefinitely.

LEAVE A STAR FOR SUPPORTING ME 😂