Это довольно общий вопрос SELinux, но с конкретным примером. Я все еще новичок в SELinux, поэтому регулярно борюсь с ним!
Я хотел бы знать, могу ли я настроить демона (в данном случае haproxy
) для прослушивания большего количества портов, чем позволяет политика selinux по умолчанию. Например, SMTP и FTP - это пара служб, которые могут иметь смысл для балансировки нагрузки или прокси, но не разрешены политикой SELinux по умолчанию.
Уже есть довольно хороший вопрос и ответ, описывающий порты, которые haproxy
разрешено слушать: https://unix.stackexchange.com/questions/363878/which-selinux-policies-apply-to-haproxy
Что я хотел бы сделать прямо сейчас, так это разрешить haproxy прослушивать FTP и только порты FTP. Уже существуют типы портов, определяющие типичные порты, используемые FTP: -
#> semanage port -l | grep ftp
ftp_data_port_t tcp 20
ftp_port_t tcp 21, 989, 990
ftp_port_t udp 989, 990
tftp_port_t udp 69
Однако как разрешить haproxy прослушивать эти порты?
Несколько предложений, которые я видел в Интернете, и все они мне не особо нравятся по разным причинам:
setsebool -P haproxy_connect_any 1
. На мой взгляд, это снова слишком снисходительно.ftp_port_t
уже определяется.audit2allow
. Что мне лично не нравится в этом, так это то, что для этого требуется ряд зависимостей (хорошо, не огромное количество), а затем развертывание на нескольких балансировщиках нагрузки было бы немного обременительным.В идеале я просто хотел бы знать, доступна ли команда (в идеале без необходимости устанавливать что-либо дополнительное), которая дает тип процесса (в данном случае haproxy_t
) разрешения на прослушивание определенного типа порта (ftp_port_t
). Какие-либо предложения?
Похоже, этот пример может работать semanage port -m -t haproxy_t -p tcp 20
20, 21 и т. Д. Проверка с помощью semanage port -l | grep haproxy
показывает включенные настраиваемые порты.