Из-за одной тупой утилиты, которая сильно нагружала сервер своими подключениями (на каждое подключение создается свой процесс, что при определенной скорости появления новых подключений создает значительную нагрузку), пришлось озадачиться, как защитить сервер от DDoS такого рода.
Все достаточно просто. в listener.ora
Код:
CONNECTION_RATE_LISTENER=3
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = СЕРВЕР)(PORT = 1521)(RATE_LIMIT=YES))
)
)
в данном примере стандартный 1521 ограничивается 3 подключениями в секунду.
Собственно, два варианта, общий
Код:
CONNECTION_RATE_LISTENER=10
LISTENER=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521)(RATE_LIMIT=yes))
(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1522)(RATE_LIMIT=yes))
(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1523))
)
для каждого порта
Код:
LISTENER= (ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521)(RATE_LIMIT=5))
(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1522)(RATE_LIMIT=10))
(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1523))
)