Archive | Clic

Playing with HTTPS

Je pose ça là !

L’inspection SSL/TLS, comment ca marche ?

J’ai un flux chiffré entre mon serveur et mon navigateur et je veux voir son contenu à l’ancienne (après je détaillerai comment on fait de l’inspection avec Kaspesrsky security endpoint chez mon employeur).

On va commencer par se mettre dan un cas favorable. Ce qui n’est pas le cas quand vous avez déployé HTTPS sur/etc/letsencrypt/options-ssl-apache.conf  votre site web comme un bourrin avec CERTBOT (mais merci quand même Let’s Encrypt).

Conf de base

Conf de base

Ca ne me plait pas, donc je vais désactiver Diffie-Hellman. Laissez moi faire du SSL 2.1 avec rien que du RSA, please  🙂

This task provides the procedure to disable Diffie-Hellman on Apache Servers by editing the SSLCipherSuite config option string in the ssl.conf or httpd.conf files.
Procedure

In Apache’s conf directory, locate file: ssl.conf or httpd.conf
Look for the SSLCipherSuite keyword string value:

Apache Cipher Suite

Apache Cipher Suite

To disable Diffie-Hellman, please insert « !EDH:!DHE:!DH:!ECDH » after the « ALL: » in the cipher spec.
This is an example and you will need to make sure you include it to all the variants of Diffie-Hellman to disable it on your web server.
For additional info: https://httpd.apache.org/docs/current/mod/mod_ssl.html#sslciphersuite

Repeat this edit in every SSL config section, if you are not using one global section.
Save the file.
Restart the web server for the changes to take effect.

Après quelques essais infructueux, il faut bien se rendre à l’évidence que cela ne fonctionne pas 🙂

On se dit donc que la conf de base a du être surchargée par CERTBOT. Bingo !

Real Cipher Suite Conf

Real Cipher Suite Conf

SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS

Un petit nettoyage s’impose donc dans /etc/letsencrypt/options-ssl-apache.conf 

On va simplifier à :

SSLCipherSuite AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS

Du coup, Wireshark confirme le changement de cipher:

I Love RSA

I Love RSA

Qualys SSL Labs nous confirme cette dégradation du niveau de sécurité :

SSL Labs

SSL Labs

« This server does not support Forward Secrecy with the reference browsers. Grade capped to B » … et oui, d’où l’intérêt de Diffie-Helmann !

En revanche pour « This server supports TLS 1.0 and TLS 1.1. Grade capped to B », on peut certainement faire quelquechose. En particulier, ajouter TLSv1 et TLSv1.1 de la liste des protocoles supportés dans /etc/letsencrypt/options-ssl-apache.conf 

C’est là que les choses sérieuses commencent.

Afin de déchiffrer le flux https, nous allons récupérer la clef privée de notre serveur Apache et la fournir à wireshark. En principe, c’est par ce genre de manipulations hasardeuses que nos précieuses clefs privés finissent dans la nature. En l’occurrence, pas vraiment de sensibilité pour cette plateforme de démo.

Le chemin vers la clef est renseigné dans /etc/letsencrypt/options-ssl-apache.conf 

Je décrirai bientôt ailleurs comment cette clef intervient dans une phase amont du chiffrement de flux. Elle sert juste à « calculer » la véritable clef de chiffrement symétrique du flx entre chacun des navigateurs qu se se connectent  notre serveur Apache.

Le serveur web est exposé directement sur internet et semble fonctionner correctement :

bzhits.fr

bzhits.fr

Pour faciliter la tâche aux attaquants, il expose via sa page index.php le contenu d’un phpinfo().  C’est un pauvre VPS chez OVH qui donne toute satisfaction. Il sert par ailleurs  récupérer des logs du bruit de l’internet…

Cadenas vert pour monsieur Noël, tout semble ok en termes de sécu.

phpinfo()

phpinfo()

Le certificat SSL ( que je n’aime pas cette appellation !!!) présenté à l’air de correspondre au serveur considéré, nous sommes tranquilles jusqu’au 31 décembre 2021.

Certificat X509

Certificat X509

Une première analyse brute du flux confirme un certain nombre d’évidences :

– l’appli répond normalement

– le flux est bien chiffré et débute par le traditionnel « TCP handshake »

– on fait du TLS1.2 over HTTP 1.1

