[문제 해결에 관한] cannot restore segment prot after reloc.

caplove의 이미지

최근 SELinux 설정 때문에 아래와 같은 에러 메시지가 자주 나타나더군요.
"cannot restore segment prot after reloc"

여러 문서들을 보다 보니, 가장 간단한 해결은 SELinux를 disable 시키는 방법이더군요. ㅡㅡ;;;

제가 생각하기에 이 문제의 원인은 메모리 stack 영역에 executable한 메모리를 할당하는 것을 Secure Policy가 차단하기 때문입니다. (실제 buffer overflow 공격의 원인은 이것이 아니지만 이 방법은 buffer overflow 공격을 효과적으로 차단시켜 줄 수는 있겠죠. 하지만 보안의 가장 중요한 요소 중의 하나인 가용성을 잃어버리므로 좋은 보안 정책은 아닌 듯 싶습니다.)

그래서 SELinux의 보안 정책을 약간 수정하여 위 문제를 해결하였습니다.

Security Level Configuration > Modify SELinux Policy > Compatibility 에서
"Allow the use of shared libraries with Text Relocation"
을 enable 시켜 주시기 바랍니다.

혹시 더 좋은 해결 책이 있으면 리플 부탁드립니다.

본 내용이 좋은 도움이 되었으면 좋겠네요.

즐거운 하루 되십시오.