Nolo001-Aha / SourceMod-ReBanner

Rebans alt accounts of banned players through fingerprinting via SteamID, IP addresses and clientside cookies
GNU General Public License v3.0
30 stars 5 forks source link

Log error #3

Closed q1085909155 closed 1 year ago

q1085909155 commented 1 year ago

I found this error when I looked through my error log today. What happened to this error? image

q1085909155 commented 1 year ago

I also found an issue where Fingerprint's ban time seemed to be inconsistent with sourceban's. For example: I blocked the player for 1440 minutes, but by default the TF2 server appears to block the player for 5 minutes, which would result in the "fingerprint" being recorded for only 5 minutes. I'm not sure if the "time" issue is important, because I found that the "banned_duration" field in the SQL database is 5, But the "is_banned" field remains 1 (although players have been banned for more than 5 minutes so far). image image

q1085909155 commented 1 year ago

Will it make any difference? If the question I put forward is a stupid one, it means that I do not know enough about TF2server. I hope you can explain.... for me emm, also, if I change the block time on sourceban web from 1400 to 0 or -1 (permanent), will the fingerprint block time change as well? If not, then how can I change the ban time of "fingerprint"? If it is through an sql database, which table should I modify? Which field? What value to change? What are the values?

Nolo001-Aha commented 1 year ago

Hello!

Regarding SourceBans++:

The Web UI is very tricky to add support for; I mentioned it in the AlliedMods post - SB++ does not expose any forwards regarding web ban application/updates, so Rebanner cannot hook them to properly handle the information. Best course of action would be to implement two new forwards in SB++, something like SBPP_OnWebBanPlayer and SBPP_OnBanUpdate. I can PR that into the main SB repo once I'm done with Rebanner itself.

Now to the error log and Rebanner in general: You're getting this error most likely because the fingerprint folder does not exist on the server (I also mentioned that in the AM thread) - for example, if you set your fingerprint to be materials/models/custom/stuff/test.vmt, you need to make sure that the paths materials/models/custom/stuff and download/materials/models/custom/stuff actually exist on the server, otherwise Rebanner will fail to create the fingerprint files.

Also about Rebanner: Right now I'm in progress of getting rid of FileNet_SendFIle completely, and instead I will be manipulating the FastDL download system to force clients to download fingerprints when they're connecting to the server. The prototype already works, though needs some bugs and unpredictable behaviors ironed out. With this change, Rebanner will hopefully be less prone to ConVar manipulation (who doesn't have FastDownloads enabled...) clientside. Also this change should make it easier to maintain the plugin across CSGO/TF2 and other Source games.

Nolo001-Aha commented 1 year ago

How does Rebanner remove is_banned flags from it's database?

If an account that is found to have is_banned = 1 manages to get to OnClientAuthorized and OnClientPutInServer, it means that they're no longer banned (Source would've cut the connection way earlier if they were still banned). With that in mind, I can safely assume that if one gets to being processed by Rebanner, I can get rid of their is_banned flag if they have it.

Nolo001-Aha commented 1 year ago

"If not, then how can I change the ban time of "fingerprint"? If it is through an sql database, which table should I modify? Which field? What value to change? What are the values?"

I can probably add a few commands to change ban time by SteamID and IP until the SourceBans forwards regarding ban updates are implemented. Sure thing.

q1085909155 commented 1 year ago

yeah, thanks for the answer Regarding the error log, I have made sure that the path and file are correct and that the "fingerprint" file is correctly generated in the player's local area. This mistake has only happened once. My first thought is to report it to you. So far, it has not happened again. You didn't seem to answer my question about the tf2server banning time of 5, which may be my misunderstanding. For the banned players, it was the anti-cheating in my server that banned them, not from sourceban web. When I checked the time on the web, the normal display was less than 1440min (1 day). However, the fingerprint log records 5 minutes. In my fragmentary memory, it seems that using sourcemod to block a player from TF2server's console only shows that the id is blocked for 5 minutes, but it's actually a temporary block that disappears if the server is restarted. In summary, every time a player is banned by the server, if the command "listid" is used to list the banned player in the TF2server console, their time is only 5 minutes

q1085909155 commented 1 year ago

How does Rebanner remove is_banned flags from it's database?

