Я сделал прокси-сервер на основе nginx, который перенаправляет трафик для нескольких машин, чтобы у них был единый фильтр безопасности, который я могу поддерживать. Ничего сумасшедшего, просто достаточно, чтобы заблокировать несколько агентств по отслеживанию рекламы и немного сэкономить на моих ограниченных тарифных планах.
В любом случае, nginx был идеален с точки зрения производительности и фактически ускорил несколько моих устройств при использовании веба. Однако решения для фильтрации для nginx было нелегко найти, поэтому мне пришлось работать с Ubuntu, чтобы посмотреть, где еще может существовать фильтр.
Я добавил несколько списков вредоносных IP-адресов и антитрекинговых списков с открытым исходным кодом в файл hosts и обнаружил, что иногда nginx работает в обход файла hosts, так что все это идет насмарку, поэтому я начал искать решение на основе брандмауэра.
Хотя я знаю, что UFW не предназначен для блокировки доменов, это единственный инструмент, который успешно блокирует запросы nginx по нежелательной ссылке, поэтому я составил скрипт оболочки, содержащий IP-адреса всех перечисленных доменов, а также записанные вредоносные IP-адреса, которые теперь анализирует моя машина.
# Example of the script
ufw deny out to 1.2.3.4;
ufw deny out to 1.2.3.5;
ufw deny out to 1.2.3.6;
Мой вопрос к вам, ребята, так как это занимает так много времени для скрипта, чтобы пройти через мой не очень загруженный дроплет digitalocean, замечу ли я снижение производительности, так как будет так много правил IPtables? Или UFW - это просто уровень настройки, который не влияет на то, как работает IPtables, и может быть немного громоздким, учитывая, что это приложение, ориентированное на пользовательский интерфейс? Я думаю, что с учетом того, насколько зрелыми являются таблицы IP, это не будет иметь таких больших накладных расходов, и меня не смущает одноразовое ожидание, но я немного обеспокоен только из-за того, как много времени требуется скрипту, чтобы загрузить каждое правило в правила.
Я полагаю, что я мог бы просто передать это в один из файлов конфигурации, но мне показалось, что запуск через простую в использовании командную интерфазу был бы стабильным и безопасным решением. Что вы, ребята, думаете?