← Все статьи

🚀 Запускаем своего Telegram-бота для учёта подписчиков канала

🚀 Запускаем своего Telegram-бота для учёта подписчиков канала

Друзья, начинаем небольшую практическую серию постов, где мы вместе с вами развернём собственного Telegram-бота для канала.

Бот будет помогать админу отслеживать события в канале:
✅ кто подписался
✅ кто отписался
✅ когда это произошло
✅ отправлять уведомления админу в личные сообщения

То есть у нас будет не просто общая статистика, а нормальные уведомления по действиям пользователей.

Что будет в этой серии?
Всего сделаем 3 этапа:
1️⃣ Арендуем VPS и сделаем базовую защиту сервера
2️⃣ Разместим код бота на сервере и подготовим окружение
3️⃣ Настроим .env и полноценно запустим бота
Сегодня первый этап - берём VPS, подключаемся к нему и сразу закрываем базовые вопросы безопасности.

Зачем нам VPS?
Бота можно запустить и на своём компьютере, но это плохой вариант для постоянной работы. Если компьютер выключился, интернет пропал или вы закрыли терминал - бот перестал работать.
Поэтому нам нужен VPS - это удалённый сервер, который работает 24/7.
На нём бот будет постоянно находиться онлайн и отслеживать подписки/отписки в канале.

Где взять VPS?
Я сам хостюсь на SmartApe, у меня там всё работает нормально, поэтому можете взять сервер там по моей ссылке
Но это не обязательное условие.
Если у вас уже есть другой VPS или вы хотите выбрать другого провайдера - без проблем, подойдёт любой сервер с Ubuntu/Debian и SSH-доступом.
Для нашего бота хватит минимального тарифа:
Ubuntu 22.04 или 24.04, 1 CPU, 1 GB RAM, 10–20 GB SSD, доступ по SSH
Мощный сервер для такого бота не нужен.

Что должно быть после аренды VPS?
После покупки сервера у вас должны быть:
🔹IP-адрес сервера
🔹логин, чаще всего root
🔹пароль от сервера или SSH-ключ
🔹установленная система Ubuntu/Debian

⌨️ Подключаемся к серверу
Открываем терминал (Win + R в открывшемся окне cmd) и вводим команду:

ssh root@123.45.67.89

Вместо 123.45.67.89 подставьте IP-адрес вашего сервера.
Дальше нажимаем Enter и вводим пароль от сервера.
После этого вы попадёте внутрь сервера.

🔐Базовая защита VPS
Прежде чем размещать бота, сразу сделаем минимальную защиту сервера.

1️⃣ Установка и настройка UFW
🔹Сначала обновим пакеты и установим файрвол:

sudo apt update
sudo apt install ufw

Теперь обязательно разрешаем SSH-доступ.
🔹Важно сделать это до включения файрвола, иначе можно случайно потерять доступ к серверу.
sudo ufw allow 22/tcp

Если вы используете нестандартный SSH-порт, замените 22 на свой номер порта.
🔹Теперь включаем файрвол:
sudo ufw enable

🔹 Проверить статус правил можно командой:
sudo ufw status verbose

Если всё сделали правильно, SSH-доступ будет разрешён, а файрвол будет активен.

2️⃣ Установка и настройка Fail2ban
Ставим защиту от перебора паролей:

sudo apt install fail2ban

Fail2ban работает через конфигурационные файлы.
Сначала скопируем дефолтный конфиг в локальный файл:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Открываем файл настроек:
sudo nano /etc/fail2ban/jail.local

Найдите секцию [sshd] и приведите её к такому виду:
[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
maxretry = 3
bantime = 3600

В nano это делается так:
Ctrl + O
Enter
Ctrl + X

Теперь перезапускаем fail2ban:
sudo systemctl restart fail2ban

3️⃣ Проверяем работу защиты
Чтобы убедиться, что fail2ban работает и отслеживает SSH, используем команду:

sudo fail2ban-client status sshd

Если всё настроено корректно, вы увидите статус защиты для SSH.

Что сделали сегодня?
Сегодня мы:

✅ выбрали и арендовали VPS
✅ подключились к серверу по SSH
✅ обновили пакеты
✅ установили и включили файрвол ufw
✅ разрешили SSH-доступ
✅ установили fail2ban
✅ включили защиту от перебора паролей

Теперь у нас есть сервер, который уже готов к следующему этапу.
В следующем посте будем размещать код нашего Telegram-бота на VPS, устанавливать зависимости и готовить проект к запуску.

Продолжаем 🔥

Made on
Tilda