ホームページ  >  記事  >  運用・保守  >  Linux サーバーを使用して Web インターフェイスをボットネット攻撃から保護します。

Linux サーバーを使用して Web インターフェイスをボットネット攻撃から保護します。

PHPz
PHPzオリジナル
2023-09-08 19:12:301026ブラウズ

Linux サーバーを使用して Web インターフェイスをボットネット攻撃から保護します。

Linux サーバーを使用して Web インターフェイスをボットネット攻撃から保護する

Web 開発および管理において、Web インターフェイスをボットネット (ボットネット) 攻撃から保護することは重要なセキュリティ タスクです。ボットネット攻撃とは、ハッカーが感染したコンピューターまたはデバイスのグループを使用して攻撃を開始し、Web サーバーに大規模な悪意のあるリクエストを送信してサーバーのリソースと帯域幅を圧倒し、サービス拒否 (DoS) 攻撃または分散型サービス拒否 ( DoS)、DDoS) 攻撃。

この記事では、Linux サーバーを使用して Web インターフェイスをボットネット攻撃から保護するいくつかの方法を紹介し、関連するコード例を示します。

  1. ファイアウォールをオンにする

まず、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 アドレスに置き換えてください。

  1. Fail2Ban の使用

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
  1. Web サーバーの構成

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 アドレスに置き換えてください。

  1. 検証コードを使用する

悪意のあるロボットによるボットネット攻撃によるリクエストの自動化を防ぐために、検証コードを実装することでセキュリティをさらに強化できます。以下は、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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。