9.5. HTTP 서버 보안
9.5.1. httpd.conf의 보안 개선 사항 링크 복사링크가 클립보드에 복사되었습니다!
/etc/httpd/conf/httpd.conf 파일에서 보안 옵션을 구성하여 Apache HTTP 서버의 보안을 강화할 수 있습니다.
프로덕션에 배치하기 전에 시스템에서 실행 중인 모든 스크립트가 올바르게 작동하는지 항상 확인합니다.
root 사용자만 스크립트 또는 CGI(Common Gateway Interface)를 포함하는 모든 디렉터리에 대한 쓰기 권한이 있는지 확인합니다. 쓰기 권한이 있는 디렉터리 소유권을 root 로 변경하려면 다음 명령을 입력합니다.
# chown root <directory_name>
# chmod 755 <directory_name>
/etc/httpd/conf/httpd.conf 파일에서 다음 옵션을 구성할 수 있습니다.
FollowSymLinks- 이 지시문은 기본적으로 활성화되어 있으며 디렉터리의 심볼릭 링크를 따릅니다.
Indexes- 이 지시문은 기본적으로 활성화되어 있습니다. 사용자가 서버에서 파일을 검색하지 못하도록 이 지시문을 비활성화합니다.
UserDir-
이 지시문은 시스템에 사용자 계정이 있는지 확인할 수 있으므로 기본적으로 비활성화되어 있습니다.
/root/이외의 모든 사용자 디렉터리를 검색하려면UserDir enabled및UserDir disabledroot 지시문을 사용합니다. 비활성화된 계정 목록에 사용자를 추가하려면UserDir disabled줄에 공백으로 구분된 사용자 목록을 추가합니다. ServerTokens이 지시문은 클라이언트에 다시 전송되는 서버 응답 헤더 필드를 제어합니다. 다음 매개변수를 사용하여 정보를 사용자 지정할 수 있습니다.
ServerTokens Full웹 서버 버전 번호, 서버 운영 체제 세부 정보, 설치된 Apache 모듈과 같은 사용 가능한 모든 정보를 제공합니다. 예를 들면 다음과 같습니다.
Apache/2.4.37 (Red Hat Enterprise Linux) MyMod/1.2ServerTokens Full-Release릴리스 버전과 함께 사용 가능한 모든 정보를 제공합니다. 예를 들면 다음과 같습니다.
Apache/2.4.37 (Red Hat Enterprise Linux) (Release 41.module+el8.5.0+11772+c8e0c271)ServerTokens Prod / ServerTokens ProductOnly웹 서버 이름을 제공합니다. 예를 들면 다음과 같습니다.
ApacheServerTokens Major웹 서버 주요 릴리스 버전을 제공합니다. 예를 들면 다음과 같습니다.
Apache/2ServerTokens Minor웹 서버 마이너 릴리스 버전을 제공합니다. 예를 들면 다음과 같습니다.
Apache/2.4ServerTokens Min/ServerTokens Minimal웹 서버 최소 릴리스 버전을 제공합니다. 예를 들면 다음과 같습니다.
Apache/2.4.37ServerTokens OS웹 서버 릴리스 버전 및 운영 체제를 제공합니다. 예를 들면 다음과 같습니다.
Apache/2.4.37 (Red Hat Enterprise Linux)ServerTokens Prod옵션을 사용하여 공격자가 시스템에 대한 중요한 정보를 얻을 위험을 줄입니다.
IncludesNoExec 지시문을 제거하지 마십시오. 기본적으로 Server Side Includes (SSI) 모듈은 명령을 실행할 수 없습니다. 이렇게 변경하면 공격자가 시스템에 명령을 입력할 수 있습니다.
httpd 모듈 제거
httpd 모듈을 제거하여 HTTP 서버의 기능을 제한할 수 있습니다. 이 작업을 수행하려면 /etc/httpd/conf.modules.d/ 또는 /etc/httpd/conf.d/ 디렉터리에서 구성 파일을 편집합니다. 예를 들어 프록시 모듈을 제거하려면 다음을 수행합니다.
echo '# All proxy modules disabled' > /etc/httpd/conf.modules.d/00-proxy.conf