April 1

Полная инструкция по установке и использованию Yandex Cloud IP Hunter

Содержание

  1. Подготовка системы
  2. Установка Yandex Cloud CLI
  3. Установка jq
  4. Настройка Yandex Cloud
  5. Установка скрипта
  6. Настройка скрипта
  7. Запуск и использование
  8. Устранение проблем
  9. Дополнительные настройки

1. Подготовка системы

Проверка операционной системы

bash

# Узнайте вашу ОС
cat /etc/os-release

# Проверьте версию Bash (должна быть 4.0+)
bash --version

Обновление системы

bash

# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y

# CentOS/RHEL
sudo yum update -y

# macOS
brew update && brew upgrade

2. Установка Yandex Cloud CLI

Автоматическая установка (рекомендуется)

bash

# Скачать и установить
curl -sSL https://storage.yandexcloud.net/yandexcloud-yc/install.sh | bash

# Добавить YC CLI в PATH (автоматически добавится в .bashrc)
source ~/.bashrc

# Или для ZSH
source ~/.zshrc

# Проверить установку
yc version

Ручная установка (если автоматическая не работает)

bash

# Ubuntu/Debian
wget https://storage.yandexcloud.net/yandexcloud-yc/release/stable/linux/amd64/yc
chmod +x yc
sudo mv yc /usr/local/bin/

# macOS
wget https://storage.yandexcloud.net/yandexcloud-yc/release/stable/darwin/amd64/yc
chmod +x yc
sudo mv yc /usr/local/bin/

# Проверить
yc version

3. Установка jq

jq - это мощный парсер JSON, необходимый для обработки ответов Yandex Cloud API.

Ubuntu/Debian

bash

# Установка
sudo apt update
sudo apt install jq -y

# Проверка
jq --version
# Должно вывести: jq-1.6 или выше

CentOS/RHEL 7+

bash

# Установка
sudo yum install epel-release -y
sudo yum install jq -y

# Проверка
jq --version

CentOS/RHEL 8+

bash

# Установка
sudo dnf install epel-release -y
sudo dnf install jq -y

# Проверка
jq --version

macOS

bash

# Установка через Homebrew
brew install jq

# Проверка
jq --version

Альтернативная установка (если нет прав root)

bash

# Скачать бинарник
wget https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64
chmod +x jq-linux64
sudo mv jq-linux64 /usr/local/bin/jq

# Проверка
jq --version

4. Настройка Yandex Cloud

4.1. Инициализация YC CLI

bash

# Запустить инициализацию
yc init

Пошаговая настройка:

  1. Выбор способа авторизации:textPlease go to https://oauth.yandex.ru/authorize?response_type=code&client_id=...
    • Откройте ссылку в браузере
    • Авторизуйтесь в Яндексе
    • Скопируйте код авторизации
    • Вставьте код в терминал
  2. Выбор облака:textSelect cloud: [1] my-cloud (id = abc123...)
    • Выберите номер облака (обычно 1)
  3. Выбор папки (каталога):textSelect folder: [1] default (id = def456...)
    • Выберите каталог, где будут создаваться IP-адреса
  4. Выбор зоны по умолчанию:textDefault availability zone: [1] ru-central1-a [2] ru-central1-b [3] ru-central1-c
    • Выберите любую (скрипт сам будет переключать зоны)

4.2. Проверка настроек

bash

# Проверить конфигурацию
yc config list

# Должно показать:
# token: ...
# cloud-id: ...
# folder-id: ...
# zone: ru-central1-...

4.3. Проверка прав доступа

bash

# Проверить, что можно создавать адреса
yc vpc address create --external-ipv4 zone=ru-central1-a --format json

# Если успешно - получите JSON с информацией об адресе
# Сразу удалите тестовый адрес
yc vpc address list --format json | jq -r '.[].id' | xargs -I {} yc vpc address delete {}

5. Установка скрипта

5.1. Скачивание скрипта

bash

# Создать директорию для скриптов (опционально)
mkdir -p ~/scripts
cd ~/scripts

# Скачать скрипт
curl -o ip_hunter.sh https://raw.githubusercontent.com/your-repo/ip_hunter.sh

# Или создать вручную
nano ip_hunter.sh
# (скопируйте код скрипта из предыдущего сообщения)

5.2. Настройка прав

bash

# Сделать скрипт исполняемым
chmod +x ip_hunter.sh

# Проверить права
ls -la ip_hunter.sh
# Должно быть: -rwxr-xr-x

5.3. Проверка зависимостей

bash

# Проверить наличие всех утилит
which bash      # /bin/bash
which yc        # /usr/local/bin/yc
which jq        # /usr/bin/jq

# Все команды должны показать пути

6. Настройка скрипта

6.1. Редактирование параметров

bash

# Открыть скрипт для редактирования
nano ip_hunter.sh

Настройка целей (префиксов):

bash

