Python檢測(cè)和防御DOS攻擊的最簡(jiǎn)單方法


一、在CentOS上安裝Python3
1.下載Python3.10源代碼文件
下載地址:https://www.python.org/downloads/source/
2.運(yùn)行以下命令行完成安裝
mkdir /usr/local/python3 tar -zxvf Python-3.10.0.tgz cd Python-3.10.0 ./configure --prefix=/usr/local/python3 make make install

3.確認(rèn)是否安裝成功
/usr/local/python3/bin/python3
import time
print(time.strftime("%Y-%m-%d %H:%M:%S"))
import random
print(random.randint(100,200))
exit()

4.設(shè)置環(huán)境變量


vi ~/.bashrc #添加該語(yǔ)句 alias python3=/usr/local/python3/bin/python3 alias pip3=/usr/local/python3/bin/pip3
alias python3=/usr/local/python3/bin/python3 alias pip3=/usr/local/pyuthon3/bin/pip3 source ~/.bashrc
5.配置pip國(guó)內(nèi)鏡像源

[global] index-url=https://pypi.douban.com/simple trusted-host = pypi.douban.com
二、理解各個(gè)命令的含義
1.uptime

2.netstat


3.ss

4.firewall-cmd

打開(kāi)防火墻80端口:firewall-cmd --add-port=80/tcp
5.sysctl

三、利用Python實(shí)現(xiàn)DDOS入侵檢測(cè)
1.采集TCP連接數(shù)據(jù)
# 4、采集連接數(shù)量最多的IP地址
def get_most_ip():
result = os.popen('netstat -ant | grep :80').read()
line_list = result.split('\n')
ip_list = []
for line in line_list:
try:
temp_list = line.split()
ip = temp_list[4].split(':')[0]
ip_list.append(ip)
except:
pass
dict = Counter(ip_list)
most_ip = dict.most_common(1)
return most_ip[0][0]
# 5、調(diào)用firewall-cmd防火墻命令封鎖攻擊源IP地址
def firewall_ip(ip):
result = os.popen(f"firewall-cmd --add-rich-rule='rule family=ipv4 source address={ip} port port=80 protocol=tcp reject'").read()
if 'success' in result:
print(f"已經(jīng)成功將可疑攻擊源 {ip} 進(jìn)行封鎖,流量將不再進(jìn)入.")
else:
print(f"對(duì)可疑攻擊源 {ip} 進(jìn)行封鎖時(shí)失敗,轉(zhuǎn)為人工處理.")
#解除封鎖:firewall-cmd --add-rich-rule='rule family=ipv4 source address=192.168.80.21 port port=80 protocol=tcp reject'
到此這篇關(guān)于Python檢測(cè)和防御DOS攻擊的文章就介紹到這了,更多相關(guān)PythonDOS攻擊內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于Python數(shù)據(jù)結(jié)構(gòu)之遞歸與回溯搜索
今天小編就為大家分享一篇基于Python數(shù)據(jù)結(jié)構(gòu)之遞歸與回溯搜索,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02
Python中Arrow庫(kù)的時(shí)間操作技法總結(jié)
Arrow是一個(gè)功能強(qiáng)大、易用且具有優(yōu)雅設(shè)計(jì)的Python日期時(shí)間庫(kù),它建立在Python的datetime模塊之上,旨在彌補(bǔ)datetime模塊在處理日期時(shí)間時(shí)的一些不足之處,下面我們就來(lái)了解一下Arrow庫(kù)的常見(jiàn)時(shí)間操作吧2023-12-12
python 常用日期處理-- datetime 模塊的使用
這篇文章主要介紹了python 如何對(duì)日期進(jìn)行處理,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2020-09-09
Python PyTorch 如何獲取 MNIST 數(shù)據(jù)
這篇文章主要介紹了Python PyTorch 如何獲取 MNIST 數(shù)據(jù),通過(guò)示例代碼介紹了PyTorch 保存 MNIST 數(shù)據(jù),PyTorch 顯示 MNIST 數(shù)據(jù)的操作方法,感興趣的朋友跟隨小編一起看看吧2024-04-04
微軟開(kāi)源最強(qiáng)Python自動(dòng)化神器Playwright(不用寫(xiě)一行代碼)
這篇文章主要介紹了微軟開(kāi)源最強(qiáng)Python自動(dòng)化神器Playwright(不用寫(xiě)一行代碼),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
Pandas根據(jù)條件實(shí)現(xiàn)替換列中的值
在使用Pandas的Python中,DataFrame列中的值可以通過(guò)使用各種內(nèi)置函數(shù)根據(jù)條件進(jìn)行替換,本文主要來(lái)和大家討論在Pandas中用條件替換數(shù)據(jù)集列中的值的各種方法,希望對(duì)大家有所幫助2024-01-01
在Linux上安裝Python的Flask框架和創(chuàng)建第一個(gè)app實(shí)例的教程
這篇文章主要介紹了在Linux上安裝Python的Flask框架和創(chuàng)建第一個(gè)app實(shí)例,包括創(chuàng)建一個(gè)HTML模版和利用Jinja2模板引擎來(lái)做渲染的步驟,需要的朋友可以參考下2015-03-03

