PROJET AUTOBLOG


IT-Connect

Site original : IT-Connect

⇐ retour index

Apache2 et MaxMind : bloquer ou autoriser les connexions pour certains pays

lundi 2 janvier 2023 à 09:00

I. Présentation

Dans ce tutoriel, nous allons configurer un serveur Web Apache de manière à bloquer l'accès à notre site Web à certains pays, ou à l'inverse, autoriser uniquement certains pays à se connecter. Pour cela, nous allons installer et configurer le module mod_maxminddb qui va permettre de faire de la géolocalisation d'adresses IP en utilisant la base MaxMind.

En ce qui me concerne, j'utilise une machine sous Debian 11 avec un serveur Web Apache déjà mis en place et répondant à l'adresse "it-connect.tech". Si besoin, vous pouvez consulter cet article pour la préparation d'un serveur Web :

II. Géolocalisation IP dans Apache : installation des prérequis

A. Installation des outils de développement Apache

Premièrement, nous devons installer le paquet "apache2-dev" car sinon il nous manquera une dépendance pour la suite. Voici les commandes à exécuter :

sudo apt-get update
sudo apt-get install apache2-dev

B. Installation de la librairie libmaxminddb

Deuxièmement, nous devons installer la librairie libmaxminddb sur le serveur dans le but de pouvoir lire les bases de données "MaxMind DB" notamment la base GeoIP2 qui contient les adresses IP publiques classées par pays. Cette librairie est publiée sur GitHub : libmaxminddb.

Pour cela, on va télécharger la dernière version :

cd /tmp
wget https://github.com/maxmind/libmaxminddb/releases/download/1.7.1/libmaxminddb-1.7.1.tar.gz

Puis, on va extraire le contenu de cette archive et se positionner dans le répertoire obtenu :

tar xzvf libmaxminddb-1.7.1.tar.gz
cd libmaxminddb-1.7.1/

Ici, on lance les commandes d'installation :

./configure
make
sudo make install
sudo ldconfig

Une fois que c'est fait, et s'il n'y a pas d'erreur, on peut passer à la suite.

C. Installation du paquet geoipupdate

Troisièmement, nous allons installer le paquet geoipupdate pour récupérer une copie des bases IP et surtout permettre une mise à jour automatique des bases d'adresses IP. Cela va nécessiter de s'inscrire sur le site de MaxMind pour obtenir une licence gratuite. Ce projet est également disponible sur GitHub : geoipupdate.

Nous allons télécharger le package DEB d'installation puisque l'on est sur Debian.

cd /tmp
wget https://github.com/maxmind/geoipupdate/releases/download/v4.10.0/geoipupdate_4.10.0_linux_amd64.deb

Une fois que l'on a ce package en notre possession, nous allons l'installer :

dpkg -i geoipupdate_4.10.0_linux_amd64.deb

Le fichier de configuration de ce paquet est "/etc/GeoIP.conf". Avant de le modifier, nous devons créer un compte sur le site MaxMind, à cette adresse :

Après l'inscription, vous allez recevoir un e-mail qui contient un lien vous permettant de définir votre mot de passe. Quand c'est fait, connectez-vous sur le site, cliquez à gauche sur "Manage License Keys" puis à droite sur "Generate new license key".

Apache - MaxMind - Licence GeoIP - 1

Donnez un nom à la licence et répondre "No" à la question posée. Confirmez. Une clé de licence sera affichée à l'écran avec un Account ID et une License Key. Copiez ces deux informations et gardez-les bien au chaud : la clé est visible une seule fois !

Apache - MaxMind - Licence GeoIP - 2

Retournez sur la ligne de commande de la machine Linux, et éditez le fichier de configuration :

sudo nano /etc/GeoIP.conf

Dans ce fichier, vous devez inclure votre ID de compte et votre clé de licence, en remplaçant les valeurs "YOUR_ACCOUNT_ID_HERE" et "YOUR_LICENSE_KEY_HERE".

Apache - GeoIP Config

Quand c'est fait, enregistrez le fichier. Exécutez la commande suivante pour mettre à jour les bases (le fait d'avoir le -v active le mode verbeux, mais cela fonctionne aussi sans cette option) :

geoipupdate -v

geoipupdate - Mise à jour des bases

Il est également possible d'automatiser l'actualisation de la base d'adresses IP. Sur le site officiel de MaxMind, un exemple est donné de manière à mettre à jour la base deux fois par semaine. Voici la ligne :

45 15 * * 0,3 /usr/bin/geoipupdate

A ajouter dans la crontab :

crontab -e

Ainsi, la base s'actualisera toute seule.

D. Installation du module Apache mod_maxminddb

Quatrièmement, nous devons installer le module mod_maxminddb pour Apache2 ! Toujours sur le même principe, nous allons récupérer les sources sur GitHub et procéder à l'installation. Voici le lien vers le projet GitHub : mod_maxminddb.

cd /tmp
wget https://github.com/maxmind/mod_maxminddb/releases/download/1.2.0/mod_maxminddb-1.2.0.tar.gz

Ensuite, on extrait le contenu de l'archive et on se positionne dans le répertoire :

tar xzvf mod_maxminddb-1.2.0.tar.gz
cd mod_maxminddb-1.2.0

Puis, on lance l'installation :

./configure
make
make install

Logiquement, l'installation va automatiquement activer le module dans Apache, mais on peut tout de même essayer de l'activer au cas où :

sudo a2enmod maxminddb
sudo systemctl restart apache2

Voilà, l'installation est terminée. Nous pouvons passer à la configuration d'Apache pour bloquer ou autoriser des pays.

III. Bloquer ou autoriser des pays dans Apache

Pour la suite de ce tutoriel, je vais modifier le fichier de configuration "/etc/apache2/sites-enabled/000-default.conf" correspondant au site activé par défaut dans Apache2. La racine de ce site est "/var/www/html". Pour rappel, j'utilise une machine sous Debian 11 avec la dernière version d'Apache 2.4.

C'est parti, éditons ce fichier de configuration :

sudo nano /etc/apache2/sites-enabled/000-default.conf

Puis, nous allons modifier ce fichier de manière à bloquer les connexions en provenance de Russie et de Chine sur notre site Web (vous pouvez obtenir les codes des pays ici). D'autres exemples sont donnés sur le GitHub officiel du module Apache.

<Directory /var/www/html>
  <IfModule mod_maxminddb.c>

    MaxMindDBEnable On
    MaxMindDBFile COUNTRY_DB /usr/share/GeoIP/GeoLite2-Country.mmdb
    MaxMindDBEnv MM_COUNTRY_CODE COUNTRY_DB/country/iso_code

    SetEnvIf MM_COUNTRY_CODE ^(RU|CH) BlockCountry
    Deny from env=BlockCountry

  </IfModule>
</Directory>

Pour tester, on peut aussi bloquer la France (FR) de manière à voir que ça bloque bien. Sinon, il faut utiliser un VPN pour se "téléporter" dans un autre pays. 😉

Ici, la directive s'applique à tout le site Web puisque l'on cible la racine "/var/www/html", mais on pourrait faire une configuration au niveau d'un autre dossier, voire même au niveau global d'Apache.

On enregistre, on redémarre Apache2 :

sudo systemctl restart apache2

Puis, on teste :

Apache2 blocage geoIP

La configuration fonctionne... Si je retire "FR", que je recharge Apache et que je retente ma chance, j'accède bien au site !

À l'inverse, on pourrait autoriser les connexions uniquement depuis la France et bloquer tout le reste, si ce n'est que l'on autorisera aussi l'adresse IP "192.168.100.1" qui est le reverse proxy utilisé dans mon lab :

<Directory /var/www/html>
  <IfModule mod_maxminddb.c>

    MaxMindDBEnable On
    MaxMindDBFile COUNTRY_DB /usr/share/GeoIP/GeoLite2-Country.mmdb
    MaxMindDBEnv MM_COUNTRY_CODE COUNTRY_DB/country/iso_code

    SetEnvIf MM_COUNTRY_CODE ^(FR) AllowCountry
    Allow from env=AllowCountry
    Allow from host 192.168.100.1
    Deny from all

  </IfModule>
</Directory>

En complément, voici ce que ça donne avec le fichier complet :

Apache2 bloquer ou autoriser des pays via MaxMind

IV. Conclusion

Voilà, grâce à cette configuration, vous disposez d'un serveur Web capable d'exploiter les bases GeoIP de MaxMind dans le but de bloquer ou d'autoriser les connexions en provenance de certains pays ! Plutôt sympa pour sécuriser un site Web ou une application qui n'a pas vocation à être utilisée à l'internationale.

L'article Apache2 et MaxMind : bloquer ou autoriser les connexions pour certains pays est disponible sur IT-Connect : IT-Connect.

ChatGPT débarque sur Windows, Linux et macOS, avec des fonctions supplémentaires !

mardi 27 décembre 2022 à 11:16

ChatGPT poursuit sa lancée puisqu'une application desktop est disponible dès maintenant pour Windows, Linux et macOS ! Ainsi, il n'est plus nécessaire d'utiliser son navigateur Web pour dialoguer avec l'intelligence artificielle d'OpenAI !

ChatGPT fait beaucoup parler de lui depuis plusieurs semaines, et il faut dire qu'il est à la fois surprenant et pertinent, même s'il n'est pas infaillible. Pour rappel, il s'agit d'un outil développé par OpenAI qui s'appuie sur de l'intelligence artificielle pour répondre à vos différentes demandes. Cet outil conversationnel peut générer du texte, des consignes, des lignes de codes, à une vitesse éclair. À ce sujet, vous pouvez lire mon article "ChatGPT bluffe tout le monde (ou presque), mais qu'est-ce que c'est ?".

Désormais, il n'est plus nécessaire d'aller sur le site chat.openai.com pour l'utiliser puisque des versions bureau viennent de sortir. Pour utiliser cette application, vous devez vous authentifier également, et il est bien sûr possible de réutiliser votre compte habituel.

Au-delà de donner accès à la fonction principale de ChatGPT, l'application permet d'exporter l'historique des conversations au format PNG ou PDF, mais aussi le partage par lien afin d'envoyer la réponse de ChatGPT à quelqu'un à partir d'un simple lien. Il y a aussi une fonction nommée "Stay on top" qui permet de garder l'application ChatGPT au premier plan, sur l'écran.

Voici un aperçu de ChatGPT Desktop sur Windows :

ChatGPT Windows

Créer des commandes personnalisées dans ChatGPT

Il est également possible de créer des commandes personnalisées. Par exemple, la commande "/ps" qui permet d'appeler la phrase "Peux-tu m'expliquer la commande PowerShell : {nom}" où je n'aurais qu'à préciser un nom de commande.

Pour cela, il faut cliquer sur le menu "Preferences", "Control Center" puis dans "User Custom", cliquer sur "Add Model". Ici, on déclare la commande en indiquant son nom, on indique un nom plus complet (Act) et dans le prompt, c'est la phrase à appeler lorsque l'on appelle la commande.

ChatGPT - Modèle de commandes

Ainsi, lorsque j'appelle la commande "/ps" dans ChatGPT, on peut voir que c'est reconnu :

ChatGPT - Exemple modèle de commande

Il me suffit de faire "TAB" avec mon clavier, pour que ChatGPT me demande le nom de la commande pour ma "variable" appelée "{nom}". Ici, j'indique "Get-Content".

ChatGPT - Utiliser une commande personnalisée

Puis, on peut voir qu'une requête est demandée à ChatGPT, en réutilisant mon modèle et le nom de la commande spécifié :

ChatGPT - Détails de Get-Content

On peut créer autant de modèles que l'on souhaite ! Plutôt pratique si l'on a l'habitude de réutiliser certaines commandes.

Où télécharger ChatGPT Desktop ?

Les différentes versions, que ce soit pour Windows, Linux ou macOS sont disponibles sur GitHub et les prochaines versions seront également publiées à cet endroit. Voici le lien vers le dépôt où vous pouvez effectuer le téléchargement :

L'installation s'effectue rapidement et lorsqu'une mise à jour de l'application sera disponible, une notification devrait apparaître !

L'article ChatGPT débarque sur Windows, Linux et macOS, avec des fonctions supplémentaires ! est disponible sur IT-Connect : IT-Connect.

Personnaliser la page de connexion à Office 365

mardi 27 décembre 2022 à 10:00

I. Présentation

Dans ce tutoriel, nous allons apprendre à personnaliser la page de connexion à Office 365, à partir du Centre d'administration Azure Active Directory. Ainsi, quand vous allez vous connecter à Office 365 (ou Microsoft 365), la page de connexion pourra afficher votre fond d'écran, votre logo, et utiliser une mise en page spécifique. En complément, il est également possible d'utiliser un fichier CSS personnalisé pour aller plus loin dans la personnalisation.

Début décembre 2022, Microsoft a mis en ligne de nouvelles possibilités de personnalisation détaillées sur cette page du site techcommunity.microsoft.com. Ce tutoriel est l'occasion de voir en pratique certaines options.

Pour personnaliser la page de connexion, vous devez avoir l'une des licences suivantes :

Sinon, le message "Aucun accès. L’option « Marque de l’entreprise » nécessite une licence Azure AD Premium P1 ou P2." s'affichera lorsque vous allez tenter de personnaliser la page de connexion.

Au-delà de l'aspect esthétique, le fait de personnaliser la page de connexion crée des repères auprès de vos utilisateurs : s'ils arrivent sur une page de connexion Office 365 qui n'est pas aux couleurs de votre entreprise, après avoir cliqué sur un lien dans un e-mail, c'est peut être le signe qu'ils sont sur le point d'être victime d'une attaque de phishing...

II. Branding de votre entreprise dans Office 365

Connectez-vous au portail d'administration Microsoft 365 (ou directement sur Azure), pour accéder à "Azure Active Directory" via le menu latéral.

Microsoft 365 - Office 365 - Personnaliser la page de connexion

Une fois dans Azure Active Directory, déroulez la liste des options jusqu'à trouver "Marque de société" comme sur l'image ci-dessous.

Microsoft 365 - Office 365 - Marque de société

Sur cette page, vous arrivez sur un onglet "Bien démarrer". Cliquez sur "Personnaliser". Sachez qu'il est possible de créer plusieurs modèles de pages correspondants à différentes langues.

Microsoft 365 - Office 365 - Expérience de connexion

Au sein des informations de base, indiquez l'image d'arrière-plan que vous souhaitez utiliser ainsi que le Favicon (icône qui s'affiche dans l'onglet du navigateur). Ici, j'utilise les éléments IT-Connect. Veillez à utiliser une image de fond de bonne qualité pour ne pas que ce soit pixelisé. Ce qui donne :

Microsoft 365 - Office 365 - Personnaliser fond d'écran connexion

Poursuivez. Là, vous pouvez choisir un modèle visuel, notamment en masquant l'en-tête et le pied de page, et en choisissant l'emplacement de la box de connexion. Je vous invite à poursuivre la personnalisation en suivant l'assistant, c'est simple et il n'y a pas de mauvais choix : cela dépende de vos attentes.

Microsoft 365 - Office 365 - Personnaliser disposition page de connexion

Une fois que c'est fait, la nouvelle page de connexion va entrer en action ! Toutefois, il faut être patient, ce n'est pas immédiat.

Quand c'est opérationnel, on arrive sur une page de connexion aux couleurs de l'entreprise. Par exemple :

Office 365 - Fond d'écran personnalisé

Pour que la page personnalisée s'affiche lorsque vous accédez à Office 365 (avec une URL générique), vous devez saisir votre adresse e-mail pour vous connecter. Et là, Microsoft va reconnaître votre e-mail ainsi que le tenant auquel elle appartient afin de vous afficher la page de connexion personnalisée.

III. Conclusion

Cette manipulation simple ne passera pas inaperçue puisqu'elle s'attaque directement à des éléments visuels, en l'occurrence la page de connexion de Microsoft 365. De ce fait, n'oubliez pas de communiquer auprès de vos utilisateurs !

L'article Personnaliser la page de connexion à Office 365 est disponible sur IT-Connect : IT-Connect.

Une vulnérabilité critique dans ksmbd, un module intégré au noyau Linux

lundi 26 décembre 2022 à 21:12

Les machines sous Linux sont la proie d'une nouvelle faille de sécurité critique liée au protocole SMB et au composant ksmbd, ce qui expose les machines vulnérables à une compromission à distance. Faisons le point.

Toutes les machines sous Linux avec une distribution qui utilise une version de kernel antérieure à la version 5.15.61 sont affectées par une faille de sécurité critique qui hérite un score de CVSS de 10 sur 10 ! Créé par Namjae Jeon, ksmbd est un module du noyau Linux qui implémente un serveur SMB dans le but de pouvoir partager des fichiers ou des imprimantes, comme le propose Samba, par exemple. Là, c'est bien ksmbd qui est affecté directement par cette nouvelle faille de sécurité.

Les attaquants peuvent exploiter cette vulnérabilité située dans la commande SMB2_TREE_DISCONNECT pour exécuter du code arbitraire, à distance et sans authentification, sur la machine Linux ciblée. Il est à noter que ksmbd doit être activé pour que la machine soit vulnérable. Finalement, c'est assez rare, car les utilisateurs ont plutôt tendance à utiliser Samba qui est beaucoup plus populaire.

