RE:NODE

უსაფრთხოება11 წუთის საკითხავი

თამაშის სერვერის ადმინ ანგარიშების უსაფრთხოება

როგორ წყვეტს თითოეული თამაში, ვინ არის ადმინი, რატომ ჟონავს საერთო ადმინ-პაროლები და სახელით ადმინები, და როგორ მისცე სტაფს ძალა, რომელსაც სუფთად დაიბრუნებ.

0 მკითხველი

თამაშის სერვერზე ვინმეს ადმინად დანიშვნის ყველაზე უსაფრთხო გზა პლატფორმის ID-ით არის - SteamID64, Minecraft-ის UUID online რეჟიმში, FiveM-ის licence იდენტიფიკატორი - ჩაწერილი ფაილში, რომლის რედაქტირებაც მხოლოდ შენ შეგიძლია, თითო ხაზი თითო ადამიანზე. ყველაზე ნაკლებად უსაფრთხო გზა ერთი ადმინ-პაროლია, რომელსაც ყველა თამაშში კრეფს, რადგან მისი კვალის გაყოლა შეუძლებელია, ერთი ადამიანისგან უკან ვერ წაიღებ და ის უფრო შორს მიდის, ვიდრე გგონია. თამაშების უმეტესობა ერთს ან ორივეს გთავაზობს; შენი საქმეა, სადაც არსებობს, ID-ზე დაფუძნებული ვარიანტი აირჩიო, სადაც არა - პაროლზე დაფუძნებული გრძელი, იშვიათად გამოყენებული და პერიოდულად შეცვლილი გქონდეს, და დარწმუნდე, რომ ამ ID-ების უკან მდგომი ანგარიშები თავად არის ძნელად მოსაპარი.

ეს სტატია თამაშის შიგნით ადმინის ძალაზეა: ვის შეუძლია თამაშიდან გააგდოს, დაბლოკოს, ნივთები გააჩინოს და კონსოლის ბრძანებები გაუშვას. პანელის ანგარიში, რომელსაც სერვერი ეკუთვნის, ცალკე, უფრო დიდი სამიზნეა და საკუთარი სტატია აქვს - ორფაქტორიანი ავთენტიკაცია პანელის ანგარიშზე, ხოლო სტაფისთვის პანელზე წვდომის მიცემას შენი პაროლის გარეშე ხსნის subuser-ები და მინიმალური პრივილეგია.

სამი გზა, რომლითაც თამაშები წყვეტენ, ვინ არის ადმინი#

ყოველი თამაში სამი მოდელიდან ერთს იყენებს, ზოგჯერ ორს ერთდროულად.

მოდელიმაგალითიკვალი ჩანსერთი ადამიანისგან წართმევა
ID-ების სია ფაილშიops.json, adminlist.txt, admins_simple.iniკიკი
საერთო ადმინ-პაროლიARK ServerAdminPassword, Palworld AdminPasswordარაარა
თითო მოთამაშის ანგარიში თამაშშიProject Zomboid-ის ანგარიშებიკიკი

ID-ების სიები კარგი შემთხვევაა. ადმინის სტატუსი პლატფორმის ანგარიშს მიჰყვება, პლატფორმამ ეს ანგარიში უკვე გადაამოწმა, ხოლო ერთი ადამიანის მოშორება ერთი ხაზის წაშლას ნიშნავს. სუსტი წერტილებია ID-ის უკან მდგომი ანგარიში და თამაშები ან რეჟიმები, სადაც ID რეალურად არ მოწმდება.

საერთო პაროლები ცუდი შემთხვევაა. ვინც პაროლი იცის, ადმინია, ლოგი იშვიათად ამბობს, რომელმა ადამიანმა გამოიყენა, ხოლო ერთი ადამიანის მოშორება ყველასთვის პაროლის შეცვლას ნიშნავს. ისინი პროგნოზირებადი გზებითაც ჟონავს: სქრინშოტები, სტრიმები, არასწორ Discord არხში ჩასმული შეტყობინება, ყოფილი სტაფის წევრი, რომელსაც ის ჯერ კიდევ ახსოვს.

