phpMyAdmin을 대상으로하는 해킹 시도를 차단하려면 어떻게해야합니까? phpmyadmin도 없습니다. 이러한 시도 중 어느 것도 성공했다고

내 웹 사이트는 액세스하려는 다른 IP에서 매일 수천 건의 조회수를 얻습니다.

/php-myadmin/
/myadmin/
/mysql/

… 그리고 수천 개의 다른 변형. 이 디렉토리 중 어느 것도 존재하지 않으며 서버에 phpmyadmin도 없습니다.

이러한 시도 중 어느 것도 성공했다고 생각하지는 않지만 서버의 리소스를 사용하고 대역폭을 낭비해야하므로 가능한 경우 중지하고 싶습니다. 이 IP 중 일부를 차단했지만 새 IP로 계속 돌아옵니다. 더 영구적으로 방지 할 수있는 방법이 있습니까?



답변

걱정하지 마십시오. 404를 제공하는 것은 웹 서버가 수행하는 작은 작업입니다. 486을 사용하여 초당 404 초를 처리 할 수 ​​있습니다. 404 당 대역폭은 무시할 수 있습니다. 작은 GET 요청과 작은 404 응답.

진지하게; 걱정하지 마십시오. 이것은 인터넷에서 서버를 실행하는 것의 일부일뿐입니다.


답변

불행히도 이것은 당신에게 인터넷이 작동하는 방식입니다. 그냥 무시해 수천 명의 봇 / 트로이 목마가 인터넷을 검색합니다. 소스 IP는 항상 무작위입니다. 치료법이 없습니다.

해당 트래픽을 제거하는 유일한 100 % 솔루션은 다음과 같습니다.

대안은 다음
과 같습니다 .-포트 80/443에서 https / http를 사용하여 다른 것으로 이동합니다. 봇은 일반적으로 다른 모든 65k 포트에서 http 서버를 찾지 않습니다.
-VPN을 사용하여 서버에 연결하십시오 (공개 웹 사이트를 호스팅하는 경우 불가능합니다).


답변

당신이 원하는 것은 Fail2ban입니다 (이것이 리눅스 머신이라고 가정하면 말하지 않았습니다 …)

Fail2ban은 무엇입니까?

Fail2ban은 시스템 로그를 구문 분석하여 차단할 특정 정규식을 찾습니다. 일치하는 항목 (또는 구성 방법에 따라 동일한 IP에서 여러 개의 일치하는 항목)을 찾으면 일반적으로 IPTables를 통해 차단됩니다. 일반적으로 SSH 또는 웹 서버에 대한 인증 시도 실패를 차단하는 데 사용됩니다.

설정된 시간 (분, 일 수, 지속 기간에 따라 다름)에 대해 금지하도록 구성한 후, 다시 시도하지 않으면 금지가 만료됩니다.

이것은 phpmyadmin 스캐닝 봇을 어떻게 차단합니까?

존재하지 않는 phpmyadmin 폴더에 액세스하는 것과 같이 일반적인 공격 징후와 일치하는 데 쉽게 사용할 수 있습니다. 이러한 시도와 일치하도록 올바른 정규식을 파악하고 합법적 인 사용자를 차단하지 않도록해야합니다.

이 블로그 게시물에 제공된 구성 그대로 작동하거나 설정을 약간 조정해야 할 수 있습니다.

왜 차단해야합니까? 404 오류는 많은 비용이 들지 않습니다

iptables에서 그것들을 차단하기 일부 용도가 있습니다-phpmyadmin 취약점을 점검하는 경우, 취약점에 대한 다른 서비스도 시도 할 수 있습니다. 금지하면 대부분의 봇 / 스크립트가 잠시 후에 포기하게되고 더 나은 목표로 넘어갑니다.

스캔을 통해서도 비용이 많이 들지 않지만 (실제로 취약점을 발견하지 않는 한) 로그를 넘치게하여 웹 서버의 성공적인 공격과 문제를보기가 더 어려워집니다.

