SELinux를 통한 MySQL 연결은 어떻게 허용합니까?


21

보안 강화를 위해 SELinux를 서버에서 한 번 실행하고 싶습니다.
나는 일반적으로 SELinux를 비활성화하여 작동합니다.
SELinux에 MySQL 연결을 허용하려면 어떻게해야합니까?
설명서에서 가장 많이 찾은 것은 mysql.com의 다음 줄입니다.

Linux에서 실행 중이고 SELinux (Security-Enhanced Linux)가 사용 가능한 경우 mysqld 프로세스에 대해 SELinux 보호를 사용하지 않아야합니다.

와우 ... 정말 도움이됩니다.


1
도움을 드릴 수 있도록 다음 정보를 모두 제공해주십시오. 1. Linux Distro 및 버전, 2. MySQL 버전 및 설치 소스, 3. 거부 된 연결의 AVC 로그 항목 4. 관련 MySQL 로그 (있는 경우) 5. 출력 getsebool -a | grep mysql6.이 단계를 재현하기위한 정확한 단계
hobodave

답변:


40

SELinux를 확인하려면

sestatus

httpd 프로세스에 어떤 플래그가 설정되어 있는지 확인하려면

getsebool -a | grep httpd

Apache가 SELinux를 통해 원격 데이터베이스에 연결하도록 허용하려면

setsebool httpd_can_network_connect_db 1

-P 옵션을 사용하면 변경 내용이 영구적으로 적용됩니다. 이 옵션이 없으면 재부팅시 부울 값이 0으로 재설정됩니다.

setsebool -P httpd_can_network_connect_db 1

3
127.0.0.1 루프백을 통해 연결할 때 필요한 것 같습니다.
Devin Ceartas 2016 년

확실히 @Devin.
e18r

2
사용자가 로컬 mysql 서버에 연결하도록하려면 selinuxuser_mysql_connect_enabled 부울도 설정해야합니다.
Anton Makovetsky

setsebool -P httpd_can_network_connect 1필요할 수도 있습니다. 이것은 ausearch -m avc -ts today | audit2whyvnix27의 의견에서 제안한대로 실행 하여 로그 에서 제안했습니다.
사이트

2

오류가 있습니까? 어떤 리눅스 버전을 사용하고 있습니까? 오류가 발생하면 보안 컨텍스트를 시작하는 것이 좋습니다. ls -Z는 컨텍스트를 제공하지만 ... 귀하의 질문은 매우 모호합니다.


창 상자에서 연결하고 있습니다. 오류가 없습니다 ... 연결이 거부되고 페이지 시간이 초과되었습니다. selinux를 끄면 모든 것이 잘 될 것입니다.

연결이 Windows 상자에서 수신되므로 ls -Z는 Linux 상자에있는 디렉토리의 파일에 대한 정보 만 제공합니다.

내 질문에 나는의 mysqld 프로세스 비활성화 SELinux를 보호 말했다 MySQL의 참조를 ... 인용 ...하지만 그 작업을 수행하는 방법을 말하지 않는다 :( 아니다 내가 방법을 찾을 수 위.

리눅스 박스의 로그에 뭐가 있습니까? selinux는 httpd가 소켓 연결을하지 못하게 막을 수있다 ...

메시지 나 보안 로그에 아무것도 없습니다 ... 염두에 둔 특정 로그가 있습니까?



1

ausearch명령은 오류 로그를 찾는 데 도움 이 될 수 있습니다.


1
ausearch -m avc -ts 오늘 | audit2why, 명령이 솔루션을 제안 할 수 있음
vnix27

1

로컬 정책도 작성할 수 있습니다.

"이 액세스를 허용하는 로컬 정책 모듈을 생성 할 수 있습니다. 지금 실행하여이 액세스를 허용하십시오."

grep httpd /var/log/audit/audit.log | audit2allow -M mypol

semodule -i mypol.pp

또는 실제 세션에 대해 전체적으로 활성화하십시오.

setsebool httpd_can_network_connect_db 1

또는 영구 :

setsebool -P httpd_can_network_connect_db 1
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.