Откройте Civo firewall для своего IP, а потом закройте обратно.
Ручная процедура, ловушка динамического IP, которая после неё остаётся, и бесплатный путь из строки меню с закрытием по сроку.
Вам нужно достать до инстанса Civo или до API кластера оттуда, где вы сидите прямо сейчас. Ответ это одно правило firewall: узнать свой публичный IPv4 и разрешить порт с этого единственного адреса, записав CIDR как /32. Первую половину Civo делает простой, а вторую опасной, потому что добавленное руками правило висит, пока его кто-нибудь не удалит. Ниже полная ручная процедура, а следом то, чем почти никто не занимается: закрытие.
То же правило, только из строки меню
-
01
Скажите приложению, какими firewall вы управляете
При первом запуске щит в строке меню запускает онбординг: вводите Civo API key, он уходит в macOS Keychain, выбираете регион и отмечаете firewall, которыми хотите управлять. Каждому отмеченному назначается порт, и это поле начинается с 6443.
-
02
Дайте ему найти ваш публичный IPv4
Определение идёт сначала через
api.ipify.org, затем ifconfig.me/ip, затемicanhazip.com, и останавливается на первом провайдере, который ответил корректным публичным адресом. Ответ с IPv6 или приватный адрес отклоняются с сообщением и в правило не попадают, потому что правилам Civo firewall нужен CIDR в IPv4. -
03
Один клик пишет правило
Приложение создаёт входящее правило на выбранном порту с CIDR из найденного адреса и /32, с меткой
civo-cloud-<hostname>-<firewall-name>. В ответе на создание Civo возвращает точный ID правила, поэтому приложению потом не приходится гадать, какое правило было его. -
04
Выберите, насколько долго оно будет открыто
Доступ по таймеру предлагает 15 минут, 30 минут, час и два часа. Есть ещё Unlimited: правило открывается, а закрытие не планируется вовсе, так что берите этот вариант, только если собираетесь закрыть правило сами.
-
05
Срок пишется на диск
Каждое задание на закрытие хранит ID firewall, ID правила, регион и срок и атомарно пишется в
firewall-closures.jsonв каталоге Application Support приложения. Закройте приложение, и срок никуда не денется: при следующем запуске просроченные задания закрываются, даже не открывая поповер. Честное ограничение в том, что для удаления правила приложение должно работать и доставать до Civo. Выход из программы или сон не планируют удаление на стороне сервера. -
06
Сохраните адрес как именованный пресет
Запомните текущий IP под именем вроде «Дом» или «Офис» и открывайте firewall для этого пресета позже, без повторного определения. Удобно, когда надо открыть доступ для статического офисного адреса, сидя совсем в другом месте.
Что на самом деле делает новый Civo firewall
Документация Civo API говорит об этом прямо: выбора между allow и deny при создании правила нет, потому что новый firewall по умолчанию запрещает всё, и вы открываете только нужные порты. Созданный вами firewall, таким образом, стартует закрытым, и каждое добавленное правило разрешающее. Ловушка в другом. В каждом регионе есть firewall с буквальным именем Default (all open), и документация Civo сама пишет, что у него открыты все порты, и советует его перенастроить. Поэтому правильный ответ на вечный вопрос такой: ваш собственный firewall запрещает по умолчанию, а региональный Default нет.
Ручная процедура целиком
Сначала публичный IPv4: curl -s https://api.ipify.org. Потом правило. В Civo CLI это civo firewall rule create <firewall_id> --protocol=TCP --startport=6443 --endport=6443 --cidr=203.0.113.42/32 --direction=ingress --label='laptop'. И третье, тот самый шаг, который все пропускают: запишите вернувшийся ID правила, чтобы потом было что удалять. Следите за умолчаниями: без --cidr в CLI подставится 0.0.0.0/0, и порт откроется всему интернету, а не вам. В дашборде последовательность та же: Actions, затем Rules, затем один порт или диапазон, протокол, направление и CIDR.
Правило переживает причину, по которой вы его добавили
У правила Civo firewall нет срока годности. Оно живёт, пока его не уберёт человек или вызов API. На корпоративном канале со статическим адресом это просто неаккуратно. На домашнем подключении это уже настоящая дыра, потому что большинство провайдеров меняют адрес при переподключении или при ночном продлении аренды. Разрешённый вами /32 достаётся чужому роутеру, и теперь ваше правило пускает постороннего на порт 6443, пока вы сами сидите снаружи и пишете второе правило. Каждое написанное руками правило это маленький долг, и отдаётся он только тогда, когда вы вспомните его удалить.
Почему приложение никогда не удалит правило, написанное вами
Принадлежность определяется меткой, а не портом и не адресом. Приложение создаёт только правила с меткой civo-cloud-<hostname>-<firewall-name>, а правила, открытые для подключения к Kubernetes API, несут вместо этого суффикс k8s-api. Массовый Close All перечисляет правила на каждом управляемом firewall и удаляет лишь те, чья метка начинается с этого префикса для данной машины. У продакшен-правила, написанного руками, такой метки нет, так что кандидатом оно не станет никогда. Одну оговорку стоит проговорить: неудавшийся запрос статуса всё равно рисуется в строке меню как закрыто или неизвестно, поэтому индикатор не доказательство того, что на сервере всё закрыто. Когда цена ошибки высока, посмотрите в дашборд Civo.
Порт 6443 и почему он всплывает постоянно
6443 это порт Kubernetes API server. Кластер Civo на k3s публикует свой endpoint как https://<master-ip>:6443, и именно с ним говорят kubectl, kubeconfig и любой клиент Kubernetes. Если firewall кластера не пускает 6443 с вашего адреса, каждая команда уходит в таймаут, поэтому этот номер и доминирует в поисковых запросах про Civo firewall. В приложении 6443 стоит портом по умолчанию в онбординге, а подключение к кластеру проверяет доступ к API и само открывает правило, если его нет. Этот путь для Kubernetes держит своё правило в памяти и убирает его при отключении, а сохранение на диск и повторные попытки, как в очереди таймеров строки меню, к нему не относятся.
Что спрашивают на самом деле
- Как открыть Civo firewall только для своего IP?
- Узнайте публичный IPv4 командой curl
-shttps://api.ipify.org, затем создайте на нужном firewall входящее правило с этим адресом, записанным как CIDR /32. В Civo CLI: civo firewall rule create<firewall_id>--protocol=TCP--startport=6443--endport=6443--cidr=203.0.113.42/32--direction=ingress. Выбора между allow и deny в API нет, потому что созданный вами firewall запрещает всё, пока вы не откроете порт. Сохраните вернувшийся ID правила, чтобы потом его удалить. - Что означает /32 в правиле Civo firewall?
- В нотации CIDR число после слеша это количество старших бит адреса, которые зафиксированы. Адрес IPv4 занимает 32 бита, поэтому /32 фиксирует их все, и правило совпадает ровно с одним адресом.
203.0.113.42/32это этот хост и никто больше. Для сравнения, /24 покрывает 256 адресов, а0.0.0.0/0весь интернет, и именно его Civo подставляет, когда правило создаётся без CIDR. - Что будет, если мой IP-адрес сменится?
- Правило за вами не последует. Оно продолжит пускать старый адрес, вы теряете доступ и добавляете второе правило, а тот, кому провайдер отдаст этот адрес следующим, получает ваше открытие в наследство. На домашних подключениях это норма: адрес обычно меняется при переподключении или при ночном продлении аренды. Лечится это не более удачным IP, а правилом, которое закрывается само: откройте порт на фиксированное окно и дайте сроку его убрать.
- Тронет ли CivoCloudManager мои существующие правила firewall?
- Нет. Он удаляет только созданные им самим правила, опознавая их по метке
civo-cloud-<hostname>-<firewall-name>, с суффиксом k8s-api для доступа к Kubernetes API. Массовый Close All сначала фильтрует список правил каждого управляемого firewall по этому префиксу и только потом что-то удаляет, поэтому у правила, написанного вами руками в дашборде Civo, в CLI или в Terraform, подходящей метки нет, и удалено оно не будет никогда. - Переживает ли таймер автозакрытия выход из приложения?
- Срок переживает. Каждое задание хранит ID firewall, ID правила, регион и время закрытия в атомарно записанном файле JSON в Application Support, и просроченные задания закрываются при следующем запуске. Не переживает закрытие без вашего участия: удаление это вызов API с вашего Mac, поэтому приложение должно работать и доставать до Civo. Если вы вышли из него или ушли в сон и срок прошёл, закрытие сдвинется до следующего запуска, на стороне сервера ничего не запланировано.
Руководства
Шаг за шагом и честные сравнения.
- 01 Подключение Civo API key Сгенерируйте ключ в дашборде Civo, вставьте его один раз, а дальше его держит macOS Keychain.
- 02 Против Lens, OpenLens и k9s Три инструмента, которым всё равно, чей кластер, и один заточенный под Civo. Разница решает, что вы держите открытым.
- 03 Civo Object Storage по S3 Региональный endpoint, рабочая конфигурация для s3cmd, rclone и AWS CLI и то, что нативный клиент делает иначе.
- 04 Civo DNS на Mac Делегируйте домен на неймсерверы Civo, а зону дальше ведите в нативном приложении, а не во вкладке браузера.
- 05 Changelog Все вышедшие релизы, новые сверху, с подробностями, для которых заметка в магазине слишком коротка.
Подробно
Точечные материалы по каждому продукту Civo.
У каждой области Civo, которой касается CivoCloudManager, есть своя страница с деталями, компромиссами и архитектурой. Выберите ту, что ближе всего к вашей текущей работе.
- 01 Альтернатива Civo CLI для Mac Где GUI сильнее CLI, где нет и как они уживаются вместе.
- 02 Civo Kubernetes GUI для Mac Живой дашборд кластера, логи pod в реальном времени, kubectl не нужен.
- 03 Браузер Civo Object Storage для Mac Нативный S3-совместимый браузер. Пауза простаивающих bucket в общем хранилище.
- 04 Civo firewall из строки меню Mac Открытие и закрытие в один клик, автоопределение IP, таймер автозакрытия.
- 05 Дашборд расходов Civo для Mac Реальные начисления из Civo charges API. Выбор периода и прогноз на конец месяца.
Управление firewall это бесплатный уровень.
Открытие и закрытие для текущего IP из строки меню, именованные пресеты и срок автозакрытия остаются бесплатными и после семи дней полного доступа, так что действовать по этой странице вам ничего не стоит.