Déc 19

Gestion des adresses Ip dynamiques avec Iptables

Pour être honnête avec vous, j’avais pensé intitulé ce billet « Ouvrez, ouvrez la cage aux oiseaux… ».

Mais après avoir osé « PKI, PKI, oh ! PKI, PKI, ah! » sur l’air de « Rosalie », je me se suis dit que vous alliez sûrement vous poser de sérieuses questions sur ma santé mentale et surtout sur mes goûts musicaux :mrgreen: (bien que je n’ai rien de personnel contre Carlos et Pierre Perret)

Bref, donc le but de ce billet est de résoudre un problème fréquent.

Vous avez un beau serveur dédié Linux (ou un pote vous en prête un) et vous contrôler bien entendu dessus les accès réseau via Iptables.

D’ailleurs, vous utilisez peut-être même un superbe script déjà tout fait dans le genre de KHARON (comment cela je fais de la pub ???)

Vous disposez a votre domicile d’une adresse IP dynamique et bien entendu, pour fixer cela en dur dans Iptables, bah c’est la cata…

Vous jonglez donc avec Fail2ban et/ou des règles du style :


Iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --update --seconds 60
--hitcount 4 -j DROP

Voici donc une petite bidouille bien proprette pour insérer votre ip dynamique dans iptables (oublier les résolutions DNS en règles Iptables, cela ne marche pas…) et autoriser l’accès en SSH depuis votre ip dynamique.

Je suppose bien évidemment que vous utilisez déja un service comme DYNDNS ou une entrée de type DYNHOST chez OVH par exemple (ou autre hein, je suis pas sectaire).

Bref, un service permettant d’avoir un nom d’hôte pour votre ip dynamique et qui est mis à jour à intervalle régulier.

Tout d’abord, il faut créer une chaine que nous appelerons « mon_ip_maison » par exemple et l’insérer au début de la chaine INPUT d’iptables.

A rajouter donc dans votre script Iptables ou à la main comme ceci :

iptables -N mon_ip_maison
iptables -I INPUT 1 -j mon_ip_maison

Reste à écrire le joli script de mise à jour que j’appellerais ici : Wesh_Gros_C_est_moi.sh

(euh vous pouvez changer le nom hein…)

#!/bin/bash
#
# variables generales
dyndns=guiguiabloc.dyndns.com
ipfile=/root/ipfile
 
# Recuperation de l'ip
IP=`/usr/bin/dig +short $dyndns | /usr/bin/tail -n 1`
if [ "${#IP}" = "0" ]; then
    echo "Echec de la recuperation de l'ip"
    exit
fi
 
ANCIENNEIP=""
if [ -a $ipfile ]; then
    ANCIENNEIP=`cat $ipfile`
fi
 
# on enregistrer la nouvelle ip
echo $IP>$ipfile
 
echo "Mise a jour d'iptables"
if [ "${#ANCIENNEIP}" != "0" ]; then
    echo "Suppression de l'ancienne règle ($ANCIENNEIP)"
    /sbin/iptables -D mon_ip_maison -s $ANCIENNEIP/32 --dport 22 -j ACCEPT
fi
echo "Insertion de la nouvelle règle ($IP)"
/sbin/iptables -A mon_ip_maison -s $IP/32 --dport 22 -j ACCEPT

Ne reste qu’a le lancer toutes les 10 minutes via la crontab :

*/10 * * * * /root/Wesh_Gros_C_est_moi.sh   2>&1

Magique 😀

Vous trouverez le script de Dave Horner ICI

Classé dans linux, réseau, sécurité | Taggé , , | 5 Commentaires
Déc 12

Billet pas Geek du tout

Pour une fois, exceptionnellement, ce ne sera pas un billet geek ce coup ci.
Ni d’ailleurs un billet ayant une quelconque lien avec l’informatique…

Je le dédie tout spécialement a Emeline et Lucie. Mes amours, mes puces, mes anges, je vous embrasse très très fort, je vous aime …

Ce billet nait d’un coup de gueule, je ne savais pas où m’énerver encore plus fort, et après tout, j’ai le droit, sur mon blog, de positionner mes convictions, non ?

Vous savez, parfois on passe des soirées avec plein d’amis qui nous sont chers, des soirées où l’on est content de les retrouver, de discuter, de rire, de partager nos états d’âmes, et j’en passe…

Et dans ce genre de soirée vous avez les « rapportés », ces gens externes à la bande qui croient tout savoir et être sur de leur point de vue sans se remettre en question et surtout sans essayer de s’intégrer dans un groupe déja soudé et complice.

Je suis donc tomber bien malgré moi sur des homophobes de premier ordre.

Ces soi-disant intégristes d’une religion veillissante, nanti de conviction et de préjugés à la limite du néanderthalisme.
Loin de moi l’idée de vous résumer cette soirée et les discussions houleuses et agitées qui en sont nait, mais j’en suis repartie abattu, chagriné et honteux de savoir que ce genre de personne existe en vrai et pas dans les articles de journaux.

Messieurs les censeurs ignorants et abjectes, vous me répugnez au plus haut point, vos pensées me font vomir, vos idées me donne un dégout que je n’avais pas ressentie depuis bien longtemps, vos convictions, simplistes et nombrilistes, sont le reflet parfait de votre ignorance et de votre carcan de préjugés écoeurant.

A vous tous, pourfendeurs d’une inquisition utopique, défenseur d’une idéologie où se cotoie le racisme, l’eugénisme et l’homophobie, je ne peux rien vous souhaiter, vous avez atteint la couche la plus basse qu’un animal peut avoir, animal car l’humanité n’est sûrement pas et loin de la, une caractéristique qui peut se greffer a votre attitude.

Messieurs les bien pensants, vous ne valez guère mieux que vos idées, et ensemble je vous incite fortement à vous diriger vers le meme but, la fosse septique.
A bon entendeur.

J’ose espérer, encore, ne pas être le seul hétéro à défendre la cause homosexuelle, et j’ose aussi, espérer, au plus profond de moi, que l’on arrête de juger les gens sur leurs préférences sexuelles.

A vous, Emeline et Lucie, Sarah et Nathalie, Emilie et Chloé, Sandra et Pascaline, Loïc et Anthony, Hervé et Erwan, Pascal et Gaël, je vous embrasse de tout mon coeur, de toutes mes forces, vous supporte dans votre combat de chaque jour et vous jure, sur tout ce qui m’est de plus cher, d’être là quand vous aurez besoin de moi.
Je vous aime, ne changez rien, s’il vous plait.

Classé dans Non classé | 13 Commentaires
Déc 05

OVH, Ip Failover dans une machine virtuelle VMWare

Suite à ce billet sur la mise en oeuvre de VMware Server 2 sur un serveur dédié OVH, il semble que certain d’entre vous soit en difficulté pour affecter une ip failover à votre Machine Virtuelle et pour la faire communiquer avec le Nain Ternet.

Donc , petite mise au point et tuto pour le « comment qu’on fait » pour mettre une ip failover OVH sur ma VM.

  • Pré-requis Hôte

Vous avez lu le billet sur l’installation VMWare et l’hôte est opérationnel.

J’appelerais l’hôte le serveur sur lequel est installé VMWare server.

L’interface Host-only utilisée sur l’hôte est VMNET1 :

hote# ifconfig
 
vmnet1    Lien encap:Ethernet  HWaddr 00:50:56:C0:00:01
          inet adr:10.154.98.1  Bcast:10.154.98.255  Masque:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3675317 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3013354 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

L’ip affectée à VMNET1 est de classe privée (192.168/16, 172.16/12 ou 10/8) ici, 10.154.98.1/24 (la notation /24 correspond au nombre de bits du masque se sous-réseau donc ici 255.255.255.0).

Le forwarding IP est activée :

hote# cat /proc/sys/net/ipv4/ip_forward
1

Le proxy ARP est actif sur l’interface VMNET1 :

hote# cat /proc/sys/net/ipv4/conf/vmnet1/proxy_arp
1

Si les valeurs sont a 0, les activer :

hote# /bin/echo "1" > /proc/sys/net/ipv4/ip_forward
hote# /bin/echo "1" > /proc/sys/net/ipv4/conf/vmnet1/proxy_arp

L’ip FailOver utilisée dans cette exemple est 91.121.58.158.

On ajoute une route par défaut pour l’ipFailover :

hote# route add 91.121.58.158 dev vmnet1
hote# route -n
Table de routage IP du noyau
Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface
91.121.58.158  0.0.0.0         255.255.255.255 UH    0      0        0 vmnet1
  • Machine Virtuelle Linux (type Debian)
guest:~# cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
 
# The loopback network interface
auto lo
iface lo inet loopback
 
# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 91.121.58.158
netmask 255.255.255.255
dns-nameservers 213.186.33.99
 
post-up /sbin/route add default dev eth0

N’oubliez pas de renseigner vos serveurs de noms (opendns ici)

guest:~# cat /etc/resolv.conf
search localdomain
nameserver 208.67.222.222
nameserver 208.67.220.220

On reboot, Un ping sur une adresse externe doit fonctionner sans problème :

LinuxVM

LinuxVM

Si vous préférez faire la config à la main :

guest# ifconfig eth0 91.121.58.158 netmask 255.255.255.255
guest# route add default dev eth0
  • Machine Virtuelle WINDOWS
Etape 1

Etape 1

On spécifie l’ip failover, la passerelle qui l’adresse de VMNET1 de l’hôte et les DNS.

Concernant les masques, si vous laissez 255.255.255.255, vous aurez un message d’erreur :

Erreur masque

Erreur masque

On va donc laisser 255.255.255.0 pour l’instant :

Masque par defaut

Masque par defaut

Lancer Regedit pour modifier la valeur du netmask (Démarrer/executer/Regedit).

Déplacer vous sur HkEY_LOCAL_MACHINE/SYSTEM et faites une recherche sur « subnet »

Modification dans le registre

Modification dans le registre

Modifie la valeur 255.255.255.0 en 255.255.255.255

