Назад | Перейти на главную страницу

IPTABLES (ограничение скорости) порт 3306

Есть ли способ ограничить скорость соединений в MySQL 3306 с помощью IPTABLES? Я думаю разрешить 2 попытки подключения к порту 3306 каждые 5 минут. Спасибо

Не лучше ли сохранить эти ограничения внутри самого MySQL, а не на сетевом уровне? Согласно Документация MySQL вы можете ограничить следующие ресурсы сервера для отдельных учетных записей:

*  The number of queries that an account can issue per hour
*  The number of updates that an account can issue per hour
*  The number of times an account can connect to the server per hour
*  The number of simultaneous connections to the server an account can have

Пример MySQL-запроса для этого:

mysql> CREATE USER 'francis'@'localhost' IDENTIFIED BY 'frank';
mysql> GRANT ALL ON customer.* TO 'francis'@'localhost'
    ->     WITH MAX_QUERIES_PER_HOUR 20
    ->          MAX_UPDATES_PER_HOUR 10
    ->          MAX_CONNECTIONS_PER_HOUR 5
    ->          MAX_USER_CONNECTIONS 2;

Лично я предпочел бы сохранить этот тип настроек в самом приложении, а не пытаться манипулировать им без ведома приложений. Но насколько я понимаю, другие примеры использования iptables технически тоже должны работать.

$IPT -A INPUT -s 0/0 -p tcp --dport 3306 --syn -m limit --limit 10/hour \

--limit-burst 10 -j ACCEPT


$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


$IPT -A INPUT -s 0/0 -p tcp --dport 3306 -j DROP

Я был достаточно заинтересован, чтобы поискать, нашел Эта статья среди других. Похоже, ты справишься.

Обратите внимание, что в зависимости от приложения ограничение количества соединений может фактически не ограничивать количество запросов. Ничто не мешает приложению делать сотни запросов по одному соединению, это даже лучшая практика.