– setup : wireshark (1.12.1) sur Debian intercepte mon interface wan avec filtre de capture sur l’IP du serveur (vsible dans l’entête de la fenêtre)

Capture réseau

Capture réseau

Afin qu’il puisse déchiffrer le flux, on va fournir la clef privée du serveur à Wireshark.

Plz, give me your Private Key

Plz, give me your Private Key

Pour le coup, j’ai crée un formulaire minimaliste (login.html) qui demande un identifiant et un mot de passe à un utilisateur pour le transmettre via requête POST à une page de traitement (login.php).

pwd leak

pwd leak

Grâce à l’interception TLS, on voit très bien passer les informations de connexion (marot / pwd).

Pour un truc plus propre dans Wireshark, préférez passer vos requêtes en ligne de commande via cUrl : curl -k -F « usr=marot » -F « pwd=password » « https://bzhits.fr/login.php »

CQFD step 1

CQFD step 1

Bon, maintenant que cela fonctionne avec touts les précautions précédentes, voyons comment s’adapter au cas où l’administrateur de votre site ait eu la bonne idée d’utiliser Diffie-Helmann. Car vous avez bien compris que si dans 3 mois ou dans 10 quelqu’un trouve votre clef privée et ressort des captures réseau, RIP la confidentialité.

Tout cela était déjà fort bien expliqué par Benjamin aka @vincib lors des confs mémorables « Il était une fois l’internet »

 

____________________________________________________________________________________

Pour pouvoir écrire ces quelques lignes, j’ai du réapprendre à surligner du texte dans une image avec The Gimp (p’tain je préfère snap/capture sous Windows), modifier les fichiers de traductions .po/.mo wordpress avec poEdit, retrouver l’accès ssh à ce vieux VPS chez OVH, appliquer les mises à jours Worpress sans faire de sauvegarde, réviser ma conf Apache / mod_ssl pour  pour les nuls…. Bref, ça m’a pris des plombes…

L’objectif initial de cet article était de proposer une explication sur un vieux chall root-me SSL – HTTP exchange qui était lui même une re-sucée d’un challenge qualif DEF CON préhistorique… et aussi de me servir de base pratique pratique pour une formation que je donnerai sous peu.

Pour aller plus loin, maintenant que vous avez compris le principe, je vous laisse trouver l’appliance sécu qui va bien pour faire la même chose de manière industrielle … dans le respect de la loi … et en accod avec votre perception de l’éthique.

J’espère que cela vous donnera aussi l’envie de lire les Recommandations de sécurité relatives à TLS de l’ANSSI téléchargeables à cette adresse : https://www.ssi.gouv.fr/uploads/2017/07/anssi-guide-recommandations_de_securite_relatives_a_tls-v1.2.pdf

 

Posted in Boulot, Clic0 commentaire

Playing with bcrypt and Joomla

Juste pour poser là quelques détails sur le stockage sécurisé des mots de passe dans Joomla (cms php très courant).

Bref un truc avec lequel on joue un peu en TP, mais qui est aussi parfois bien utile quand on a perdu le mot de passe de l’unique compte d’administration du site (n’est-ce pas la Mairie de N….?, vieille mission Alliacom en 2010).

Si je jette un œil sur le contenu de ma table des utilisateurs Joomla, j’aperçois ce genre de chaînes de caractères dans les champs password :

$2y$10$OL0ibA8TKT.287zm4HPkYuKI/5CH0X1bMe9PyxPRjOxjeCSC/FOwm

On notera par ailleurs qu 2 utilisateurs avec le même mot de passe présenteront un hash différent, bref on est loin du pauvre MD5 sans sel utilisé il y a quelques années par Joomla.

On reconnaît un hash bcrypt par la présence en début de chaîne de  $2y dans ‘$2y$10$’, le $10 est le coût algorithmique, autrement dit 210 = 1 024 itérations.

Les 22 caractères suivants constituent le sel aléatoire. Les caractères qui complètent la chaîne composent le mot de passe hasché. Comme un petit schéma vaut mieux qu’un long discours :

brcypt

brcypt selon wikipedia

Pour plus de détails (tout public) sur bcrypt  : https://www.bcrypt.fr/questions

Et pour aller plus loin dans la compréhension : https://auth0.com/blog/hashing-in-action-understanding-bcrypt/

Et enfin pour faire quelques tests en ligne : https://bcrypt-generator.com/

La fonction crypt en php, fonctionne donc comme cela :

crypt($motdepasse, '$2y$10$'.randombytes(22));
playing with bcrypt and Joomla

playing with bcrypt and Joomla

http://micmap.org/php-by-example/man…ion.crypt.html

Exemple : password (très mauvaise idée de mot de passe)

$2y$10$.prE1BkZ87aPNnsKMTOSxe9pv8TQIhfBb2HZpSnBPfh.LeHgnaLD2

 

Cette fonction est par exemple utilisée dans Joomla la classe/méthdoe JUserHelper::hashPassword pour Joomla. Après étude, il est ainsi relativement simple de créer un fichier joomla-password-hash.php et de le placer à la racine de son site.

<?php
define(‘_JEXEC’, 1);
define(‘JPATH_BASE’, dirname(__FILE__));
require_once(JPATH_BASE . ‘/includes/defines.php’);
require_once(JPATH_BASE . ‘/includes/framework.php’);
echo « <strong>Password: </strong> » . JUserHelper::hashPassword(‘password’);

?>
https://api.joomla.org/cms-3/classes/JUserHelper.html

En résumé, le nombre d’itérations implique un calcul plus long et plus fastidieux pour les scripts de hacks et même si la base de données était piratée, cela me semble un peu plus difficile de retrouver le mot de passe… comme ce fut le cas l’année dernière pour dailymotion (ce service de video utilisent bcrypt également) : https://www.information-security.fr/…didentifiants/

L’implémentation d bcrypt a donné un peu plus de sécurité à Joomla, cela n’empêche pas d’imposer un minimum de caractères, mélange min/maj, caractères spéciaux aux mots de passe pour fonctionner un peu plus efficacement. Il faut éviter par exemple que les utilisateurs utilisent uniquement leur date d’anniversaire pour le mot de passe … (chercher « paradoxe des anniversaires » dans un moteur de recherche si vous aimez les probabilités )…

De plus, il y a aujourd’hui un marché de solutions complémentaires à connaître : MFA, double authentification (google authenticator et dérivé), sans mot de passe comme launchkey.com, par sms avec accountkit de facebook…

Posted in Boulot, Clic1 Commentaire

OpenShift Issue

OpenShift Playground

OpenShift Playground

Sad, no beeing able to assess OpenShift Playground 🙁

 

 

 

 

2 months later 🙁

openshift's answer 2021

openshift’s answer 2021 – Playground is dead

Posted in Boulot, Clic, Trop sérieux2 Comments

my Tchap repo

Ars Technica

Ars Technica

Bug in French government’s WhatsApp replacement let anyone join Élysée chats

Researcher found bug in email validation that let him log in and join « rooms » in Tchap app.

Sean Gallagher – 4/22/2019, 11:55 PM

_____________________________________

fzn

fzn

France : le lancement de l’application Tchap entaché par un bug

Tchap est une application Android lancée par le gouvernement français le 17 avril dernier pour remplacer WhatsApp et Telegram chez ses employés. L’outil verse dans l’échange et la communication, en offrant des canaux de messagerie privés auxquels seules les personnes avec une adresse électronique gouvernementale peuvent accéder.

______________________________________

« Les retours des experts vont nous aider à améliorer Tchap »

À la tête de la direction interministérielle du numérique, Nadi Bou Hanna revient sur le lancement compliqué du « WhatsApp de l’État » et trace sa feuille de route.

Propos recueillis par Héloïse Pons et
Modifié le – Publié le | Le Point.fr
 
_______________________________________
Tchap

Tchap

 

Liens vers les sources :

(From Tchap with love)

______________________________________

La plupart des articles sur #Tchap disent n’importe quoi. Par exemple, silicon.fr/tchap-une-mess… confond le système d’exploitation Riot et le logiciel de messagerie instantanée Riot. #lesMédias
Bortz on Twitter

Bortz on Twitter

 

 

 

 

 

 

______________________________________

 

@fs0c131y

@fs0c131y

Elliot Alderson
 
@fs0c131y
 
1/ Et si on faisait un petit point sur #Tchap?
Parlons des faits, cela permettra à tout le monde de se faire une opinion. Le 23 Mars dernier la @_DINSIC publie sur le PlayStore Tchap, une application de messagerie « sécurisée » pour les employés du gouvernement français.
9:41 AM · 21 avr. 2019 · Twitter for iPhone
 
_______________________________________

Gros site opportuniste tout pété : tchap.fr.

 

Gros site opportuniste

Gros site opportuniste

 

A ne pas confondre avec le site officiel https://www.tchap.gouv.fr/ qui présente en particulier sa rubrique FAQ.

Tchap

Tchap

 
 
 
 
 
 
 
 
 
 
 
_______________________________________
New Vector
 
New Vector

New Vector

 
 
 
 
 
 
 
 
 
 
 
_______________________________________
Thales
 
Thales

Thales

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
_______________________________________
Matrix / Riot

Riot is a glossy Matrix client built on top of matrix-react-sdk with an emphasis on performance and usability.

You can use it at https://riot.im/app, read more at https://riot.im and get the source from github!

There is also a desktop version, which is available at riot.im. Taw has created RPM package builds for Fedora, CentOS, and Red Hat Enterprise Linux which are available via GitHub and Fedora COPR.

Josué Tille has contributed a Yunohost app.

Repository: https://github.com/vector-im/riot-web/

Matrix / Riot
 
 
 
 
 
 
 
 
 
 
_______________________________________
 

Posted in Boulot, Clic0 commentaire

RESTful API for the dummies

An Application Program Interface aka API is code that allows two software programs to communicate with each another. The API spells out the proper way for a developer to write some code requesting services from an operating system or other applications. In a web context, APIs allow communication between two webapps (or a web app and a client that is not always a brose) without any browser.

A RESTful API, also referred to as a RESTful web service, is an Application Program Interface that uses HTTP requests to GET, PUT, POST and DELETE data.

A RESTful API  is based on REpresentational State Transfer (REST) technology, an architectural style and approach to communications often used in web services development.

REST technology is generally preferred to the more robust Simple Object Access Protocol (SOAP) technology because REST leverages less bandwidth, making it more suitable for internet usage.

The REST used by browsers can be thought of as the language of the internet. With cloud use on the rise, APIs are emerging to expose web services. REST is a logical choice for building APIs that allow users to connect and interact with cloud services. RESTful APIs are used by such sites as Amazon, Google, LinkedIn and Twitter.

 

 

A la base, j’aimais bien cet article pour une partie de son contenu mais pas pour le plan de construction et comme j’avais besoin d’expliquer pourquoi certaines API ne respectaient pas les concepts REST, j’ai eu besoin de ré-écrire cette introduction.

Posted in Boulot, Clic, Trop sérieux0 commentaire

Cyber Range

Ecoute attentive ce jour du dernier podcast hebdomadaire de « No Limit Secu » consacré au(x) Cyber Range(s)

Parmi les invités on retrouve :

Diateam

Diateam

Sysdream

Sysdream

Cyber Test System

Cyber Test System

Ces trois spécialistes sont interrogés par les animateurs habituels Hervé Schauer, Nicolas Ruff et Johan Uloa.

Définition officielle du cyber range ?

3′ : Juste une infrastructure ?

GP : c’est pas nouveau … Très variable selon les moyens que l’on veut y mettre : copie d’un système réel dans lequel on vient s’entraîner. Champ de tir numérique ?

Histoire : 2008, idée de faire tests d’un système complet (National Cyber Range de la DARPA) au delà du simple tests « unitaires » d’équipements.

7′ : HS : les Arc-en-Ciel Team ?

AK : Au départ seulement attaque-défense entre 2 équipes (Red vs Blue) puis d’autres acteurs ont rejoint l’environnement.

Read Team : équipe d’attaquants. Soit ils ont leurs propres outils soient ils activent des générations automatiques d’attaques et de trafic.

Greeen Team : simulation de trafic légitime pour faire fonctionner le système

Yellow Team : l’équipe qui participe involontairement au scénario de l’attaquant. Ils prennent part à une activité malicieuse sans forcément s’en rendre compte.

Blue Team : elle assure la supervision, ce n’est pas seulement la défense (SOC, NOC, Réponse à incident). Elle assure le bon fonctionnement de la Blue Team => les experts ne sont pas forcément exactement en phase sur le sujet.

White Team : ils ont le contrôle de l’exercice global

Purple Team : relais d’info, legal, communication.

OF : bonne analogie entre cyber range et simulateur de vol.

17′ : Formation avant entraînement ?

OF : Le cyber range est un prolongement de la formation. La formation ce sont de petits exercices courts avant de passer en environnement complexe qui ressemble à son environnement réel.

NR : s’inquiète de la possibilité de reproduire, ne serait-ce qu’en termes de licences (ou dongles) dans l’environnement réel

GP : la formation c’est du video training +  slide + labo exercice sur sa VM. Petit rappel de Confucius et du constructivisme par GP : Tout ce qu’on voit on oublie, tout ce qu’on fait, on retient ! Puis GP nous fait une petite analogie avec les Centre d’Entrainement en Zone UrBaine (CENZUB – Centre de l’armée de terre à Sissone). A ne pas confondre avec l’eunuque (SansZob) (Note du rédacteur pour vérifier si tout le mode suit). Entraînement en environnement urbain des forces.

Un cyber range c’est un environnement qui permet d’opposer des défenseurs et des opposants. Il faut qu’il y ait de la vie dans le système. Les partenaires technologiques de BlueCyForce permettent l’

NR : Concernant toujours la représentativité du système, comment fait-on pour simuler Virus Total ?

GP propose un faux Virus Total, Twitter (basé sur Mastodont), AFP … et on regénère la plateforme à chaque séquence. Malgré tout, on grille ses touches et ses backdoors à chaque jeu.

NR : Pas possible de faire du passive DNS sur 3 ans ou rapports publiques et indicateurs de compromission => on travaille en vase clos.

AK : mise en place d’un système de QuarksLab et applications de vie spécifiques

25′ NR : Quid de la qualité de scenario, qui les écrit ? (le client qui ne connaît pas ses risques ou le fournisseur qui ne connaît pas le métier)?

GP nous perd un peu… mais ajoute que c’est un peu des deux et qu’il existe à la fois une Blue Team Teachnique et une Blue Team management. Exemple : 22 pages de timeline et 32 pages de plateforme reçreçues du client. Cela dépend du niveau d’exigence du client.

NR : est-ce que vous simulez des consultants ?

GP : si c’est demandé (quand cela permet de rajouter des éléments de contexte), on le fait. Un exercice de gestion de crise, c’est une utilisation du Cyber Range. Exemple du cameraman qui intervient au milieu de la nuit …

(outre le fait de savoir à quel moment ils allaient parler de l’ENSIBS … je voulais connaître le point de vue de chacun sur le sujet et cela faisait écho à la présentation d’Eric Weber de Thales Communication and Security sur le sujet à C&ESAR 2017 : Problématique de formation des opérateurs face aux menaces Cyber : utilisation des Cyber Range )

31′ : NR : qui fait quoi avec des Cyber Range ? Quel est l’état du marché ? Formation au pentest ?

GP : Prestation d’entraînement et de formation, vente de cyber range avec +/- de prestation.

OF : on cherche à suivre les performances des joueurs. Etablir un ranking / score gobal. L’idée est que chaque année cela s’améliore

AK : ….

HS : Le Cyber Range n’est-il pas plus utile pour la défense que dans l’attaque que NR transforme en une question sur le glissement des plateformes de cyber range avec un bout d’ANSIBLE et trois clics dans le Cloud ?

GP : Au contraire les gens veulent avoir leur plateforme … même si BluecyForce a annoncé au FIC du cyber range as a service (30% des usages). Un hyperviseur avec des VMs ne font pas un CyberRange. Compliqué d’aller mettre dans le Cloud, ton routeur chiffreur de l’OTAN. Le cyber range c’est : Mon infra, mes vulns, mon chemin ! Comme au CENZUB c’est un environnement le plus réaliste possilbe pour s’entraîner à répondre aux cyber-attaques

OF : le cyber range permet de faire de la formation, de la gestion de crise mais aussi du challenge qui permet de se former en s’amusant (Coucou Malice ???)

AK : les directives telles NIS obligent à suivre des entraînement continus. Déjà le cas en zone Asie-Pacifique les entreprises critiques sont obligés d’envoyer ses salariés suivre des entraînements à l’extérieur

HS : Si on s’entraine pas régulièrement, en trois ans on a tout oublié de la formation

GP n’est pas nostalgique mais nous raconte l’évolution de son cyber range depuis SSTIC 2005 : Simulation hybride de la sécurité des systèmes d’information : « vers un environnement virtuel de formation ».  SPLUNK (pseudo SIEM… so right !), QRadar, Prelude Keenaï : on ne fera pas d’entraînement pertinent à des gens s’ils n’y croient pas, s’il n’est pas représentatif. L’important c’est d’y croire. Eh Guillaume, y’a plus de carburateurs depuis longtemps 🙂

JU : Comment simule-t-on la pression psychologique de la crise ?

GP nous met en garde sur la multiplicité des Teams mais le besoin d’avoir une équipe d’acteurs crédibles

NR : simuler une équipe de l’ANSSI qui débarque c’est possible ?

Mot de la fin :

49′ HS : l’entrainement c’est ce qui fait le succès de ce qu’on a enseigné au départ. La formation c’est bien, l’entrainement c’est mieux. Teddy Riner s’entraine tous les jours

(outre le fait de savoir à quel moment ils allaient parler de l’ENSIBS … je voulais connaître le point de vue de chacun sur le sujet et cela faisait écho à la présentation d’Eric Weber de Thales Communication and Security sur le sujet à C&ESAR 2017 : Problématique de formation des opérateurs face aux menaces Cyber : utilisation des Cyber Range)

en goody : Un bon doc d’Airbus DS sur le sujet.

 

Offre Cyber Range (merci Airbus DS)

Offre Cyber Range (merci Airbus DS)

Posted in Boulot, Clic0 commentaire

OVH VPS Testing Platform…

Victime de son succès mon hackMeIfYouCan a tenu une bonne dizaine de mois. On va essayer de faire mieux 🙂

Tomcat 9.0.4 : http://vps305886.ovh.net:8080/

Apache2 over Debian : http://vps305886.ovh.net/

Posted in Boulot, Clic0 commentaire

MySQL on Debian (Cheat sheet for my students)

Install MySQL Server

sudo apt-get install mysql-server

During the installation process, you will be prompted to set a password for the MySQL root user as shown below. Choose a strong password and keep it in a safe place for future reference (Why not usin KeePass ?).

mysql-rootpw-debian

mysql-rootpw-debian

MySQL will bind to localhost (127.0.0.1) by default. Then you can connect locally on to your databases.

Allowing unrestricted access to MySQL on a public IP is not advised, but you may change the address it listens on by modifying the bind-address parameter in /etc/my.cnf. If you decide to bind MySQL to your public IP, you should implement firewall rules that only allow connections from specific IP addresses and then you’ll be able to connect using SSH from another computer.

Harden MySQL Server

It’s also a good thing to harden you database server. Fo taht, run the mysql_secure_installation script to address several security concerns in a default MySQL installation.

sudo mysql_secure_installation

You will be given the choice to :

  1. change the MySQL root password;
  2. remove anonymous user accounts;
  3. disable root logins outside of localhost,
  4. and remove test databases.

It is recommended that you answer yes to these options.

You can read more about the script in the MySQL Reference Manual.

Using MySQL

The standard tool for interacting with MySQL is the mysql client which installs with the mysql-server package. The MySQL client is used through a terminal. In a very firts time, it’s definitely bad thing to use web GUI to discover mysql functionalities.

Logging as root

  1. To log in to MySQL as the root user:
    mysql -u root -p
    
  2. When prompted, enter the root password.You’ll then be presented with a welcome header and the MySQL prompt as shown below:
    mysql>
    
  3. To generate a list of commands for the MySQL prompt, enter \h. You’ll then see:
    List of all MySQL commands:
    Note that all text commands must be first on line and end with ';'
    ?         (\?) Synonym for `help'.
    clear     (\c) Clear command.
    connect   (\r) Reconnect to the server. Optional arguments are db and host.
    delimiter (\d) Set statement delimiter. NOTE: Takes the rest of the line as new delimiter.
    edit      (\e) Edit command with $EDITOR.
    ego       (\G) Send command to mysql server, display result vertically.
    exit      (\q) Exit mysql. Same as quit.
    go        (\g) Send command to mysql server.
    help      (\h) Display this help.
    nopager   (\n) Disable pager, print to stdout.
    notee     (\t) Don't write into outfile.
    pager     (\P) Set PAGER [to_pager]. Print the query results via PAGER.
    print     (\p) Print current command.
    prompt    (\R) Change your mysql prompt.
    quit      (\q) Quit mysql.
    rehash    (\#) Rebuild completion hash.
    source    (\.) Execute an SQL script file. Takes a file name as an argument.
    status    (\s) Get status information from the server.
    system    (\!) Execute a system shell command.
    tee       (\T) Set outfile [to_outfile]. Append everything into given outfile.
    use       (\u) Use another database. Takes database name as argument.
    charset   (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets.
    warnings  (\W) Show warnings after every statement.
    nowarning (\w) Don't show warnings after every statement.
    
    For server side help, type 'help contents'
    
    mysql>
    

 

Create a New MySQL User and Database

  1. In the example below, testdb is the name of the database, testuser is the user, and password is the user’s password.
    create database testdb;
    create user 'testuser'@'localhost' identified by 'password';
    grant all on testdb.* to 'testuser';
    

    You can shorten this process by creating the user while assigning database permissions:

    create database testdb;
    grant all on testdb.* to 'testuser' identified by 'password';
    
  2. Then exit MySQL.
    exit
    

Create a Sample Table

  1. Log back in as testuser.
    mysql -u testuser -p
    
  2. Create a sample table called customers. This creates a table with a customer ID field of the type INT for integer (auto-incremented for new records, used as the primary key), as well as two fields for storing the customer’s name.
    use testdb;
    create table customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
    
  3. Then exit MySQL.
    exit
    

Reset the MySQL Root Password

If you forget your root MySQL password, it can be reset.

  1. Stop the current MySQL server instance.
    sudo systemctl stop mysql.serivce
    
  2. Use dpkg to re-run the configuration process MySQL goes through on first installation. You will again be asked to set a root password.
    sudo dpkg-reconfigure mysql-server-5.5
    

dpkg will restart MySQL automatically and you’ll now be able to log in again using mysql -u root -p.

Tune MySQL

MySQL Tuner is a Perl script that connects to a running instance of MySQL and provides configuration recommendations based on workload. Ideally, the MySQL instance should have been operating for at least 24 hours before running the tuner. The longer the instance has been running, the better advice MySQL Tuner will give.

  1. Install MySQL Tuner from Ubuntu’s repositories.
    sudo apt-get install mysqltuner
    
  2. To run it:
    mysqltuner
    

    You will be asked for the MySQL root user’s name and password. The output will show two areas of interest: General recommendations and Variables to adjust.

MySQL Tuner is an excellent starting point to optimize a MySQL server but it would be prudent to perform additional research for configurations tailored to the application(s) utilizing MySQL on your Linode.

More Information

You may wish to consult the following resources for additional information on this topic. While these are provided in the hope that they will be useful, please note that we cannot vouch for the accuracy or timeliness of externally hosted materials.

Posted in Clic0 commentaire

Playing around with Google n-gram

exemple de recherche

exemple de recherche

Ngram Viewer est une application linguistique proposée par Google, permettant d’observer l’évolution de la fréquence d’un ou de plusieurs mots ou groupe de mots à travers le temps dans les sources imprimées (numérisées par Google).

L’outil est entré en service en 2010 et n’a malheureusement plus été mis à jour depuis 2013.

Le terme Ngram désigne dans ce contexte une suite de « n » mots1, ce qui n’est lié que faiblement à la notion de n-gramme.

L’outil Ngram de Google repose sur la base de données textuelles de Google Livres. Les textes issus de Google Livres sont classés en fréquence de séquences de mots (appelées ngrams) par année d’édition, chaque séquence de mots est alors affectée d’un « poids ».

Lorsque l’utilisateur demande une comparaison de plusieurs séquences de mots, l’outil trace alors des courbes permettant de comparer leur fréquence d’usage au cours du temps.

Un exemple de recherche via ce lien et pour les amoureux du Google Search, le détail d’une requête constitutive :

https://www.google.fr/search?

q=%22european+union%22&

tbm=bks&

tbs=cdr:1,cd_min:2000,cd_max:2000&

lr=lang_en

&gws_rd=cr

&dcr=0

&ei=QtpNWrHdB8zUkwWtoKGIBg

 

Posted in Clic0 commentaire

A lire / à écouter / à regarder

14/12/2017

France Culture : L’Invité des Matins (2ème partie) par Guillaume Erner  (24min)
Neutralité du net, hégémonie des GAFA : la démocratie prise dans la toile (2ème partie)

Avec Benjamin Bayart et Sébastien Soriano

https://www.franceculture.fr/emissions/linvite-des-matins-2eme-partie/neutralite-du-net-hegemonie-des-gafa-la-democratie-prise-dans-la-toile-2eme-partie

Podcast France Culture

Podcast France Culture

Posted in Boulot, Clic0 commentaire