wergio
@wergio
Программист - любитель!

Отследить событие при подключение к порту в Linux?

Подскажите, как можно выполнить что-то при событии соединения к серверу.
Например, есть порт 21 ( это пример, не нужно мне советовать что-то делать с FTP ), как системно получить ip клиента при его соединении, проверить его в спам-базе и заблокировать если нужно
( это тоже пример, выполнением может быть что угодно ).

Скажите хотя бы поверхностно схему реализации этого?
Может для Linux уже есть готовые решения, программы?
  • Вопрос задан
  • 453 просмотра
Решения вопроса 1
Есть стандартный пакет, fail2ban.

Он парсит логи приложения (в данном случае ftp), и в соответствии с настройками jail автоматически выполняет блокировку при подозрительной активности ip адреса.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
CityCat4
@CityCat4
//COPY01 EXEC PGM=IEBGENER
1. Доработать программу :)
2. Парсить логи, в которые программа выводит данные о подключении

Общей методики тут нет и быть не может. Подключение клиента к порту - стандартное событие для сервера, и его обрабатывают все как хотят. И формат логов в общем-то произвольный. Смотрите fail2ban - его уже посоветовали.
Ответ написан
Комментировать
@andiges
sudo iptables -I INPUT -p udp --dport 21 -d a.b.c.d -j LOG --log-prefix="TRIGGER_ME_NOW"

Ну а потом можно проверять логи, там стоят и IP адреса и другие детали.

fail2ban Отличный вариант, или можно что попроще:
tail -f /var/log/firewall.log | awk '/TRIGGER_ME_NOW/ {system("/usr/local/bin/script.sh")}'
Ответ написан
Комментировать
@maniac_by
А разве это не должен делать FTP-сервер, а не Linux? В той же Filezilla отличный IP FIlter
Ответ написан
Radjah
@Radjah
> выполнить что-то при событии соединения к серверу
"что-то" - это что-то конкретное или хотелка из разряда "хочется странного"?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы