У меня есть база данных Postgres, содержащая общедоступную информацию, которую я хотел бы опубликовать в Интернете, чтобы любой мог использовать. Какие шаги я могу предпринять, чтобы предотвратить:
Я не беспокоюсь о том, что какие-либо данные на сервере будут открыты, и меня не особенно беспокоит сбой сервера - его тривиально восстановить.
Это PostgreSQL 9.1 с расширениями PostGIS, содержащий данные OpenStreetMap и некоторые другие вещи. В настоящее время он работает на виртуальной машине Ubuntu (Quantal) в инфраструктуре OpenStack.
База данных в настоящее время настроена так, что единственная учетная запись, которая может подключаться по сети, имеет доступ для чтения к необходимым таблицам и не более того. Он имеет простой пароль и работает на порту по умолчанию (5432) для упрощения использования. Доступ к оболочке осуществляется только по публичному ключу. Я не использую брандмауэр, кроме предоставленного инфраструктурой OpenStack. (Все эти решения можно обсуждать ...)
Поскольку вы используете Linux, iptables дает вам несколько вариантов.
Если в вашем дистрибутиве есть модуль квот iptables, вы можете использовать его для установки квоты на запросы. Обязательно установите правило квоты, а затем правило отбрасывания сразу после достижения лимита. Как только это будет сделано, вам может потребоваться задание cron сбросить счетчики байтов, чтобы сбросить квоту.
Кроме того, комбинация iptables и tc может достичь желаемого эффекта, независимо от того, хотите ли вы ограничить количество активных пользователей или остановить их.
Взгляните на эти инструменты и посмотрите, сделают ли они то, что вам нужно.