Установка и настройка SpiderFoot на Ubuntu 20.04

SpiderFoot — бесплатный и открытый инструмент для автоматизированного поиска уязвимостей и разведки по открытым источникам (OSINT). Программа написана на Python, использует SQLite для хранения данных и предоставляет веб‑интерфейс для запуска сканирований нескольких целей одновременно через браузер. SpiderFoot работает на Linux и Windows и может интегрироваться с внешними репозиториями и API.
Основная цель статьи
Провести установку SpiderFoot на сервер Ubuntu 20.04, запустить веб‑интерфейс, включить простую аутентификацию и дать практические рекомендации по безопасной эксплуатации.
Кому пригодится
- Системным администраторам, которые хотят добавить инструмент OSINT в арсенал.
- Пентестерам, планирующим автономный инвентарь рисков.
- Командам IT‑безопасности, требующим быстрой установки и безопасного развёртывания.
Предпосылки
- Сервер с Ubuntu 20.04 (доступ по SSH).
- Пароль root или учетная запись с правами sudo.
- Базовые навыки работы в терминале.
Обновление пакетов и установка зависимостей
Перед началом обновите кеш пакетов и установите Python 3 и pip:
apt-get update -yapt-get install python3 python3-pip -yВажно: используйте sudo, если вы не под root. После установки можно перейти к загрузке SpiderFoot.
Загрузка и установка SpiderFoot
- Скачайте релиз (в примере — v3.3):
wget https://github.com/smicallef/spiderfoot/archive/v3.3.tar.gz- Распакуйте архив:
tar -xvzf v3.3.tar.gz- Перейдите в распакованную папку и установите Python‑зависимости:
cd spiderfoot-3.3
pip3 install -r requirements.txt- Проверьте доступные опции SpiderFoot:
python3 sf.py --help(Вы увидите список аргументов запуска, например: -l для адреса прослушивания, -s для цели, -M для списка модулей и т.д.)
Запуск SpiderFoot в режиме веб‑интерфейса
Запустите сервер, указав IP сервера и порт (по умолчанию в примерах используется 5001):
python3 sf.py -l your-server-ip:5001При старте вы увидите лог о том, что сервер слушает указанный адрес и порт. Нажмите CTRL+C для остановки.
Важно: по умолчанию аутентификация отключена. Не экспонируйте сервис в интернет без защиты.
Включение базовой аутентификации
- В каталоге spiderfoot создайте файл passwd с записью “user:password”:
cd spiderfoot-3.3
echo "admin:yourpassword" > passwd- Запустите SpiderFoot снова, и он автоматически включит базовую аутентификацию при наличии файла passwd:
python3 sf.py -l your-server-ip:5001После этого веб‑интерфейс будет запрашивать логин и пароль при входе.
Доступ к веб‑интерфейсу
Откройте в браузере:

Введите учётные данные и войдите. После входа вы попадёте в панель управления, где можно создать новый скан.



Рекомендации по безопасной публикации веб‑интерфейса
Минимальные шаги для безопасной эксплуатации:
- Запустите SpiderFoot только на внутреннем интерфейсе (127.0.0.1) и пробрасывайте доступ через реверс‑прокси (Nginx) с TLS.
- Ограничьте доступ через брандмауэр (ufw или iptables) по IP, если возможно.
- Используйте надёжные пароли и храните их в менеджере паролей.
- Рассмотрите запуск под отдельным непривилегированным системным юзером.
Пример запуска на локальном интерфейсе и проксирования через Nginx:
- Запустите SpiderFoot на localhost:
python3 sf.py -l 127.0.0.1:5001- Пример конфигурации Nginx (файл /etc/nginx/sites-available/spiderfoot):
server {
listen 80;
server_name spiderfoot.example.com;
location / {
proxy_pass http://127.0.0.1:5001;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}- Получите сертификат Let’s Encrypt и включите HTTPS (certbot):
apt-get install certbot python3-certbot-nginx -y
certbot --nginx -d spiderfoot.example.comНастройка systemd‑сервиса для автозапуска
Создайте файл /etc/systemd/system/spiderfoot.service:
[Unit]
Description=SpiderFoot
After=network.target
[Service]
User=spiderfoot
WorkingDirectory=/opt/spiderfoot-3.3
ExecStart=/usr/bin/python3 /opt/spiderfoot-3.3/sf.py -l 127.0.0.1:5001
Restart=on-failure
[Install]
WantedBy=multi-user.targetЗатем:
systemctl daemon-reload
systemctl enable --now spiderfoot.serviceЖёсткая настройка и соответствие приватности
- Не сканируйте объекты, на которые у вас нет явного разрешения — это может быть незаконно.
- Если вы собираете персональные данные, оцените соответствие GDPR и локальным законам о защите данных; минимизируйте хранение чувствительной информации.
- По возможности используйте отдельную базу данных и резервное копирование зашифрованных файлов SQLite.
Проверочный чеклист (роль — системный администратор)
- Сервер обновлён (apt-get update && apt-get upgrade).
- Установлен Python3 и pip3.
- SpiderFoot распакован и зависимости установлены.
- Включена базовая аутентификация (файл passwd заполнен).
- Веб‑интерфейс доступен только через Nginx с HTTPS.
- Сервис настроен через systemd и автоматически перезапускается.
- Файлы логов и база данных защищены правами доступа.
Критерии приёмки
- Веб‑интерфейс доступен по HTTPS и требует учётных данных.
- Сканирование запускается и сохраняет результаты в базе данных.
- Сервис автоматически стартует после перезагрузки сервера.
Частые проблемы и способы устранения
Проблема: «Port already in use» при старте
- Причина: другой процесс слушает порт 5001.
- Решение: остановите процесс или измените порт (например, 127.0.0.1:5002) и обновите прокси.
Проблема: «Authentication disabled» даже при наличии passwd
- Причина: файл passwd не в той директории или нет прав чтения.
- Решение: проверьте путь и права (chmod 600 passwd).
Проблема: Nginx не проксирует корректно
- Проверьте логи Nginx (journalctl -u nginx) и убедитесь, что proxy_pass указывает на правильный адрес.
Обновление и миграция
- Чтобы обновиться до новой версии SpiderFoot, скачайте архив новой версии, остановите сервис, распакуйте в /opt, установите зависимости и перезапустите systemd‑сервис. Проверьте совместимость модулей и резервные копии базы данных перед обновлением.
Альтернативы и когда SpiderFoot не подходит
- Если вам нужен распределённый сканер с базой данных уровня предприятия — рассмотрите коммерческие решения (они обеспечат масштабирование, централизованное управление и поддержу).
- SpiderFoot хорошо подходит для OSINT и начальной автоматизации, но может быть недостаточен для глубокой сетевой эксплуатации или управления большими объёмами данных.
Быстрая методология безопасного запуска (мини‑SOP)
- Установить и протестировать локально (127.0.0.1).
- Включить аутентификацию и строгие права доступа.
- Прокси через Nginx + TLS, ограничить доступ по IP при возможности.
- Настроить systemd и мониторинг (Prometheus/Alertmanager или простой health‑check).
- Делать регулярные бэкапы и ревью модулей.
Резервный план и откат
- Перед обновлением: создать копию каталога spiderfoot и файла базы (SQLite).
- Если обновление привело к ошибкам, откатитесь к резервной копии каталога и базы и перезапустите старый сервис.
Полезные ссылки и документация
- Официальная документация SpiderFoot: https://www.spiderfoot.net/documentation/
Краткое резюме
Вы установили SpiderFoot на Ubuntu 20.04, запустили веб‑интерфейс и включили базовую аутентификацию. Дальше рекомендуется проксировать сервис через Nginx с HTTPS, настроить systemd для автозапуска и обеспечить защиту данных. Используйте чеклист и рекомендации по безопасности при развертывании в продакшн.
Вопросы? Опишите вашу конфигурацию (IP, публичный/приватный доступ, есть ли reverse proxy), и я помогу адаптировать сервис под ваш сценарий.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента