UFW: блокувати весь трафік для порту 3306


1

Як я можу заблокувати весь трафік лише для одного порту? Прийміть таку ситуацію:

  • Ubuntu Desktop VM
  • Браузер має доступ до Інтернету (порт 80 залишається відкритим)
  • Служби оновлення Ubuntu працюють нормально (можуть не бути заблоковані)
  • Встановлений графічний клієнт MySQL

У звичайних умовах клієнт MySQL може підключитися до розміщеного mysql-сервера, як, наприклад, з Amazon EC2, оскільки вихідний трафік дозволений.

Зараз у мене є така настройка. Я думав, що це заблокує 3306, але я все ще можу налагоджувати зв’язки з Amazon за допомогою клієнта MySQL. Я перезапустив, щоб переконатися, що всі правила були застосовані.

     До дії від
     - ------ ----
[1] 22 ДОБАВИТЬ У будь-якому місці
[2] 80 ДОБАВИТЬ У будь-якому місці
[3] 5900 ДОБАВИТЬ У будь-якому місці
[4] Де завгодно ДЕНЬ В 3306 році
[5] 3306 ДЕНЬ У ВСІМ місцях
[6] 22 ДОБАВИТЬ У будь-якому місці (v6)
[7] 80 ДОБАВИТЬ У будь-якому місці (v6)
[8] 5900 ДОБАВИТЬ У будь-якому місці (v6)
[9] В будь-якому місці (v6) ДЕНЬ В 3306
[10] 3306 ДЕНЬ У будь-якому місці (v6)

Ще кілька пояснень ...

Я використовую VM для тестування існуючої веб-програми. Я роблю копію живого середовища, відновлюю це у VM. У реальному часі розміщується програма Amazon EC2. Сервер баз даних для живого додатку - це не localhost, а інший сервер. З Amazon ви можете використовувати публічну адресу для рядка з'єднання, щось подібне 12.34.56.78.eu-west-1.compute.amazonaws.com. Внутрішньо вони вловлюють це і використовується внутрішня IP-адреса. Це має ту перевагу, що коли примірник виходить з ладу, і вам потрібно створити інший екземпляр з іншою внутрішньою IP-адресою, рядок з'єднання не потрібно змінювати.

Ця адреса працює за межами AWS, тому вона працює від мого VM. Я можу підключитися зі свого віртуального комп'ютера до виробничої бази даних. Я знаю про це, і знаю, що я повинен редагувати рядок з'єднання. Іноді про це забуваю, і тоді використовується виробнича база даних. Я вважаю за краще отримувати велике потворне повідомлення про помилку з мого тестового середовища, яке повідомляє мені, що з’єднання з базою даних не вдалося. (Якщо якимось чином інший клієнт у локальній мережі хотів би підключитися до mysql-сервера у віртуальній машині, це насправді не проблема.)

То як я можу це зробити так? Я думав, що блокування порту 3306 в брандмауері може зробити цю роботу.


Це вихід статусу ufw на якій машині, сервері або клієнті?
MariusMatutiae

Сервер робочого столу Ubuntu - це сервер. Для тестування та розробки просто практичніше мати доступність функціональності робочого столу. VM діє як веб-сервер для інших машин у тій самій мережі, як хост. Отже вихід UFW, який ви бачите тут, з сервера / робочого столу.
SPRBRN

Змініть файл конфігурації mysql, щоб він приймав з'єднання лише з localhost.
Ченгат Ренджу Чандран

1
Мені здається, що вам потрібно ДЕНЬ ВІН або загальний ДЕНЬ на 3306.
harrymc

@RenjuChandranchingath - я, мабуть, не пояснив це належним чином. Локальний клієнт (у самому VM) не повинен мати можливість підключитися до зовнішнього mysql-сервера. Мене не хвилює LAN, але WAN має бути заблокований. Якщо локальна мережа також заблокована, зберігати простіше, це нормально. Якщо простіше дозволити локальну мережу під час блокування WAN, це також добре.
SPRBRN

Відповіді:


1

Оскільки сервер Ubuntu підключається зовні до Amazon, встановлення DENY IN на порт 3306 не припиняє це з'єднання зовні.

Принаймні, вам потрібно буде відмовити у вихідних пакетах tcp та udp на порт 3306:

sudo ufw deny out 3306

Але ще безпечніше було б відмовити у всіх пакетах tcp та udp на порт 3306:

sudo ufw deny 3306

Так само зробив те ж саме для Postgres з 5432. Я спробував лише друге правило, але цього недостатньо. Схоже, це лише для вхідного трафіку? Тож мені було потрібно deny outблокувати вихідний трафік.
SPRBRN
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.