Info2Geek

Bloquer des adresses IP par pays avec IPTABLES

Si vous exposer une de vos machines sur Internet, il faudra la protéger. Si vous ne disposez pas d’infrastructure tel que Online ou OVH chez vous, il faudra utiliser toutes les ruses possibles. Vous aurez le choix d’une solution complète, fiable, simple, comme PFsense, ou alors un Linux de base, et donc de préférence, une Debian / Ubuntu, et bloquer des adresses IP par pays avec iptables… 🙂

Ras le bol de la pollution

Si vous jeter un œil parfois sur les journaux de votre firewall, vous avez du vous apercevoir que ceux-ci sont remplis de tentatives d’intrusions. Pour se débarrasser d’une grande partie de cette pollution, parfois, il suffit simplement de bloquer des adresses IP par pays avec iptables. En effet, les attaques proviennent généralement toujours des mêmes pays (Chine, Russie, Corée, Hong-Kong, etc…).
Pour ce faire, vous pouvez simplement utiliser un module de noyau pour iptables, appelé « xtables-addons ».

Installer le module xtables-addons

Sur Debian / Ubuntu, il est assez facile (comme assez souvent) d’installer ce module grâce à la commande apt-get.

Mettre à jour la base Maxmind

Ensuite, il faudra télécharger la base de données géographique Maxmind. Pour cela, il faudra connaitre l’emplacement de l’outil xt_geoip_dl. En effet, cela dépendra de la version de xtables-addons installée (actuellement, dans les dépôts Debian, la version 2.6 est packagée, alors que la version 2.10 est disponible sur Sourceforge https://sourceforge.net/projects/xtables-addons/files/).

Cela téléchargera donc la base Maxmind :

Il vous reste maintenant à construire les listes avec la commande suivante dans le même répertoire (il faut au préalable créer le répertoire qui les contiendra) :

Bloquer des adresses IP par pays avec iptables

Côté pratique, rien de plus simple, vous pourrez bloquer les IP venant de Chine, de Hong-Kong, de Corée, de Russie ou d’ailleurs :

Ou alors, tout simplement n’autoriser que les adresses IP de votre pays (dans notre cas, sur le port 22) :

Maintenant, il ne vous reste qu’à automatiser la mise à jour de la base de données Maxmind. Dans mon exemple, nous allons créer le script /etc/cront.monthly/0update_maxmind , afin que celui-ci soit exécuté une fois par mois :

N’oublier pas de le rendre exécutable :

Vous voilà prêt à jouer et à bloquer des adresses IP par pays avec iptables.

Références :
http://xtables-addons.sourceforge.net/geoip.php
https://room362.com/post/2016/blocking-countries-via-iptables/
https://www.internetstaff.com/frustrate-ssh-scanners-geoip-iptables-blocking/
https://www.linode.com/stackscripts/view/3807-jeffkyjin-ipp2p+filtering

JJRC H31, étanche et incassable, un drone passe-partout pour débutants

Je vais vous parler aujourd’hui du JJRC H31. Résistant à toutes épreuves, ce drone a comme principal atout sa robustesse.
En effet, ce drone passe-partout est capable de résister à toutes les épreuves que pourrait lui faire subir une débutant. Il n’a pas peur de tomber en plein vol, se prendre un mur, avoir des hélices endommagées, se prendre un mur, et même tomber dans l’eau… . Ce petit drone est tellement léger qu’il peut voler aussi bien en extérieur, qu’en intérieur.
Il craint 1 seul chose : finir sa course dans les arbres. Si le JJRC H31, se retrouve coincé, il aura énormément de mal à s’en sortir sans l’aide de son propriétaire.

Étanche à l’eau

Avec un drone standard, il ne faut pas voler au dessus d’une étendue d’eau comme un lac ou d’une piscine. Mais voilà, avec le JJRC H31, ne vous interdisez aucun terrain de jeux. Ses hélices sophistiquées glissent sur l’eau, et en cas d’immersion, le drone sera toujours en mesure de reprendre sa course.

Gyroscope 6 axes

Ce JJRC H31 est un quadricoptère qui fonctionne avec une radiocommande 4 voies et dispose d’un gyroscope de 6 axes intégré.
Ainsi, vous pourrez le faire tournoyer sur lui-même sans pour autant perdre le contrôle de la direction. Il est tout aussi capable de réaliser un vol stationnaire. Mieux encore! Vous pourrez même effectuer des loopings dans les 4 directions, ou encore faire des figures à 360 degrés.

Il dispose aussi de la fonction RTH (en français : retour à la maison, ou plutôt, retour au point de départ). C’est une fonction qui permettra à votre drone passe-partout de revenir au dernier Home Point enregistré. Il y a trois situations où le RTH est déclenché :
– RTH commandé par le pilote,
– RTH imposé par le drone suite à la perte de liaison entre le drone et la radiocommande,
– RTH imposé par le drone suite à une batterie faible.

Un pilotage en toute simplicité

Ce drone est bien évidemment piloté grâce à une radiocommande sur la bande de fréquence des 2.4GHz.
Elle vous permet de le diriger à une distance de 60-70 mètres maximum. Son utilisation est très simple, et quand bien même, une notice d’utilisation est fournie avec le drone. Pour information, les 2 boutons type Potard sont factices.

Il dispose de 3 vitesses sélectionnables grâce à la gâchette de gauche (50%,75%,100%).
La gâchette de droite, quant à elle, permet de faire des flips dans tous les sens !

La batterie tient plus ou moins 10 minutes. Je vous conseille d’en ai acheté quelques unes en plus.
Le chargeur est un petit dongle USB très pratique. Il permet de recharger la batterie quasiment partout.

Spécifications

Description :
Nom de marque: JJRC
Nom d’article: JJRC H31 RC Quadcopter
Matériel: composants électroniques, ABS / PS
Fréquence: 2.4G
Canaux: 4CH
Gyro: 6 axes
Durée de vol: environ 8-10 minutes
Distance Remote Control: A propos de 70-80 mètres
Temps de charge: 60 minutes
Batterie Pour quadricoptère : 3.7V 400mAh (inclus)
Batterie pour la radiocommande: 4 piles AAA (non inclus)
Taille du produit: 31 x 31 x 7.2cm
Poids : 76g

Emballage inclus :
*1 x JJRC H31 RC Quadcopter
*1 x Radiocommand
*1 x 3.7V 400mAh Batterie
*1 x Chargeur USB
*4 x Hélice
*4 x Train d’atterrissage
*4 x Housse de protection
*1 x Tournevis

Mes conclusions sur ce drone passe-partout pour débutants

Je le recommande pour les débutants ou toute personne qui veulent un drone solide, pas cher et qui fonctionnent très bien
Ce modèle ne convient pas aux enfants de moins de 14 ans. Toutefois, j’ai pu le mettre plusieurs fois entre les mains (toujours ma surveillance) de ma princesse (4ans). Elle s’éclate toujours autant avec (même si sur la photo on ne le voit pas trop), et surtout, il est toujours fonctionnel, en très bon état.
Ce petit drone, qui ne paye pas de mine, est absolument génial… surtout pour son prix ridicule! Il fera le bonheur des débutants qui ne voudront pas voir leur apprentissage freiné par la peur de casser leur jouet! Alors filer directe chez Gearbest en prendre un, vous n’aurez pas l’impression de perdre votre argent!!

GREP – Globally search for Regular Expression and Print it

Qui, travaillant sous Unix ou Linux, n’a jamais utilisé la commande grep? La réponse est simple il me semble: personne!!!
Pour faire simple, grep est une petite famille de 3 commandes qui permet de rechercher une chaine dans des fichiers, et d’en imprimer les lignes.
Elle n’a l’air de rien comme cela, mais c’est une commande terriblement efficace, l’une des commandes les plus utiles dans tout système Unix, avec sed et awk.

Présentation

g/RE/p signifie globally search for RE and print it où RE est un raccourci pour RegularExpression.
Pour faire ultra simple, grep est un outil qui permet de chercher une expression régulière (motif ou pattern en anglais) dans un contenu, et d’en afficher le résultat.

Expression régulière ?

Les expressions régulières, ou plus communément appelées RegEx, constituent un système puissant et rapide afin de rechercher dans des chaînes de caractères un motif (une occurrence, une autre chaine de caractères définie). On utilise les expressions régulières dans presque toutes les commandes d’administration. On peut les retrouver dans de nombreux langages comme le BASH, le PHP, Javascript, etc… ou encore dans des logiciels d’édition, comme vi, Notepad++, PsPad, etc… .
C’est pour quoi, je ne développerai pas plus sur les RegEx ici, car des livres complets existent sur ce sujet, et un article entier serait une bonne façon des aborder, plutôt que quelques lignes posées dans un paragraphe.

Fonctionnement

Ces trois commandes grep fonctionnent de la même façon.
Grep commence à lire la première ligne du fichier (ou depuis l’entrée standard si aucun fichier n’est fourni, ou si le nom – est mentionné) , la copie dans un tampon, la compare à la chaîne de recherche (le motif), et si la comparaison est valide, imprime la ligne à l’écran. Grep va ainsi répéter ce processus jusqu’à la fin du fichier (ou de l’entrée standard).

Les symboles

On va d’abord vite faire le tour des symboles que nous pouvons utiliser dans les expressions régulières.
Les caractères ^ et $ indiquent le début ou la fin d’une chaîne, et permettent donc de la délimiter.
« ^debut »: chaîne qui commence par « debut »
« fin$ »: chaîne qui se termine par « fin »

Les caractères *, + et ?, respectivement zero ou plusieurs, un ou plusieurs, un ou aucun, permettent de donner une notion de nombre.
« abc+ »: chaîne qui contient « ab » suivie de un ou plusieurs « c » (« abc », « abcc » …)
« abc* »: chaîne qui contient « ab » suivie de zero ou plusieurs « c » (« ab », « abc » …)
« abc? »: chaîne qui contient « ab » suivie de zero ou un « c » (« ab » ou « abc »)

Les accolades {,} permettent de donner des limites de nombre.
« abc{2} »: chaîne qui contient « ab » suivie de deux « c » (« abcc »)
« abc{2,} »: chaîne qui contient « ab » suivie de deux « c » ou plus (« abcc » etc..)
« abc{2,4} »: chaîne qui contient « ab » suivie 2, 3 ou 4 « c » (« abcc » .. « abcccc »)

Les parenthèses ( ) permettent de représenter une séquence de caractères.
« a(bc)* »: chaîne qui contient « a » suivie de zero « bc » ou plus

Le pipe (la barre verticale) | se comporte en tant qu’opérateur OU
« un|le »: chaîne qui contient « un » ou « le »
« (un|le) chat »: chaîne qui contient « un chat » ou « le chat »
« (a|b)* »: chaîne qui contient une suite de « a » ou de « b »

Le point . indique n‘importe quel caractère
« ^.{3}$ »: chaîne qui contient 3 caractères

Les crochets [-] définissent une liste de caractères autorisés (ou interdits).
Le signe permet quand à lui de définir un intervalle. Le caractère ^ après le premier crochet indique quand à lui une interdiction.
« [abc] »: chaîne qui contient un « a », un « b », ou un « c »
« [a-z] »: chaîne qui contient un caractère compris entre « a » et « z »
« ^[a-zA-Z] »: chaîne qui commence par une lettre
« ^[^a-zA-Z] »: chaîne qui ne commence pas par une lettre

Des exemples

Oui, parce que c’est bien beau tout cela, mais il faut aussi pratiquer. Vous imaginez qu’on ne va pas non plus faire le tour de la question, mais uniquement faire tomber les premières barrières qui pourraient vous empêcher d’utiliser grep.

Pour des exemples simples, je ne vais pas faire de copier/coller, vous en trouverez ici, et ci-dessous, certains exemple que j’utilise au bureau.

Test les Erreurs dans un fichier de log : il ne faut avoir ni des ORA- ni des PLS- :

Vérifier si une chaine de caractères est présente dans un fichier :

Fonction privée pour valider une adresse email :

Fonction de test si une chaîne de caractères est numérique :

La Famille

Je disais une petite famille, car grep est disponible en trois commandes distinctes mais toutes liées : grep, egrep et fgrep.
Egrep est identique à grep -E.
Fgrep est identique à grep -F.
Rgrep est identique à grep -r.

-E, –extended-regexp
Interpréter le MOTIF comme une expression rationnelle étendue
-F, –fixed-strings
Interpréter le MOTIF comme une liste de chaînes de caractères, séparées par des sauts de ligne. Chacune d’entre elles doit être recherchée.
-r, –recursive
Lire tous les fichiers à l’intérieur de chaque répertoire, récursivement.

 Maintenant, amusez-vous bien, mais je serais curieux de voir cela. Alors n’hésitez pas à publier vos trouvailles.

Raspberry Pi 3

Il y a quelques mois, la fondation Raspberry Pi a créée la surprise en sortant un nouveau modèle de Raspberry Pi : le Raspberry Pi Zero.
Cette semaine, c’est au tour du Raspberry Pi 3.

Des petits $ pour des millions de ventes

Le Raspberry Pi original et ses successeurs ont toujours été des mini-ordinateurs accessibles à tous, avec des prix pouvant varié de 5$ pour le Raspberry Pi ZERO, à 35$ pour le dernier Raspberry Pi 3.
Depuis 2012, des millions de personnes ont utilisé un Raspberry Pi pour acquérir leur première expérience en programmation et en développement, et créer des projets laissant libre court à leur imagination. La fondation Raspberry, c’est plus de trois millions de ventes uniquement pour le Raspberry Pi 2. Elle est passée d’une poignée de bénévoles, à plus d’une soixantaine d’employés à temps plein. Et chaque semestre, elle nous amène son lot de nouveautés.

Raspberry Pi 3

Après le Raspberry Pi Zero, fabriqué au Pays de Galles, et vendu 5$ seulement (ce qui en fait l’ordinateur le moins cher du marché devant CHIP qui est à 9$), c’est au tour du Raspberry Pi 3. Le constructeur annonce une hausse des performances de 50 à 60 % par rapport au Raspberry Pi 2 pour des applications 32 bits. Mais qu’a donc dans le ventre ce dernier du nom?

Encore plus rapide

Le Raspberry Pi 3 dispose d’un SoC 64 bits Broadcom BCM2837 ARM Cortex A53 avec quatre cœurs à 1,2 GHz.
Pour rappel, le Raspberry Pi exploite un seul ARM11 à 700 MHz, alors que le Raspberry Pi 2 exploite, quant à lui, un SoC Cortex-A7 avec quatre cœurs à 900 MHz.

raspberry_pi_3_review

Des nouveautés intéressantes

On trouve, tout comme le Raspberry Pi 2, 1 Go de LPDDR2, mais surtout, l’arrivée du Wi-Fi 802.11n et du Bluetooth 4.1 (classic et LE), ce qui n’était pas le cas auparavant. Le design du nouveau Raspberry Pi 3 reste donc très proche de celui de son prédécesseur, à la différence près de la position des LED qui ont été déplacées à côté de la carte SD, pour faire place à l’antenne.

Raspberry Pi 3 2 1

Pour le reste, la connectique ne change pas, avec un port réseau 100 Mb/s (on attends toujours le passage en Gb), un emplacement pour une carte microSD, une sortie vidéo HDMI, quatre ports USB 2.0 et un connecteur GPIO à 40 broches. Ses dimensions sont de 85 x 56 x 17 mm. Coté alimentation, la fondation Rapsberry Pi recommande l’utilisation d’un adaptateur 2.5A.

raspberry_pi_3_01

Acheter le Raspberry Pi 3

Une belle promo de lancement sur le site de Pi Hut (vite vite, dépêchez-vous, il est à 30£). Sinon, vous pourrez le commander chez Element14 pour une 40aine d’euros ou chez RS Components pour 44,30 euros (réservé aux professionnels, numéro SIRET obligatoire).

PFsense : Nat reflection

Par défaut, pfSense ne redirige pas les clients connectés en interne (réseau local) pour atteindre les ports NATtés sur les interfaces WAN.
En effet, si un client LAN tente d’accéder à un service sur le port 80 ou 443 d’un autre client NATé par son IP WAN (ou un autre port NATté), la connexion n’aboutira pas et on obtiendra une erreur de type « nom d’hôte non reconnu ». L’option NAT Reflection utilise des techniques pour rediriger ces connexions.

NAT Reflection

Afin d’accéder aux ports NATés sur l’interface WAN à partir des réseaux internes, NAT reflection doit être activé.
Pour ce faire, accédez à System > Advanced, onglet Firewall/NAT.
Sur cette page, activez le mode Pure NAT dans la section NAT Reflection mode for port forwards, et cochez les cases :
Enables the automatic creation of additional NAT redirect rules for access to 1:1 mappings of your external IP addresses from within your internal networks
et
Automatically create outbound NAT rules which assist inbound NAT rules that direct traffic back out to the same subnet it originated from.

NAT reflection dans PFsense

Utilisation

Vous avez un lapin Karotz ou Nabaztag, et avez monté un serveur local. Ce serveur est accessible pour vos amis, mais lorsque vous voulez y accéder par son adresse publique (votre interface WAN), vous tomber sans cesse sur une erreur de type « hôte inconnu ».
En activant NAT Reflection, vous pourrez accéder à votre serveur OpenJabNab depuis l’extérieur sur votre adresse IP publique, mais aussi de la même manière depuis votre réseau local.

Les joies de la commande telnet

Qui n’a jamais pesté alors qu’il était en train de faire le malin avec la commande telnet ?
En effet, bien pratique cette commande telnet pour tester un service UNIX ou s’amuser, mais lorsque son écran reste bloqué, on fait moins malin.

Utiliser telnet pour tester un service

Un petit exemple tout bête : vous voulez vérifier que le service que vous venez de mettre en place est bien accessible. Il suffit de faire un telnet sur son port d’écoute (ici nous testons les ports 50010 et 50050).

Pour un service qui n’est pas accessible, on aura ceci :

Et au bout de quelques (longues) secondes, vous aurez le message suivant :
telnet: Unable to connect to remote host: Connection timed out

Mais si votre service est accessible, il répondra ainsi :

Vous aurez une réponse du serveur : Connected to 192.168.1.101.

Sortir de telnet

Ok, on a fait le malin, on a montré qu’on savait tester si un service répondait.
Maintenant, essayez donc de trouver la solution pour sortir de là !!!
Pas facile hein?!

Pourtant, la solution est simple. Comme le port Salut, c’est écrit dessus : Escape character is ‘^]’.
Mais ça veut dire quoi ??? La petite astuce : le caractère tant attendu est produit par la combinaison de touches suivante :
sous Windows : Ctrl + $ ou CTRL + (
sous Linux : Ctrl + Alt Gr + ]

Et voilà.

Pourquoi parler cela ?

Tout simplement parce qu’un collègue est tombé dans le panneau, et qu’il a fallut lui montrer comment faire pour sortir proprement d’un telnet, même planté. En espérant que cette info servira à un peu plus de monde, notamment lorsque vous testerez les liens ci-dessous… .

Easter Eggs

Certains en profite pour mettre un peu de fun sur Internet, et j’avoue que je suis friand de ce genre de trucs, les Easter Eggs.

Essayer de faire un telnet towel.blinkenlights.nl 666
Vous obtiendrez des excuses sympas du genre :

the butane lighter causes the pincushioning
Decreasing electron flux
Hash table has woodworm
Digital Manipulator exceeding velocity parameters

Encore plus sympa et plein de fonctionnalités : essayez donc  telnet telehack.com
Quand je dis plein de fonctionnalités, c’est que vous pouvez y passer un moment fou, car il s’agit d’une compilation d’un peu tout les Easter Eggs disponibles sous telnet.
Tapez cowsay helloo pour obtenir une vache qui dit helloo
Tapez octopus et validez, puis une touche pour obtenir sa correspondance en binaire, octal, hexa, et ascii!!!

Et vous en avez, une palanquée comme cela (60 au total), parmi lesquelles :

et si vous avez un moment, testez donc ceci : starwars
Sinon, il existe encore des vieux BBS dont une liste est disponible ici.

 En espérant vous avoir fait perdre un peu de temps… .