თითო მოთამაშის ანგარიშები შუაშია. თამაშს საკუთარი მომხმარებლის სახელისა და პაროლის სისტემა აქვს, ასე რომ ადმინის ძალა სახელიან ანგარიშს ეკუთვნის, მაგრამ ეს პაროლები იმდენად ძლიერია, რამდენადაც შენი მოთამაშეები გააკეთებენ.

სად ცხოვრობს ადმინის ძალა, თამაშების მიხედვით#

თამაშისად განისაზღვრება ადმინებიმოდელი
Minecraft (Java)ops.json, დონე op-permission-level-იდანUUID-ების სია
Valheimadminlist.txtპლატფორმის ID-ების სია
Rustownerid / moderatorid, ინახება users.cfg-შიSteamID-ების სია
Source თამაშებიSourceMod admins_simple.ini ან admins.cfgSteamID-ების სია
CS 1.6AMX Mod X users.iniID, IP ან სახელი
FiveMadd_principal და ACE-ები server.cfg-შიიდენტიფიკატორების სია
7 Days to Dieserveradmin.xmlპლატფორმის ID-ების სია
ARKServerAdminPassword, AllowedCheaterSteamIDs.txtპაროლი ან ID-ების სია
PalworldAdminPassword ფაილში PalWorldSettings.iniსაერთო პაროლი
Project Zomboidწვდომის დონე სერვერის ანგარიშზეთითო მოთამაშის ანგარიში
UnturnedOwner ფაილში Commands.dat, პლუს adminSteamID-ების სია

ზოგიერთ მათგანს შენიშვნა სჭირდება.

Rust-ზე ownerid 76561198012345678 "Name" "reason" და moderatorid ადმინის ორ დონეს გასცემს, ხოლო server.writecfg მათ users.cfg-ში წერს, სერვერის identity-ის cfg საქაღალდეში. თუ server.writecfg დაგავიწყდა, უფლება მომდევნო რესტარტისას ქრება, და ეს მოულოდნელად ხშირი მიზეზია ჩივილისა "ჩემი ადმინი სულ ქრება".

ARK-ზე enablecheats <password>-ის აკრეფა თამაშის კონსოლში სესიის განმავლობაში ადმინად გაქცევს. SteamID-ები, რომლებიც AllowedCheaterSteamIDs.txt-შია ჩამოთვლილი (ShooterGame/Saved-ში), ადმინობას პაროლის გარეშე იღებს. სტაფისთვის ფაილი გამოიყენე, პაროლი კი გრძელ საიდუმლოდ შეინახე, რომელსაც რუტინულად არავინ კრეფს.

Palworld-ზე ადმინობა ჩატში /AdminPassword <password>-ით მიიღება, და vanilla სერვერში თითო მოთამაშის ალტერნატივა არ არსებობს. პაროლი ერთადერთი კონტროლია, რაც გაქვს, ამიტომ გრძელი გააკეთე, სტრიმზე არასოდეს გამოიყენო და შეცვალე ყოველ ჯერზე, როცა ვინმე გუნდიდან მიდის - დანარჩენი Palworld-ის ადმინ-ბრძანებები და RCON-შია.

7 Days to Die-ზე serveradmin.xml save-ის მონაცემების საქაღალდეშია და მომხმარებლებს წვდომის დონით ჩამოთვლის, სადაც 0 უმაღლესია. XML ფორმატი დაახლოებით 1.0 ვერსიის გარშემო შეიცვალა და ID-სთან ერთად პლატფორმაც დაემატა, ამიტომ ფორმატი იმ ფაილიდან დააკოპირე, რომელიც შენმა სერვერმა შექმნა, და არა ძველი გზამკვლევიდან.

FiveM-ზე ადმინობა იდენტიფიკატორზე მიბმული ACE უფლებაა:

server.cfg
add_ace group.admin command allowadd_ace group.admin command.quit denyadd_principal identifier.fivem:1234567 group.adminadd_principal identifier.discord:123456789012345678 group.moderator

უპირატესობა მიანიჭე license:, fivem: ან steam: იდენტიფიკატორებს. discord: იდენტიფიკატორი იმდენად უსაფრთხოა, რამდენადაც ამ ადამიანის Discord ანგარიში, და აქ მივდივართ ნამდვილ სუსტ წერტილამდე.

ნამდვილი სამიზნე ID-ის უკან მდგომი ანგარიშია#

ID-ზე დაფუძნებული ადმინების სია პრობლემას არ აქრობს, მხოლოდ გადააქვს. შენი ადმინ-პაროლი არავის სჭირდება, თუ შენი ერთ-ერთი ადმინის სახელით შესვლა შეუძლია.

Steam ანგარიშები მთავარი სამიზნეა Source-ის, Rust-ის, Valheim-ის, ARK-ისა და 7 Days to Die-ის ადმინებისთვის, და მათ მუდმივად ფიშინგავენ. გავრცელებული მეთოდებია ყალბი ვაჭრობის ან ტურნირის საიტები, რომლებიც Steam-ის შესვლის გვერდის ასლს აჩვენებს, "მისცე ხმა ჩემს გუნდს" ბმულები და ყალბი შეტყობინებები "შენს ანგარიშზე საჩივარი შევიდა", რომლებიც შესვლის ფორმასთან მიდის. სტაფის წევრი, რომელიც ერთ-ერთ მათგანზე შევა, შენი სერვერის ადმინის უფლებებს თავის ინვენტართან ერთად გადასცემს.

რა მოსთხოვო ყველას, ვისაც ადმინად ნიშნავ:

  1. Steam Guard მობილური ავთენტიკატორით იმ ანგარიშზე, რომლის ID-საც სიაში წერ. ელფოსტის კოდები არაფერს სჯობს; ავთენტიკატორი კიდევ უკეთესია.
  2. ორფაქტორიანი ავთენტიკაცია Discord-ზე, თუ Discord-ის როლებს ადმინის რაიმე ძალა აქვს ან სტაფი იქ კოორდინირებს. გატეხილ Discord ანგარიშს სტაფის როლით შეუძლია შენს სხვა სტაფს დამაჯერებელი შეტყობინება "ახალი ადმინ-პაროლი" გაუგზავნოს.
  3. უნიკალური პაროლი ყოველ ჩართულ ანგარიშზე, პაროლების მენეჯერიდან.
  4. არანაირი საერთო ანგარიში. "ადმინის Steam ანგარიში", რომელშიც სამი ადამიანი შედის, საერთო პაროლია დამატებითი ნაბიჯებით, და მას ჩვეულებრივ ორფაქტორიანი ავთენტიკაცია არ აქვს, რადგან კოდის გაზიარება მოუხერხებელია.

ამათგან არცერთი არ უნდა იყოს მკაცრი რეჟიმი. გახადე ეს სტაფად გახდომის ნაწილი, ერთხელ აუხსენი რატომ, და წყნარად შეამოწმე, როცა ვინმეს აწინაურებ.

სახელით ადმინები და შეუმოწმებელი ID-ები#

ზოგიერთ ადმინ-სისტემას შეუძლია მოთამაშეს სახელით დაემთხვეს, სახელი კი ის არის, რასაც მოთამაშე პარამეტრებში კრეფს. ეს ადმინების სიას გამოცნობის თამაშად აქცევს.

AMX Mod X CS 1.6-ზე კლასიკური შემთხვევაა. users.ini იღებს სახელს, IP-ს ან SteamID-ს, ხოლო ფლაგები განსაზღვრავს, როგორ შემოწმდეს ჩანაწერი:

addons/amxmodx/configs/users.ini
; "name/ip/steamid" "password" "access flags" "account flags""STEAM_0:1:1234567" "" "abcdefghijkmnopqrstu" "ce""Moderator Tom" "a-long-password" "bcdefij" "a"

ანგარიშის ფლაგი c ნიშნავს, რომ იდენტობა SteamID-ია, ხოლო e - რომ პაროლი არ მოწმდება, და ეს სწორი კომბინაციაა Steam-ით გადამოწმებული მოთამაშისთვის. სახელით ჩანაწერი ფლაგით a აგდებს ყველას, ვინც ამ სახელს იყენებს და პაროლს არ აწვდის. პაროლი კლიენტის კონსოლში setinfo _pw "password"-ით მიეწოდება (ველის სახელი amx_password_field-იდან მოდის amxx.cfg-ში).

ამ setinfo პაროლს უსიამოვნო თვისება აქვს: setinfo მნიშვნელობები ყველა სერვერს ეგზავნება, რომელსაც მოთამაშე უერთდება, და ნებისმიერ სერვერის მფლობელს მათი წაკითხვა შეუძლია. ადმინი, რომელიც setinfo _pw-ს თავის კონფიგში ინახავს და სხვა სერვერებზე თამაშობს, პაროლს ყველას უგზავნის. უპირატესობა SteamID ჩანაწერებს მიანიჭე.

მეორე დაჭერაც არსებობს. SteamID სანდოა მხოლოდ მაშინ, თუ სერვერმა ის Steam-თან გადაამოწმა. სერვერები, რომლებიც non-Steam კლიენტებს იღებს, ვერ ამოწმებს ID-ს, რომელსაც კლიენტი აცხადებს, და ასეთ სერვერებზე SteamID ადმინ-ჩანაწერების გაყალბება შეიძლება. თუ შენი CS 1.6 სერვერი non-Steam მოთამაშეებს იღებს, ადმინებისთვის გამოიყენე სახელი-პლუს-პაროლი ჩანაწერები ფლაგით a და ეს პაროლები საიდუმლოდ შეინახე.

Minecraft offline რეჟიმში იგივე პრობლემა აქვს. online-mode=false-ით და პროქსის გარეშე, რომელიც ავთენტიკაციას აკეთებს, მოთამაშის UUID მის აკრეფილ სახელზეა დამოკიდებული, ასე რომ ნებისმიერი, ვინც შენი სახელით შემოვა, ოპერატორია. offline რეჟიმი ლეგიტიმურია Velocity-ის ან BungeeCord-ის პროქსის უკან, რომელიც მოთამაშეებს ამოწმებს და მათ იდენტობას გადასცემს - მაგრამ მხოლოდ მაშინ, თუ backend სერვერებთან პირდაპირ დაკავშირება შეუძლებელია. Minecraft-ის whitelist და უფლებები უსაფრთხო განლაგებას ხსნის, ხოლო Minecraft LuckPerms - უხეში ოპერატორის სტატუსის ნამდვილი უფლებების ჯგუფებით ჩანაცვლებას.

სტაფისთვის ყველაფერზე ნაკლების მიცემა#

თამაშების უმეტესობაში ადმინობა ერთი გადამრთველია, მაგრამ თითქმის ყველა ადმინ-ფრეიმვორკი დონეებს გთავაზობს, და მათი გამოყენება ზღუდავს, რისი გაკეთება შეუძლია ერთ გატეხილ სტაფის ანგარიშს.

  • Minecraft: op-permission-level ფაილში server.properties განსაზღვრავს, რა შეუძლიათ ოპერატორებს, 1-იდან (spawn-ის დაცვის გვერდის ავლა) 4-მდე (ყველაფერი, /stop-ის ჩათვლით). კიდევ უკეთესი: op არავის მისცე მფლობელის გარდა, მოდერატორებს კი LuckPerms ჯგუფი მიეცი ზუსტად იმ ბრძანებებით, რომლებიც სჭირდებათ.
  • Rust: მოდერატორებისთვის moderatorid და არა ownerid. მფლობელებს სხვა ადმინების მართვა შეუძლიათ; მოდერატორებს - არა.
  • SourceMod: ფლაგები თითო ადამიანზე, ასე რომ მოდერატორი იღებს გაგდებას, ბანს და ჩატს (bcdj) RCon-ის (m) ან ჩიტების (n) გარეშე. SourceMod-ის ადმინ-ფლაგები და იმუნიტეტი ჯგუფებსა და იმუნიტეტს სრულად ხსნის.
  • FiveM: ACE ჯგუფები სახიფათო ბრძანებებზე აშკარა აკრძალვებით, როგორც ზემოთ მოყვანილ მაგალითში.
  • 7 Days to Die: წვდომის დონეები serveradmin.xml-ში და იმავე ფაილში თითო ბრძანების დონეები, ასე რომ 1-ლი დონის მოდერატორს გაგდება შეუძლია, ნივთების გაჩენა კი არა.

პრინციპი ყველგან ერთია: ადამიანს, რომელიც სამშაბათ საღამოობით ჩატს უყურებს, არ სჭირდება ბრძანებები, რომლებსაც სამყაროს წაშლა შეუძლია. ორი დონე - მფლობელი და მოდერატორი - საზოგადოებების უმეტესობისთვის საკმარისია.

პაროლების შეცვლა, წასვლის პროცესი და სტაფის წევრი, რომელიც მიდის#

წვდომა, რომელსაც სუფთად ვერ დაიბრუნებ, სამუდამოდ გაცემული წვდომაა. როცა ვინმე გუნდიდან მიდის, კარგად თუ ცუდად, სიას იმავე დღეს გაიარე:

  1. წაშალე მისი ID ყველა ადმინ-ფაილიდან და ქსელის ყველა სერვერიდან. საერთო ადმინ-ბაზა (მას ხსნის გლობალური ბანების სისტემები საზოგადოებებისთვის) ამას ხუთის ნაცვლად ერთ ცვლილებად აქცევს.
  2. შეცვალე ყველა საერთო პაროლი, რომელიც მან იცოდა: ARK-ის ან Palworld-ის ადმინ-პაროლი, RCON პაროლი, სერვერზე შესვლის ნებისმიერი პაროლი, ნებისმიერი ინსტრუმენტის მონაცემები. დიახ, ყველა, თუნდაც ის სანდო ყოფილიყო.
  3. ჩამოართვი პანელის subuser წვდომა და Discord-ის სტაფის როლი.
  4. შეამოწმე activity log მისი ანგარიშით ბოლო რამდენიმე დღეში შეტანილ ცვლილებებზე.
  5. მოძებნე, რა შეიძლება დაეტოვებინა: დამატებითი ჩანაწერი ადმინ-ფაილში სხვა ID-ით, დაგეგმილი დავალება, პლაგინი, რომელსაც ვერ ცნობ.

ეს მეხუთე ნაბიჯი პარანოიად ჟღერს მანამ, სანამ პირველად არ აღმოაჩენ, რომ ვინც მოაშორე, ალტ-ანგარიშით ადმინად დაბრუნდა, რადგან ალტის SteamID კვირების წინ დაამატა.

ადმინების ქმედებების ლოგირება#

ადმინის ძალის ზედამხედველობა და დაცვა ჩანაწერის გარეშე შეუძლებელია. როცა მოთამაშე ამბობს, რომ მოდერატორმა ძალა ბოროტად გამოიყენა, პასუხი ლოგით გინდა და არა შეგრძნებით.

  • SourceMod ადმინების ქმედებებს addons/sourcemod/logs-ში ლოგავს, ხოლო sm_show_activity განსაზღვრავს, როგორ ცხადდება ადმინის ქმედებები თამაშში.
  • Minecraft მოთამაშის მიერ გაშვებულ ყველა ბრძანებას სერვერის ლოგში წერს, ხოლო ისეთი პლაგინები, როგორიცაა CoreProtect, ბლოკებისა და კონტეინერების ცვლილებებს ინახავს.
  • Rust, 7 Days to Die და გადარჩენის თამაშების უმეტესობა კონსოლის ბრძანებებსა და ადმინის ქმედებებს სერვერის ლოგში წერს.
  • პანელი ინახავს activity log-ს თითო სერვერზე, რომელიც ფარავს ადამიანებს პანელზე წვდომით და არა ადამიანებს თამაშში.

შეინახე ეს ლოგები საკმარისად დიდხანს, რომ დავა დაფარონ - შენახვის მხარეს ხსნის სერვერის ლოგები, რომელთა შენახვაც ღირს - და დროდადრო წაიკითხე, მაშინაც, როცა არაფერი ხდება. ბოროტად გამოყენება იშვიათად იწყება რაღაც დრამატულით.

RE:NODE-ზე ახალი თამაშის სერვერის ადმინის, RCON-ისა და მონაცემთა ბაზის პაროლები თითო სერვერზე გენერირდება და არ რჩება ნაგულისხმევი, ხოლო პანელის კონსოლი RCON-ის გამოჩენის გარეშე მუშაობს, რაც ერთ საერთო საიდუმლოს მიმოქცევიდან იღებს. პანელის subuser-ებს შეიძლება მიეცეთ კონსოლზე წვდომა ფაილებზე ან ბილინგზე წვდომის გარეშე, ასე რომ სტაფის წევრს, რომელსაც ბრძანების გაშვება სჭირდება, სხვა არაფერი სჭირდება.

ადმინ-წვდომის პრობლემების მოგვარება#

