IPTables: Дозвольте вихідні з'єднання MySQL, але не вхідні


10

У мене є сервер, який не дозволяє підключення до mysql із зовнішніх джерел - усі мої бази даних та з'єднання відбуваються у localhost. Політика iptables за замовчуванням полягає у відмові з'єднань для будь-яких портів, які я не вказую (на даний момент у мене в правилах iptable не вказано порт 3306, тому всі з'єднання з цим портом відмінені).

Це добре, але тепер я хотів би підключитися до бази даних mysql, розташованої зовні на Amazon RDS.

Порт 3306 можна відкрити для зовнішнього світу наступним чином:

iptables -t filter -A INPUT -p tcp --sport 3306 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 3306 -j ACCEPT

Це дозволяє мені підключатися до бази даних на Amazon RDS, однак це також дозволяє віддалене підключення до баз даних на моєму сервері.

Що мені потрібно зробити, щоб сервер міг підключитися до бази даних на Amazon, але обмежити зовнішні з'єднання з базами даних на моєму сервері?

Також майте на увазі, що IP-адреса мого екземпляра Amazon RDS може періодично змінюватися, я вважаю.


2
Отримайте статичний IP-адрес від Amazon, а потім встановіть білий список, що дозволяє тільки цей IP для вхідних / вихідних з'єднань?
Пітер

Відповіді:


17

Скористайтеся державним двигуном:

iptables -t filter -A OUTPUT -p tcp --dport 3306 -j ACCEPT
iptables -t filter -A INPUT -p tcp --sport 3306 -m state --state ESTABLISHED -j ACCEPT

або в пізніших версіях iptables

iptables -t filter -A OUTPUT -p tcp --dport 3306 -j ACCEPT
iptables -t filter -A INPUT -p tcp --sport 3306 -m conntrack --ctstate ESTABLISHED -j ACCEPT

Це саме те, що має працювати двигун стану: дозволити трафік, який відповідає різним критеріям (наприклад, протокол, порт джерела), але також є частиною існуючого з'єднання (як визначає з'єднання ). Підсумок полягає в тому, що вихідний TCP SYNпакет до конкретної зовнішньої IP-адреси на порту 3306 призначення з локального ефмерального порту створить таблицю стану стану для цієї конкретної комбінації IP-адрес та номерів портів і повертає лише трафік з тією ж комбінацією Адреси та порти будуть дозволені через і лише на час дії цього з'єднання.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.