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.