Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Lindungi antara muka web daripada serangan Botnet menggunakan pelayan Linux.

Lindungi antara muka web daripada serangan Botnet menggunakan pelayan Linux.

PHPz
PHPzasal
2023-09-08 19:12:301026semak imbas

Lindungi antara muka web daripada serangan Botnet menggunakan pelayan Linux.

Lindungi Antara Muka Web daripada Serangan Botnet Menggunakan Pelayan Linux

Dalam pembangunan dan pengurusan web, melindungi antara muka web daripada serangan Botnet (botnet) ialah tugas keselamatan yang penting. Serangan botnet merujuk kepada penggodam yang menggunakan sekumpulan komputer atau peranti yang dijangkiti untuk melancarkan serangan dan membuat permintaan jahat berskala besar kepada pelayan web untuk mengatasi sumber dan lebar jalur pelayan, menyebabkan serangan penafian perkhidmatan (DoS) atau penolakan perkhidmatan yang diedarkan ( DoS).

Dalam artikel ini, kami akan memperkenalkan beberapa kaedah menggunakan pelayan Linux untuk melindungi antara muka web daripada serangan Botnet dan memberikan contoh kod yang berkaitan.

  1. Hidupkan firewall

Pertama, kita perlu memastikan bahawa firewall pada pelayan Linux dihidupkan dan dikonfigurasikan dengan betul. Firewall boleh menapis dan menyekat permintaan daripada alamat IP tertentu atau julat alamat IP. Berikut ialah contoh menggunakan arahan iptables untuk menghidupkan tembok api dan membenarkan permintaan hanya daripada alamat IP tertentu:

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

Sila gantikan "alamat IP khusus" dengan alamat IP yang anda benarkan.

  1. Gunakan Fail2Ban

Fail2Ban ialah alat popular untuk menghalang log masuk berniat jahat dan serangan kekerasan. Ia memantau fail log pelayan dan secara automatik menyekat permintaan daripada alamat IP tersebut selepas mengesan berbilang percubaan log masuk yang gagal. Berikut ialah contoh cara memasang dan mengkonfigurasi Fail2Ban pada pelayan Linux:

sudo apt-get install fail2ban

sudo vi /etc/fail2ban/jail.local

Tambah kandungan berikut dalam fail 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

Simpan fail dan keluar, kemudian mulakan semula perkhidmatan Fail2Ban:

sudo service fail2ban restart
  1. Konfigurasikan Pelayan Web

Untuk melindungi antara muka web daripada serangan Botnet, kami boleh mengkonfigurasi beberapa langkah keselamatan tambahan pada pelayan web. Berikut ialah contoh mengkonfigurasi proksi terbalik dan mengehadkan kekerapan menggunakan pelayan Apache:

sudo a2enmod proxy
sudo a2enmod proxy_http

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

Tambah kandungan berikut dalam fail 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/

Simpan fail dan keluar, kemudian muat semula konfigurasi pelayan Apache:

sudo service apache2 reload

Sila tukar " Gantikan "Alamat IP Khusus" dengan alamat IP anda yang dibenarkan.

  1. Gunakan CAPTCHA

Untuk menghalang bot berniat jahat daripada serangan botnet daripada mengautomasikan permintaan, kami boleh mengukuhkan lagi keselamatan dengan melaksanakan CAPTCHA. Berikut ialah contoh pelaksanaan perlindungan captcha menggunakan rangka kerja Flask Python:

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()

Sila pastikan anda telah menyediakan kunci rahsia dan captcha yang betul dalam aplikasi Flask anda.

Dengan langkah di atas, kami boleh melindungi antara muka web dengan berkesan daripada serangan Botnet. Walau bagaimanapun, sila ingat bahawa keselamatan adalah proses yang berterusan dan kami perlu sentiasa mengemas kini dan meningkatkan langkah perlindungan kami untuk melindungi keselamatan data pelayan dan pengguna kami.

Atas ialah kandungan terperinci Lindungi antara muka web daripada serangan Botnet menggunakan pelayan Linux.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn