У меня есть несколько вещей, которые я хотел бы использовать как серверы в Fedora. Я знаю, что могу запустить хотя бы некоторые из них в подман
или же докер
но я уже знаю, как это сделать. Я также уже знаю, как разрешить это для существующих служб, таких как ssh
если все, что я хочу сделать, это использовать собственный порт через:
порт sudo semanage -a -t ssh_port_t -p tcp 2222
Но моя проблема в том, что selinux уже определяет ssh_port_t
тип. Что делать, если у меня есть какое-то пользовательское приложение, которое я не могу или не хочу запускать в контейнере по какой-то причине, как я могу разрешить порт для чего-то, что делает НЕТ иметь уже предопределенный тип в semanage порт --list
?
В этом примере предположим, что я пытаюсь запустить /path/myNiftyGameServer и хочу разрешить ему подключаться к порту udp 12345 (который в настоящее время не используется в моей системе). Как я могу это сделать?
Что касается фона, я не претендую на звание гуру, но я чувствую себя относительно опытным в bash и Linux в целом, но я все еще очень новичок, когда дело доходит до SELinux (я знаю о ярлыках, восстановитькон
, и некоторые основные управлять
команды, но я все еще учусь).
Пожалуйста, предположим, что я не хочу просто отключать SELinux (потому что так и есть). Если этот вопрос кажется непрактичным, можно сделать дополнительные предложения, но я спрашиваю в основном потому, что мне любопытно, как эта проблема будет решена в SELinux, и я не смог найти решение самостоятельно, за исключением существующих типов, таких как мой ssh пример выше. Пожалуйста, не стесняйтесь предлагать другие подходящие темы для чтения для новичков в SELinux.
Изменить: из дополнительных поисков и на основе моего нахождения Сервер Starbound на Centos и Политика выделенного сервера Soldat, я предполагаю, что, может быть, мне нужно научиться писать политику SELinux? Сумасшедший, что мне так нужно, когда у службы просто нет имени, но я все еще хочу научиться это делать.
Редактировать 2: после некоторого времени, чтобы прочитать их полностью, ссылка на Starbound, похоже, не то, что мне нужно; единственная политика SELinux написана для отдельного сервера Apache (Apache уже определен), а не для игрового сервера. Солдат кажется очень близким к тому, что я ищу, но я думаю, что мне нужен учебник по написанию политики, чтобы добраться туда. В частности, меня действительно интересует только то, как открыть порт для пользовательского сервера/веб-сервиса. Настройка доступа к пути к файлу тоже звучит неплохо, но я могу управлять этим с помощью учетных записей пользователей, тогда как даже если я открою сетевой порт в firewall-cmd (firewalld), он все равно будет заблокирован SELinux, если я не ошибаюсь (я знаю, что у меня было это проблема в прошлом, но я полагаю, что могу перепроверить, чтобы быть уверенным).