it-swarm-korea.com

Apache Server 강화를위한 모범 사례?

Apache 서버 보안을위한 모범 사례, 권장 사항 및 필수 정보는 무엇입니까?

104
Eric Warriner

Apache 보안을위한 CIS (Center for Internet Security) 안내서를 확보하십시오 (보안 강화 방법에 대해 자세히 설명 함).

편집 : 업데이트 된 링크 CIS Apache HTTP Server 2.2.x 벤치 마크

Nessus 에 대한 라이센스가있는 경우 감사 템플릿을 가져 와서 자동 검사를 실행할 수 있습니다.

alt text

31
Tate Hansen
  • SSH 키 기반 로그인 사용
  • 안전한 MySQL
  • PhpMyAdmin, webmin 등 비활성화
  • 필요하지 않은 모든 포트/프로세스를 닫으십시오
  • 파일 무결성 검사기 사용
  • Mod_security 사용
  • 적절한 권한/그룹 설정

이것은 좋은 가이드입니다.
https://serverfault.com/questions/212269/tips-for-securing-a-lamp-server

강화를위한 기본 안내서 : http://www.wpsecure.net/server-guide/

PHP를 실행하는 경우 : http://www.madirish.net/?article=229

Apache 로그에서 404 (또는 다른 상태 코드) 찾기
awk '$9 == 404 {print $7}' access_log | uniq -c | sort -rn | head

12
Wyck

수락 된이 질문에 대한 원래 투표권은 Apache 구성을 보호하는 20 가지 방법 의 직접적인 표절이기 때문에 삭제되었습니다. 이 페이지는 환상적인 자료입니다.

@RoryMcCune은이 답변에 대한 링크로 이것을 게시했습니다. 사용 가능한 ModSecurity Core Rule Set 를 개발하는 OWASP 프로젝트가 있습니다.

7
Jeff Ferland

여기에는 좋은 조언이 많이 있으므로 이미 언급 한 내용은 반복하지 않습니다. 그러나 내가 말할 것은 :

기본 오류 페이지를 Web Server 릴리스 또는 커널 개정을 제공하지 않는 것으로 바꾸는 것을 잊지 마십시오. 각 기본 HTML을 "오류 400"과 같은 1 개의 라이너로 바꾸는 경향이 있습니다. 시스템에 대한 정보는 거의 없습니다. 이 원칙은 사용자 정의 오류 페이지를 표시 할 수있는 모든 웹 서버에 적용되며, 기본적으로 필요한 것보다 너무 많은 정보를 제공하도록 기본 설정되어 있습니다. ServerSignature는 이것을 숨길 것이라고 생각하지만 많은 경우에는 그렇지 않습니다.

또한 모든 기본 HTML 컨텐츠 (언어 별 등)를 삭제하는 것을 잊지 마십시오. 따라서 지문 처리가 훨씬 어렵습니다.

좋은 읽기가 진행되는 한 백서가 있습니다 Apcon 2008에서 읽을만한 가치가 있습니다.

Mod_Security 는 몇 번 언급되었지만 웹 응용 프로그램에 더 적합하므로 정적 콘텐츠 만 제공하는 경우 too 많이 도움이되지는 않습니다. 정적 웹 서버에 영향을 줄 수있는 요청 처리 중에 방어하는 데 도움이되는 몇 가지 공격이 있습니다.

내가 언급 한 또 다른 것은 로그를 관리하지 않고 시스템을주의 깊게 감시하지 않으면 공격자가 로그를 인식하지 않고 공격 할 위험이 있습니다.

6
Ori

모든 일반적인 보안 원칙이 적용됩니다. 필요한 모듈 만 실행하고, 필요하지 않은 기능을 끄고, 권한/소유권을 정리하십시오 (대부분의 내용은 읽기 전용이므로 파일에 400 개 이상의 권한이 필요한 이유는 무엇입니까?).

CGI 작업과 같은 아파치와 다른 두 가지 보안 메커니즘을 사용하여 동일한 컨텐츠를 두 번 제공하는 다른 vhost와 같은 아파치 고유의 항목은 발견하기가 훨씬 어렵습니다. 정확히 자동화 된 검사가 아니라 Apache, 기본 OS 및 Apache에서 실행중인 응용 프로그램이 수행하는 작업을 실제로 알아야합니다.

완벽을 기하기 위해 여기 DISA의 Apache 2.2 Security Checklist 가 있습니다. 업데이트 : 다음은 웹 서버 보안 강화 문서의 전체 컬렉션 링크입니다.

6
Marcin

Apache mod_security 를 살펴볼 가치가 있습니다.

나는 최근에 내 서버 중 일부를 살펴 보았습니다. 버전 번호 변경과 같이 Apache 자체에 대한 일부 구성 조정을 수행 할뿐만 아니라 SQL과 같은 다양한 공격으로부터 보호하는 데 도움이되는 웹 응용 프로그램 방화벽의 역할을합니다. 주사 등.

4
Mark Davidson

Apache Web Server를 어떻게 보호합니까

"Jum-jet을 어떻게 비행합니까?"또는 "뇌 수술을 어떻게 수행합니까?"라는 질문에 대한 답변은 무엇입니까?-웹 서버를 안전하게 만드는데도 마찬가지입니다. . 하지만 모두가 어딘가에서 시작해야하기 때문에 ...

인터넷을 통해 서버를 강화하는 방법에 대한 기본 점검 목록이 많이 있지만 다른 곳에서는 제 의견에 따라 greatly 품질이 다릅니다.

좋은 소스로 sans one 을 추천합니다.

점검표를 따른 후에는 할 수있는 수단을 마련해야합니다

  • 서버의 무결성을 확인하십시오 (트립 와이어와 트립 와이어와 같은 호스트 기반 IDS가 필요합니다)
  • 패치를 알고 적용
  • 시스템을 알려진 정상 상태로 복구

보안 사고를 처리하는 방법을 계획하지 마십시오 if 발생합니다. 해야 할 일을 계획하십시오 언제 일어납니다.

시스템을 설정하고 구성한 후 하드 디스크를 교체하고 원본 디스크를 사용하지 않고 서비스를 다시 시작하는 데 걸리는 시간을 확인하십시오.

2
symcbean

이것은 아파치와 관련이 있으며 (또한 nginx + php-fpm에 해당) php.eastereggs, php.ini를 통해 전환 될 수 있습니다.

  expose_php = off

phpinfo.php를 남겨 두는 것만 큼 끔찍한 것은 아니지만 일반적으로 매우 게으른 시스템 관리에 대한 힌트입니다.

easter-eggs 참조

좋은 실이 돌았습니다. 많은 사람들이 진실을 말합니다.

OpenBSD 의 방법 중 하나를 잊었습니다.

OpenBSD에서 Apache httpd (8) 서버는 기본적으로 chroot (2)입니다.

httpd (아파치 v1)는 기본적으로 OpenBSD에 포함되어 있으며 기본적으로 chroot입니다.

다른 유닉스 계열 OS에서 Apache2 또는 nginx를 사용하여 쉽게 반복 할 수 있습니다.

0
user29424

최신 버전의 Apache를 사용하고 OS 및 openssl과 같은 타사의 패치를 적용하십시오.

원치 않는 포트를 차단하십시오.

이렇게하면 알려진 취약점으로부터 보호 할 수 있지만 항상 0 일에 취약 할 수 있습니다.

0
Novice User

6 가지 주요 단계 :

  1. 응용 프로그램 코드 보안
  2. 사용하지 않는 모든 모듈을 비활성화하십시오. 모두 비활성화 한 다음 모듈을 하나씩 추가하십시오.
  3. 웹 폴더에서 모든 스크립트와 백업 파일을 제거하십시오.
  4. 디렉토리 목록 비활성화
  5. 응용 프로그램 수준 공격으로부터 응용 프로그램을 보호하려면 modsecurity를 사용하십시오.
  6. Fail2ban을 사용하여 HTTP 오류를 트리거하십시오 (403, 404).

웹 방화벽에 대해 이야기 할 때는 네트워크 방화벽에 의존하지 마십시오.

0
Mike