4.3.8. HTTP 서버 보안
4.3.8.1. Apache HTTP Server 보안
Apache HTTP 서버는 Red Hat Enterprise Linux 7에서 가장 안정적이고 안전한 서비스 중 하나입니다. 많은 수의 옵션과 기술을 사용하여 Apache HTTP Server를 보호할 수 있습니다. 다음 섹션에서는 Apache HTTP 서버를 실행할 때 모범 사례를 간략하게 설명합니다.
프로덕션 환경에 배치하기 전에 시스템에서 실행 중인 스크립트가 의도한 대로 작동하는지 항상 확인하십시오. 또한 root 사용자만 스크립트 또는 CGI를 포함하는 디렉토리에 쓰기 권한이 있는지 확인합니다. 이렇게 하려면 root 사용자로 다음 명령을 입력합니다.
chown root
<directory_name>
chmod 755
<directory_name>
시스템 관리자는 다음 구성 옵션을 사용할 때 주의해야 합니다(
/etc/httpd/conf/httpd.conf
에서 구성됨).
FollowSymLinks
- 이 지시문은 기본적으로 활성화되어 있으므로 웹 서버의 문서 루트에 대한 심볼릭 링크를 생성할 때 주의하십시오. 예를 들어
/
에 대한 심볼릭 링크를 제공하는 것은 좋지 않습니다. Indexes
- 이 지시문은 기본적으로 활성화되어 있지만 바람직하지 않을 수 있습니다. 사용자가 서버에서 파일을 검색하지 못하도록 하려면 이 지시문을 제거합니다.
UserDir
UserDir
지시문은 시스템에 사용자 계정이 있는지 확인할 수 있으므로 기본적으로 비활성화되어 있습니다. 서버에서 사용자 디렉터리 검색을 활성화하려면 다음 지시문을 사용합니다.UserDir enabled UserDir disabled root
이러한 지시문은/root/
가 아닌 모든 사용자 디렉터리를 검색하는 사용자 디렉토리를 활성화합니다. 비활성화된 계정 목록에 사용자를 추가하려면UserDir disabled
줄에 공백으로 구분된 사용자 목록을 추가합니다.ServerTokens
ServerTokens
지시문은 클라이언트에 다시 전송되는 서버 응답 헤더 필드를 제어합니다. 여기에는 다음 매개변수를 사용하여 사용자 지정할 수 있는 다양한 정보가 포함됩니다.ServerTokens Full
(기본 옵션) - 사용 가능한 모든 정보(OS 유형 및 사용된 모듈)를 제공합니다. 예를 들면 다음과 같습니다.Apache/2.0.41 (Unix) PHP/4.2.2 MyMod/1.2
ServerTokens Prod
또는ServerTokens ProductOnly
- 다음 정보를 제공합니다.Apache
ServerTokens major
- 다음 정보를 제공합니다.Apache/2
ServerTokens Minor
- 다음 정보를 제공합니다.Apache/2.0
ServerTokens Min
또는ServerTokens Minimal
- 다음과 같은 정보를 제공합니다.Apache/2.0.41
ServerTokens OS
- 다음 정보를 제공합니다.Apache/2.0.41 (Unix)
가능한 공격자가 시스템에 대한 중요한 정보를 얻지 못하도록ServerTokens Prod
옵션을 사용하는 것이 좋습니다.
중요
IncludesNoExec
지시문을 제거하지 마십시오. 기본적으로 Server-Side Includes (SSI) 모듈은 명령을 실행할 수 없습니다. 잠재적으로 공격자가 시스템에서 명령을 실행할 수 있으므로 반드시 필요한 경우가 아니면 이 설정을 변경하지 않는 것이 좋습니다.
httpd 모듈 제거
특정 시나리오에서는 특정
httpd
모듈을 제거하여 HTTP 서버의 기능을 제한하는 것이 좋습니다. 이를 위해 /etc/httpd/conf.modules.d
디렉터리에서 구성 파일을 편집합니다. 예를 들어 프록시 모듈을 제거하려면 다음을 수행합니다.
echo '# All proxy modules disabled' > /etc/httpd/conf.modules.d/00-proxy.conf
/etc/httpd/conf.d/
디렉터리에는 모듈을 로드하는 데 사용되는 구성 파일이 포함되어 있습니다.
httpd 및 SELinux
자세한 내용은 Red Hat Enterprise Linux 7 SELinux 사용자 및 관리자 가이드의 Apache HTTP 서버 및 SELinux 장을 참조하십시오.