정보보안기사/애플리케이션 보안
Apache 웹 서버 취약점 점검 및 보안 설정
CyberRanger
2024. 8. 6. 22:09
· Apache 웹 서버의 보안 설정은 httpd.conf 파일에서,
· php 관련 설정은 php.ini 파일에서 한다.
· Document Root: Apache 웹 서버의 디렉터리로 홈 사이트가 있는 디렉터리이다.
1. httpd.conf 설정
구분 | 설명 |
Apache 설치 시 별도의 계정 사용 | · root로 설치 후 해킹 발생 시 공격자는 root로 로그인이 됨. · 별도의 계정으로 설치 후 권한 최소화. · /etc/passwd 파일에서 Apache 설치 계정을 nologin으로 설정해야 함. |
httpd 프로세스 기동 | · Apache 프로세스는 하나만 root로 기동하고 나머지 프로세스는 Apache 설치 계정으로 실행되어야 함. · http 포트는 root만 열 수 있기 때문. |
디렉터리 리스팅 차단 | · indexes가 설정된 경우 웹 서버의 디렉터리가 노출됨. · -indexes로 수정, 또는 indexes 삭제. |
심볼록 링크 차단 | · 심볼릭 링크를 이용하여 파일 시스템 접근 후 root권한을 획득할 수 있음. · FollowSymLink 삭제. |
상위 디렉터리 이동 차단 | · AllowOverride를 AuthConfig로 설정. |
위험한 Request Method 제한 | <Limit GET POST> Order deny, allow Allow from all </Limit> <LimitExcept GET POST> Order deny, allow Deny from all </Limit> · 설명 HTTP GET request, POST request를 전부 허용하겠다. HTTP GET request, POST request를 제외한 요청은 전부 차단하겠다. |
ServerTokens | · 웹 서버에 접속할 경우 최소한의 정보만 노출되도록 설정. · ServerTokens Prod로 설정. |
ServerSignature | · On으로 설정된 경우 Not Found 에러 발생 시 서버 버전 및 OS 정보 노출. · Server Signature Off로 설정. |
에러 페이지 설정 | · ErrorDocument 404 /404.html · ErrorDocument 403 /404.html |
파일 업로드 크기 제한 | · 최대 업로드 크기 지정 (5MB) · LimitRequestBody 5000000 |
HTTPS로 리다이렉트 설정 | · RewriteEngine On · RewriteCond %{SERVER_PORT} 80 · RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L] |
특정 IP 접근 제어 | · 클라이언트 이름 및 IP 주소 등으로 접근 제어 · order deny, allow · Deny from all · Allow fram 10.0.0.1 |
KeepAlive: 연결 유지 | · KeepAlive On: 특정 시간 동안 연결 유지 · MaxKeepAliveRequest 100 : 최대 연결 수 100 · KeepAliveTimeout 5 : 5초동안만 유지 |
php 프로그램 실행 방지 | · 특정 디렉터리에 php가 존재해도 실행하지 않음. · php_admin_flag engine off로 설정 |
2. php.ini 설정
구분 | 설명 |
allow_url_fopen | · HTTP include, require 등 사용 가능 여부. · Off로 설정. |
allow_url_include | · include, require 계열 함수 사용 시 외부 사이트 파일을 호출할 수 있음. · Off로 설정. |
upload_max_filesize | · 파일 업로드 최대 크기 설정 |