> Хочу поднять публичный сервер, такой же как тут: https://overthewire.org/wargames/ . Что
> бы люди могли там запускать что угодно(в том числе gdb,gcc,perl,python), но
> что бы не мешали друг другу и не могли ddos-ть/брутфорсить сервера
> в нете.Ребята в overthewire, очевидно, используют какую-то серьёзную изоляцию шеллов пользователей друг от друга.
Да, надо закрыть исходящие подключения, чтобы пользовадели не гадили в Интернете. Желательно не столько средствами iptables, сколько чем-то наружным.
Да, надо квотировать использование CPU и памяти, иначе на вас будут майнить крипту или брутфорсить хэши.
Да, надо изолировать пользователей друг от друга... По меньшей мере, контейнерами, т.к. если они будут играть в взлом системы, а система одна на всех, то мешать друг другу будут по определению.
Если вы хотите организовать боевые игры, одного "публичного сервера" будет недостаточно.
Если вы хотите организовать мирную песочницу, это будет работоспособно только с доверенными пользователями.
Песочницу в паблике завандалят обязательно, даже не потому что "взломали" (вышли за границы дозволенного доступа), а потому нагадили в самой песочнице. Против вас работает концептуальное противоречие:
Любое техническое ограничение автоматически снижает ценность ресурса для добросовестного пользователя.
Уровень ограничений достаточно мягкий, чтобы добросовестный пользователь ещё мог что-то смысленное делать, не достаточен чтобы предупредить злоупотребление ресурсом.
Уровень ограничений достаточно строгий, чтобы ресурс перестал быть интересны для злоумышленника, делает его ещё заведомо неинтересным для добросовестного пользователя.
Таким образом мы имеем некую критическую зону, в которой уже нельзя работать, но ещё можно нагадить. Например: Вход на торговую точку через дыру в заборе. Желанный покупатель в дыру не полезет, нафиг надо. Нежеланного вора/вандала дырявый забор не остановит.