Jump to content
Sign in to follow this  
RedTeapot

Дела админские

Recommended Posts

В общем, я решил создать тему, куда я буду писать информацию, касающуюся администрирования сервера, но не связанную с сайтом. Просто потому что иначе я не знаю, куда все это складывать.

 

 


 

 

Реализовал посадку за прокси.

 

Есть белый список - список игроков, которых не сажает ни при каких условиях. Если кто-то хочет добавиться - пишите.

 

Спойлер

RedTeapot - @RedTeapot

Lady_Lava - @Lady_Lava

Mexises - @Mexises

 

При определении прокси выполняются следующие команды ({} заменяется на никнейм игрока):

Спойлер

tellraw {} "Кажется, Вы используете прокси. Это не очень разрешено. Для выпуска из тюрьмы напишите на форум: https://forum.bbyaworld.com/"
scoreboard players set {} alarmCode 103

 

 

 


 

 

Также происходит посадка слишком быстро богатеющих новичков. Подробнее тут.

 

Edited by RedTeapot
Пофиксил ник Лавы в вайтлисте
  • Thanks 1
  • Diamond 1

Share this post


Link to post
Share on other sites

В 18.09.2018 в 15:29, RedTeapot сказал:

Есть белый список - список игроков, которых не сажает ни при каких условиях

Какие критерии входа в этот список?

Share this post


Link to post
Share on other sites
Достижения

Особых - никаких.

Для начала можешь попробовать описать - зачем тебе прокси, какой именно сервис используешь и зачем попадение в белый список?

Share this post


Link to post
Share on other sites

14 часов назад, BBya_Elsirion сказал:

Какие критерии входа в этот список?

 

Просто сюда пишешь никнеймы, которые надо добавить. Есесна, ты за них отвечаешь.

 

 


 

 

На всякий решил еще прописать, как происходит запуск и работа с игровым сервером.

 

Работает оно все в screen-сессии юзера mcserver.

 

Для создания сессии (например, после рестарта VPS) юзаем это:

screen -dmS mcserver

Оно запустит сессию, но не подключится к ней.

 

Для подключения к уже работающей сессии вводим это:

screen -x mcserver

Для отключения от сессии (без ее остановки) жмем Ctrl-A, потом D.

 

В целом, это сообщение - памятка мне и, возможно, кому-то еще.

 

 


 

 

Поднял ufw. По умолчанию все порты закрыты, работаем по белому списку.

 

Спойлер

80 - HTTP

443 - HTTPS

22568 - SSH

22570 - GetScoreboardVariable

25565 - Minecraft Server

25566 - Minecraft Server Query

28565 - Dynmap

 

Плюс 5 к безопасности. И RCON теперь наружу не торчит.

Edited by RedTeapot
Уточнил, как работает screen -dmS

Share this post


Link to post
Share on other sites

У меня такое бывало, когда неправильно игрался с переменной - Admins, которая должна быть = 1

 + со всякими командами Prisoners и значением переменной alarmCode: нужно всё в правильной последовательности выставить = тогда не будет сажать )

Share this post


Link to post
Share on other sites

1 час назад, Admin сказал:

У меня такое бывало, когда неправильно игрался с переменной - Admins, которая должна быть = 1

 + со всякими командами Prisoners и значением переменной alarmCode: нужно всё в правильной последовательности выставить = тогда не будет сажать )

да не, технически меня не сажает, но при каждом заходе меняет мой алармкод на 103 и пишет, что я оготай. собственно из-за админс 1 меня и не сажает

Share this post


Link to post
Share on other sites
Достижения

Так, пара апдейтов.

 

Потрогал банилку за прокси:

  • Пофиксил уязвимость, позволявшую любому игроку посадить любого игрока, написав определенное сообщение в чат
  • Пофиксил работу с вайтлистом: раньше он просто не работал (был косяк в загрузке конфига скрипта)
  • Ну и по мелочи - поправил ник Лавы в вайтлисте на правильный (изначально было пропущено подчеркивание)

Share this post


Link to post
Share on other sites

6 минут назад, RedTeapot сказал:

уязвимость, позволявшую любому игроку посадить любого игрока, написав определенное сообщение в чат

Наверное, это сообщение выглядело примерно так:

 

import { savedState } from '../files/default_struct.js';
import {objMap}  from '../files/objMap.js';

export function nFormatter(num, digits) {
  var si = [
    { value: 1, symbol: '' },
    { value: 1e3, symbol: 'k' },
    { value: 1e6, symbol: 'M' },
    { value: 1e9, symbol: 'B' },
    { value: 1e12, symbol: 'T' },
    { value: 1e15, symbol: 'P' },
    { value: 1e18, symbol: 'E' },
  ];
  var rx = /\.0+$|(\.[0-9]*[1-9])0+$/;
  var i;
  for (i = si.length - 1; i > 0; i--) {
    if (num >= si[i].value) {
      break;
    }
  }
  return (num / si[i].value).toFixed(digits).replace(rx, '$1') + si[i].symbol;
}

 

  • Haha 1

Share this post


Link to post
Share on other sites

1 минуту назад, Admin сказал:

Наверное, это сообщение выглядело примерно так:

 


import { savedState } from '../files/default_struct.js';
import {objMap}  from '../files/objMap.js';

export function nFormatter(num, digits) {
  var si = [
    { value: 1, symbol: '' },
    { value: 1e3, symbol: 'k' },
    { value: 1e6, symbol: 'M' },
    { value: 1e9, symbol: 'B' },
    { value: 1e12, symbol: 'T' },
    { value: 1e15, symbol: 'P' },
    { value: 1e18, symbol: 'E' },
  ];
  var rx = /\.0+$|(\.[0-9]*[1-9])0+$/;
  var i;
  for (i = si.length - 1; i > 0; i--) {
    if (num >= si[i].value) {
      break;
    }
  }
  return (num / si[i].value).toFixed(digits).replace(rx, '$1') + si[i].symbol;
}

 

 

Почти. Могу в личку отправить, если хочешь 🌚

Share this post


Link to post
Share on other sites

Поправил скрипт сбора информации для графиков - при обновлении изменился формат вывода результата команды, и парсер перестал работать. Потому графики и накрылись. Теперь они снова начнут рисоваться.

 

По пути убил зависшие процессы сбора инфы для сайта - хз, откуда они взялись, но сервер грузили почем зря.

  • Upvote 1
  • Diamond 1

Share this post


Link to post
Share on other sites

Потыркал конфиги сервера. Сохраняю на будущее ссылки, которыми руководствовался:

https://github.com/YouHaveTrouble/minecraft-optimization

https://github.com/brucethemoose/Minecraft-Performance-Flags-Benchmarks

(Будем надеяться, что в обозримом будущем ссылки не протухнут)

  • Diamond 1

Share this post


Link to post
Share on other sites

Еще мысля (скорее всего, на будущее, когда/если активность на сервере вырастет и появится мотивация).

 

Веб-гуй для ГМов.

 

Допустим, у нас есть две роли для юзеров: админ и ГМ.


Админ в систему может добавлять шаблоны. Каждый шаблон содержит набор типизированных полей, заготовку для генерации одной или нескольких команд и путь к файлу с функциями:

 

crdafhQ.png


ГМ у себя видит эти шаблоны и может их инстанцировать, заполнив имеющиеся у них поля:

 

ZdpwiYU.png


После сохранения система из инстанцированных шаблонов создает нужные функции автоматически:

# Effect minecraft:night_vision 1 for player RedTeapot
effect give RedTeapot minecraft:night_vision 600 1 true

# Effect minecraft:speed 255 for player Notch
effect give Notch minecraft:speed 600 255 true

# Effect minecraft:strength 42 for player jeb_
effect give jeb_ minecraft:strength 600 42 true


Например, для покупного эффекта (он же еще вручную делается?) ГМ заполняет соответствующий шаблон, куда вбивается просто имя игрока и сам эффект. Сами команды в нужный файл генерит система на основании заранее подготовленного шаблона.

 

