1

Как я могу заблокировать весь трафик только для одного порта? Возьмите следующую ситуацию:

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

При обычной настройке клиент MySQL может подключаться к размещенному MySQL-серверу, как в случае с Amazon EC2, поскольку разрешен исходящий трафик.

У меня есть следующие настройки сейчас. Я думал, что это заблокирует 3306, но я все еще могу устанавливать соединения с Amazon, используя клиент MySQL. Я перезапустил, чтобы убедиться, что все правила были применены.

     To                         Action      From
     --                         ------      ----
[ 1] 22                         ALLOW IN    Anywhere
[ 2] 80                         ALLOW IN    Anywhere
[ 3] 5900                       ALLOW IN    Anywhere
[ 4] Anywhere                   DENY IN     3306
[ 5] 3306                       DENY IN     Anywhere
[ 6] 22                         ALLOW IN    Anywhere (v6)
[ 7] 80                         ALLOW IN    Anywhere (v6)
[ 8] 5900                       ALLOW IN    Anywhere (v6)
[ 9] Anywhere (v6)              DENY IN     3306
[10] 3306                       DENY IN     Anywhere (v6)

Еще немного объяснений ...

Я использую виртуальную машину для тестирования существующего веб-приложения. Я делаю копию живой среды, восстанавливаю ее в ВМ. Живое приложение размещено на Amazon EC2. Сервер базы данных для работающего приложения - это не localhost, а другой сервер. С Amazon вы можете использовать публичный адрес для строки подключения, например, 12.34.56.78.eu-west-1.compute.amazonaws.com . Внутренне они ловят это и используют внутренний IP-адрес. Преимущество этого заключается в том, что когда происходит сбой экземпляра, и вам нужно создать другой экземпляр с другим внутренним IP-адресом, строку подключения изменять не нужно.

Этот адрес работает снаружи AWS, поэтому он работает с моей виртуальной машины. Я могу подключиться с моей виртуальной машины к производственной базе данных. Я знаю об этом и знаю, что мне нужно отредактировать строку подключения. Иногда я забываю об этом, и тогда используется производственная база данных. Я предпочитаю получать большое жирное сообщение об ошибке из моей тестовой среды, в котором говорится, что соединение с базой данных не удалось. (Если какой-то другой клиент в локальной сети захочет подключиться к mysql-серверу в виртуальной машине, это на самом деле не проблема.)

Так как я могу заставить это работать? Я думал, что блокировка порта 3306 в брандмауэре может сделать эту работу.

1 ответ1

1

Поскольку сервер Ubuntu подключается снаружи к Amazon, установка DENY IN на порт 3306 не останавливает это подключение снаружи.

По крайней мере, вам нужно будет запретить исходящие пакеты tcp и udp на порт 3306:

sudo ufw deny out 3306

Но еще безопаснее было бы запретить все пакеты tcp и udp на порт 3306:

sudo ufw deny 3306

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .