내 잡다한 노트
아파치 웹 서버 기초적인 보안 설정 본문
# 심볼릭 링크 기능 비활성화
이 기능이 활성화돼있으면 웹 문서 경로 이외의 경로에 접근할 수 있다.
/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 |