Conseils pour protéger votre serveur Linux des attaques externes

Je suppose que les gens qui conduisent Serveurs Linux savoir et savoir RefuserHÔTES y Fail2ban. Pour ceux qui ne le connaissent pas, je le ferai Explique un peu sur ces deux applications.

John Fredy Perez est l'un des Gagnants de notre concours hebdomadaire: «Partagez ce que vous savez sur Linux«. Toutes nos félicitations! Soucieux de participer et apporter votre contribution à la communauté, comme l'a fait John?

Nous installerons et configurerons ces deux applications pour éviter les maux de tête ultérieurs. Tout d'abord, nous expliquerons ce que sont ces deux applications et quelle est leur fonction:

Fail2Ban

Il s'agit d'un analyseur de journaux qui recherche les tentatives d'enregistrement infructueuses et bloque les adresses IP d'où proviennent ces tentatives. Il est distribué sous la licence GNU et fonctionne généralement sur tous les systèmes qui s'interfacent avec un système de contrôle d'attaque ou un pare-feu local.

Fail2Ban a une excellente configuration et peut également créer des règles pour les programmes
propres ou de tiers.

RefuserHÔTES

Il s'agit d'un outil de sécurité écrit en python qui surveille les journaux du serveur d'accès pour empêcher les attaques par force brute sur un serveur virtuel. Le programme fonctionne en interdisant les adresses IP qui dépassent un certain nombre de tentatives de connexion infructueuses.

Ces applications Linux - DenyHosts et Fail2ban - peuvent être utilisées séparément ou ensemble. Dans mon cas, je les fais travailler tous les deux ensemble.

L'installation et la configuration de chacun dépendent de la distribution que vous utilisez. Cet article est orienté vers CentOS 6.3, bien que les différences entre les autres distributions ne soient pas très marquées.

Eh bien, mettez-vous au travail.

Installation et configuration de Fail2Ban

Cette application génère des règles dynamiques dans le pare-feu Linux lui-même et est responsable de la création de règles dynamiques dans IpTables.

Installations préconisées

Pour l'installation a:

miam installer fail2ban 

Si le package n'apparaît pas, nous devons ajouter le référentiel nécessaire:

rpm -Uvh http://mirror.metrocast.net/fedora/epel/6/i386/epel-release-6-7.noarch.rpm

Avec cela, vous devriez commencer à installer l'application avec ses dépendances.

Maintenant, nous devons configurer Fail2Ban pour analyser les journaux que nous voulons et bloquer
IP, envoi de notifications par e-mail. Pour ce faire, nous devons modifier le fichier jail.conf que nous trouvons dans / etc / fail2ban

cd / etc / fail2ban
nanojail.conf

Les opérations suivantes doivent être effectuées dans ce fichier:

  • Modifier est la valeur bantime, cette valeur détermine le temps en secondes pendant lequel l'adresse IP de l'attaquant sera bloquée, par défaut la valeur vient dans 600 secondes.
  • Trouvez la valeur maxretry qui sera le nombre de fois qu'une adresse IP peut avoir une authentification échouée avant d'être bloquée.
  • Ajoutez nos adresses IP dans le paramètre ignoreip. Ici, l'application ignorera nos adresses IP authentifiées dans ce paramètre.
[DÉFAUT]
# "ignoreip" peut être une adresse IP, un masque CIDR ou un hôte DNS. Fail2ban ne
# bannir un hôte qui correspond à une adresse de cette liste. Plusieurs adresses peuvent être
# défini à l'aide d'un séparateur d'espace.
ignorerip = 127.0.0.1

# "bantime" est le nombre de secondes pendant lesquelles un hôte est banni.
bantime = 600

# Un hôte est banni s'il a généré "maxretry" lors du dernier "findtime"
# secondes.
temps de recherche = 600

# "maxretry" est le nombre d'échecs avant qu'un hôte ne soit banni.
essai max = 3

Voici un exemple de son apparence:

ignoreip = 127.0.0.1 190.25.242.75 192.168.1.0/24
bantime = 800
essai max = 2

Configurer Fail2Ban et SSH

Pour rechercher les tentatives de connexion SSH ayant échoué, nous modifions le fichier jusqu'à ce qu'il ressemble à ce qui suit:

[ssh-iptables] 
enabled = vrai
filtre = sshd
action = iptables [nom = SSH, port = 22, protocole = tcp] sendmail-whois [nom = SSH, dest=FredySnake@outlook.com, sender = fail2ban @ localhost] logpath = / var / log / secure # Ceci est le journal qui analysera fail2ban
maxretry = 3 # toute adresse IP qui a trois tentatives infructueuses ou plus sera bloquée.
bantime = 86400 # temps d'interdiction de 24 heures exprimé en secondes

N'oubliez pas que si vous modifiez le port sur lequel SSH écoute, vous devez également modifier le paramètre de port.

Cette application fonctionne non seulement pour les accès non autorisés en SSH, mais aussi pour apache, pour lire les journaux Asterisk, etc.

Installation et configuration de DenyHOSTS

Son fonctionnement est basé sur l'utilisation du fichier /etc/hosts.deny, c'est-à-dire sur le blocage des adresses des hôtes «attaquants», créant une liste d'hôtes refusés.

L'installation à partir des référentiels peut être obtenue avec la commande suivante:

miam installer denyhosts 

Le fichier de configuration se trouve dans /etc/denyhosts.conf

Avant de continuer, car en tant qu'humains, nous pouvons faire des erreurs et faire la "couche 8" typique en accédant à l'un des services et en nous bloquant. Pour éviter cela, nous éditons le fichier /etc/hosts.allow et ajoutons les adresses IP des machines à partir desquelles nous ne voulons pas être restreints en raison d'un échec d'accès.

Modifier le fichier denyhosts.conf

Afin de ne pas aller aussi loin dans les paramètres, dans ce fichier, nous n'allons éditer et décommenter que certains paramètres. Ceux-ci sont:

SYNC_SERVER = http://xmlrpc.denyhosts.net:9911
SYNC_INTERVAL = 1h
SYNC_UPLOAD = oui
SYNC_DOWNLOAD = oui
SYNC_DOWNLOAD_THRESHOLD = 3
SYNC_DOWNLOAD_RESILIENCY = 5h

Ainsi, nous laisserons une configuration pratiquement par défaut, mais avec une grande sécurité contre les attaques SSH.

nano /etc/hosts.allow

exemple:

sshd : 127.0.0.1 
sshd : 192.168.1.10
sshd: 192.168.0. *

Après cela, nous redémarrons le service:

/etc/init.d/denyhosts redémarrer

Avec cela, nous donnons la permission à une adresse IP, une plage IP et bien sûr à notre interface de bouclage. Quelque chose que je n'ai pas essayé - donc je ne sais pas si cela fonctionne - est d'ajouter des DNS à ce fichier; c'est-à-dire avec des services comme DynDNS. Si je le fais, je vous dirai comment cela s'est passé.

Avec certaines options et ajustements, nous nous assurerons également qu'après la période de temps que nous indiquons dans la configuration DenyHOSTS, les adresses stockées sont nettoyées et mises à jour avec d'autres listes créées par d'autres - si nous l'indiquons - en donnant la permission d'accéder le serveur de DenyHOSTS.

Pour purger les adresses stockées de temps en temps, comme configuré, le démon doit être exécuté avec le paramètre –purge:

/etc/init.d/denyhosts start --purge

En plus de cela, nous devons l'inclure au démarrage du système:

chkconfig refuse les hôtes sur

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.