Linux 서버를 사용하여 Botnet 공격으로부터 웹 인터페이스를 보호합니다.

PHPz
풀어 주다: 2023-09-08 19:12:30
원래의
1012명이 탐색했습니다.

Linux 서버를 사용하여 Botnet 공격으로부터 웹 인터페이스를 보호합니다.

Linux 서버를 사용하여 봇넷 공격으로부터 웹 인터페이스 보호

웹 개발 및 관리에서 봇넷(botnet) 공격으로부터 웹 인터페이스를 보호하는 것은 중요한 보안 작업입니다. 봇넷 공격은 해커가 감염된 컴퓨터나 기기 집단을 이용해 공격을 감행하고, 웹 서버에 대규모 악의적인 요청을 하여 서버의 자원과 대역폭을 압도해 서비스 거부(DoS) 공격이나 분산 서비스 거부를 일으키는 것을 말한다. DoS) 공격.

이 기사에서는 Linux 서버를 사용하여 Botnet 공격으로부터 웹 인터페이스를 보호하는 몇 가지 방법을 소개하고 관련 코드 예제를 제공합니다.

  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. 구성 웹 서버

봇넷 공격으로부터 웹 인터페이스를 더욱 보호하기 위해 웹 서버에 몇 가지 추가 보안 조치를 구성할 수 있습니다. 다음은 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
로그인 후 복사

Please " "특정 IP 주소"를 허용된 IP 주소로 바꾸세요.

  1. CAPTCHA 사용

악성 봇이 봇넷 공격을 통해 요청을 자동화하는 것을 방지하기 위해 CAPTCHA를 구현하여 보안을 더욱 강화할 수 있습니다. 다음은 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 애플리케이션에서 올바른 비밀 및 보안 문자 키를 설정했는지 확인하세요.

위의 조치를 통해 봇넷 공격으로부터 웹 인터페이스를 효과적으로 보호할 수 있습니다. 그러나 보안은 지속적인 프로세스이며 당사는 서버와 사용자의 데이터 보안을 보호하기 위해 보호 조치를 지속적으로 업데이트하고 개선해야 한다는 점을 기억하십시오.

위 내용은 Linux 서버를 사용하여 Botnet 공격으로부터 웹 인터페이스를 보호합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!