RE:NODE

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

RCON უსაფრთხოდ: პორტები, პაროლები და პანელის კონსოლი

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

განახლებულია

0 მკითხველი

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

რა არის RCON და როგორ მუშაობს პროტოკოლი#

RCON TCP პროტოკოლია. კლიენტი უკავშირდება, აგზავნის პაროლს, და სერვერი ან იღებს, ან უარყოფს. ამის შემდეგ კლიენტი ბრძანების სტრიქონებს აგზავნის და გამოტანას იღებს. Valve-ის Source RCON პროტოკოლი ის არის, რომელსაც თითქმის ყველა ახორციელებს, Minecraft-ის ჩათვლით, ამიტომ ღირს პაკეტის ფორმის ნახვა:

ველიზომაშემცველობა
Size4 ბაიტიამ ველის შემდეგ ყველაფრის სიგრძე
ID4 ბაიტირიცხვი, რომელსაც შენ ირჩევ, უკან გადმოგცემენ
Type4 ბაიტი3 auth, 2 ბრძანება, 0 პასუხი
Bodyცვალებადიპაროლი ან ბრძანება, null-ით დასრულებული
Empty1 ბაიტიმეორე null ბაიტი

ყველა მთელი რიცხვი little-endian-ია, ხოლო მაქსიმალური პაკეტი 4096 ბაიტია. ავტორიზაცია არის type 3 პაკეტი, რომლის body პაროლია. სერვერი type 2 პაკეტით პასუხობს: თუ ID ემთხვევა იმას, რაც გაგზავნე, შესული ხარ; თუ ID არის -1, პაროლი არასწორი იყო.

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

  • პაროლი გადაიცემა როგორც არის. არ არის ჰეშირება, არ არის გამოწვევა, არ არის გასაღებების გაცვლა. ვინც ტრაფიკის წაკითხვის პოზიციაშია, პაროლს კითხულობს. ღია ინტერნეტში ეს იმაზე მეტი ადამიანია, ვიდრე ფიქრობ, და მოიცავს ყველა შუალედურ ქსელს შენსა და გერმანიას შორის.
  • სესია არ არსებობს. ყოველი კავშირი თავიდან ავტორიზდება. Brute-force მცდელობა უბრალოდ ბევრი კავშირია, და შეიზღუდება თუ არა, მთლიანად იმპლემენტაციაზეა დამოკიდებული.
  • ავტორიზაცია ან-ან-ია. RCON მომხმარებლები არ არსებობს და ბრძანებებზე უფლებები არ არის. ერთი პაროლი, სრული კონტროლი.

Minecraft-ის იმპლემენტაცია იგივე პროტოკოლია საკუთარი ნაგულისხმევი მნიშვნელობებით. ზოგი თამაში განსხვავდება: Rust RCON-ს ნედლი TCP-ის ნაცვლად WebSocket-ზე უშვებს, ხოლო 7 Days to Die Telnet-ს იყენებს, რაც იგივე იდეაა კიდევ უფრო ნაკლები დაცვით.

სად ცხოვრობს RCON თითოეულ თამაშში#

ყველაზე სასარგებლო რამ არის იცოდე, რომელი პორტი და რომელი პროტოკოლი, რადგან ეს განსაზღვრავს firewall-ის წესს.

თამაშიპარამეტრინაგულისხმევი პორტიპროტოკოლი
Minecraft Javaenable-rcon, rcon.port, rcon.password25575 TCPSource RCON
Source (TF2, Gmod, CS2)rcon_passwordთამაშის პორტი, TCPSource RCON
PalworldRCONEnabled, RCONPort, AdminPassword25575 TCPSource RCON
Project ZomboidRCONPort, RCONPassword27015 TCPSource RCON
Factorio--rcon-port, --rcon-passwordნაგულისხმევად არაSource RCON
7 Days to DieTelnetEnabled, TelnetPort8081 TCPTelnet
Rustrcon.port, rcon.password, rcon.web28016 TCPWebSocket
server.properties
enable-rcon=falsercon.port=25575rcon.password=broadcast-rcon-to-ops=true

Minecraft RCON-ით გამორთული და ცარიელი პაროლით მოდის, რაც სწორი ნაგულისხმევია. broadcast-rcon-to-ops ღირს ჩართულად დატოვებად: ის RCON ბრძანების გამოტანას ონლაინ ოპერატორებს უჩვენებს, ამიტომ თამაშში მყოფ ადმინს შეუძლია ნახოს, რომ ბრძანება გარედან მოდის. ეს უფასო შეჭრის აღმოჩენაა.

Source ძრავის შემთხვევას ერთი ნამდვილად სასარგებლო დეტალი აქვს. თამაშის ტრაფიკი UDP-ია თამაშის პორტზე; RCON არის TCP იმავე პორტის ნომერზე. ეს ნიშნავს, რომ firewall წესი, რომელიც TCP-ს პორტ 27015-ზე ბლოკავს, RCON-ს კლავს და ერთ მოთამაშეზეც არ მოქმედებს, რაც კონფიგების რედაქტირების გარეშე მისი Source სერვერზე დახურვის ყველაზე სუფთა გზაა.

bash
# Source server: block RCON, leave the game alone$ sudo ufw deny proto tcp to any port 27015$ sudo ufw allow proto udp to any port 27015

Palworld განსაკუთრებულ გაფრთხილებას იმსახურებს: RCONEnabled=True AdminPassword-ს RCON პაროლად იყენებს, ამიტომ თამაშისშიდა admin პაროლი და დაშორებული კონსოლის პაროლი ერთი და იგივე სტრიქონია. მოდერატორს admin პაროლი რომ მისცე, RCON-იც მიგიცია. Palworld-ის admin ბრძანებები და RCON ამ კონფიგურაციას სრულად განიხილავს.

გამორთე, თუ არაფერი იყენებს#

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

დასვი ერთი შეკითხვა: რა უკავშირდება მას? თუ პატიოსანი პასუხია "არაფერი", ან "Discord bot, რომელიც შევწყვიტე", გამორთე. Minecraft-ზე ეს არის enable-rcon=false და გადატვირთვა. Source-ზე ეს rcon_password-ის წაშლაა server.cfg-დან. Palworld-ზე ეს RCONEnabled=False-ია. თუ შენი ჰოსტი RCON-ისთვის ცალკე პორტს გამოყოფს, განაწილებაც მოხსენი, რომ საერთოდ არაფერი უსმენდეს.

თუ RCON გჭირდება, ექვსი წესი#

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

  1. გრძელი შემთხვევითი პაროლი, სხვაგან არსად გამოყენებული. არა შენი პანელის პაროლი, არა მონაცემთა ბაზის პაროლი, არა თამაშისშიდა admin პაროლი, სადაც თამაში მათ გამოყოფის საშუალებას გაძლევს. ოცდაოთხი შემთხვევითი სიმბოლო პაროლების მენეჯერიდან. პაროლი მთელი ავტორიზაციის სისტემაა, ამიტომ ისე მოექეცი.
  2. შეზღუდე წყარო მისამართით. მთელი ინტერნეტიდან მისაწვდომი RCON brute-force სამიზნეა, ზოგ იმპლემენტაციაში დაბლოკვის გარეშე. შეზღუდე მისამართებით, რომლებსაც აკონტროლებ, ან საერთოდ ნუ გამოაჩენ - იხილე შემდეგი თავი.
  3. არასოდეს ჩასვა screenshot-ში. კლასიკური გაჟონვა კონსოლის screenshot-ია, რომელიც support არხში ჩასმულია და გაშვების არგუმენტები ჩანს. მეორე კლასიკური გაჟონვა bot-ის კონფიგურაციის ფაილის შემცველი საჯარო GitHub რეპოზიტორიაა. გარემოს ცვლადები და საიდუმლოებები გიხსნის, როგორ შეინახო ორივესგან მოშორებით.
  4. შეცვალე, როცა ვინმე, ვისაც ჰქონდა, აღარ მონაწილეობს. გაზიარებული საიდუმლო სამუდამოდ გაზიარებულია, სანამ არ შეიცვლება. ეს იმავე ჩამონათვალშია, რომელშიც მათი subuser ანგარიშის მოხსნა, რასაც subuser-ები და უმცირესი პრივილეგია აღწერს.
  5. ჩაიწერე კავშირები. Source-ზე sv_rcon_log 1 RCON აქტივობას წერს. შენს კონსოლში გამოჩენილი წარუმატებელი ავტორიზაციის მცდელობები ყველაზე ნათელი ადრეული გაფრთხილებაა, რომელსაც მიიღებ, და ღირს პერიოდულად შემოწმებად და არა არასოდეს. ლოგები, რომლებიც ღირს შენახვად უფრო ფართო სიას შეიცავს.
  6. გამოიყენე წარუმატებლობის ლიმიტები, სადაც თამაშს აქვს. Source სერვერებს აქვთ cvar-ების პატარა ოჯახი იმ მისამართების დასაბანავებლად, რომლებიც ავტორიზაციას ვერ გადიან:
server.cfg
// Ban an address for this many minutes after too many failures. 0 means permanentsv_rcon_banpenalty 60// Failures before the address is bannedsv_rcon_maxfailures 5// Failures within the time window that trigger a bansv_rcon_minfailures 3sv_rcon_minfailuretime 30sv_rcon_log 1

Vanilla Minecraft-ს ეკვივალენტი არ აქვს. ჩავარდნილი RCON შესვლა კავშირს ხურავს და მეტი არაფერი, ამიტომ თავდამსხმელს შეუძლია ისე სწრაფად სცადოს, როგორც ქსელი იძლევა. ეს მეორე წესს Minecraft-ზე ყველგანზე უფრო მნიშვნელოვანს ხდის.

გაითვალისწინე, რომ sv_rcon_whitelist_address Source-ზე სახელის მიუხედავად allow list არ არის: ის ასახელებს მისამართს, რომელიც ზემოთ მოცემული წესებით არასოდეს დაიბანება. ის სხვა ვინმეს დაკავშირებას არ უშლის ხელს. ამისთვის firewall გამოიყენე.

სათანადო შეზღუდვა#

გაშვებული სერვერის admin ინტერფეისამდე მისვლის სამი გზა არსებობს და ისინი თანაბრად ღია არ არის.

HTTPSSSHღია ინტერნეტიშენლეპტოპი ან ტელეფონიპანელის კონსოლიანგარიში და 2FASSH გვირაბიდაშიფრულიRCON პორტიუბრალო ტექსტის პაროლიგეიმ სერვერიპროცესი
admin ბრძანების გაგზავნის სამი გზა

პანელის კონსოლი იგივე შესაძლებლობაა იმ ანგარიშის უკან, რომელსაც უკვე სათანადოდ იცავ. ეს სერვერის რეალური standard output და input-ია HTTPS-ზე, ბრძანების ხაზით, ისტორიითა და tab-ით შევსებით, პაროლის, მეორე ფაქტორისა და გასაუქმებელი სესიის უკან. არ არის მეორე credential, დამატებითი პორტი და უბრალო ტექსტით არაფერი. თუ შენი ჰოსტი გაძლევს, ეს უნდა იყოს ნაგულისხმევი და RCON გამონაკლისი.

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

bash
$ ssh -N -L 25575:127.0.0.1:25575 you@your-server# in another terminal, the client now talks to a local port$ mcrcon -H 127.0.0.1 -P 25575 -p "$RCON_PASSWORD" "list"

არაფერი არ ჩანს საჯაროდ, ტრაფიკი დაშიფრულია, ხოლო წვდომას შენი SSH გასაღები არეგულირებს და არა გაზიარებული სტრიქონი. SSH გასაღებები და გამაგრება ამის გასაღების ნახევარს განიხილავს.

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

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

ხელსაწყოები და სკრიპტები#

თუ ავტომატიზაციას აკეთებ, ორი კლიენტი უმეტეს საჭიროებას ფარავს. mcrcon პატარა C კლიენტია, რომელიც სახელის მიუხედავად ნებისმიერ Source RCON სერვერთან მუშაობს, ხოლო rcon-cli Go კლიენტია შენახული სერვერებისთვის კონფიგურაციის ფაილით.

bash
# One command and exit$ mcrcon -H 127.0.0.1 -P 25575 -p "$RCON_PASSWORD" "say Restarting in 5 minutes"# Interactive terminal mode$ mcrcon -H 127.0.0.1 -P 25575 -p "$RCON_PASSWORD" -t# Several commands in one connection$ mcrcon -H 127.0.0.1 -P 25575 -p "$RCON_PASSWORD" "save-all" "say Saved"

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

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

რას აკეთებს ვინმე მოპარული RCON პაროლით#

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

  • Minecraft. თავისთვის op, შენთვის deop, whitelist off, gamemode creative, შემდეგ სამყაროს რედაქტირების ნებისმიერი ბრძანება. stop მომენტში, როცა სამყარო არ შენახულა. სამყაროს რედაქტორის მსგავსი plugin-ის დაყენებისას ზიანი chunk-ებით იზომება.
  • Garry's Mod და სხვა Source თამაშები. lua_run თვითნებურ სერვერის მხარის Lua-ს ასრულებს. ეს ფაილებზე წვდომაა, HTTP მოთხოვნები და მუდმივობა შენს კონტეინერში. sv_downloadurl შეიძლება თავდამსხმელის მიერ კონტროლირებულ სერვერზე მიუთითებდეს, რომელიც შემდეგ შენს მოთამაშეებს ფაილებს აწვდის. ეს სიაში ყველაზე უარესი შემთხვევაა.
  • Palworld, Project Zomboid, 7 Days to Die. გამორთვა, kick, ban, გაწმენდასთან მიახლოებული admin ბრძანებები, და გამორთვა, რომელიც დროში ისე გაწყობილია, რომ ყველაზე მეტი პროგრესი დაიკარგოს. კონსოლი admin ინტერფეისია, ამიტომ ყველაფერი, რაც ადმინს შეუძლია, მაგიდაზეა.
  • ნებისმიერი თამაში. განმეორებითი გაჩერებები. სერვერი, რომელიც ვერ რჩება ჩართული, თავის საზოგადოებას დაახლოებით ერთ კვირაში კარგავს, რაც მეტოქისთვის მთელი მიზანია.

თუ ფიქრობ, რომ RCON პაროლი გაჟონა, მოექეცი როგორც კომპრომეტაციას და არა შიშს: შეცვალე, შეცვალე თამაშისშიდა admin პაროლი, თუ თამაში მათ ერთად იყენებს, ყველაფერზე ადრე მიმდინარე მდგომარეობის backup გადაიღე, სანამ რამე გადაწერს, და კონსოლის ლოგი უკუღმა წაიკითხე ბრძანებებისთვის, რომლებიც არ გაგიგზავნია. რა გააკეთო, როცა შენი სერვერი გატეხეს ამ პროცედურის გრძელი ვერსიაა.

პრობლემების მოგვარება#

Connection refused. არაფერი უსმენს. RCON გამორთულია, პაროლი ცარიელია (რაც Source-ზე მას ათიშავს), სერვერს გაშვება არ დაუსრულებია, ან არასწორ პორტზე ხარ. გაშვების ლოგში შეამოწმე ხაზი, რომელიც ადასტურებს, რომ RCON ჩაირთო.

კავშირი უარყოფის ნაცვლად timeout-ს იღებს. Firewall პაკეტებს ჩამოაგდებს და არ უარყოფს. ეს ჩვეულებრივ ჰოსტის firewall-ია ან პორტი არ არის გამოყოფილი და არა თამაში.

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

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

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

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

FAQ#

საერთოდ უნდა გამოვიყენო RCON?

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

დაშიფრულია RCON?

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

შემიძლია RCON პორტი შევცვალო მის დასამალად?

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

რა პაროლს იყენებს RCON RE:NODE-ზე?

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

მუშაობს RCON, თუ სერვერი ჯერ იწყება?

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

შემიძლია მოდერატორს პანელზე წვდომის ნაცვლად RCON მივცე?

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


კომენტარები

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

0/2000