April 1
Полная инструкция по установке и использованию Yandex Cloud IP Hunter
Содержание
- Подготовка системы
- Установка Yandex Cloud CLI
- Установка jq
- Настройка Yandex Cloud
- Установка скрипта
- Настройка скрипта
- Запуск и использование
- Устранение проблем
- Дополнительные настройки
1. Подготовка системы
Проверка операционной системы
# Узнайте вашу ОС cat /etc/os-release # Проверьте версию Bash (должна быть 4.0+) bash --version
Обновление системы
# Ubuntu/Debian sudo apt update && sudo apt upgrade -y # CentOS/RHEL sudo yum update -y # macOS brew update && brew upgrade
2. Установка Yandex Cloud CLI
Автоматическая установка (рекомендуется)
# Скачать и установить curl -sSL https://storage.yandexcloud.net/yandexcloud-yc/install.sh | bash # Добавить YC CLI в PATH (автоматически добавится в .bashrc) source ~/.bashrc # Или для ZSH source ~/.zshrc # Проверить установку yc version
Ручная установка (если автоматическая не работает)
# 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
# Установка sudo apt update sudo apt install jq -y # Проверка jq --version # Должно вывести: jq-1.6 или выше
CentOS/RHEL 7+
# Установка sudo yum install epel-release -y sudo yum install jq -y # Проверка jq --version
CentOS/RHEL 8+
# Установка sudo dnf install epel-release -y sudo dnf install jq -y # Проверка jq --version
macOS
# Установка через Homebrew brew install jq # Проверка jq --version
Альтернативная установка (если нет прав root)
# Скачать бинарник 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
# Запустить инициализацию yc init
- Выбор способа авторизации:textPlease go to https://oauth.yandex.ru/authorize?response_type=code&client_id=...
- Выбор облака:textSelect cloud: [1] my-cloud (id = abc123...)
- Выбор папки (каталога):textSelect folder: [1] default (id = def456...)
- Выбор зоны по умолчанию:textDefault availability zone: [1] ru-central1-a [2] ru-central1-b [3] ru-central1-c
4.2. Проверка настроек
# Проверить конфигурацию yc config list # Должно показать: # token: ... # cloud-id: ... # folder-id: ... # zone: ru-central1-...
4.3. Проверка прав доступа
# Проверить, что можно создавать адреса
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. Скачивание скрипта
# Создать директорию для скриптов (опционально) 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. Настройка прав
# Сделать скрипт исполняемым chmod +x ip_hunter.sh # Проверить права ls -la ip_hunter.sh # Должно быть: -rwxr-xr-x
5.3. Проверка зависимостей
# Проверить наличие всех утилит which bash # /bin/bash which yc # /usr/local/bin/yc which jq # /usr/bin/jq # Все команды должны показать пути
6. Настройка скрипта
6.1. Редактирование параметров
# Открыть скрипт для редактирования nano ip_hunter.sh
# Ищем IP, начинающиеся с 178.154 и 51.250
TARGET_PREFIXES=(
"178.154"
"51.250"
)
# Можно добавить свои префиксы
TARGET_PREFIXES=(
"178.154"
"51.250"
"62.84" # Новый префикс
"84.201" # Еще один
)# Зоны, в которых будем создавать IP
AVAILABLE_ZONES=(
"ru-central1-a"
"ru-central1-b"
"ru-central1-c"
)
# Можно оставить только некоторые зоны
AVAILABLE_ZONES=(
"ru-central1-a"
"ru-central1-b"
# "ru-central1-c" # Исключаем
)MIN_DELAY=3 # Минимальная задержка (секунды) MAX_DELAY=8 # Максимальная задержка (секунды) # Для быстрого поиска (риск квоты): MIN_DELAY=1 MAX_DELAY=3 # Для стабильной работы: MIN_DELAY=5 MAX_DELAY=10
6.2. Сохранение изменений
# Ctrl+O - сохранить # Ctrl+X - выйти из nano
7. Запуск и использование
7.1. Простой запуск
# Запустить скрипт ./ip_hunter.sh
7.2. Запуск с сохранением лога
# Сохранить весь вывод в файл ./ip_hunter.sh | tee ip_hunter.log # Только ошибки ./ip_hunter.sh 2> errors.log
7.3. Запуск в фоне (screen)
# Установить 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)
# Установить 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)
# Открыть 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"
# Решение: перезагрузить shell source ~/.bashrc # Или добавить вручную echo 'export PATH=$PATH:$HOME/yandex-cloud/bin' >> ~/.bashrc source ~/.bashrc # Проверить which yc
Проблема 2: "jq: command not found"
# Ubuntu/Debian sudo apt install jq -y # CentOS/RHEL sudo yum install jq -y # macOS brew install jq
Проблема 3: "Permission denied" при запуске
# Дать права на выполнение chmod +x ip_hunter.sh # Или запускать через bash bash ip_hunter.sh
Проблема 4: "Error: quota exceeded"
# Увеличить задержки в скрипте
MIN_DELAY=8
MAX_DELAY=15
# Или уменьшить количество зон
AVAILABLE_ZONES=(
"ru-central1-a"
# временно отключить другие зоны
)Проблема 5: "Invalid token" или авторизация
# Переинициализировать YC yc init --force # Проверить токен yc config get token # Обновить токен вручную yc config set token <новый_токен>
Проблема 6: Нет прав на создание адресов
# Проверить права
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: Скрипт работает медленно
# Уменьшить задержки
MIN_DELAY=2
MAX_DELAY=4
# Увеличить количество зон для большего покрытия
AVAILABLE_ZONES=(
"ru-central1-a"
"ru-central1-b"
"ru-central1-c"
"ru-central1-d"
)Проблема 8: Не сохраняются найденные IP
# Проверить права на запись ls -la ip_hunter_success.log # Если нет файла, он создастся автоматически # Проверить, есть ли запись tail -f ip_hunter_success.log
9. Дополнительные настройки
9.1. Создание alias для быстрого запуска
# Добавить в ~/.bashrc echo 'alias iphunter="~/scripts/ip_hunter.sh"' >> ~/.bashrc source ~/.bashrc # Теперь можно запускать просто: iphunter
9.2. Настройка уведомлений
Добавьте в скрипт уведомления при успехе:
# Добавить Telegram уведомление
# В секцию успеха добавьте:
curl -s "https://api.telegram.org/bot<TOKEN>/sendMessage" \
-d "chat_id=<CHAT_ID>" \
-d "text=✅ Найден IP: $IP_ADDR в зоне $RANDOM_ZONE"9.3. Ограничение времени работы
# Запустить скрипт на 1 час
timeout 3600 ./ip_hunter.sh
# Или добавить в сам скрипт:
MAX_RUNTIME=3600 # 1 час в секундах
if [ $(date +%s) -gt $((START_TIME + MAX_RUNTIME)) ]; then
echo "Превышено время работы"
exit 0
fi9.4. Многопоточный режим (экспериментально)
# Создать несколько копий скрипта ./ip_hunter.sh & # Запуск в фоне ./ip_hunter.sh & # Второй экземпляр # Но будьте осторожны с квотой!
9.5. Создание systemd сервиса
# Создать файл сервиса sudo nano /etc/systemd/system/ip-hunter.service
[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
# Включить сервис sudo systemctl enable ip-hunter sudo systemctl start ip-hunter # Проверить статус sudo systemctl status ip-hunter # Посмотреть логи sudo journalctl -u ip-hunter -f
10. Проверка работоспособности
Тестовый запуск
# Сделать тестовый прогон (1-2 итерации) # Временно измените MIN_DELAY=1 и MAX_DELAY=1 # И запустите ./ip_hunter.sh
Ожидаемый вывод при успехе:
╔══════════════════════════════════════════════════════════════════════════╗ ║ 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. Полезные команды для мониторинга
# Посмотреть созданные адреса
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.log12. Безопасность и лучшие практики
12.1. Использование сервисного аккаунта
# Создать сервисный аккаунт 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. Ограничение прав
# Выдать только необходимые права
yc resource-manager folder add-access-binding <folder-id> \
--role vpc.admin \
--subject serviceAccount:<sa-id>12.3. Резервное копирование успешных IP
# Добавить в crontab для ежедневного копирования 0 0 * * * cp ~/scripts/ip_hunter_success.log ~/backups/ip_hunter_$(date +\%Y\%m\%d).log
13. Заключение
Готово! Ваш скрипт полностью настроен и готов к использованию.
- ✅ Установлены все зависимости (yc, jq)
- ✅ Настроен Yandex Cloud CLI
- ✅ Скачан и настроен скрипт
- ✅ Проведено тестирование
- Искать IP-адреса с нужными префиксами
- Сканировать несколько зон одновременно
- Автоматически очищать квоту
- Получать статистику в реальном времени