На этом этапе вы запустите SSH-сервис ловушки (гонипота) Cowrie, который будет прослушивать входящие соединения. Поскольку мы работаем в контейнере Docker без systemd, мы будем использовать прямой запуск процесса. Этот подход проще, чем традиционный менеджмент служб, и лучше подходит для контейнеризованных окружений.
-
Сначала убедитесь, что вы находитесь в правильном каталоге и активируйте виртуальную среду. Виртуальная среда содержит все необходимые зависимости Python, изолированные от системы:
cd ~/project
source cowrie-env/bin/activate
-
Запустите службу Cowrie в фоновом режиме. Флаг -n
заставляет ее работать в не-демонном режиме (показывать вывод непосредственно в терминале), а &
помещает процесс в фон, чтобы вы могли продолжать использовать терминал:
cowrie start -n &
-
Проверьте, что служба запущена, проверив список процессов. Эта команда фильтрует все запущенные процессы, чтобы показать только те, которые содержат "cowrie":
ps aux | grep cowrie
Вы должны увидеть вывод, похожий на следующий:
labex 12345 0.0 0.5 12345 6789 ? S 12:34 0:00 python cowrie start -n
-
Проверьте, слушает ли служба порт 22. Это важно, так как SSH-соединения будут приходить на этот порт. Команда показывает все сетевые службы и их прослушиваемые порты:
sudo netstat -tulnp | grep 22
Вы должны увидеть вывод, указывающий, что Python слушает порт 22.
-
Чтобы сделать службу устойчивой к закрытию сессии терминала, создайте простой скрипт для поддержания работы. Это гарантирует, что ловушка будет работать, даже если вы закроете терминал:
nano cowrie-keepalive.sh
Добавьте следующее содержимое:
#!/bin/bash
source ~/project/cowrie-env/bin/activate
cowrie start -n
-
Сделайте скрипт исполняемым, чтобы его можно было запускать напрямую:
chmod +x cowrie-keepalive.sh
-
Теперь вы можете запустить ловушку, выполнив этот скрипт. Он активирует среду и запускает Cowrie за один шаг:
./cowrie-keepalive.sh