Le coin des remarques, suggestions et bugs à faire remonter.
Répondre

clamav-freshclam.service démarre avant la connexion réseau

#1Messageil y a 5 ans

Bonsoir,
J'ai constaté qu'à chaque démarrage de mon portable connecté en wifi, la commande :
systemctl status clamav-freshclam.service
me renvoie :

● clamav-freshclam.service - ClamAV virus database updater
   Loaded: loaded (/usr/lib/systemd/system/clamav-freshclam.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2019-03-27 21:38:57 CET; 1h 2min ago
     Docs: man:freshclam(1)
           man:freshclam.conf(5)
           https://www.clamav.net/documents
 Main PID: 671 (freshclam)
    Tasks: 1 (limit: 4608)
   Memory: 2.0M
   CGroup: /system.slice/clamav-freshclam.service
           └─671 /usr/bin/freshclam -d --foreground=true

mars 27 21:39:03 Toshiba freshclam[671]: WARNING: Invalid DNS reply. Falling back to HTTP mode.
mars 27 21:39:03 Toshiba freshclam[671]: Reading CVD header (main.cvd): WARNING: Can't get information about database.clamav.net: Name or service not known
mars 27 21:39:03 Toshiba freshclam[671]: WARNING: Can't read main.cvd header from database.clamav.net (IP: )
mars 27 21:39:03 Toshiba freshclam[671]: Trying again in 5 secs...
mars 27 21:39:08 Toshiba freshclam[671]: WARNING: Can't query current.cvd.clamav.net
mars 27 21:39:08 Toshiba freshclam[671]: WARNING: Invalid DNS reply. Falling back to HTTP mode.
mars 27 21:39:08 Toshiba freshclam[671]: Reading CVD header (main.cvd): ERROR: Can't get information about database.clamav.net: Name or service not known
mars 27 21:39:08 Toshiba freshclam[671]: WARNING: Can't read main.cvd header from database.clamav.net (IP: )
mars 27 21:39:08 Toshiba freshclam[671]: Giving up on database.clamav.net...
mars 27 21:39:08 Toshiba freshclam[671]: Update failed. Your network may be down or none of the mirrors listed in /etc/clamav/freshclam.conf is working. Check https://www.clamav.net/documents/official-mirror-faq for possible reasons.
Si j'attends deux heures comme indiqué comme valeur par défaut dans le fichier de configuration de freshclam ou si j’arrête clamav-freshclam.service, lance un freshclam manuel puis réactive le service tout rentre dans l'ordre.
Un dmesg m'indique que clamav-freshclam.service se lance bien avant que mon interface wifi (wlp2s0) soit connectée.
Ce comportement avait été corrigé l'an dernier (https://bugs.archlinux.org/task/58059) par l'utilisation du service netctl-wait-online.service faisant partie du paquet netctl, mais comme ce dernier n'est plus utilisé pour la connexion Internet, l'installer et activer le service ne sert à rien car on n'a pas à définir de profil pour son utilisation...
clamav-freshclam.service contient bien :

[Unit]
Wants=network-online.target
After=network-online.target
mais ça ne semble pas communiquer avec l'unité de ce nom qui est pourtant chargée au démarrage. Faudrait-il voir du coté de NetworkManager-wait-online.service ?

Cordialement

P.-S. : je suis sur la 18.0.4 xfce stable

clamav-freshclam.service démarre avant la connexion réseau

#2Messageil y a 5 ans

Bonjour.
N'ayant ni clamav, ni netctl, je ne peux guère regarder mes fichiers de conf. Mais si j'en crois cette page , il faut vérifier quel est réellement le service réseau actif et ne garder que NetworkManager-wait-online.service enable.

systemctl status NetworkManager-wait-online.service 
Si dead, essaye : systemctl enable NetworkManager-wait-online.service et systemctl disable networkd-wait-online.service

clamav-freshclam.service démarre avant la connexion réseau

#3Messageil y a 5 ans

lemust83 a écrit : il y a 5 ans Bonjour.
N'ayant ni clamav, ni netctl, je ne peux guère regarder mes fichiers de conf. Mais si j'en crois cette page , il faut vérifier quel est réellement le service réseau actif et ne garder que NetworkManager-wait-online.service enable.

systemctl status NetworkManager-wait-online.service 
Si dead, essaye : systemctl enable NetworkManager-wait-online.service et systemctl disable networkd-wait-online.service
Bien lancé chez moi :

[h2@Toshiba ~]$ systemctl status NetworkManager-wait-online.service
● NetworkManager-wait-online.service - Network Manager Wait Online
   Loaded: loaded (/usr/lib/systemd/system/NetworkManager-wait-online.service; enabled; vendor preset: disabled)
   Active: active (exited) since Thu 2019-03-28 14:46:48 CET; 26min ago
     Docs: man:nm-online(1)
  Process: 586 ExecStart=/usr/bin/nm-online -s -q --timeout=30 (code=exited, status=0/SUCCESS)
 Main PID: 586 (code=exited, status=0/SUCCESS)

mars 28 14:46:39 Toshiba systemd[1]: Starting Network Manager Wait Online...
mars 28 14:46:48 Toshiba systemd[1]: Started Network Manager Wait Online.
mais naturellement quitté automatiquement quand il ne sert plus. Par contre il n'est pas "dead" et je n'ai pas de networkd-wait-online.service activé.

Édit : À noter que network-online.target se produit bien avant le lancement de clamav-freshclam.service...

[h2@Toshiba ~]$ systemd-analyze critical-chain
The time after the unit is active or started is printed after the "@" character.
The time the unit takes to start is printed after the "+" character.

graphical.target @23.597s
└─multi-user.target @23.596s
  └─clamav-freshclam.service @23.595s
    └─network-online.target @23.594s
      └─NetworkManager-wait-online.service @14.656s +8.935s
        └─NetworkManager.service @12.034s +2.617s
          └─dbus.service @12.030s
            └─basic.target @12.027s
              └─sockets.target @12.027s
                └─clamav-daemon.socket @11.975s +51ms
                  └─sysinit.target @11.948s
                    └─systemd-backlight@backlight:intel_backlight.service @14.269s +179ms
                      └─system-systemd\x2dbacklight.slice @14.267s
                        └─system.slice @3.449s
                          └─-.slice @3.449s

clamav-freshclam.service démarre avant la connexion réseau

#4Messageil y a 5 ans

Comment et quelle version de clavav as tu installé ? Désolé de poser cette question, mais je ne trouve pas clamav-freshclam dans les dépôts.
As tu regardé ces pages du https://wiki.archlinux.fr/Systemd/cronhttps://wiki.archlinux.org/index.php/ClamAV ?
Ça ne parle pas de l'ordre de démarrage de services mais de timer.
En fait, je pense qu'il vaut mieux passer par un cron, plutôt qu'un démarrage auto de service.
Je tenterais éventuellement de passer par un script lançant clamav pointé à la connexion à ta session, plutôt que de tenter le démarrage d'un service avant login.

clamav-freshclam.service démarre avant la connexion réseau

#5Messageil y a 5 ans

En installant ClamTk 5.27-1 on installe également la dépendance clamav 0.101.1-1 qui contient les services
clamav-daemon.service et clamav-freshclam.service qu'il faut installer manuellement.
Mais je pense avoir trouvé une solution provisoire qui consiste à mettre dans les programmes de démarrage de la session un systemctl restart clamav-freshclam.service.
Je teste et je vous en dirais plus.

clamav-freshclam.service démarre avant la connexion réseau

#6Messageil y a 5 ans

Armag67 a écrit : il y a 5 ans En installant ClamTk 5.27-1 on installe également la dépendance clamav 0.101.1-1 qui contient les services
clamav-daemon.service et clamav-freshclam.service qu'il faut installer manuellement.
Mais je pense avoir trouvé une solution provisoire qui consiste à mettre dans les programmes de démarrage de la session un systemctl restart clamav-freshclam.service.
Je teste et je vous en dirais plus.
Grrr, le restart se fait bien et sans me demander d'authentification en plus, mais comme la connexion wifi est désactivée lors de la connexion pour être réactivée quelques secondes plus tard, j'ai à nouveau un échec de connexion de clamav-freshclam.service...
Une dernière soluce : encapsuler la commande dans un script avec un timer d'une minute et j'invoque le script dans les programmes de démarrage de la session... :idea:

clamav-freshclam.service démarre avant la connexion réseau

#7Messageil y a 5 ans

Bon, pour mémoire le problème ne se pose qu'en connexion wifi. En Ethernet tout fonctionne correctement, c'est peut-être pour ça que le problème a pu passer inaperçu. En attendant la mise à jour de ClamAV 0.101.1 vers la version 0.101.2, j'utilise la solution provisoire d'un lanceur sur mon bureau contenant la commande :
systemctl restart clamav-freshclam.service pour m'assurer de la mise à jour de l'antivirus en début de session, mais je dois m'identifier à chaque utilisation...

clamav-freshclam.service démarre avant la connexion réseau

#8Messageil y a 5 ans

Résolu !
Il suffisait de lire le satané manuel de freshclam.conf. :sourire:
Dans la section : "# How many attempts to make before giving up." (lignes 72-74) du fichier /etc/clamav/freshclam.conf il faut dé-commenter la ligne "#MaxAttempts 5" en enlevant le croisillon en tête de ligne. Pas besoin d'augmenter la valeur proposée (sauf peut-être sur les machines un peu vieilles).
Il faut avoir les privilèges root naturellement.
Attention, la manœuvre sera certainement à refaire en cas de mise à jour de ClamAV.

Bonne journée

clamav-freshclam.service démarre avant la connexion réseau

#9Messageil y a 5 ans

Armag67 a écrit : il y a 5 ansAttention, la manœuvre sera certainement à refaire en cas de mise à jour de ClamAV.
Non, nous somme en rolling et comme indiqué dans la config, pacman va créer un .pacnew :wink:

clamav-freshclam.service démarre avant la connexion réseau

#10Messageil y a 5 ans

La bonne solution !
Après maints essais et test je me suis rendu compte que ma "solution" proposée plus haut (fixer explicitement MaxAttempts à une valeur supérieure à 3 dans freshclam.conf) ne fonctionnait que si l'on se connectait immédiatement après le boot à sa session où NetworkManager activait la connexion réseau...
Si on laissait ne serait-ce qu'une minute après le boot la machine sur l'écran LightDM de connexion aux sessions, la mise à jour de ClamAV échouait. Idem pour une connexion en console, la liaison Wifi ne devenait active qu'une fois qu'on était logué en CLI sur la console...
La solution était en fait d'une simplicité biblique :
Entrer tout à fait normalement dans sa session, dans son tableau de bord, ouvrir d'un clic droit le menu contextuel de l’icône de sa connexion réseau (Applet NetworkManager de Xfce dans mon cas), choisir l'entrée "Modifier les connexions..."), puis pour les connexions Wifi idoines dans l'onglet "Général" cocher la case "Tous les utilisateurs peuvent se connecter à ce réseau".

Pour vérifier, redémarrer la machine, ne rien faire pendant deux minutes, puis un Ctrl-Alt-F2 pour se loguer en CLI sur une console. Là un dmesg | grep -i wlp2s0 (mette ici le nom de votre interface Wifi !) vous indique que la connexion Wifi s'est établie dés le démarrage...
Répondre