41baloo / balooproxy Goto Github PK
View Code? Open in Web Editor NEWLightweight http anti-ddos reverse-proxy made in golang
License: GNU General Public License v3.0
Lightweight http anti-ddos reverse-proxy made in golang
License: GNU General Public License v3.0
hi, sometime when i reload site it suddenly says Ratelimited (R1). But i didnt get the captcha or anything else.
"adminsecret": "CHANGE_ME",
"apisecret": "CHANGE_NE",
"secrets": {
"captcha": "CHANGE_ME1",
"cookie": "CHANGE_ME2",
"javascript": "CHANGE_ME3"
},
what I have to put in "change_me"?
updated to goFiber and now my discord alerts are goijg crazy, i habd configured bypassStage1 etc, even if they are above 100, goFiber is still sending logs at as low as 30 requests
Sometimes the proxy crashes if under attack, ill send the error once i see it again.
Hello I get internal server erotr
I am using two linode vpses and a nodebalancer and i get this error:
Your request headers or cookies are too big.
This isn't python, you don't need everything in 1 file...
Hello,
i receive this error when accessing the direct IP: balooProxy: 13.40.118.187 does not exist. If you are the owner please check your config.json if you believe this is a mistake.
And when directly the domain its not working at all. What can i do? I create the config.json with /.main and its successfully loaded. I have entered SSL with cloudflare on and IP:port and the domain but its not wokring.
Any help?
Can I use cloudflare for balooProxy as a DNS manager without any proxies and protection from cloudflare and use the tls fingerprinting or using cloudflare in any way blocks the tls fingerprinting option?
It would be nice if you can make a it so you can add a log file so you can block the ips easyier
make cloudflare look like a joke
support https without me having to touch your code 😜
Cloudflare breaks while being set on full mode and having the A record pointing to a server where this proxy is hosted.
pls guide for installation
Here is some enhancement :
Implement Redis pub/sub to update the configuration of each domain, similar to the approach used in this project: https://github.com/lhridder/infrared. This method leverages Redis for configuration storage and pub/sub for adding/deleting configurations. It's particularly beneficial for managing multiple proxy instances.
Integrate Prometheus statistics for each domain, including metrics such as blocked requests, bypassed requests, and CPU usage.
Improve Discord notifications by providing specific details on the type of attack detected, offering a more comprehensive insight into the events.
The readme states as follow
The command reload will cause the proxy to read the config.json again, aswell as reset some other generic settings, in order to apply changes from your config.json (NOTE: This is automatically executed every 5 hours)
Specifically
(NOTE: This is automatically executed every 5 hours)
However, I couldn't find anywhere in the code where this happens. Is the readme wrong or am I missing something?
Hi,
I see a html file with the name: login.html and if i look at the code, it looks like you was working on a dashboard or something? Is this still a WIP (Work in progress) or is this coming soon?
Thank u!
can I use cloudflare's SSL certificate without losing the perk to use TLS fpring?
See title
my firewall rules should be correct but i think they are not being applied
i tried restarting but does not work.
"firewallRules":[
{
"expression": "(http.user_agent eq \"Mozilla/5.0 (compatible; Discordbot/2.0; +https://discordapp.com/)\")",
"action":"0"
}
],
To improve performance and readability, consider replacing "net/http" with the Gin framework.
Gin is a web framework written in Go that's been around for a long time and leverages and builds upon the standard net/http package. It offers several benefits over using the net/http package alone.
Git: https://github.com/gin-gonic/gin
Documentation: https://gin-gonic.com/docs/
Some of the benefits of Gin include:
Personally, it would be a big jump for Baloo proxy as it's not really that hard to implement as it's built based on net/http is a lot faster at reading requests in specific cases like routing specifically redirects which is widely used in baloo proxy.
For example, I made a firewall rule that whitelists requests that contain "/api" in the request path.
{
"expression": "(http.path contains "/api")",
"action": "0"
},
Which should whitelist requests, however it only whitelists some requests, such as requests from a normal browser, however requests from an http client (such as axios or go http client) is blocked as baloo detects a headless browser:
"Blocked by BalooProxy.
Your browser Headless Browser is not allowed."
BalooProxy should allow all requests whether it is from a Headless Browser or not as it is explicitly defined in the firewall rule to whitelist requests
I tried refining the firewall rule by adding whitelist to unknown browsers and the ip address i sent the requests from
{
"expression": "(ip.src eq "IPADDRESS" or ip.engine eq "" and http.path contains "/api")",
"action": "0"
}
Yet still no luck, this makes it difficult for Balooproxy to protect dynamic sites that have APIs.
Crashes When Streaming Big Media MP4's / MOV's ETC
So I don´t know if this would be possible but im trying to run balooproxy in the same vps i have the web so instead of using something like apache or nginx i would use balooproxy, it worked firstly but then I started to get a lot of errors, like infinite redirects or blocking the connection to the backend(which is weird because balooproxy is running on the backend).
Normally, when i send my website on Discord, it embeds. But now it doesn't. I've used the embed debugger in the discord dev portal. And it said "Followed too many redirects (6)".
When monitoring IP Request Count at /_bProxy/fingerprint It seems the Requests Delete after around 10-15 seconds as opposed to the 120 Documented interval
Im currently setting up the baloo proxy, and when I started it, it said the port is already in use, then I checked and it was apache2 port. I tried changing it but it doesn't work. What do I do?
When I upload a file and the request is pending for like 5 seconds or longer, i get a 520 cloudflare error, the only issue i can think of this, that its because of balooproxy. I have tried setting all the timeout options to over 30 seconds, but it didnt help.
In the crash.log I'm getting a weird error I've never gotten before, it only happens when an attack is placed against the server.
Error Loading Custom Firewall Rules
invalid IP address
Could do Compatible with bunny.net ?
Having some issues whitelisting discord user agent to allow for Embeds, Please may you help Thank u
Title says it all, thank you!
Great reverse proxy! Only problem is that my discord alerts do not seem to be sending. Config is setup correctly and i have had attacks of 100k+ so it seems like there shoulda been some alerts. How would i fix this?
This is suppose to run parrallel so you can parse connections faster. This is vuln to ddos.
balooProxy/core/server/monitor.go
Line 101 in 1ba331b
The proxy is getting "Killed" when the server receives a big attack, like 70-90k rps
It would be cool to have an API integration with this.
So, I've been using 1.4 with no issues. Matter of fact, I didn't realize I wasn't using the latest as the repository, excluding the releases section, only has the code for 1.4. (so git clone repo url only provides baloo 1.4 source)
On my web server, I'm unable to use baloo 1.5. I tried with my old config.json, no luck. Generated a new config.json, also no luck. It'll start just fine -- but as soon as I try to download a .tar.gz file , it consumes a lot of CPU and dies. No crash.log entries!
I'd definitely enjoy using the latest and greatest, reap the performance benefits, but given that it's unusable, I can't.
And given that no crash.log entries are generated, I can't easily diagnose it yet. I may dig into this myself-- we will see. For now, 1.4 is stable.
All that I'm aware of at the moment is:
It starts consuming 100% cpu, RAM usage rises to max (4gb in this instance, 4gb file trying to be downloaded) - then it says "Killed" -- which is likely why no crash.log entry is generated
Second issue:
Improper iframe srcdoc encoding in serve.go
Problem: iframe shows as a blank frame due to the contents of srcdoc not being htmlencoded.
Solution:
import "html" and change the iframe portion to:
<iframe width="100%" height="25%" style="border:1px ridge lightgrey; border-radius: 5px;"
srcdoc="
` + html.EscapeString(string(errBody)) + `">
</iframe>
I'm trying to allow a certain IP to go through, but it's not working. I also tried adding a file to allow, and it still doesn't work.
"firewallRules": [
{
"expression": "(ip.src eq 157.230.xx.xxx)",
"action": "0"
},
{
"expression": "(http.query contains \"0_link.php\")",
"action": "0"
},
]
What am I doing wrong?
Bro can you share installing processes, I can’t install.Can you share installation process step by step. If you share its helpful for us.
Hello, there is a kernel error _, err := fmt.Fprintf(w, add this to the beginning of your captcha page
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.