issue101:site_web_avec_infrastructure
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
issue101:site_web_avec_infrastructure [2015/10/06 08:52] – d52fr | issue101:site_web_avec_infrastructure [2015/10/06 23:05] (Version actuelle) – d52fr | ||
---|---|---|---|
Ligne 133: | Ligne 133: | ||
Résumons ce que nous cherchons à faire : | Résumons ce que nous cherchons à faire : | ||
- | * Obtenir les plages d' | + | • Obtenir les plages d' |
- | | + | • Charger ces plages dans ipset. |
- | | + | • Ajouter une règle iptable qui vérifie que le pays d' |
- | | + | • Si oui, bloquer. |
- | | + | • Sinon : |
- | * Permettre si la cible est HTTP (une page Internet). | + | • • Permettre si la cible est HTTP (une page Internet). |
- | * Si la cible est SSH, on doit alors aussi vérifier que le pays d' | + | • • Si la cible est SSH, on doit alors aussi vérifier que le pays d' |
J' | J' | ||
Ligne 261: | Ligne 261: | ||
iptables -A INPUT -j DROP** | iptables -A INPUT -j DROP** | ||
- | Au cas où nous aurions raté quoi que ce soit, chaque connexion arrivant sur la commande ci-dessus sera bloquée (rappelez-vous : | + | Au cas où nous aurions raté quelque chose, chaque connexion arrivant sur la commande ci-dessus sera bloquée (rappelez-vous : |
iptables -A INPUT -j DROP | iptables -A INPUT -j DROP | ||
Ligne 283: | Ligne 283: | ||
iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 300 --hitcount 5 --name DEFAULT --rsource -j DROP** | iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 300 --hitcount 5 --name DEFAULT --rsource -j DROP** | ||
- | Ci-dessous, nous allons dire à iptables de conserver une trace des connexions sur le port 22 pendant 300 secondes. Si le nombre de requêtes (qui n'ont pas abouti) arrive à 5 alors le trafic [Ndt : pour cette IP] est rejeté pendant 5 minutes : | + | Ci-dessous, nous disons |
iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name DEFAULT --rsource | iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name DEFAULT --rsource | ||
Ligne 318: | Ligne 318: | ||
Allons plus loin dans la liste et la vérification de ceux qui ont cherché à se connecter au système… | Allons plus loin dans la liste et la vérification de ceux qui ont cherché à se connecter au système… | ||
+ | |||
Cette commande va afficher toutes les tentatives de connexion à votre système : | Cette commande va afficher toutes les tentatives de connexion à votre système : | ||
cat / | cat / | ||
- | Cela va vous donner | + | Cela vous donnera |
**This revised version is probably more useful and will give the list of unique IP attempts – sorted by number of connection attempts: | **This revised version is probably more useful and will give the list of unique IP attempts – sorted by number of connection attempts: | ||
Ligne 336: | Ligne 337: | ||
• It sorts descending as numbers (sort -n).** | • It sorts descending as numbers (sort -n).** | ||
- | Cette version modifiée est certainement plus utilisable | + | Cette version modifiée est certainement plus utile et vous donnera |
cat / | cat / | ||
Une rapide explication de cette commande : | Une rapide explication de cette commande : | ||
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
**The goal of this article is firewall and security. However, I strongly believe that security and scripting go hand-in-hand. Logging intrusion attempts is great but not using the data is useless. As you can see, a quick shell command was able to provide very useful information – extremely quickly. I can now, for example, ban the topmost 10 IPs who tried to log in to my system.** | **The goal of this article is firewall and security. However, I strongly believe that security and scripting go hand-in-hand. Logging intrusion attempts is great but not using the data is useless. As you can see, a quick shell command was able to provide very useful information – extremely quickly. I can now, for example, ban the topmost 10 IPs who tried to log in to my system.** | ||
- | Le sujet de cet article est le pare-feu et la sécurité. Toutefois, je crois fermement que la sécurité et l' | + | Le sujet de cet article est le pare-feu et la sécurité. Toutefois, je crois fermement que la sécurité et l' |
**The following command will ban the IP 10.10.10.10 by inserting the rule on top of all rules (-I INPUT 1): | **The following command will ban the IP 10.10.10.10 by inserting the rule on top of all rules (-I INPUT 1): | ||
Ligne 358: | Ligne 359: | ||
Have fun and please make sure not to ban… yourself!** | Have fun and please make sure not to ban… yourself!** | ||
- | La commande suivante va interdire l' | + | La commande suivante va interdire l' |
iptables -I INPUT 1 -s 10.10.10.10 -j DROP | iptables -I INPUT 1 -s 10.10.10.10 -j DROP | ||
Ligne 375: | Ligne 376: | ||
7 – Règles concernant le trafic sortant | 7 – Règles concernant le trafic sortant | ||
- | Très souvent, les pare-feu ne mettent en place des règles que pour le trafic entrant – ce qui signifie qu'ils ouvrent grandes les portes du trafic sortant. Ce n'est pas une bonne façon de faire ; imaginez qu'un pirate s' | + | Très souvent, les pare-feu ne mettent en place des règles que pour le trafic entrant – ce qui signifie qu'ils ouvrent grandes les portes du trafic sortant. Ce n'est pas une bonne façon de faire ; imaginez qu'un pirate s' |
- | Nous allons donc également | + | Nous allons donc combler cette lacune |
- | | + | |
- | | + | |
- | | + | |
**You probably got the point: | **You probably got the point: | ||
Ligne 387: | Ligne 388: | ||
• Allow SSH, DNS, HTTP & HTTPS.** | • Allow SSH, DNS, HTTP & HTTPS.** | ||
- | Vous avez probablement déjà | + | Vous avez probablement déjà |
- | | + | |
- | | + | |
- | | + | |
iptables -P OUTPUT DROP | iptables -P OUTPUT DROP | ||
Ligne 430: | Ligne 431: | ||
**And make sure all rules were really deleted – you should see this:** | **And make sure all rules were really deleted – you should see this:** | ||
- | Et s' | + | Et s' |
Ligne 440: | Ligne 441: | ||
• Run the file. For my example, I'll call this file / | • Run the file. For my example, I'll call this file / | ||
- | Vous devez écrire toutes les règles du pare-feu dans un fichier texte (voir l' | + | Vous devez alors écrire toutes les règles du pare-feu dans un fichier texte (voir l' |
- | De façon à tester tout cela, je recommanderais les choses suivantes : | + | De façon à tester tout ceci, je recommanderais les choses suivantes : |
• Utilisez wget pour obtenir les blocs d'IP et conservez les fichiers. | • Utilisez wget pour obtenir les blocs d'IP et conservez les fichiers. | ||
- | • Copiez/ | + | • Copiez/ |
• Exécutez le fichier. Dans mon exemple, je l'ai appelé / | • Exécutez le fichier. Dans mon exemple, je l'ai appelé / | ||
Ligne 453: | Ligne 454: | ||
When you run the file, your terminal will be “locked”. This is because we reset the firewall by blocking all rules by default. Just try connecting again to iceberg from another terminal. If it works – you should be all set, but, if you cannot, stop and restart the VM from the Digital Ocean panel. After the restart, the rules are not loaded, so you can fix that problem: For example, I allowed the US IP blocks because I live in the US, did you load the right blocks of IPs from where you live?** | When you run the file, your terminal will be “locked”. This is because we reset the firewall by blocking all rules by default. Just try connecting again to iceberg from another terminal. If it works – you should be all set, but, if you cannot, stop and restart the VM from the Digital Ocean panel. After the restart, the rules are not loaded, so you can fix that problem: For example, I allowed the US IP blocks because I live in the US, did you load the right blocks of IPs from where you live?** | ||
- | Vous devez avoir maintenant un pare-feu chargé et opérationnel. | + | Maintenant le pare-feu |
IMPORTANT – iptables -F remet le pare-feu à zéro et ferme votre session SSH ! | IMPORTANT – iptables -F remet le pare-feu à zéro et ferme votre session SSH ! | ||
- | Quand vous lancez le fichier, votre terminal sera « bloqué ». Cela est dû à la ré-initialisation du pare-feu en bloquant toutes les règles par défaut. Essayez juste de vous reconnecter à Iceberg depuis un autre terminal. Si cela fonctionne, vous devriez être opérationnel, | + | Quand vous lancez le fichier, votre terminal sera « verrouillé ». Cela est dû à la ré-initialisation du pare-feu en bloquant toutes les règles par défaut. Essayez juste de vous reconnecter à Iceberg depuis un autre terminal. Si cela fonctionne, vous devriez être opérationnel, |
**I will now suppose everything worked well – we will then set both scripts to run at startup. | **I will now suppose everything worked well – we will then set both scripts to run at startup. | ||
Ligne 473: | Ligne 474: | ||
Notez l' | Notez l' | ||
- | Je sais qu'un certain nombre d' | + | Je sais qu'un certain nombre d' |
**Anyway, during your next reboot, you should be automatically all set, with a system pretty well protected against intrusions. | **Anyway, during your next reboot, you should be automatically all set, with a system pretty well protected against intrusions. | ||
Ligne 494: | Ligne 495: | ||
Et vous devriez voir les règles du pare-feu apparaître à l' | Et vous devriez voir les règles du pare-feu apparaître à l' | ||
- | Le mois prochain, nous installerons Apache (le serveur | + | Le mois prochain, nous installerons Apache (le serveur |
issue101/site_web_avec_infrastructure.1444114325.txt.gz · Dernière modification : 2015/10/06 08:52 de d52fr