Apache 웹 서버 프로세스를 위한 계정 관리
- 일반 사용자의 웹 접속을 처리하기 위하여 사용되는 프로세스가 이용
- 반드시 로그인 할 수 없는 계정, 즉 쉘(Shell)이 없는 계정으로 설치
- 일반적으로 사용자 ID와 그룹으로 쉘이 없는 “nobody” 계정 이용
apache설정파일(httpd.conf)을 아래와 같이 변경
User nobody
Group nobody
Apache 웹 서버 홈 디렉터리 관리
1. DocumentRoot
- 모든 웹 컨텐트가 저장될 디렉터리 구조, 웹을 통해 공개
- 시스템 루트 파일시스템 등과는 별도의 파일시스템 사용 필요
- Apache 초기 설치 시, DocumentRoot = htdocs
2. DocumentRoot 변경
- Apache 설정파일(http.conf)에서 임의의 디렉터리(/usr/local/www)로 변경
Apache 설정파일 관리
디렉터리 Listing 방지
- 웹 브라우저를 통해 존재하지 않는 URL 입력 시, 기본적으로 디렉터리 리스트를 보여주는 것을 방지
- 설정파일(http.conf) 변경 “Options” 지시자(directive)에서 “Indexes” 옵션 제거
Symbolic Link 사용 방지
- 기존의 웹 문서 이외의 파일시스템에 접근하는 것이 가능
- 가령, 시스템 Root 디렉터리(/)를 링크하게 되면, Nobody 권한으로 모든 파일시스템에 접근 허용
- 설정파일(http.conf) 변경 “Options” 지시자(directive)에서 “FollowSymLinks” 옵션 제거
SSI (Server-Side Includes) 사용 제한
- HTML 페이지 내에 존재하며, 동적인 웹 페이지 제공
- “exec cmd”를 사용해서 임의의 스크립트나 프로그램 실행이 가능
- 설정파일(http.conf) 변경 “Options” 지시자(directive)에서 “IncludesNoExec” 옵션 제거
CGI 실행 디렉터리 제한
- 임의의 사용자들이 CGI 스크립트들을 어느 디렉터리에서나 실행 가능하도록 할 경우,
악의적인 사용자가 CGI 업로드 후 이를 실행하여 공격 가능
- CGI 프로그램의 실행은 관리자가 지정한 특정 디렉터리에서만 실행 가능하도록 제한
- 설정파일(http.conf) 변경 “ScriptAlias” 지시자(directive)에서 실행 가능한 디렉터리 제한
웹 서버 응답 메시지 헤더 정보 숨기기
- 웹 서버 헤더 정보: 클라이언트가 웹 서버에 접속했을 때, 웹 서버에서 내보내는 응답 메시지의 헤더
- 웹 서버 버전, 배너, 구동되고 있는 응용 프로그램의 취약성을 식별하는데 이용
- 설정파일(http.conf) 변경 “ServerToken” 지시자(directive)를 수정함으로써 헤더에 의해 전송되는 정보 변경
ServerTokens Prod
ServerSignature Off
위와 같이 설정하여도 해당서버가 아파치인것은 알수가 있어서 취약할수가 있다. 그래서 가급적 mod_security 모듈을 설치하여 아파치 서버인것을 숨기길 권장.
설정 파일 및 데이터 백업 관리
- Apache 각종 환경설정 파일
- Apache 설치 과정에서 사용된 Install 파일(Rebuild 시간 단축 효과)
- 사용자 프로그램 소스(PHP, JSP, CGI 등)
- 웹 서비스 연관 데이터베이스
'# Web&WAS > Apache' 카테고리의 다른 글
아파치 로그를 이용한 트래픽 확인방법 (0) | 2019.01.30 |
---|---|
아파치 SNI(Server Name Indication) (0) | 2019.01.17 |
아파치 https 리다이렉트 설정 (0) | 2019.01.12 |
.htaccess 활용해 불필요한 리퍼러 제거하기 (0) | 2016.08.20 |
아파치 .htaccess를 이용 특정url제외한 외부리퍼러 모두 차단 (0) | 2016.08.20 |
안녕하세요. 이곳은 IT위주의 잡다한 정보를 올려두는 개인 블로그입니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!