Страницы

Поиск по вопросам

пятница, 20 декабря 2019 г.

Как автоматически вызывать обрыв ftp-соединения?

#linux #shell #ftp #функциональное_тестирование


Скрипт на python в ходе работы скачивает файлы с ftp-сервера. 

Процесс использует боевой ftp, и я не хотел бы усложнять процесс поднятием виртуалки
с тестовым ftp - работа скрипта чувствительна к содержимому и мне придется настраивать
обновление данных.

Нужно протестировать поведение при обрыве соединения в процессе скачивания. Желательно
делать это автоматически, то есть вручную делать kill myftpserver или выдергивание
шнура из сетевой карты — не вариант.

Таким образом, мне нужно либо обрывать текущее соединение прямо на тестовом сервере,
либо поднимать прокси, на нем ждать соединения и обрывать через секунду-другую. Не
представляю, как это реализовать. Нужно хотя бы название утилиты или команды, которой
я смогу отловить текущее соединение и оборвать его, либо блокировать все текущие соединения
на заданный ip.

Разумеется, тестирую я на тестовом инстансе. К нему есть root-доступ по ssh.
    


Ответы

Ответ 1



Думаю проще всего делать это с помощью iptables. Просто запрещать передавать пакеты, можно попробовать действия REJECT для быстрого обрыва или DROP для слета по таймауту. Простейшее правило (если задается на машине где тестируемая прога) типа iptables -I OUTPUT -d ip-ftp-сервера -j REJECT Добавлять можно простеньким скриптом на shell периодически делая задержки sleep, например. Или усложнить само правило и задействовать например connbytes. sudo iptables -I OUTPUT -d ip-ftp-сервера -m \ connbytes --connbytes 10000 --connbytes-dir both \ --connbytes-mode bytes -j REJECT должно оборвать соединение после прокачки по нему 10 килобайт. Если с iptables до этого не работали ... iptables -I добавляет правило. iptables -D с точно такими же параметрами, как были при добавлении - удаляет. iptables -L -nv покажет существующие правила

Комментариев нет:

Отправить комментарий