Maison  >  Article  >  Opération et maintenance  >  Protégez les interfaces Web contre les attaques de Botnet à l'aide de serveurs Linux.

Protégez les interfaces Web contre les attaques de Botnet à l'aide de serveurs Linux.

PHPz
PHPzoriginal
2023-09-08 19:12:301018parcourir

Protégez les interfaces Web contre les attaques de Botnet à laide de serveurs Linux.

Protéger les interfaces Web contre les attaques de botnets à l'aide du serveur Linux

Dans le développement et la gestion Web, la protection des interfaces Web contre les attaques de botnets (botnet) est une tâche de sécurité importante. Les attaques de botnet font référence à des pirates utilisant un groupe d'ordinateurs ou d'appareils infectés pour lancer des attaques et envoyer des requêtes malveillantes à grande échelle aux serveurs Web afin de saturer les ressources et la bande passante du serveur, provoquant une attaque par déni de service (DoS) ou un déni de service distribué ( DoS).

Dans cet article, nous présenterons quelques méthodes d'utilisation du serveur Linux pour protéger les interfaces Web contre les attaques de Botnet et fournirons des exemples de code pertinents.

  1. Activez le pare-feu

Tout d'abord, nous devons nous assurer que le pare-feu du serveur Linux est activé et configuré correctement. Les pare-feu peuvent filtrer et bloquer les requêtes provenant d'adresses IP spécifiques ou de plages d'adresses IP. Voici un exemple d'utilisation de la commande iptables pour activer le pare-feu et autoriser uniquement les requêtes provenant d'adresses IP spécifiques :

sudo iptables -A INPUT -p tcp -s 特定IP地址 -j ACCEPT
sudo iptables -A INPUT -p tcp -j DROP

Veuillez remplacer "adresses IP spécifiques" par les adresses IP que vous autorisez.

  1. Utilisez Fail2Ban

Fail2Ban est un outil populaire pour empêcher les connexions malveillantes et les attaques par force brute. Il surveille les fichiers journaux du serveur et bloque automatiquement les demandes provenant de cette adresse IP après avoir détecté plusieurs tentatives de connexion infructueuses. Voici un exemple de comment installer et configurer Fail2Ban sur un serveur Linux :

sudo apt-get install fail2ban

sudo vi /etc/fail2ban/jail.local

Ajoutez le contenu suivant dans le fichier jail.local :

[http-get-dos]
enabled = true
port = http,https
filter = http-get-dos
logpath = /var/log/apache2/access.log
maxretry = 100
findtime = 60
bantime = 600

Enregistrez le fichier et quittez, puis redémarrez le service Fail2Ban :

sudo service fail2ban restart
  1. Configurer Serveur Web

Pour protéger davantage l'interface Web contre les attaques de Botnet, nous pouvons configurer certaines mesures de sécurité supplémentaires sur le serveur Web. Voici un exemple de configuration d'un proxy inverse et de limitation de fréquence à l'aide du serveur Apache :

sudo a2enmod proxy
sudo a2enmod proxy_http

sudo vi /etc/apache2/conf-available/security.conf

Ajoutez le contenu suivant dans le fichier security.conf :

<IfModule mod_reqtimeout.c>
  RequestReadTimeout header=20-40,MinRate=500
</IfModule>

<Proxy *>
  Order deny,allow
  Deny from all
  Allow from 特定IP地址
</Proxy>

ProxyPass / http://localhost:8000/
ProxyPassReverse / http://localhost:8000/

Enregistrez le fichier et quittez, puis rechargez la configuration du serveur Apache :

sudo service apache2 reload

S'il vous plaît changez " Remplacez "Adresse IP spécifique" par vos adresses IP autorisées.

  1. Utilisez les CAPTCHA

Pour empêcher les robots malveillants issus d'attaques de botnet d'automatiser les requêtes, nous pouvons renforcer davantage la sécurité en mettant en œuvre des CAPTCHA. Voici un exemple d'implémentation de la protection captcha à l'aide du framework Python Flask :

from flask import Flask, request, render_template
from flask_wtf import FlaskForm, RecaptchaField
from wtforms import StringField, SubmitField
from wtforms.validators import DataRequired

app = Flask(__name__)
app.config['SECRET_KEY'] = 'your_secret_key'
app.config['RECAPTCHA_PUBLIC_KEY'] = 'your_recaptcha_public_key'
app.config['RECAPTCHA_PRIVATE_KEY'] = 'your_recaptcha_private_key'

class MyForm(FlaskForm):
    name = StringField('Name', validators=[DataRequired()])
    recaptcha = RecaptchaField()
    submit = SubmitField('Submit')

@app.route('/', methods=['GET', 'POST'])
def index():
    form = MyForm()
    if form.validate_on_submit():
        return 'Success!'
    return render_template('index.html', form=form)

if __name__ == '__main__':
    app.run()

Veuillez vous assurer d'avoir configuré les bonnes clés secrètes et captcha dans votre application Flask.

Avec les mesures ci-dessus, nous pouvons protéger efficacement l'interface Web contre les attaques de Botnet. Cependant, n'oubliez pas que la sécurité est un processus continu et que nous devons constamment mettre à jour et améliorer nos mesures de protection pour protéger la sécurité des données de nos serveurs et de nos utilisateurs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn