수업자료를 보시면 SELinux를 해제하라고 합니다. 방화벽도 해제할 수 있다고 하는데... SELinux와 방화벽은 보안에 상당한 영향을 끼치는 녀석들입니다. 함부로 해제해서는... 약간 곤란하겠죠? 요새 중국에서 무작위로 포트 대입해서 공격하고 하잖아요. 지금 이 글을 쓰는 지금도 중국발 IP가 제 컴퓨터 포트를 무작위 대입 공격하는걸 백신이 막아주고 있습니다.
아 물론 어짜피 우리는 VM에서 작업하고 할거니까 SELinux를 꺼도 괜찮기는 합니다. 그런데 만약 본인이 실제로 웹서버를 만들 예정이라거나... 여튼 실제 상황이라면 SELinux를 끄는건 좀 보안적으로 문제가 생길수 있죠.
그러면 그냥 SELinux가 UserDir 관련해서 허용하게 해주는건 어떨까요. 그러면 나머지 부분은 완전히거의 안전해질 수 있으니까요!
먼저 SSH나 터미널에서 다음과 같이 입력해서 SELinux 설정을 확인해야 합니다.
getsebool httpd_enable_homedirs
만약 off로 되어있다면 on으로 바꿔야 합니다.
setsebool httpd_enable_homedirs on
setsebool 명령어는 반드시 ROOT 계정에서 작업해야만 하니까, setsebool 명령어는 반드시 su로 ROOT 계정으로 바꿔서 하셔야 합니다. sudo로 안돼요.
이후에 반드시 getsebool httpd_enable_homedirs로 on 상태인지 확인하셔야 합니다.
만약 SELinux를 해제하지도 않았고 setsebool로 허용하지 않았다면 어떻게 될까요? 사용자 홈페이지 접근시 403 Forbidden이 뜨게 됩니다. 애시당초 403 Forbidden은 서버가 접근을 거부했을때 나오는 메세지입니다. 왜 접근을 거부했을까요? 권한이 없거든요! 그래서 403 뜨면 권한 문제라고 보시면 됩니다. 그래서 SELinux 설정을 통해서 사용자 계정 접근을 허용해주었고, 그래서 UserDir이 통하게 되는겁니다.
(포트번호는 임의로 설정한 것입니다)
SELinux와 방화벽 해제 없이 무사히 UserDir 관련 설정을 통해 사용자 홈페이지 접근이 가능한 모습입니다.
보안은 아무리 강조해도 전혀 지나침이 없습니다.