Apache가 루트로 실행되는 것을 방지하는 방법은 무엇입니까?

Apache가 루트로 실행되는 것을 방지하는 방법은 무엇입니까?

새 직장, 작은 장소, 안전한 물건이 방금 내 책상 위에 도착했습니다. 저는 프론트엔드 개발자로 채용되었습니다. 새로운 것을 배우는 것은 좋지만 이전에 시스템 관리 작업을 해본 적이 없습니다.

나는 파기를 시작했고 아파치, 사이트 및 모든 것이 루트에서 실행되고 있음을 발견했습니다. 다른 그룹이나 사용자는 없습니다. 확인하다!

이 상황을 바꾸려면 어떻게 해야 합니까? 나는 이것이 큰 금기 사항이라는 것을 알고 있습니다 ...

누구든지 Apache/PHP 보안에 대한 좋은 기본 101 튜토리얼, 보너스 포인트를 알려주세요.

답변1

기본 구성에서 Apache가 실행되는 것을 찾는 것은 root드문 일입니다 . Apache가 루트로 실행되고 있는지 어떻게 확인할 수 있습니까? Apache는 반드시시작하다권한 있는 포트에 바인딩하기 위해 루트 역할을 하지만 일반적으로 나중에 해당 권한을 포기합니다.

Apache 구성( 배포판에 따라 일반적으로 /etc/httpd또는 에서)에서 및 지시문(문서화됨)을 찾을 수 있습니다./etc/apache2UserGroup여기). 이 두 지시문은 Apache가 실행되는 사용자 ID를 제어합니다.

"다른 그룹이나 사용자가 없는" 시스템을 찾는 것도 이례적입니다. 무엇을 getent passwd하고 보여줄 것인가 getent group? 어디진짜root?를 제외한 다른 사용자나 그룹은 없습니다. 대부분의 배포판에는 사용자 또는 유사한 구성과 해당 사용자로 Apache를 실행하는 일치하는 구성이 함께 제공 apache됩니다 www-data.

Apache 구성 및 보안에 대한 다양한 소개 가이드가 있습니다. 간단한 Google 검색으로 가능한 많은 결과를 얻을 수 있습니다. 레드햇/CentOS배포 가이드좋은 출발점입니다(RedHat/CentOS 시스템을 사용하는 경우).

답변2

권한 있는 포트 번호 1024+보다 큰 포트 번호를 가진 모든 사용자로 Apache를 실행할 수 있습니다. 그런 다음 포트 전달을 사용하여 포트 80 및 443에서 특정 포트로 트래픽을 전달합니다.

관련 정보