Python檢測和防御DOS攻擊的最簡單方法
更新時間:2022年11月11日 10:49:36 作者:qq_45616828
這篇文章主要介紹了Python檢測和防御DOS攻擊,首先講解在CentOS上安裝Python3,理解各個命令的含義,最后介紹了利用Python實現(xiàn)DDOS入侵檢測,需要的朋友可以參考下
一、在CentOS上安裝Python3
1.下載Python3.10源代碼文件
下載地址:https://www.python.org/downloads/source/
2.運行以下命令行完成安裝
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.確認是否安裝成功
/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 #添加該語句 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國內(nèi)鏡像源
[global] index-url=https://pypi.douban.com/simple trusted-host = pypi.douban.com
二、理解各個命令的含義
1.uptime
2.netstat
3.ss
4.firewall-cmd
打開防火墻80端口:firewall-cmd --add-port=80/tcp
5.sysctl
三、利用Python實現(xiàn)DDOS入侵檢測
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} 進行封鎖,流量將不再進入.") else: print(f"對可疑攻擊源 {ip} 進行封鎖時失敗,轉(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檢測和防御DOS攻擊的文章就介紹到這了,更多相關(guān)PythonDOS攻擊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python批量合成bilibili的m4s緩存文件為MP4格式 ver2.5
這篇文章主要介紹了python批量合成bilibili的m4s緩存文件為MP4格式 ver2.5的相關(guān)知識,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12Python+Redis從零打造分布式鎖實戰(zhàn)示例
Redis作為一款高性能的內(nèi)存鍵值數(shù)據(jù)庫,憑借其支持原子操作、高并發(fā)和數(shù)據(jù)持久化等特性,非常適合用來實現(xiàn)分布式鎖,本文將詳細探討如何使用Python結(jié)合Redis從簡單到復(fù)雜地實現(xiàn)分布式鎖,并提供相應(yīng)的示例代碼2024-01-01python實現(xiàn)websocket的客戶端壓力測試
這篇文章主要為大家詳細介紹了python實現(xiàn)websocket的客戶端壓力測試,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-06-06