CentOS 7에서 Apache SELinux 설정
CentOS 7 + Apache 2.4 구성의 개발환경을 구성하다보니 SELinux 가 역시나 태클을 건다. 보안과 관련된 것이니 해제하는 것은 옳은 방법이 아니고.. 프로젝트 때마다 SELinux 설정을 수동으로 하는 게 제일 좋을 것 같아서 관련 내용을 정리해 놓는다. 설정을 진행하지 않으면 접근 때 403 forbidden
에러가 발생한다.
1. 속성 확인
ls -apZ
drwxr-xr-x. chicpro chicpro unconfined_u:object_r:user_home_dir_t:s0 ./
drwxr-xr-x. root root system_u:object_r:home_root_t:s0 ../
-rw-------. chicpro chicpro unconfined_u:object_r:user_home_t:s0 .bash_history
-rw-r--r--. chicpro chicpro unconfined_u:object_r:user_home_t:s0 .bash_logout
-rw-r--r--. chicpro chicpro unconfined_u:object_r:user_home_t:s0 .bash_profile
-rw-r--r--. chicpro chicpro unconfined_u:object_r:user_home_t:s0 .bashrc
drwxrwxr-x. chicpro chicpro unconfined_u:object_r:cache_home_t:s0 .cache/
drwxrwxr-x. chicpro chicpro unconfined_u:object_r:httpd_sys_content_t:s0 cmcore/
drwxrwxr-x. chicpro chicpro unconfined_u:object_r:config_home_t:s0 .config/
-rw-rw-r--. chicpro chicpro unconfined_u:object_r:user_home_t:s0 .gitconfig
drwx------. chicpro chicpro unconfined_u:object_r:ssh_home_t:s0 .ssh/
-rw-------. chicpro chicpro unconfined_u:object_r:user_home_t:s0 .viminfo
drwxrwxr-x. chicpro chicpro unconfined_u:object_r:user_home_t:s0 .vscode-server/
drwxrwxr-x. chicpro chicpro unconfined_u:object_r:httpd_user_content_t:s0 www/
2. 특정 디렉토리에 접근권한 주기
chcon -R -t httpd_sys_content_t /home/chicpro/cmcore
3. 특정 디렉토리에 쓰기 권한 주기
chcon -R -t httpd_sys_rw_content_t /home/chicpro/cmcore/data
4. 사용자 인증
htpasswd -c /home/chicpro/.htpasswd chicpro
AuthType Basic
AuthName "Protected Area"
AuthUserFile "/home/chicpro/.htpasswd"
AuthBasicProvider file
# permit access only john and david
# Require user john david
# permit all granted user
Require valid-user
만약 에러 로그에 AH01620: Could not open password file
라는 내용이 기록된다면 SELinux 추가 설정
chcon -t httpd_sys_content_t /home/chicpro/.htpasswd