If an account that is found to have is_banned = 1 manages to get to OnClientAuthorized and OnClientPutInServer, it means that they're no longer banned (Source would've cut the connection way earlier if they were still banned). With that in mind, I can safely assume that if one gets to being processed by Rebanner, I can get rid of their is_banned flag if they have it.

Is that why I care about time

Because I'm worried that the cheater has bypassed sourceban, steamid and IP, and is using a new account, if Fingerprint's ban has expired but sourceban's hasn't, then the cheater can re-enter the server

q1085909155 commented 1 year ago

So I was worried if the ban on fingerprints was only five minutes, because that's what I saw in the database

Nolo001-Aha commented 1 year ago

5 minute bans is how SourceBans++ handles WebUI bans - it updates the database with the ban record, then runs "banid 5 " via rcon. If player tries to join within the next 5 minutes, Source won't let them as they'll be still banned for 5 minutes. If they join later, SourceBans will detect that and re-ban them for 5 minutes again. That's literally how SB is designed. Without custom forwards it'll be hard to make it compatible with Rebanner.

q1085909155 commented 1 year ago

"Sourcebans+ + bans applied via Web UI are not taken into account - a SourceBans design limitation that I'm unable to work around yet."

Would it be effective if administrators were blocking players in the game? Because I found that only "Processing ban event of ♂, ♂" appeared in the log instead of "Successfully flagged as banned. Duration is 5". image

Nolo001-Aha commented 1 year ago

Hello yet again;

I pushed the new version to the main branch. It should work in CS:GO and TF2 without relying solely on sv_allowupload. Please compile and install that version.

Before use, PLEASE read the wiki page - it describes the new installation process and requirements in detail. 1.3 needs a FastDownloads server configured. https://github.com/Nolo001-Aha/SourceMod-ReBanner/wiki

Important: It is highly recommended to drop the old database and create a new one due to changes in fingerprint length.

q1085909155 commented 1 year ago

oh hi, I have used the new version, please help me to check whether these logs are normal, or if there is any problem. The fingerprint file has correctly appeared on my computer. By the way, the reason for being kicked is not correctly displayed according to my file configuration, I'm not sure if the reason for being banned is the same. image

q1085909155 commented 1 year ago

The reason for being kicked It shows the default.

q1085909155 commented 1 year ago

What's going on? They all share a "fingerprint". I used MySQL image

q1085909155 commented 1 year ago

I'm pretty sure they're not the same person

q1085909155 commented 1 year ago

Sorry, my problem, after I reinstalled the fingerprint and rebooted the server, the fingerprint list seems to work.

Nolo001-Aha commented 1 year ago

Hello.

This is very unusual.

Question - what is your default sv_downloadurl value? The logs seem quite strange - "Diverting to new FastDownload address:" should print a full URL address, while you have just the "custom" part printed.

Something tells me that your FastDownloads address is set up incorrectly, and clients fail to query it. What could be happening is, the Source Engine is designed to attempt to download files it cannot find on the FastDL address from the game server instead. So, if your FastDl/sv_downloadurl are broken/incorrect, clients will instead attempt to download files from the game server.

Nolo001-Aha commented 1 year ago

To mitigate this, I strongly recommend setting sv_downloadurl to your default value (i.e. sm_cvar sv_downloadurl "http://server.fastdl.com/tf") in your server.cfg file.

q1085909155 commented 1 year ago

oh, I immediately went to check sv_downloadurl and found that the console had printed me empty (" "), I was pretty sure sv_downloadurl was already written in my server.cfg

Nolo001-Aha commented 1 year ago

That's the problem then. Use server.cfg to set the cvar. Re-Banner grabs the default ConVar every map change and stores it in memory to both construct custom URLs and revert to original values.

q1085909155 commented 1 year ago

image Is that right? I'm using this.

Nolo001-Aha commented 1 year ago

Open this address in your browser. You should see a bunch of folders: materials, models, sound, etc (whatever your fastdl content is).

If your game is TF2, then the value should be "http://server.com/tf"

If your game is CSGO, then the value should be "http://server.com/csgo"

q1085909155 commented 1 year ago

My access address is set private, can not be directly accessed, but TF2 can normally request files and download it, personal computer is not directly accessed. Because I set the CDN. Also, my path does not have tf folder behind it, but direct materials, models, sound, etc. image

