Cela fait presque trois ans que j'ai commencé à utiliser Spigot [^ 1], mais je ne le comprenais toujours pas. [^ 1]: l'un des serveurs MOD de Minecraft. url: https://www.spigotmc.org/
Lorsque j'enquêtais sur la communication du serveur exécutant Spigot dans le but de renforcer la sécurité, etc., une connexion étrange a été trouvée ...
>> netstat -ntu
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
~Omission~
tcp6 0 1 xx.xx.xx.xx:35260 198.27.66.94:80 ESTABLISHED
Communiquer d'une manière ou d'une autre avec 198.27.66.94: 80
...
Quand j'ai vérifié le processus en utilisant le port avec lsof, c'était définitivement Spigot.
>> curl 198.27.66.94:80
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx on Debian!</title>
~Omission~
</html>
Cela ressemble à la page par défaut de nginx. Aucune information.
>> nslookup 198.27.66.94
Server: xx.xx.xx.xx
Address: xx.xx.xx.xx
Non-authoritative answer:
94.66.27.198.in-addr.arpa name = ns511765.ip-198-27-66.net.
Hmmm. Il semble qu'il n'ait pas été défini.
Grep le plug-in jar sans utilisation
>> unzip -c '*.jar' | grep '198\.27\.66\.94'
28 archives were successfully processed.
>> unzip -c '*.jar' | grep 'ns511765\.ip\-198\-27\-66\.net'
28 archives were successfully processed.
Je ne sais rien.
En dernier recours, j'ai essayé d'identifier le criminel en supprimant progressivement le plug-in, mais j'ai remarqué que la communication se produisait même lorsqu'aucun plug-in n'était installé au départ.
tcpdump (J'aurais dû le faire en premier.)
>> tcpdump dst host 198.27.66.94 -A
~Omission~
User-Agent: Java/1.8.0_191
Host: mcstats.org
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive
Content-type: application/x-www-form-urlencoded
Content-Length: 261
Le nom d'hôte de la destination de connexion est connu.
>> nslookup mcstats.org
Server: xx.xx.xx.xx
Address: xx.xx.xx.xx
Non-authoritative answer:
Name: mcstats.org
Address: 198.27.66.94
Ainsi, environ la moitié de l'identité de "198.27.66.94" a été trouvée.
Une fois que vous savez que le serveur Spigot lui-même est le coupable et le nom d'hôte, identifiez la partie pertinente du code.
Grep le fichier intermédiaire généré par BuildTools
>> grep -r 'mcstats.org' .
./Spigot/CraftBukkit-Patches/0015-Metrics.patch:+ private static final String BASE_URL = "http://mcstats.org";
./Spigot/CraftBukkit-Patches/0015-Metrics.patch:+ configuration.options().header("http://mcstats.org").copyDefaults(true);
./Spigot/Spigot-Server/src/main/java/org/spigotmc/Metrics.java: private static final String BASE_URL = "http://mcstats.org";
./Spigot/Spigot-Server/src/main/java/org/spigotmc/Metrics.java: configuration.options().header("http://mcstats.org").copyDefaults(true);
Binary file ./Spigot/Spigot-Server/target/classes/org/spigotmc/Metrics.class matches
Il semble y avoir une description liée à Spigot / Spigot-Server / src / main / java / org / spigotmc / Metrics.java
.
Vous pouvez vérifier le contenu du patch dans la partie correspondante ici. https://hub.spigotmc.org/stash/projects/SPIGOT/repos/spigot/browse/CraftBukkit-Patches/0015-Metrics.patch?at=refs%2Fheads%2Fversion%2F1.12.2
À propos, la version du serveur Spigot utilisée cette fois-ci est la 1.12.2, mais lors de la mise à jour vers la 1.13, le nom d'hôte est changé de mcstats.org
à mcstats.spigotmc.org
(et de http à https). Il semble que ce soit devenu. Vous pouvez voir le commit ici.
https://hub.spigotmc.org/stash/projects/SPIGOT/repos/spigot/commits/ed1cec9ae9ee07f1b51bdda14dfe14b40e92c9ed#CraftBukkit-Patches/0014-Metrics.patch
Il semble qu'il soit utilisé pour transmettre des informations statistiques. Actuellement, il ne semble pas fonctionner comme un service.
Comme vous pouvez le voir dans le contenu du patch, des statistiques telles que les informations sur le système d'exploitation du serveur, la version de Spigot et le nombre de joueurs sont envoyées à l'hôte indiqué ci-dessus.
Dans le passé, «mcstats.org» semble avoir exploité un service qui collecte des informations sur le serveur Minecraft et les affiche sur une interface graphique. BStats (https://bstats.org/) est désormais un service alternatif. https://www.spigotmc.org/threads/mcstats-down.193444/
Lors de la mise à jour vers la version 1.13, le nom d'hôte a été changé de mcstats.org
à mcstats.spigotmc.org
car il est prévu de l'utiliser dans le futur.
https://hub.spigotmc.org/jira/browse/SPIGOT-4203
Il s'agit d'une fonction qui n'est pas actuellement utilisée, vous voulez donc éviter toute communication inutile.
Vous pouvez désactiver cette fonctionnalité en définissant l'opt-out dans plugins / PluginMetrics / config.yml
sur true.
plugins/PluginMetrics/config.yml
# http://mcstats.org
# opt-out: false
opt-out: true
guid: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
debug: false
C'était une histoire que si vous aviez touché le serveur Spigot pendant près de trois ans, vous devriez en savoir beaucoup. (D'un autre côté, je me demande s'il y a beaucoup de gens qui ne le savent pas ...)
Il est rafraîchissant de comprendre la cause. Je sens que je peux bien dormir aujourd'hui.
Recommended Posts