Как я могу заблокировать весь трафик только для одного порта? Возьмите следующую ситуацию:
- 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 в брандмауэре может сделать эту работу.