![Сканирование потоковых данных с помощью clamav](https://rvso.com/image/1597832/%D0%A1%D0%BA%D0%B0%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%BF%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%B2%D1%8B%D1%85%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85%20%D1%81%20%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E%20clamav.png)
Я пытаюсь придумать команду, с помощью которой я смогу сканировать файл, передавая его через сетевой интерфейс.
Я попробовал следующее:
telnet clamd.server.com 3310
STREAM
PORT <some random port>
Затем на другой консоли
tar -czf - <some temporary files> | nc clamd.server.com <some random port>
Проблема в том, что tar
команда не завершается после завершения потоковой передачи и остается там неопределенно долго или до тех пор, пока команда не будет отменена.
Есть ли способ обойти это?
решение1
clamd-stream-cl Это модифицированная версия clamdscan. Она может передавать файл в экземпляр clamd, работающий на другом хосте, через TCP-сокет. ->http://sourceforge.net/projects/clamd-stream-cl/
решение2
Добавление -N
к nc
команде решило проблему.
так
tar -czf - <some temporary files> | nc -N clamd.server.com <some random port>