내 잡다한 노트

아파치 웹 서버 기초적인 보안 설정 본문

보안

아파치 웹 서버 기초적인 보안 설정

peanutwalnut 2023. 9. 3. 17:16

# 심볼릭 링크 기능 비활성화

이 기능이 활성화돼있으면 웹 문서 경로 이외의 경로에 접근할 수 있다. 

/etc/apache2/apache2.conf 파일의 /var/www/ 안에 있는 Options Indexes FollowSymLinks에서 FollowSymLinks를 삭제해야한다.

(리눅스 운영체제임)

vi로 열었을 때 esc 키를 눌러 전환한 상태에서 /Indexes 를 엔터누르면 쉽게 해당 내용을 찾을 수 있다.

그렇게 하면 링크 기능 비활성화가 됐다.

 

# 디렉터리 리스팅 비활성화

/etc/apache2/apache2.conf 파일의 Options Indexes를 None으로 수정한다. 여기서 None은 옵션이 없다는 의미이다.

이렇게 하면 서버 안에 있는 파일들이 노출되지 않는 것을 확인할 수 있다.

이 취약점은 공격자가 서버 내부의 파일 구조를 파악하여 인가되지 않은 자료를 유출하기에 가장 쉬운 방법이 되기도 한다.

 

# 웹 서버 정보 노출 차단

웹 서버 버전, 운영체제 버전, 사용자 계정 같은 정보는 웹 서버에서 보안에 별 위협이 되지 않는다고 생각할 수 있지만,

공격자에게는 공격에 필요한 정보를 수집할 수 있는 기회가 되기도 한다.

그래서 웹 서버의 정보 노출을 막아야 한다.

 

/etc/apache2/apache2.conf 파일 가장 아래에 두 줄을 추가해야 한다.

ServerTokens Prod # 웹 서버 정보 노출 설정 최소화

ServerSignature Off # 웹 브라우저에 정보 노출 비활성화

 

# 접근 가능한 파일 IP 설정

웹 서버를 운영하다보면 특정 IP 또는 IP 대역을 허가하거나 차단해야 하는 경우가 있다.

/etc/apache2/apache2.conf 파일과 ipblacklist.conf 파일에 내용을 추가해 접속을 제어할 수 있다.

<Location />

  <RequireAll>

      Require all granted

      Include /etc/apache2/ipblacklist.conf

  </RequireAll>

</Location>

 

같은 위치에서 ipblacklist.conf 파일을 만들어야 합니다. 그리고 밑에 코드를 작성하시면돼요.

Require not ip 192.168.100.xxx

 

# HTTP 메서드 제한

HTTP 프로토콜의 메서드는 GET, POST가 대표적이고 이외에 CONNECT, OPTIONS, HEAD, PUT, DELETE 등 다양하다.

이런 메서드를 활용해 공격할 수 있으니 필요하지 않은 것은 차단하자.

apache2.conf 파일에서 GET, POST만 허용하고 나머지 옵션은 차단한다.

<Directory /var/www/> 안에다가

<LimitExcept GET POST>

   Order deny, allow

   Deny from all

</LimitExcept>

를 입력해주자

그리고 마지막 줄에 TraceEnable Off 도 입력해 Trace 메서드 기능을 비활성화하자.

 

'보안' 카테고리의 다른 글

정보보호 정책  (0) 2024.09.25
CORS(Cross-Origin Resource Sharing)  (0) 2023.11.30
웹 애플리케이션 취약점을 통한 해킹  (0) 2023.09.03
[보안] 웹 서버 취약점을 통한 해킹  (0) 2023.09.03