ჩემი ადმინის უფლებები რესტარტის შემდეგ ქრება (Rust). გაუშვი ownerid, მაგრამ არა server.writecfg. ხელახლა მიანიჭე და კონფიგი ჩაწერე.

ops.json-ში საკუთარი თავი დავამატე და არაფერი მოხდა. სერვერი ops.json-ს გაშვებისას კითხულობს; სანაცვლოდ კონსოლიდან გამოიყენე /op <name>, ან გადატვირთე. შეამოწმე, რომ UUID შენი ანგარიშის online რეჟიმის UUID-ია და არა offline-ის.

SourceMod ადმინს ვერ ცნობს. SteamID-ის ფორმატი ფაილში არ ემთხვევა იმას, რასაც სერვერი ხედავს, ან ფაილს სინტაქსის შეცდომა აქვს. დააკოპირე ID status-იდან, გაუშვი sm_reloadadmins და addons/sourcemod/logs-ში ფაილთან დაკავშირებული შეცდომა მოძებნე.

ვიღაცას, ვინც სტაფი არ არის, ადმინობა აქვს. მოეპყარი ამას როგორც გატეხვას, სანამ საწინააღმდეგო არ დამტკიცდება. წაშალე ჩანაწერი, შეცვალე ყველა საერთო პაროლი, შეამოწმე activity log და ადმინ-ფაილები ყველა სერვერზე, და წაიკითხე რა ქნა, როცა შენი სერვერი გატეხეს, თუ რამეს იპოვი, რასაც ვერ ხსნი.

FAQ#

ადმინ-პაროლი უსაფრთხოა, თუ საკმარისად გრძელია?

გრძელი პაროლები გამოცნობას უძლებს, მაგრამ ადმინ-პაროლების უმეტესობა იკარგება გაზიარებით და არა გამოცნობით. საერთო პაროლის პრობლემა ის არის, რომ ვერ გაიგებ, ვინ გამოიყენა, და ერთი ადამიანისგან ვერ დაიბრუნებ. სადაც თამაშს ID-ების სია აქვს, ის გამოიყენე.

თანამფლობელს ჩემნაირი უფლებები უნდა მივცე?

მხოლოდ თუ მშვიდად იქნები, თუ ის ყველაფერს წაშლის. თამაშის უმაღლესი დონე რაც შეიძლება ნაკლებ ადამიანს მიეცი, ხშირად მხოლოდ მას, ვინც სერვერის საფასურს იხდის, და ყველა დანარჩენისთვის მოდერატორის დონე გამოიყენე.

შეუძლია მოთამაშეს SteamID გააყალბოს ადმინობის მისაღებად?

არა Steam-ით ავთენტიფიცირებულ სერვერზე. ID Steam-თან მოწმდება, როცა უერთდება. მისი გაყალბება შეიძლება სერვერებზე, რომლებიც non-Steam კლიენტებს იღებს, და თამაშებში ან რეჟიმებში, რომლებიც პლატფორმის ავთენტიკაციას გამოტოვებს, მაგალითად Minecraft-ში offline რეჟიმში პროქსის გარეშე.

რამდენად ხშირად უნდა შევცვალო RCON-ისა და ადმინის პაროლები?

ყოველ ჯერზე, როცა ვინმე, ვინც ისინი იცოდა, მიდის, როცა შეიძლება რომელიმე სტრიმზე ან სქრინშოტზე გამოჩენილიყო, და სხვა შემთხვევაში წელიწადში რამდენჯერმე. შეცვლა, რომელიც მხოლოდ კალენდრით ხდება, გამოტოვებს იმ მომენტებს, რომლებსაც რეალურად აქვს მნიშვნელობა.

მჭირდება თამაშში ადმინის უფლებები, თუ პანელის კონსოლი მაქვს?

უმეტესი ამოცანისთვის არა. კონსოლი ნებისმიერ სერვერის ბრძანებას უშვებს ისე, რომ თამაშში არ იყო, რაც მფლობელისთვის ხშირად ადმინის პერიოდული სამუშაოს უფრო უსაფრთხო გზაა.


კომენტარები

სრულიად ანონიმურად: ანგარიშის, ელფოსტის და cookie-ის გარეშე. ინახება მხოლოდ სახელი, ტექსტი და დრო - სხვა არაფერი. ბმულების რაოდენობა ლიმიტირებულია.

0/2000