Linux サーバーを使用して Web インターフェイスをボットネット攻撃から保護する
Web 開発および管理において、Web インターフェイスをボットネット (ボットネット) 攻撃から保護することは重要なセキュリティ タスクです。ボットネット攻撃とは、ハッカーが感染したコンピューターまたはデバイスのグループを使用して攻撃を開始し、Web サーバーに大規模な悪意のあるリクエストを送信してサーバーのリソースと帯域幅を圧倒し、サービス拒否 (DoS) 攻撃または分散型サービス拒否 ( DoS)、DDoS) 攻撃。
この記事では、Linux サーバーを使用して Web インターフェイスをボットネット攻撃から保護するいくつかの方法を紹介し、関連するコード例を示します。
まず、Linux サーバーのファイアウォールがオンになっていて、正しく構成されていることを確認する必要があります。ファイアウォールは、特定の IP アドレスまたは IP アドレスの範囲からのリクエストをフィルタリングしてブロックできます。以下は、iptables コマンドを使用してファイアウォールをオンにし、特定の IP アドレスからのリクエストのみを許可する例です。
sudo iptables -A INPUT -p tcp -s 特定IP地址 -j ACCEPT sudo iptables -A INPUT -p tcp -j DROP
「特定の IP アドレス」を許可する IP アドレスに置き換えてください。
Fail2Ban は、悪意のあるログインやブルート フォース攻撃を防ぐために使用される一般的なツールです。サーバーのログ ファイルを監視し、複数のログイン試行の失敗を検出すると、その IP アドレスからのリクエストを自動的にブロックします。 Linux サーバーに Fail2Ban をインストールして構成する方法の例を次に示します。
sudo apt-get install fail2ban sudo vi /etc/fail2ban/jail.local
次の内容を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
ファイルを保存して終了し、再起動します。 Fail2Ban サービス:
sudo service fail2ban restart
Web インターフェイスをボットネット攻撃からさらに保護するために、Web サーバー上で追加のセキュリティ対策を構成できます。以下は、Apache サーバーを使用してリバース プロキシを構成し、頻度を制限する例です。
sudo a2enmod proxy sudo a2enmod proxy_http sudo vi /etc/apache2/conf-available/security.conf
次の内容を 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/
ファイルを保存して終了します。 Apache サーバーの設定をリロードします:
sudo service apache2 reload
「特定の IP アドレス」を許可された IP アドレスに置き換えてください。
悪意のあるロボットによるボットネット攻撃によるリクエストの自動化を防ぐために、検証コードを実装することでセキュリティをさらに強化できます。以下は、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()
Flask アプリケーションに正しい秘密キーとキャプチャ キーが設定されていることを確認してください。
上記の対策により、Web インターフェイスをボットネット攻撃から効果的に保護できます。ただし、セキュリティは継続的なプロセスであり、サーバーとユーザーのデータ セキュリティを保護するために保護対策を継続的に更新および改善する必要があることを覚えておいてください。
以上がLinux サーバーを使用して Web インターフェイスをボットネット攻撃から保護します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。