Installer des paquets sur pfSense

Parfois, on aimerait installer des paquets sur pfSense. Et bien c’est possible, car en plus des outils disponibles par défaut dans le système de package pfSense, des milliers de paquets de FreeBSD supplémentaires sont aussi disponibles. Un tutoriel rapide pour installer des paquets nécessaires.

Bootstrapping pkg

pfSense 2.2 est basé sur FreeBSD 10.1 et utilise aussi la commande pkg pour gérer manuellement des packages FreeBSD. Attention toutefois, il faut rappeler le but de pfSense : installer des paquets sur pfSense, ok, mais la sécurité avant tout.

pfSense® software is a free, open source customized distribution of FreeBSD specifically tailored for use as a firewall and router that is entirely managed via web interface. In addition to being a powerful, flexible firewalling and routing platform, it includes a long list of related features and a package system allowing further expandability without adding bloat and potential security vulnerabilities to the base distribution.

En effet, si une sécurité forte est souhaitée pour votre pare-feu pfSense, alors oublier cet article et n’installez pas de paquets supplémentaires. Dans le cas contraire, si vous savez où vous mettez les pieds, et que vous allez maintenir garder à jour votre système, cet article est fait pour vous.

Bon, tout d’abord, il vous faut un shell prompt (accessible depuis votre console ou en SSH, option 8 du menu). Ensuite, vous verrez, c’est un système de paquets comme rpm, ou apt, relativement simplissime!!!
ScreenShot037

Mettre à jour de la liste des paquets

Avant toute chose, il faudra mettre à jour vos metadata avant de pouvoir installer des paquets sur pfSense :

Installer des paquets sur pfSense

Maintenant que la liste des paquets est à jour, il ne vous reste plus qu’à installer celui dont vous avez besoin. Dans mon cas, j’ai besoin de rsync :

Activer le nouveau paquet

Votre paquet est maintenant installé, mais pas encore disponible!!! Pour qu’il le soit, il vous reste encore une petite commande à exécuter :

Vraiment pas compliquer d’installer des paquets sur pfSense!

Allez plus loin avec pkg

Pour aller plus loin avec la commande pkg, utilisez l’aide !!!

Vous pourrez ainsi vérifier la sécurité de vos paquets, ou chercher le paquet qui répondra à votre besoin.

Ou encore, faire une recherche si vous ne connaissez pas le nom exact du paquet à installer.

Amusez-vous bien!!!