사용자 정의 애플리케이션이 SELinux를 사용하도록 허용하는 방법은 무엇입니까?

사용자 정의 애플리케이션이 SELinux를 사용하도록 허용하는 방법은 무엇입니까?

사용자와 함께 실행되는 기본 시스템 서비스가 있는 Go 애플리케이션이 있습니다 web. NGiNX는 역방향 프록시를 통해 통신하고 동일한 서버에 있는 MySQL 데이터베이스와 통신합니다. NGiNX 및 MySQL 정책은 SELinux를 사용하여 쉽게 설정할 수 있지만 평생 SELinux를 내 맞춤 Go 애플리케이션과 함께 사용할 수는 없습니다.

권한 거부 오류가 발생하지만 SELinux를 비활성화하면 모든 것이 잘 실행되므로 SELinux인 것이 확실합니다.

신청에 대해

  1. 포트 8080 열기
  2. 포트 3306을 통해 MySQL과 대화

나는 다음을 시도했다이것RedHat은 사용자 정의 애플리케이션을 구성하는 방법에 대한 지침을 제공하지만 어떤 이유로 내 애플리케이션은 스크립트를 unconfined_t사용한 sepolicy후와 항상 동일한 상태를 유지합니다.

노트: 이것은 Fedora 36 서버에 있습니다.

답변1

드디어 해결했습니다. 내 사용자 정의 바이너리를 태그에 추가하기만 하면 됩니다 bin_t. 나는 이 명령을 사용한 semanage fcontext -a -t bin_t "/path/to/binary"다음 restorecon -v /path/to/binary.systemctl restart mybinary.service

httpd_sys_content_t또한 동일한 명령을 사용하여 내 사이트에 정적 콘텐츠를 추가한 다음 NGiNX를 다시 로드했습니다.

관련 정보