Modification Netmask

Modification Netmask

On reboot le pc, tout doit être ok désormais :

Test final

Test final

ATTENTION le netmask affichée est INCORRECT !! LA PREUVE :

Bug netmask ipconfig

Bug netmask ipconfig

En espèrant que cela vous aide 🙂

Classé dans linux, réseau | Taggé , , | 17 Commentaires
Déc 02

PKI, PKI, oh ! PKI, PKI, ah !

« Mais qu’est ce tu chiffres DouDou dis donc ? PKI, PKI, c’est bon, c’est bon… »

Bon d’accord.. 😳

Désolé pour la touche Tarte à la crème et nez rouge, ça m’a échappé 😕

La gestion d’une PKI n’est pas toujours évidente.

On se retrouve vite avec une usine à gaz qui si elle répond a des besoins en entreprise (exemple openCA qui est pour moi un outil très puissant, opensource et parfaitement utilisable en production), pour sa petite gestion personnelle, c’est un peu lourd.

Vous gérez donc vos certificats a la mimine, a coup d’openssl dans tout les sens en stockant a gauche et a droite, et mer…. ou j’ai mis mon CA Root… ou alors grace aux quelques scripts fournis en standard avec OpenVPN par exemple.

Bref, heureusement il existe un petit programme qui répond parfaitement à ce besoin; il s’agit d’easyCA.

Vous trouverez les sources ICI .

Il n’est plus maintenu depuis 2005 mais croyez moi, ce petit programme en simple script shell est une bombe et parfaitement utilisable.

J’ai contacté Ferry, l’auteur du script qui malheureusement semble un peu débordé pour apporter quelques améliorations.

Soit, c’est bien parce que c’est vous, je vous livre donc MA version d’easyCA avec quelques fonctions rajoutées (OCSP, choix du type de certificat serveur/client..)

easyCA Version GuiguiAbloc

Elle est bien entendu perfectible mais convient parfaitement à la gestion de ma pki personnelle.

Le fonctionnement est on ne peut plus basique.

Vous créez un répertoire ou vous déposer le easyCA.sh et l’openssl.cnf (que vous CONFIGUREZ avant !!!). (ps : pensez a supprimez la ligne « # !!!!! remove this line after configuration as it is NOT_CONFIGURED yet !!! »

Les champs sont suffisamment bien commentés pour que vous compreniez les champs à renseigner.

Ne reste qu’a lancer le easyca.sh :

=====================================================================
                      Certificate Management System
      easyCA version 0.9(6) by Ferry Kemps and Guiguiabloc
                              GPL Licensed
=====================================================================
 
   1) Sign a Certificate Signing Request (PKCS#10)
   2) Create a Server Certificate (PEM SelfSigned)
   3) Create a Client Certificate (PKCS#12)
   4) Create a Certificate Signing Request
   5) Generate Certificate Revocation List (CRL)
   6) List, Display and Revoke Certificates
 
   I) Initialize Root Certificate Authority (CA)
   O) Initialize OCSP Server Certificate
   B) Backup & Restore the Certificate environment
   R) Reinstall easyCA (erase)
 
 ==> Make your choice [none]:

Commencer par initaliser votre Certificat d’Autorité (I)

Puis a vous la création et la gestion de vos certificats 🙂

-----------------------------------------------------------------------
--------------- Generate Certificate Signing Request ------------------
-----------------------------------------------------------------------
 
Enter Certificate CN (Common name|FQDN) like www.example.com [none]: blog.guiguiabloc.fr
Generating a 1024 bit RSA private key
......................++++++
..++++++
writing new private key to './private/blog.guiguiabloc.fr-key.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [NL]:FR
State or Province Name (full name) [Gelderland]:Bretagne
Locality Name (eg, city) [Arnhem]:GuiguiTown
Organization Name (eg, company) [Your Company Name]:Guiguiabloc
Organizational Unit Name (eg, section) [HQ]:Guiguiabloc
Common Name (eg, your name or your server's hostname) []:blog.guiguiabloc.fr
Email Address [postmaster@domain.ext]:guiguiabloc@devnull
 
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
 
Certificate Signing Request (CSR) stored as: ./csr/blog.guiguiabloc.fr.csr
Certificate private-key stored as: ./private/blog.guiguiabloc.fr-key.pem
Press [enter] to continue
-----------------------------------------------------------------------
--------------- Certifiace Signing Request handling -------------------
-----------------------------------------------------------------------
 
 (CSR request files should be copied into directory: ./csr)
 
1: blog.guiguiabloc.fr.csr
 
 ==> Select the CSR to sign [none]: 1
 
 ==> Add OCSP Extension to Certificate ? [y/N]: y
 
 ==> Select the Usage Key [server|client|none]: server

Bref, je vous laisse jouer avec, vous verrez, cela vous simplifiera la vie.

Concernant l’extension OCSP, ce sera le sujet d’un prochain billet ou comment gérer la révocation de vos certificats, on-line 😀

Classé dans sécurité | Taggé , , | 6 Commentaires