2010-02-08 2 views
2

대부분의 웹 사이트를 PHP로 작성하고 MySQL 데이터베이스 연결을 일상적으로 사용합니다. 현재 전용 서버에서 주요 성능 문제가 발생하고 있습니다. 우리 서버에 접근 할 때 웹 페이지가 매우 천천히로드되고 SSH가 시스템에 영원히 걸립니다. 몇 번이나 다시 시작했으며 몇 분 후에 문제가 다시 나타납니다.성능 문제/DOS 공격 가능성에 대한 MySQL 로그 확인

웹 호스트 (MidPhase)는 DOS 공격과 관련이있을 수 있으며 24 시간 동안 CiscoGuard에 전용 서버를 설치하고 서버 로그를 확인하여이를 확인합니다.

악의적으로 코딩 된 PHP 스크립트가 악용 될 우려가 있습니다.

PHP/MySQL 인젝션 공격으로 인해 발생할 수있는 문제를 서버 전체에서 어떻게 확인합니까?

는 Tegan에게 감사

+0

나는 범인을 찾은 것 같습니다. "ps aux"를 사용하여 mysql이 CPU의 24 %를 사용하고있는 것을 보았습니다. 그런 다음 mysql을 실행중인 프로세스를 살펴보고 고객 중 한 명이 망치질 중임을 확인했습니다. 이것은 드루팔 (Drupal)의 이전 버전을 사용하는 클라이언트 였고 누군가가 무차별 적으로 로그인을 시도했습니다. 나는 사이트를 완전히 무능하게했고, 물건은 지금 더 잘 달리고있는 것처럼 보인다. 보안 패치를 최신 상태로 유지하지 못하는 전형적인 사례입니다. –

답변

0

나는 특별한 요청에 대한 액세스 로그 (특별히 그 SQL 주입을 나타내는, 또는 동일한 URL에 대규모 요청), 또한 MySQL을의 느린 쿼리 로그를 활성화하면 그것 때문에 유용 할 수 있습니다를 확인할 것 데이터베이스를 덤프하는 사용자 또는 쿼리에서 제대로 수행되지 않는 자신의 코드를 나타내는 무거운 쿼리를 볼 수 있습니다.

느린 쿼리 시간 값 (기본값 10 초)을 수정하여 쿼리로 비어 있거나 부풀어 오르지 않는 유용한 로그를 만들 수 있습니다.

MySQL의 성능을 실시간으로 확인하기 위해 mtop을 사용하면 도움이 될 수 있습니다.

0

당신이 LAMP 설정을 사용하여 가정, 나는 자원을 많이 사용하고 어떤 과정을 볼 수

$ top 

또는

$ ps aux 

처럼 뭔가 시작합니다. 그것은 php/mysql 일 수 있지만 메일 서버 또는 스팸 필터 일 수도 있습니다 (동일한 서버에서 실행중인 경우).

+0

예 램프 설정입니다. 위의 명령을 실행 한 후에 mysql이 많은 리소스를 사용하고 있음을 알 수 있습니다. 어떻게하면 더 자세히 조사하고 어떤 PHP 페이지가 문제를 일으킬 수 있는지 확인할 수 있습니다. –

+0

그건 까다 롭습니다. 나는 그것을 찾고 기억하지 못했습니다. httpd 로그에서 어떤 페이지가 정상적으로로드되는지 확인하는 것 외에는 serverfault.com에서 같은 질문을하는 것이 좋습니다. 죄송합니다. – jeroen

0

나는 단순히 PHP를 거치고 쿼리가 이스케이프되고 있는지 (바인딩을 사용하고 있는지), 가능한 XSS 공격을 필터링하고 있는지 확인하는 것이 좋습니다.