Si vous utilisez ce composant, il convient de vérifier les mises à jour sur la machine Linux concernée. Le kernel 5.15.61 ne date pas d'hier puisqu'il est disponible depuis août dernier, donc il y a des chances pour que votre machine utilise un noyau Linux patché (à vérifier pour chaque distribution, selon les versions, en fait).

Cette découverte est à mettre au crédit de l'équipe Thalium Team rattachée à Thales Group et composée d'Arnaud Gatignol, Quentin Minster, Florent Saudel, et de Guillaume Teissier comme le rapporte le site Zero Day Initiative. Cette faille de sécurité a été remontée à l'éditeur en juillet 2022.

Mise à part cette information, j'espère que vous avez passé un bon Noël ! Pour ceux qui sont en vacances, profitez bien ! Pour les autres, bon courage ! 🙂

L'article Une vulnérabilité critique dans ksmbd, un module intégré au noyau Linux est disponible sur IT-Connect : IT-Connect.

Piratage chez LastPass : des coffres-forts de mots de passe chiffrés ont été volés !

vendredi 23 décembre 2022 à 07:31

Le piratage de LastPass survenu en août 2022 serait plus grave que ce que l'on pensait, d'après les dernières informations publiées par l'éditeur lui-même. Les pirates ont pu récupérer les coffres-forts chiffrés de certains clients ! Faisons le point.

Le piratage de LastPass remonte au mois d'août 2022, et pourtant l'enquête est toujours en cours. Grâce au travail des équipes en charge de ce dossier, LastPass a pu en savoir plus sur l'étendue de ce piratage et les nouvelles ne sont pas très bonnes... Tout part de la compromission d'un compte d'un développeur que les attaquants ont pu utiliser pour accéder à l'environnement de développement de l'entreprise. Grâce à cet accès, les cybercriminels ont volé des parties du code source et des informations techniques spécifiques à LastPass. Mais, ce n'est pas tout...

Une histoire de sauvegarde stockée dans le Cloud

En effet, LastPass a déclaré que l'attaquant a pu obtenir des informations d'identification et des clés qu'il a pu utiliser extraire des informations d'une sauvegarde stockée dans un service Cloud. Même si cet environnement est physiquement séparé de la production, l'attaquant a pu récupérer des copies de coffres-forts chiffrés appartenant à des clients de LastPass. D'après l'éditeur, ce fichier se présente sous la forme d'un "binaire propriétaire" qui contient des données non chiffrées (les URL des sites Web, par exemple) et des données entièrement chiffrées (noms d'utilisateur, les mots de passe, les notes sécurisées, les données de formulaires). Une protection assurée par un algorithme bien connu : AES 256 bits.

Quant au fait de pouvoir déchiffrer les données de ces coffres-forts, voici les précisions de LastPass : "Ces champs chiffrés restent sécurisés par l'AES 256 bits et ne peuvent être déchiffrés qu'avec une clé de cryptage unique dérivée du mot de passe principal de chaque utilisateur, grâce à notre architecture Zero Knowledge". Plus de précisions sont fournies sur cette page. Toutefois, l'attaquant devrait être en mesure d'effectuer des attaques par dictionnaire sur les coffres-forts dans le but de trouver le mot de passe maître permettant d'accéder à l'ensemble des secrets d'un coffre !

D'ailleurs, LastPass enfonce le clou à ce sujet : "Si vous réutilisez votre mot de passe principal et que ce mot de passe a été compromis, un attaquant peut utiliser les informations d'identification compromises qui sont déjà disponibles sur Internet pour tenter d'accéder à votre compte." - Espérons pour les utilisateurs concernés qu'ils utilisaient un mot de passe maître digne de ce nom et réservé à cet usage....

LastPass n'a pas précisé la date de la sauvegarde, mais elle contient probablement des informations encore valides aujourd'hui. Par ailleurs, les données de cartes bancaires n'étaient pas stockées dans cet espace Cloud, donc elles ne sont pas concernées.

Qui est concerné par cette fuite de données sensibles ?

C'est la grande question. Même si l'on n’a pas de noms à donner bien sûr, LastPass a précisé avoir contacté une partie de ses clients professionnels (moins de 3%) pour qu'ils prennent des mesures spécifiques adaptées à la configuration actuelle de leur compte.

Que ce soit pour LastPass ou Okta, cette année 2022 sera à oublier...!

Source

L'article Piratage chez LastPass : des coffres-forts de mots de passe chiffrés ont été volés ! est disponible sur IT-Connect : IT-Connect.