SELinux 끄기, SELinux 끄는 방법

각종 블로그나 검색엔진에서 selinux 를 쳐 보면 SELinux 를 끄는 법이 제일 많이 나온다.

외국에서도 SELinux 를 끄라는 내용이 많은지 아예 http://stopdisablingselinux.com/ 라는 사이트도 생겨났다.


Linux를 오래 사용해 왔고 리눅스 기반으로 서비스/솔루션 개발와 운영을 해본 입장에서 SELinux 는 절대! 결코 끄지 말라고 강력하게 얘기하고자 한다.


각종 보안 및 침해 사고가 난무하고 스크립트 키즈와 해커가 날뛰는 이때 SELinux 는 인터넷에 연결된 우리의 리눅스 박스를 지켜줄 가장 든든한 버팀목이다.


SELinux 가 복잡한것은 익숙하지 않기 때문이다. 약간의 보안개념과 권한 관리, 데몬 프로세스에 대한 지식을 갖추면 SELinux 기반으로 서비스 운영하는 것은 절대 어렵지 않다.(직접 SELInux 의 rule 을 만드는 건 어려운걸 인정한다)


다행히 Red Hat 이하 커뮤니티의 지원으로 대다수의 데몬은 SElinux 하에서 잘 동작하며 제대로 설정했다면 아무 문제가 없다.


만약 운전하다가 경고등이 들어오면 어떻게 해야 할까? 무엇때문에 경고등이 켜졌는지 원인 파악하고 조치를 하지 경고등 자체를 끄지는 않을 것이다.

SELinux 에서 서비스 데몬이 제대로 안 돈다면 다음과 같은 원인이 있다.


  1. 서비스 데몬이 SELinux 를 제대로 지원하지 않는다. - 개발사에 항의하고 SELinux 에 맞게 동작하도록 수정을 요청하자. SELinux 에서 문제가 되게 만든 데몬이라면 시스템의 안정성에 심각한 영향을 줄 수 있는 제품이라 생각된다.
  2. 잘못된 설정 - 프로세스 설정이 잘못되어 SElinux 의 rule 을 어겨서 제대로 동작하지 않는다. 강력한 도구인 audit2why 와 log 를 보고 원인을 찾아서 조치하자. SELinux 에러 메시지 및 문제 해결 - Error Message & TroubleShooting 가 도움이 될 수도 있다.
  3. SELinux policy 의 버그 - policy 에 버그가 있어서 특정 데몬이 차단될 수 도 있다. 이런 경우 Red Hat 의 Support ticket 을 받아서 지원 요청하여 처리할 수 있다. 서비스 제공에 문제가 된다면 임시로 seboolean 으로 정책을 임시로 수정할 수도 있다.
  4. 침투 시도 - 데몬 프로세스가 해킹당했고 이를 통해 침입 시도했으나 SELinux 에 의해 거부당할 수 있다. SELinux 를 쓰는 가장 중요한 목적이고 기대하는 결과이다. 로그를 보고 원인을 파악하고 조치하면 된다.


약간 불편하더라도 우리의 충실한 보초 SELinux 를 꺼서 해킹의 피해를 입게 되지 않기를 바란다.