아래 주석에서 알 수 있듯이 Fail2ban에는 일부 시스템 리소스가 필요합니다. 그러나별로. 최소한 Fail2ban으로 인한 성능 문제가 전혀 없다고 말할 수 있습니다. 그러나 매우 공격적인 스크립트로 인해 암호를 강제로 쓰거나 서버에서 초당 수천 건의 SQL 주입 시도 및 기타 악용을 던지면서 성능 문제가 발생했습니다. 방화벽 수준에서 차단하면 서버 / 응용 프로그램 수준에서 차단하는 것보다 적은 리소스가 필요합니다. 또한 IP 스크립트를 금지하기 위해 사용자 지정 스크립트를 실행하도록 확장 할 수 있습니다. 따라서 IPtables에서 금지하는 대신 하드웨어 방화벽에서 금지 시키거나 같은 사람이 계속 공격하려고하면 누군가에게 이메일을 보내서 불만을 제기 할 수 있습니다 ISP에 문의하거나 데이터 센터가 방화벽에서 차단하도록하십시오.

다른 팁이 있습니까?

실수로 자신을 잠그지 않도록 자신이 제어하는 ​​몇 개의 IP 주소를 허용하는 것이 좋습니다.


답변

내가하는 일은 작은 스크립트를 적절한 디렉토리에 넣는 것이므로 누군가가 / phpmyadmin /에 액세스하면 실행됩니다. 이 스크립트는 iptables (Linux의 경우)를 호출하는 것 외에는 스크립트를 액세스하는 IP 주소를 30 분 동안 차단합니다 (크론 작업은 IP 주소가 추가 된 iptables 체인을 플러시합니다).

fail2ban의 장점은 syslog / access-log를 구문 분석하는 데 리소스를 사용하지 않는다는 것입니다. 물론 단점은이 특정 주소에 액세스하는 것을 제외하고는 다른 것을 확인하지 않는다는 것입니다.

왜 이렇게합니까? 물론, 404를 제공하는 것은 서버에게는 쉽지만, 나는 그들이 그렇게 간단하게 파고 드는 것을 원하지 않습니다. 도구 시간을 낭비하고 서버가 응답하기를 기다렸다가 마침내 포기할 때까지 다시 시도하고 싶습니다. 또한 차단하지 않으면 최종적으로 이동하기 전에 여러 URL을 시도 합니다 . 때로는 수천 개가 넘습니다. 도구에 따라 도구가 “좋아”서 몇 시간 동안 공간을 두거나 몇 분 안에 서버를 관리하지 않을 수도 있습니다.

유효한 페이지를 제공하지 않는 이유는 무엇입니까? 그들의 도구는 당신을 스캔 중지하고 그것을 실행하는 skiddie를 경고 할 수 있습니다-그러면 수동으로 체크 아웃해야합니다. 이것의 단점은 스캔으로 인해 결과가 나오지 않으면 서버가 서버보다 훨씬 더 가까이 보일 것입니다. 어쩌면 그들은 조금 더, 아마도 몇 개의 포트 스캔을 찌를 수도 있고, 당신이 그들을 화나게 할 수도 있고, DoS를 시작하여 그들이 무엇을 할 수 있는지 알아볼 수도 있습니다. phpmyadmin 스크립트에 액세스하는 순간 서버 시간이 초과되는 관점에서 단순히 차단하는 것은 원치 않는주의를 피하면서 도구 시간을 낭비하는 효과가 있습니다.

서버에 phpMyAdmin이 있다면 효과적인 해결책은 별도의 디렉토리에 넣고 웹 서버의 비밀번호 제어 (Apache의 경우 .htpasswd)를 사용하여 액세스하기 전에 액세스를 차단할 수 있습니다.


답변

FWIW에서는 / phpmyadmin /에 대한 액세스를 허용 된 IP 주소로만 제한합니다.

또한 우리는 mod_evasive (아파치 2)를 사용하여 DOS / 잘못 동작하는 스크립트 공격을 막습니다.


답변

mysql 관리 도구를 시스템 루프백 주소 127.0.0.1에 바인딩하십시오.

그런 다음 포트 포워딩과 함께 ssh를 사용하여 관리자 백엔드에 액세스하십시오.

상당히 투명한 보안 계층을 추가하십시오.


답변

우리가 찾은 가장 좋은 방법은 phpmyadmin이있는 폴더를 암호로 보호하는 것입니다. 또한 phpmyadmin과 관련된 것을 pma, phpmy 등의 폴더 이름으로 사용하지 마십시오.