29.04.2020 - 13h25

C'était une image que tu avais posté?

Sinon autre chose Sylvain, il semble que la protection https ai sauté, il faudrait renouveler le certificat via letsencrypt par exemple.

  29.04.2020 - 20h30

Sylvain a écrit:
Il n'y a jamais eu de https en fait


hoo le vilain.

C'est vite fait à faire On en reparle au tel.

  30.04.2020 - 09h17

Sylvain a écrit:
Oui mais bon, en quoi est-ce vraiment utile pour un site comme celui-ci ?

Le seul truc utile serait de sécuriser les envois du mot de passe mais personne ne va chercher à les pirater


Bah c'est un best practice pour tout sites internet qui hébèrgent des données utilisateurs. Pré-requis CNIL, réputation SEO, confiance des users.

La c'est openbar, n'importe qui peut récupérer les données via man-in-the-middle, la DGSI a accès à tout aussi, même pas besoin de se prendre la tête à contacter l'hébergeur lol

Si des gens utilisent le même mdp ici que sur leur banque, ça prend 2 sec à sniffer avec un nmap.

  30.04.2020 - 19h33


Autant pour moi, un nmap c'est juste un sniffer de port, mais tu peux également récupérer les trames de la pile OSI et tracer le protocole Ethernet par exemple avec un wireshark, tu récupères tout avec ça.

Man-in-the-middle c'est une attaque qui utilise les failles d'un réseau local pour "écouter" ce qui transit sur le réseau. En gros "l'homme au milieu" détourne le trafic et le consulte à loisir. Si le trafic est en clair, c'est à dire en http (et non https), les messages sont en clair.

exemple nmap, pour tracer toutes les ip locales d'un réseau :

pme@///: $ nmap -T4 -sP 192.168.1.0/24

