Profile picture

[Linux] selinux 설정, 협업 디렉토리 구성

JaehyoJJAng2024년 02월 12일

6. selinux 설정

시나리오

httpd의 기본 디렉토리는 /var/www/html 입니다. 관련 파일 및 디렉토리는 변경하거나 삭제하지 마세요.
웹 브라우저를 통해 현재 서버에 접속하여 /var/www/html 디렉토리 내의 html 파일들이 정상적으로 보이는지 확인하세요.
httpd의 기본 포트는 현재 82번 포트입니다.
서버가 재부팅 될 때 httpd 서비스는 유지되어야 합니다.
현재 서버의 selinux가 Enforcing으로 설정되어 있으며 selinux로 인해 서버에서 httpd가 failed 되어 있습니다.

기본 환경 설정: 실제 시험장과 동일하게 구성하기 위함

httpd 설치 및 활성화

dns install httpd -y
systemctl enable --now httpd.service

기본 포트 변경 (80 -> 82)

sed -i 's/Listen 80/Listen 82/' /etc/httpd/conf/httpd.conf

httpd 재시작

systemctl restart httpd.service

Selinux 설정

포트 변경 후 httpd 서비스 상태 확인해보면 failed가 뜸.

systemctl status httpd

httpd 서비스 실패 로그 자세하게 확인하기.

journalctl -eu httpd

 212 17:06:08 localhost.localdomain httpd[5605]: (13)Permission denied: AH00072: make_sock: could not bind to address [::]:82   
 212 17:06:08 localhost.localdomain httpd[5605]: (13)Permission denied: AH00072: make_sock: could not bind to address 0.0.0.0:82 212 17:06:08 localhost.localdomain httpd[5605]: no listening sockets available, shutting down

현재 82번 포트에 대해서 block 되는 중


해결하기

semanage로 82번 포트를 http_port_t에 등록해주기

semanage port -l | grep http
semanage port -a -t http_port_t -p tcp 82
systemctl restart httpd.service

# curl로 localhost:82에 요청 보내보기
curl localhost:82

정상적으로 응답되면 성공


방화벽 포트도 추가해주기

firewall-cmd --permanent --add-port=82/tcp
firewall-cmd --reload

7. 협업 디렉토리 설정

시나리오

/home/manager 디렉토리 생성
test 그룹의 사용자만 읽기와 쓰기가 가능함.
그 외 다른 사용자는 어떠한 설정도 불가능.
단 root는 모든 작업이 가능
생성된 파일을 자동적으로 소유 그룹이 test이 되어야 함.

mkdir /home/manager
chown .test /home/manager
chmod 070 /home/manager
chmod g+s /home/manager
ls -ld /home/manager
    Tag -

Loading script...