# Ищем IP, начинающиеся с 178.154 и 51.250
TARGET_PREFIXES=(
    "178.154"
    "51.250"
)

# Можно добавить свои префиксы
TARGET_PREFIXES=(
    "178.154"
    "51.250"
    "62.84"      # Новый префикс
    "84.201"     # Еще один
)

Настройка зон:

bash

# Зоны, в которых будем создавать IP
AVAILABLE_ZONES=(
    "ru-central1-a"
    "ru-central1-b"
    "ru-central1-c"
)

# Можно оставить только некоторые зоны
AVAILABLE_ZONES=(
    "ru-central1-a"
    "ru-central1-b"
    # "ru-central1-c"  # Исключаем
)

Настройка задержек:

bash

MIN_DELAY=3    # Минимальная задержка (секунды)
MAX_DELAY=8    # Максимальная задержка (секунды)

# Для быстрого поиска (риск квоты):
MIN_DELAY=1
MAX_DELAY=3

# Для стабильной работы:
MIN_DELAY=5
MAX_DELAY=10

6.2. Сохранение изменений

bash

# Ctrl+O - сохранить
# Ctrl+X - выйти из nano

7. Запуск и использование

7.1. Простой запуск

bash

# Запустить скрипт
./ip_hunter.sh

7.2. Запуск с сохранением лога

bash

# Сохранить весь вывод в файл
./ip_hunter.sh | tee ip_hunter.log

# Только ошибки
./ip_hunter.sh 2> errors.log

7.3. Запуск в фоне (screen)

bash

# Установить screen если нет
sudo apt install screen -y

# Создать новую сессию
screen -S ip_hunter

# Запустить скрипт
./ip_hunter.sh

# Отсоединиться от сессии: Ctrl+A, затем D

# Вернуться к сессии
screen -r ip_hunter

# Убить сессию (если нужно остановить)
screen -X -S ip_hunter quit

7.4. Запуск в фоне (tmux)

bash

# Установить tmux
sudo apt install tmux -y

# Создать новую сессию
tmux new -s ip_hunter

# Запустить скрипт
./ip_hunter.sh

# Отсоединиться: Ctrl+B, затем D

# Вернуться: tmux attach -t ip_hunter

7.5. Автоматический запуск при старте (crontab)

bash

# Открыть crontab
crontab -e

# Добавить строку для запуска каждые 5 минут
*/5 * * * * /home/username/scripts/ip_hunter.sh >> /home/username/ip_hunter_auto.log 2>&1

# Или запускать при перезагрузке
@reboot /home/username/scripts/ip_hunter.sh

8. Устранение проблем

Проблема 1: "bash: yc: command not found"

bash

# Решение: перезагрузить shell
source ~/.bashrc

# Или добавить вручную
echo 'export PATH=$PATH:$HOME/yandex-cloud/bin' >> ~/.bashrc
source ~/.bashrc

# Проверить
which yc

Проблема 2: "jq: command not found"

bash

# Ubuntu/Debian
sudo apt install jq -y

# CentOS/RHEL
sudo yum install jq -y

# macOS
brew install jq

Проблема 3: "Permission denied" при запуске

bash

# Дать права на выполнение
chmod +x ip_hunter.sh

# Или запускать через bash
bash ip_hunter.sh

Проблема 4: "Error: quota exceeded"

bash

# Увеличить задержки в скрипте
MIN_DELAY=8
MAX_DELAY=15

# Или уменьшить количество зон
AVAILABLE_ZONES=(
    "ru-central1-a"
    # временно отключить другие зоны
)

Проблема 5: "Invalid token" или авторизация

bash

# Переинициализировать YC
yc init --force

# Проверить токен
yc config get token

# Обновить токен вручную
yc config set token <новый_токен>

Проблема 6: Нет прав на создание адресов

bash

# Проверить права
yc resource-manager folder get <folder-id>

# Если прав нет, нужно обратиться к администратору облака
# Или создать сервисный аккаунт с правами
yc iam service-account create --name ip-hunter-sa
yc resource-manager folder add-access-binding <folder-id> \
    --role editor \
    --subject serviceAccount:<service-account-id>

Проблема 7: Скрипт работает медленно

bash

# Уменьшить задержки
MIN_DELAY=2
MAX_DELAY=4

# Увеличить количество зон для большего покрытия
AVAILABLE_ZONES=(
    "ru-central1-a"
    "ru-central1-b"
    "ru-central1-c"
    "ru-central1-d"
)

Проблема 8: Не сохраняются найденные IP

bash

# Проверить права на запись
ls -la ip_hunter_success.log

# Если нет файла, он создастся автоматически
# Проверить, есть ли запись
tail -f ip_hunter_success.log

9. Дополнительные настройки

9.1. Создание alias для быстрого запуска

bash

# Добавить в ~/.bashrc
echo 'alias iphunter="~/scripts/ip_hunter.sh"' >> ~/.bashrc
source ~/.bashrc

# Теперь можно запускать просто:
iphunter

9.2. Настройка уведомлений

Добавьте в скрипт уведомления при успехе:

bash

# Добавить Telegram уведомление
# В секцию успеха добавьте:
curl -s "https://api.telegram.org/bot<TOKEN>/sendMessage" \
    -d "chat_id=<CHAT_ID>" \
    -d "text=✅ Найден IP: $IP_ADDR в зоне $RANDOM_ZONE"

9.3. Ограничение времени работы

bash

# Запустить скрипт на 1 час
timeout 3600 ./ip_hunter.sh

# Или добавить в сам скрипт:
MAX_RUNTIME=3600  # 1 час в секундах
if [ $(date +%s) -gt $((START_TIME + MAX_RUNTIME)) ]; then
    echo "Превышено время работы"
    exit 0
fi

9.4. Многопоточный режим (экспериментально)

bash

# Создать несколько копий скрипта
./ip_hunter.sh &  # Запуск в фоне
./ip_hunter.sh &  # Второй экземпляр

# Но будьте осторожны с квотой!

9.5. Создание systemd сервиса

bash

# Создать файл сервиса
sudo nano /etc/systemd/system/ip-hunter.service

ini

[Unit]
Description=Yandex Cloud IP Hunter
After=network.target

[Service]
Type=simple
User=your_username
WorkingDirectory=/home/your_username/scripts
ExecStart=/home/your_username/scripts/ip_hunter.sh
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

bash

# Включить сервис
sudo systemctl enable ip-hunter
sudo systemctl start ip-hunter

# Проверить статус
sudo systemctl status ip-hunter

# Посмотреть логи
sudo journalctl -u ip-hunter -f

10. Проверка работоспособности

Тестовый запуск

bash

# Сделать тестовый прогон (1-2 итерации)
# Временно измените MIN_DELAY=1 и MAX_DELAY=1
# И запустите
./ip_hunter.sh

Ожидаемый вывод при успехе:

text

╔══════════════════════════════════════════════════════════════════════════╗
║                    YANDEX CLOUD IP HUNTER v3.0                           ║
║                    Cross-Zone IP Scanner                                 ║
╚══════════════════════════════════════════════════════════════════════════╝
🎯 Цели поиска:
  → 178.154.*.*.* (любая зона)
  → 51.250.*.*.* (любая зона)
🌍 Зоны для сканирования:
  → ru-central1-a
  → ru-central1-b
  → ru-central1-c
⏱️  Задержка: 3-8 сек (рандом)
🧹 Авто-очистка: ВКЛ

🧹 Очистка всех адресов... ✅ Чисто (нет адресов)

№    | IP Адрес          | Префикс      | Статус                | Зона создания
──────────────────────────────────────────────────────────────────────────────────
1    | 178.154.23.45     | 178.154      | 🎉 ПОЙМАЛ! 🎉         | ru-central1-b

11. Полезные команды для мониторинга

bash

# Посмотреть созданные адреса
yc vpc address list

# Посмотреть детали конкретного адреса
yc vpc address get <address-id>

# Удалить все адреса вручную
yc vpc address list --format json | jq -r '.[].id' | xargs -I {} yc vpc address delete {}

# Посмотреть квоты
yc resource-manager folder get <folder-id> --format json | jq '.quotas'

# Посмотреть логи успешных находок
cat ip_hunter_success.log

# Мониторить логи в реальном времени
tail -f ip_hunter_success.log

12. Безопасность и лучшие практики

12.1. Использование сервисного аккаунта

bash

# Создать сервисный аккаунт
yc iam service-account create --name ip-hunter

# Создать ключ доступа
yc iam access-key create --service-account-name ip-hunter

# Использовать ключ в скрипте
export YC_TOKEN=<token>
export YC_FOLDER_ID=<folder-id>

12.2. Ограничение прав

bash

# Выдать только необходимые права
yc resource-manager folder add-access-binding <folder-id> \
    --role vpc.admin \
    --subject serviceAccount:<sa-id>

12.3. Резервное копирование успешных IP

bash

# Добавить в crontab для ежедневного копирования
0 0 * * * cp ~/scripts/ip_hunter_success.log ~/backups/ip_hunter_$(date +\%Y\%m\%d).log

13. Заключение

Готово! Ваш скрипт полностью настроен и готов к использованию.

Краткое резюме:

  • ✅ Установлены все зависимости (yc, jq)
  • ✅ Настроен Yandex Cloud CLI
  • ✅ Скачан и настроен скрипт
  • ✅ Проведено тестирование

Теперь вы можете:

  • Искать IP-адреса с нужными префиксами
  • Сканировать несколько зон одновременно
  • Автоматически очищать квоту
  • Получать статистику в реальном времени

Приятного использования! 🚀


Если у вас остались вопросы, проверьте:

  1. Логи ошибок: cat ip_hunter_success.log
  2. Статус YC CLI: yc config list
  3. Версии утилит: yc version && jq --version && bash --version