Назад | Перейти на главную страницу

Debian 8: не удается заставить ClamAV прослушивать TCP 3310

Я пытаюсь запустить Clamav-daemon в системе Debian 8, чтобы он слушал TCP-порт 3310. Я сделал следующее:

aptitude install clamav-daemon

Затем модифицировал /etc/clamav/clamd.conf так что теперь наверху есть следующее:

# Added by me
TCPSocket 3310
TCPAddr localhost
# Already existed
LocalSocket /var/run/clamav/clamd.ctl
FixStaleSocket true
LocalSocketGroup clamav
LocalSocketMode 666

Перезапустил службу, используя service clamav-daemon restart.

Я нахожу это netstat -tap | grep clam ничего не возвращает. Бег ps aux | grep clam возвращает:

clamav   18559 11.4 10.3 649212 399604 ?       Ssl  14:38   0:15 /usr/sbin/clamd --foreground=true

Есть автоматически сгенерированный файл /etc/systemd/system/clamav-daemon.socket.d/extend.conf это содержит:

[Socket]
ListenStream=
SocketUser=clamav
ListenStream=/var/run/clamav/clamd.ctl
SocketGroup=clamav
SocketMode=666

Единственное, что я вижу в журналах:

TCP: No tcp AF_INET/AF_INET6 SOCK_STREAM socket received from systemd

Кто-нибудь знает, почему у меня могут возникнуть проблемы с запуском ClamAV TCP:3310?

Сначала очистите все, что связано с clamav:

apt-get purge clamav clamav-base clamav-daemon clamav-freshclam clamav-milter clamdscan clamassassin

Затем переустановите:

apt-get install clamav clamav-base clamav-daemon clamav-freshclam clamav-milter clamdscan clamassassin

Затем в /etc/clamav/clamd.conf добавьте

TCPSocket 3310
TCPAddr 127.0.0.1

-выше- существующая запись LocalSocket. В противном случае он настраивает, но время ожидания истекает во время выполнения. Затем в /etc/systemd/system/clamav-daemon.socket.d/extend.conf добавьте

ListenStream=127.0.0.1:3310

внизу. Это оставит Unix Socket работающим, как ожидалось, и создаст прослушиватель на порте 3310, используя init в качестве канала к сокету. Затем перезапустите службу:

service clamav-daemon restart

и убедитесь, что init прослушивает порт 3310:

netstat -anp | grep 3310

Затем протестируйте надстройки ThunderBird -> clamdrib -> Настройки -> Тест

Я попробовал все остальные предложения, приведенные выше, и не смог заставить их работать.

Однако бег dpkg-reconfigure clamav-daemon и выбор TCP на ранней стадии в параметрах конфигурации (а не UNIX) и значения по умолчанию для всего остального сработали для меня в Ubuntu 16.04.

Теперь он у меня работает, но его не так приятно настраивать, как в Debian 7.

У меня может быть только TCP или unixsocket (не знаю почему), но не оба запущены. Следовательно, я использую:

/etc/systemd/system/clamav-daemon.socket.d/extend.conf

[Socket]
ListenStream=
SocketUser=clamav
ListenStream=3310

/etc/clamav/clamd.conf содержит только:

TCPSocket 3310

и не содержит информации о сокете unix. Итак, это УДАЛЕНО:

LocalSocket /var/run/clamav/clamd.ctl
FixStaleSocket true
LocalSocketGroup clamav
LocalSocketMode 666

Затем, чтобы заставить Exim4 использовать его, у меня есть:

av_scanner = clamd:127.0.0.1:local

и я не мог использовать localhost там. Это должно было быть 127.0.0.1.

У меня недостаточно комментариев, чтобы прокомментировать (поскольку мое решение находится в другом дистрибутиве), но при установке ubuntu 16.04 это сработало для меня:

изменение clamav-daemon.socket напрямую:

[Socket]
ListenStream=/run/clamav/clamd.ctl
ListenStream=xx.xx.xx.xx:3310
SocketUser=clamav
SocketGroup=clamav
RemoveOnStop=True

Добавление его в extend.conf у меня не сработало, но когда я прокомментировал все из extend.conf, перезагрузил и перезапустил, он прослушал оба.

До этого изменения я видел ту же проблему, что и @Doahh

После многократного тестирования на Ubuntu 16.04 он заработал.

  • Закомментировать все ListenStream= в /lib/systemd/system/clamav-daemon.socket. Если вы их не закомментируете, вы получите ошибку типа TCP: Received more than two file descriptors from systemd и clamav не запускается.

  • Добавьте свой ListenStream= строка (и) в /etc/systemd/system/clamav-daemon.socket.d/extend.conf. множественный ListenStream= (один сокет, один сетевой порт) поддерживается так:

[Socket] ListenStream=/run/clamav/clamd.ctl ListenStream=xx.xx.xx.xx:3310 SocketUser=clamav SocketGroup=clamav RemoveOnStop=True