По идее, это должно упростить жизнь ГМ'ам и настройку сервера (по крайней мере в той части, что работает на командах). Вдобавок, больше команд переедет из КБ в функции, что должно немного снизить нагрузку на сервер.

  • Diamond 1

Share this post


Link to post
Share on other sites

4 часа назад, RedTeapot сказал:

Еще мысля (скорее всего, на будущее, когда/если активность на сервере вырастет и появится мотивация).

 

Веб-гуй для ГМов.

 

Допустим, у нас есть две роли для юзеров: админ и ГМ.


Админ в систему может добавлять шаблоны. Каждый шаблон содержит набор типизированных полей, заготовку для генерации одной или нескольких команд и путь к файлу с функциями:

 

crdafhQ.png


ГМ у себя видит эти шаблоны и может их инстанцировать, заполнив имеющиеся у них поля:

 

ZdpwiYU.png


После сохранения система из инстанцированных шаблонов создает нужные функции автоматически:


# Effect minecraft:night_vision 1 for player RedTeapot
effect give RedTeapot minecraft:night_vision 600 1 true

# Effect minecraft:speed 255 for player Notch
effect give Notch minecraft:speed 600 255 true

# Effect minecraft:strength 42 for player jeb_
effect give jeb_ minecraft:strength 600 42 true


Например, для покупного эффекта (он же еще вручную делается?) ГМ заполняет соответствующий шаблон, куда вбивается просто имя игрока и сам эффект. Сами команды в нужный файл генерит система на основании заранее подготовленного шаблона.

 

По идее, это должно упростить жизнь ГМ'ам и настройку сервера (по крайней мере в той части, что работает на командах). Вдобавок, больше команд переедет из КБ в функции, что должно немного снизить нагрузку на сервер.


Покупные эффекты выдаются на время, а значит нужно периодически проверять актуальность эффекта. впрочем, можно через cron, например, проверять это. ( 0 0 * * * ) и стирать строки. Не самая "востребованная" услуга. Проще без всяких "веб интерфейсов" это сделать, скинув шаблонную команду. Ctrl+c, Ctrl+v, и заменить ник/эффект/время это не сверхсложная задача. (у меня вот, например, валяются заготовки под все задачи)

Впринципе это можно и в телеге сделать, с кнопочками. Аля конструктор команд для покупных эффектов. Потыкать на кнопки, в конце вбить ник, прочитать проверку и отправить.
rcon можно прикрутить,  чтобы слать произвольные/заготовленные команды.
Думаю Велвету будет такое удобно. (если когда-нибудь пригодиться)

Share this post


Link to post
Share on other sites
Достижения

10 часов назад, Lady_Lava сказал:


Покупные эффекты выдаются на время, а значит нужно периодически проверять актуальность эффекта. впрочем, можно через cron, например, проверять это. ( 0 0 * * * ) и стирать строки. Не самая "востребованная" услуга. Проще без всяких "веб интерфейсов" это сделать, скинув шаблонную команду. Ctrl+c, Ctrl+v, и заменить ник/эффект/время это не сверхсложная задача. (у меня вот, например, валяются заготовки под все задачи)

Впринципе это можно и в телеге сделать, с кнопочками. Аля конструктор команд для покупных эффектов. Потыкать на кнопки, в конце вбить ник, прочитать проверку и отправить.
rcon можно прикрутить,  чтобы слать произвольные/заготовленные команды.
Думаю Велвету будет такое удобно. (если когда-нибудь пригодиться)

 

Ну, эффекты для примера были, я просто не помню уже, что там еще бывает. Есть что-то менее тривиальное?

Вроде, Вельвет обмолвился, что часть логики обратно в КБ перенесли из функций ради удобства, вот и думаю насчет этого.

Share this post


Link to post
Share on other sites

2 часа назад, RedTeapot сказал:

Есть что-то менее тривиальное?

нет. всё остальное можно решить вбиванием команды в чат.
из подобных вещей только сигналка. Её, вроде, утаскивали в функции. (от пипирки)
Там вообще раз в столетие надо что-то делать

Share this post


Link to post
Share on other sites
Достижения

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×