Я пытаюсь запустить 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