Ловушка (тарпит) для входящих SSH-соединений

Tarpit — это порт-ловушка, который используется для замедления входящих соединений. Если сторонняя система подключается к этому порту, то быстро закрыть соединение не получится. Ей придётся тратить свои системные ресурсы и ждать, пока соединение не прервётся по таймауту, или вручную разрывать его.

Чаще всего тарпиты применяют для защиты. Технику впервые разработали для защиты от компьютерных червей. А сейчас её можно использовать, чтобы испортить жизнь спамерам и исследователям, которые занимаются широким сканированием всех IP-адресов подряд (примеры на Хабре: Австрия, Украина).


Установка утилиты:
apt update
apt upgrade
apt install git make g++


cd /opt
git clone https://github.com/skeeto/endlessh.git
cd endlessh
make
./endlessh & ssh -p2222 localhost


Добавляем как сервис

adduser tarpit


/etc/systemd/system/tarpitssh.service
[Unit]
Description=Tarpit daemon
After=network.target

[Service]
ExecStart=/opt/endlessh/endlessh -v

User=tarpit
Group=tarpit

[Install]
WantedBy=multi-user.target

запускаем сервис
systemctl enable tarpitssh
systemctl start tarpitssh

проверяем что запустился
apt install net-tools
netstat -anop|grep 2222
tcp6       0      0 :::2222                 :::*                    LISTEN      9605/endlessh        off (0.00/0/0)


Проверяем соединение с tarpit:
ssh root@tarpit_host -p 2222

systemctl status tarpitssh
Apr 21 09:35:07 tarpitssh systemd[1]: Started Tarpit daemon.
Apr 21 09:35:07 tarpitssh endlessh[9715]: 2019-04-21T09:35:07.233Z Port 2222
Apr 21 09:35:07 tarpitssh endlessh[9715]: 2019-04-21T09:35:07.233Z Delay 10000
Apr 21 09:35:07 tarpitssh endlessh[9715]: 2019-04-21T09:35:07.233Z MaxLineLength 32
Apr 21 09:35:07 tarpitssh endlessh[9715]: 2019-04-21T09:35:07.233Z MaxClients 4096
Apr 21 09:35:07 tarpitssh endlessh[9715]: 2019-04-21T09:35:07.234Z BindFamily IPv4 Mapped IPv6
Apr 21 09:35:34 tarpitssh endlessh[9715]: 2019-04-21T09:35:34.211Z ACCEPT host=::ffff:192.168.1.50 port=48996 fd=4 n=1/4096


Docker
cd /opt
git clone https://github.com/skeeto/endlessh.git
docker build -t tarpit .
docker run -d -it -p 0.0.0.0:2222:2222  --restart always --name=tarpit tarpit
проверяем
root@himic:/opt/endlessh# netstat -anop |grep 222
tcp6       0      0 :::2222                 :::*                    LISTEN      16309/docker-proxy   off (0.00/0/0)

зачем надо:
habr.com/ru/company/globalsign/blog/445318/

Нет комментариев