CyberRanger

Apache 웹 서버 취약점 점검 및 보안 설정 본문

정보보안기사/애플리케이션 보안

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 · 파일 업로드 최대 크기 설정