subugt/AuthProject-PUBLIC
Powerful auth project made with tears...
# 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.shGetting 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-jsonBuilding the Project
-
Clone the repository:
git clone https://github.com/subugt/AuthProject-PUBLIC.git cd AuthProject-PUBLIC -
Create a
builddirectory and navigate into it:mkdir build cd build -
Configure the project using CMake:
cmake .. -DCMAKE_TOOLCHAIN_FILE=$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmakeEnsure that the
VCPKG_ROOTenvironment variable is set to your vcpkg installation path. -
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.exeCode 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 ๐