Nolo001-Aha commented 1 year ago

If so, then it should be fine.

Try the following address:

http://YOURSERVER.COM/serve.php?id=123456789&url=/YOURFINGERPRINTPATH

(note the forward slash before the fingerprint path, it's important).

If serve.php is functioning properly, fingerprint should start downloading and its value will be 123456789.

Nolo001-Aha commented 1 year ago

Also of course don't forget to modify the fingerprint path inside your serve.php file so that it matches to that of your server's.

q1085909155 commented 1 year ago

image After accessing it, he downloaded serve.php....

q1085909155 commented 1 year ago

If the process is difficult, I would like to download it using Network alone and not through fastdl

q1085909155 commented 1 year ago

Now the serious problem is that it has set my sv_downloadurl to empty and players cannot download any resources

Nolo001-Aha commented 1 year ago

Unload rebanner.smx, type "exec server.cfg" in your remote server console and load rebanner.smx back.

Nolo001-Aha commented 1 year ago

Does your FastDL have PHP installed and configured? It sounds like a fastdl issue, it treats serve.php as a regular file instead of a php script.

q1085909155 commented 1 year ago

I also found this problem, FastDL I use a third party, did not see the PHP setup project, most likely did not configure PHP, so I want to use only Network, not FastDL

q1085909155 commented 1 year ago

Do I need to go back to 1.1?

Nolo001-Aha commented 1 year ago

If you're not in CSGO (where FileNet_SendFile is useless with default client cvars and fastdl is basically a must), then you can probably go back to 1.1, though I won't be able to support and troubleshoot it forever...

In that case make sure to change the fingerprint path again and re-create the database.

q1085909155 commented 1 year ago

ok, your fork of File Network Do I need to follow your latest updates every time?

q1085909155 commented 1 year ago

image When I compile, an error occurs and version 1.11 is used

Nolo001-Aha commented 1 year ago

Re-Banner is split into several files. rebanner.sp is the main one, and there are two more under the include folder, bans.sp and database.sp. You need to extract them to your compiler's include folder and compile rebanner.sp again.

Nolo001-Aha commented 1 year ago

ok, your fork of File Network Do I need to follow your latest updates every time?

Yes, it's probably the safest option.

q1085909155 commented 1 year ago

image When I compile, an error occurs and version 1.11 is used

I've put it in the Include folder

q1085909155 commented 1 year ago

image

Nolo001-Aha commented 1 year ago

That is worrying...

Open rebanner.sp, near the top you should see this:

image

modify the includes to look like this:

image

and move bans.sp and database.sp from the include folder to the root compiler folder.

q1085909155 commented 1 year ago

unsuccessful

Nolo001-Aha commented 1 year ago

Worst case you can just download the 1.1 release here: https://github.com/Nolo001-Aha/SourceMod-ReBanner/releases/tag/1.1

q1085909155 commented 1 year ago

oh hi, I have used the new version, please help me to check whether these logs are normal, or if there is any problem. The fingerprint file has correctly appeared on my computer. By the way, the reason for being kicked is not correctly displayed according to my file configuration, I'm not sure if the reason for being banned is the same. image

Well, I just want to do the translation work for the plugin so that it can display my language in the log. By the way, what do you think about this problem? Cause The default value is displayed

Nolo001-Aha commented 1 year ago

That is also unusual - the config should get parsed properly.

By "default value", do you mean "File tampering detected! Please download server files from scratch", or do you mean "Kicked from server"?

q1085909155 commented 1 year ago

yes,I'm not sure if banning substitute accounts would be the same, as I've only been kicked so far

Nolo001-Aha commented 1 year ago

So it just doesn't read the config value, interesting.

Give me 10 minutes, I'll check locally.

Nolo001-Aha commented 1 year ago

Haha, I should feel shame now as the issue is stupid simple.

Open rebanner.sp, find "KickClient" and replace ANTITAMPER_ACTION_REASON with antitamperKickReason.

I'll push the fix to master asap.

q1085909155 commented 1 year ago

But I can't compile it, please update and compile version 1.1

Nolo001-Aha commented 1 year ago

rebanner.smx.zip

Compiled 1.1 with the fix. ZIP-compressed, as GitHub doesn't accept .smx.

q1085909155 commented 1 year ago

Thank you for your patience to answer my questions