내 서버는 최근 PHPMyAdmin을 찾는 HTTP 요청 조사로 인해 일시적인 홍수를 겪었습니다. 그들은 서로 다른 IP에서 왔으며 직렬로 연결되어 있습니다. 즉, 몇 초 내에 동일한 IP로부터 일련의 URL에 대한 요청을 많이 받았습니다. 강도는 초당 요청 10개로 급증합니다. 다음은 URL 목록의 예입니다.
/mysql/web/
/mysql/pMA/
/sql/phpmanager/
/sql/php-myadmin/
/sql/phpmy-admin/
/sql/sql/
/sql/myadmin/
/sql/webadmin/
/sql/sqlweb/
/sql/websql/
/sql/webdb/
/sql/sqladmin/
/sql/sql-admin/
/sql/phpmyadmin2/
/sql/phpMyAdmin2/
/sql/phpMyAdmin/
/db/myadmin/
/db/webadmin/
/db/dbweb/
/db/websql/
/db/webdb/
/db/dbadmin/
/db/db-admin/
/db/phpmyadmin3/
/db/phpMyAdmin3/
/db/phpMyAdmin-3/
/administrator/phpmyadmin/
/administrator/phpMyAdmin/
/administrator/db/
/administrator/web/
/administrator/pma/
/administrator/PMA/
/administrator/admin/
/phpMyAdmin2/
/phpMyAdmin3/
/phpMyAdmin4/
/phpMyAdmin-3/
/php-my-admin/
/PMA2011/
/PMA2012/
/PMA2013/
/PMA2014/
/PMA2015/
/PMA2016/
/PMA2017/
/PMA2018/
/pma2011/
/pma2012/
/pma2013/
/pma2014/
/pma2015/
/pma2016/
/pma2017/
/pma2018/
/phpmyadmin2011/
/phpmyadmin2012/
/phpmyadmin2013/
/phpmyadmin2014/
/phpmyadmin2015/
/phpmyadmin2016/
/phpmyadmin2017/
/phpmyadmin2018/
/phpmanager/
이 목록은 IP마다 다를 수 있습니다. 문제는 이러한 공격을 초당 1개의 요청으로 효과적으로 억제하는 방법입니다. 가능하다면 잘못된 URL이 3개 이상인 경우 1분간 IP를 차단하세요. 저는 PHPMyAdmin이나 다른 HTTP 기반 데이터베이스 인터페이스를 사용하지 않습니다. 하지만 나는 그 문을 열어 두거나 나중에 쉽게 열 수 있는 것을 선호합니다.
해결책으로는 Apache 2 수준에서 요청을 차단하는 방법을 생각해봤는데 너무 늦었고 잘못된 것 같습니다. 또는 Apache 아래의 Netfilter 수준에서. 저는 UFW를 사용하고 있으며 IPTable을 직접 조작하는 대신 UFW를 계속 사용하고 싶습니다. 그러면 UFW는 어떤 요청이 괜찮은지 아닌지 어떻게든 알아야 합니다. 그렇다면 Apache에 대한 브리지가 필요할까요?
일반적으로 이 질문은 Linux+Apache 환경에서 HTTP 요청을 스니핑하는 문제에 대한 솔루션에 대한 답변을 제공합니다.