Starting Nmap 6.46 ( http://nmap.org ) at 2020-04-30 19:28 CEST
Nmap scan report for 192.168.1.1
Host is up (0.013s latency).
Nmap scan report for ///.local (192.168.1.2)
Host is up (0.012s latency).
Nmap scan report for 192.168.1.3
Host is up (0.013s latency).
Nmap scan report for /// (192.168.1.4)
Host is up (0.057s latency).
Nmap scan report for /// (192.168.1.5)
Host is up (0.012s latency).
Nmap scan report for /// (192.168.1.6)
Host is up (0.055s latency).
Nmap scan report for ///.local (192.168.1.15)
Host is up (0.00041s latency).
Nmap scan report for ///.local (192.168.1.41)
Host is up (0.038s latency).
Nmap scan report for ///.local (192.168.1.254)
Host is up (0.0057s latency).
Nmap done: 256 IP addresses (9 hosts up) scanned in 3.67 seconds


Capture sur interface en0 :

root@///: # tshark -i en0
Capturing on 'Wi-Fi'
1 0.000000 192.168.1.15 ? 179.60.192.3 TLSv1.2 98 Application Data
2 0.041044 179.60.192.3 ? 192.168.1.15 TLSv1.2 94 Application Data
3 0.041127 192.168.1.15 ? 179.60.192.3 TCP 66 63540?443 [ACK] Seq=33 Ack=29 Win=2047 Len=0 TSval=1049448725 TSecr=2767787654
4 0.265657 Quantenn_00:00:00 ? Spanning-tree-(for-bridges)_00 STP 60 Conf. Root = 0/4000/00:26:86:00:00:00 Cost = 0 Port = 0x8001
5 0.309353 Quantenn_00:00:00 ? Broadcast 0x7373 121 Ethernet II
6 0.573551 192.0.80.242 ? 192.168.1.15 TLSv1.2 1506 Server Hello, Change Cipher Spec, Application Data
7 0.675905 192.168.1.15 ? 192.0.80.242 TCP 54 49794?443 [ACK] Seq=1 Ack=1453 Win=4096 Len=0
8 0.733127 52.218.109.195 ? 192.168.1.15 TLSv1.2 85 Encrypted Alert
9 0.733224 192.168.1.15 ? 52.218.109.195 TCP 54 49793?443 [ACK] Seq=1 Ack=32 Win=4095 Len=0
10 0.734105 192.168.1.15 ? 52.218.109.195 TLSv1.2 85 Encrypted Alert
11 0.734160 192.168.1.15 ? 52.218.109.195 TCP 54 49793?443 [FIN, ACK] Seq=32 Ack=32 Win=4096 Len=0
12 0.771921 52.218.109.195 ? 192.168.1.15 TCP 60 443?49793 [ACK] Seq=32 Ack=32 Win=124 Len=0
13 0.771927 52.218.109.195 ? 192.168.1.15 TCP 60 443?49793 [FIN, ACK] Seq=32 Ack=33 Win=124 Len=0
14 0.772012 192.168.1.15 ? 52.218.109.195 TCP 54 49793?443 [ACK] Seq=33 Ack=33 Win=4096 Len=0
15 1.085547 192.0.80.242 ? 192.168.1.15 TCP 1506 [TCP segment of a reassembled PDU]
16 1.186338 192.168.1.15 ? 192.0.80.242 TCP 54 49794?443 [ACK] Seq=1 Ack=2905 Win=4096 Len=0
17 1.187328 Quantenn_00:00:00 ? Spanning-tree-(for-bridges)_00 STP 60 Conf. Root = 0/4000/00:26:86:00:00:00 Cost = 0 Port = 0x8001
18 1.288453 192.168.1.15 ? 34.237.73.95 TLSv1.2 354 Application Data
19 1.392419 Quantenn_00:00:00 ? Broadcast 0x7373 121 Ethernet II
20 1.481247 34.237.73.95 ? 192.168.1.15 TCP 66 443?59963 [ACK] Seq=1 Ack=289 Win=1025 Len=0 TSval=3324335813 TSecr=1049449966
21 1.481253 34.237.73.95 ? 192.168.1.15 TLSv1.2 391 Application Data
22 1.481359 192.168.1.15 ? 34.237.73.95 TCP 66 59963?443 [ACK] Seq=289 Ack=326 Win=2042 Len=0 TSval=1049450159 TSecr=3324335813
23 1.508285 192.0.80.242 ? 192.168.1.15 TCP 1442 [TCP Previous segment not captured] [TCP segment of a reassembled PDU]Application Data, Application Data
24 1.508386 192.168.1.15 ? 192.0.80.242 TCP 54 [TCP Dup ACK 16#1] 49794?443 [ACK] Seq=1 Ack=2905 Win=4096 Len=0
25 2.007200 192.0.80.242 ? 192.168.1.15 TCP 1506 [TCP Retransmission] 443?49794 [ACK] Seq=2905 Ack=1 Win=60 Len=1452
26 2.007272 192.168.1.15 ? 192.0.80.242 TCP 54 49794?443 [ACK] Seq=1 Ack=5745 Win=4051 Len=0
27 2.011012 192.168.1.15 ? 192.0.80.242 TLSv1.2 118 Change Cipher Spec, Application Data
28 2.011542 192.168.1.15 ? 192.0.80.242 TLSv1.2 224 Application Data
(...)

  30.04.2020 - 20h19


Pour être plus clair, voici une prise d'écran d'une connexion sur le village avec mon compte en http (communications non cryptées).

J'ai évidemment brouillé mon mot de passe.

  01.05.2020 - 08h49


Sylvain a écrit:
Réseau local, tu veux dire par le wifi par exemple ?
Dans ce cas il faut que l'espion soit à proximité...

Sinon dans les captures, le contenu envoyé ou reçu n'apparait pas (par ex le password pour la page login)


Oui attaque man in the middle il faut être à proximité, mais il y a d'autres techniques pour siffoner un mdp sans être à proximité via récupération et modification de clé d'authentification par exemple.

Sinon dans la capture d'écran il y a mon mdp justement c'est bien ce que je dis, c'est pour ça que j'ai indiqué que je l'ai "brouillé".

J'ai refait une capture pour que ça soit plus clair.

Donc oui évidemment tu as le mdp.

  01.05.2020 - 09h17


En gros voilà ce qu'il se passe avec https :

1 -> Le client (l'utilisateur) envoi une commande "GET" au serveur de syti.net en clair
2 - > Le serveur web syti.net répond au client "bonjour client, voici mon passport, et il envoi son passport au client.
2b -> Le navigateur (firefox, ie etc) de l'utilisateur interroge une "autorité de certification", c'est l'organisme qui délivre les "passports", pour demander si c'est un vrai passport ou un faux, et s'il n'est pas périmé".

- Si tout est OK, l'autorité confirme que c'est bon, et un cadena "vert" se met dans la barre d'adresse, les communications peuvent commencer en crypté.
- Si il y a fraude, ou "passport" périmé -> Cadena rouge, le site est non sécurisé, le client reçoit une alerte "attention site non sécurisé, vos données sont en danger", et c'est le cas.

3 -> Dans le cas ou c'est ok, la communication est cryptée à partir de là. Plus aucune possibilité de capter quoi que ce soit.

------

Au niveau serveur que faut-il faire et comment ça marche.

C'est un fonctionnent par clé publique/clé privée.

Donc ce qu'il faut faire côté serveur, sur ton interface d'administration web, c'est de demander la génération des clés à une "autorité de certification".

Une fois que c'est fait, ton serveur web (apache... nginx...) va enregistrer une clé privée dans un répertoire qui sera cachée et accessible que par le serveur web et une clé publique qu'il va envoyer au clients qui en font la demande (c'est le fameux "passport").

La clé publique est envoyée en clair. (point n°2)

Le client (firefox/ie/Safari..) envoi cette clé publique à l'autorité de certification, l'autorité de certification vérifie que cette clé publique est valide, et à jour, et répond au client "c'est OK".

3 -> le client envoie la clé publique au serveur syti, le serveur syti confirme que les clés sont correctes et commencent à communiquer en crypté.


----

Pour résumer, côté serveur il faut générer une paire de clés, et la faire valider par une autorité de certification, et surtout ne pas oublier de mettre une routine d'auto-renouvellement, car un certificat n'est valide que pendant un certain temps. Donc ceux qui oublient de le faire, se retrouver au bout d'un moment à nouveau avec un site non sécurisé.

Les autorités de certifications font payer leurs services en général, mais il existe un outil qui s'appelle "Letsencrypt" qui est installable sur un serveur linux par exemple et qui fait office d'autorité de certification gratuitement. La plupart des sites utilisent aujourd'hui letsencrypt qui est open-source. Je l'utilise pour freerooster.xyz et clilcea.fr par exemple, donc ça ne me coute rien.

Pour planethoster, voici la procédure : https://docs.planethoster.com/guide/astuces-techniques/installation-et-renouvellement-de-certificat-ssl-de-let-s-encrypt

  01.05.2020 - 17h38

Sylvain a écrit:
Ah cool, tu as même trouvé la doc pour l'hébergeur du site Planet Hoster


Le processus d'établissement d'une connexion https c'est une autre raison pour laquelle je suis resté en http, c'est que des fois sur certains sites, ça m'est arrivé que le navigateur n'arrive pas à obtenir le certificat quand le serveur de la boîte qui le délivre est en rade, du coup les navigateurs de boites paranoïaques (genre Safari d'Apple) refusent d'afficher la page ^^


Parce que le webmaster n'a pas renouvelé son certificat, certain navigateurs considèrent que si tu es en https mais que le certificat n'est pas valide, il peut bloquer.

Mais ça concerne principalement les anciennes version de serveur web. Normalement si ton serveur est à jour il n'y a pas de soucis.

  01.05.2020 - 18h51


Sylvain a écrit:
Oui, autre inconvénient, il faut penser à renouveler le certificat ^^

Mais le serveur qui dit ok pour le certificat peut être en rade quelquefois aussi...


Bah il n'y a rien à faire c'est transparent... C'est automatique... Faut juste penser à le paramétrer.

En crontab par exemple, une seule commande et ça vérifie la validité tous les jours à 4h37 du matin par exemple, et ça le renouvelle automatiquement...

37 4 * * * /root/certbot-auto renew

Sur planethoster c'est un peu moins sexy mais c'est encore plus simple... (capture d'écran prise ici : https://docs.planethoster.com/guide/astuces-techniques/installation-et-renouvellement-de-certificat-ssl-de-let-s-encrypt

  01.05.2020 - 22h26

Sylvain a écrit:
C'est une commande UNIX à envoyer sur le serveur je suppose, mais on peut le faire chez Planet Hoster. Sinon ils ont un système encore plus simple apparemment.

Merci pour toutes ces infos


Crontab c'est l'ordonnanceur natif sous linux, unix, bsd... Et aussi mac puisque c'est un unix.

C'est la même chose que le "planificateur des tâches" sous windows ou "Automator" sous mac.

Donc :

37 4 * * * /root/certbot-auto renew

C'est :

Minute / heure / jour / mois / jour de la semaine / commande

Donc en gros là j'ai mis :

37 4 = 4h37 du matin
* = tous les jours (j'aurai aussi pu mettre : 21 = le 21 du mois)
* = tous les mois (j'aurai aussi pu mettre : 4 = avril)
* = tous les jours de la semaine (exemple : 0 = dimanche 4 = jeudi...)
/root/certbot-auto = executer le script qui se trouve dans le dossier /root qui s'appel certbot-auto
renew = je passe le paramètre renew au script en question


Exemple, si j'exécute à la main ce script avec ce paramètre, ça me donne ça :


root@server:~# ./certbot-auto renew
Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/tata.fr.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cert not yet due for renewal

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/toto.xyz.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cert not yet due for renewal

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

The following certs are not due for renewal yet:
/etc/letsencrypt/live/tata.fr/fullchain.pem expires on 2020-07-19 (skipped)
/etc/letsencrypt/live/toto.xyz/fullchain.pem expires on 2020-06-19 (skipped)
No renewals were attempted.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
root@server:~#


Donc là en gros le script vérifie s'il faut renouveler les certificats, et il constate qu'ils sont toujours valides, donc il ne fait rien. Si les certificats étaient à renouveler, il les aurait renouvelé automatiquement.

Puisque crontab lance ce script tous les jours, je sais que le jour ou les certificats devront être renouvelé, le script qui est appelé renouvellera automatiquement le certificat sans aucunes actions de ma part.

Ça marche pareil quand tu le fais depuis une interface d'un hébergeur, en arrière plan c'est ça qui est fait.

Tu peux utiliser crontab même sous mac pour exécuter ce que tu veux, toutes les commandes shell sont utilisables. Par exemple tu peux executer une commande tous les vendredi qui exécute un script ou une commande par exemple...

Imaginons que tu veuilles lister le contenu d'un répertoire, et l'inscrire dans un fichier sur ton bureau tous les vendredi, tu peux faire par exemple :

30 5 * * * 6 ls -lrth /User/Sylvain/ > /User/Sylvain/Desktop/listing_fic_user_sylvain.txt

Si ton mac est allumé en permanence, tous les vendredi à 5h30 du matin tu auras un fichier (listing_fic_user_sylvain.txt) qui va apparaitre sur ton bureau contenant le listing de ton répertoire utilisateur. ( ">" écrase le précédent fichier, si tu veux qu'il ajoute à la suite, il faut mettre ">>")

Bon tu peux tout faire avec ça... Envoyer un email, lancer une application etc etc... Il faut juste connaitre les commandes qu'on exécute et respecter la syntaxe.

  05.05.2020 - 19h04

Passer en UTF-8 ou ISO-8859-1 éventuellement?

  05.05.2020 - 20h42

Sylvain a écrit:
Une commande pour changer l'encodage de sortie du serveur tu veux dire?

Sinon j'ai regardé un peu, LetsEncrypt c'est une application à installer sur le serveur apparemment

https://onepagezen.com/letsencrypt-auto-renew-certbot-apache/


Oui mettre le site en UTF-8 ou ISO-8859-1, sinon ça marche pas bien pour mon petit c?ur.

Oui Let's encrypt ça s'installe sur le serveur, mais je t'ai mis le lien pour l'activer depuis l'interface de ton hébergeur.

  10.05.2020 - 15h18

Lorsqu'on créé un message avec une image trop grosse, ça créé quand même le message avec une image vide. Ça serait mieux si comme avant cela refusait la création.

  11.05.2020 - 16h56



Vous êtes marrant.

Si vous voulez comprendre de quoi on parle il y a des cours gratuits pour ça :

https://openclassrooms.com

  27.09.2020 - 15h03

Oui c'est une erreur PHP. Sylvain devrait pouvoir voir ça car c'est du côté serveur. Mais ça ne pose pas de soucis.

Par contre être sous windows XP encore aujourd'hui c'est un peu dangereux... Ce système n'est plus support par l'éditeur depuis de nombreuses années et n'est plus à jour, donc c'est une passoire à virus.