Скрипт простого IPtables для белого списка (конечные точки Amazon)

Я пытаюсь заблокировать экземпляр Amazon EC2, у которого есть один открытый порт для Amazon SNS. Я не могу использовать группы безопасности для ограничения порта, поскольку IP-адрес постоянно меняется, поэтому он должен быть открыт для всех, а затем защищен с помощью IPtables.

Все, что мне нужно сделать, это сбросить все подключения к порту, кроме локального, а затем принимать подключения от конечной точки SNS, например. sns.us-west-1.amazonaws.com

например.

#!/bin/bash

# Deny all except localhost on 8080
iptables -A INPUT ! -s 127.0.0.1 -p tcp -m tcp --dport 8080 -j DROP

# Run every 5 minutes and whitelist resolved AWS SNS IP
iptables -I INPUT -p tcp -s sns.us-west-1.amazonaws.com --dport 8080 -j ACCEPT

Проблема в том, что конечная точка sns "sns.us-west-1.amazonaws.com" регулярно меняет IP.

Если я запускаю это правило iptables, оно добавит правило ACCEPT для нового IP-адреса, поскольку оно постоянно меняется. Насколько я могу судить, этот список IP-адресов не является свободно доступным от Amazon.

Если я могу иметь IPtables позволяют конкретно с конечной точки, например. "sns.us-west-1.amazonaws.com", тогда я в порядке, но, насколько я понимаю, это невозможно, поскольку всегда разрешает правила для IP.

Единственный обходной путь, который я могу придумать вместо поддерживаемого общедоступного списка диапазонов IP-адресов SNS от amazon, к которому я могу обратиться и сделать белый список, - это запускать cron каждые несколько минут, внося белый список в конечную точку и к какому IP-адресу он разрешается.

Это поднимает проблему флагов -I или -A и -C для iptables. Я не могу запустить -C при первом запуске, поскольку он ничего не находит и ошибок. Я не могу запустить -I, так как он будет добавлять дубликаты IP каждый раз, когда он встречает один.

Как я могу сделать следующее:

1) всегда есть правило DENY: iptables -A INPUT! -s 127.0.0.1 -p tcp -m tcp --dport 8080 -j DROP

2) добавьте правило, разрешающее источник "sns.ap-southeast-2.amazonaws.com" на 8080, но сначала проверьте, существует ли правило соответствия для разрешенного IP-адреса в то время.

0 ответов

Другие вопросы по тегам