CentOS下防御或減輕DDoS攻擊方法(轉)

查看攻擊IP

首先使用以下代碼,找出攻擊者IP

netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

將會得出類似如下的結果:

復制代碼
1 114.226.9.132
1 174.129.237.157
1 58.60.118.142
1 Address
1 servers)
2 118.26.131.78
3 123.125.1.202
3 220.248.43.119
4 117.36.231.253
4 119.162.46.124
6 219.140.232.128
8 220.181.61.31
2311 67.215.242.196
復制代碼

前面的數字表示IP連接的次數,可見最后一個IP 67.215.242.196連接服務器2311次,每個IP幾個、十幾個或幾十個連接數都還算比較正常,如果像上面成百上千肯定就不正常了。

解決方法:使用DDoS deflate+iptables

DDoS deflate是一款免費的用來防御和減輕DDoS攻擊的腳本。它通過netstat監測跟蹤創建大量網絡連接的IP地址,在檢測到某個結點超過預設的限制時,該程序會通過APF或IPTABLES禁止或阻擋這些IP.

安裝DDoS deflate

wget http://www.inetbase.com/scripts/ddos/install.sh #下載DDoS deflate
chmod 0700 install.sh #添加權限
./install.sh #執行

配置DDoS deflate

下面是DDoS deflate的默認配置位于/usr/local/ddos/ddos.conf?,默認如下:

復制代碼
##### Paths of the script and other files
PROGDIR="/usr/local/ddos"
PROG="/usr/local/ddos/ddos.sh"
IGNORE_IP_LIST="/usr/local/ddos/ignore.ip.list" //IP地址白名單
CRON="/etc/cron.d/ddos.cron" //定時執行程序
APF="/etc/apf/apf"
IPT="/sbin/iptables"##### frequency in minutes for running the script
##### Caution: Every time this setting is changed, run the script with --cron
##### option so that the new frequency takes effect
FREQ=1 //檢查時間間隔,默認1分鐘##### How many connections define a bad IP? Indicate that below.
NO_OF_CONNECTIONS=150 //最大連接數,超過這個數IP就會被屏蔽,一般默認即可##### APF_BAN=1 (Make sure your APF version is atleast 0.96)
##### APF_BAN=0 (Uses iptables for banning ips instead of APF)
APF_BAN=1 //使用APF還是iptables。推薦使用iptables,將APF_BAN的值改為0即可。##### KILL=0 (Bad IPs are'nt banned, good for interactive execution of script)
##### KILL=1 (Recommended setting)
KILL=1 //是否屏蔽IP,默認即可##### An email is sent to the following address when an IP is banned.
##### Blank would suppress sending of mails
EMAIL_TO="root" //當IP被屏蔽時給指定郵箱發送郵件,推薦使用,換成自己的郵箱即可##### Number of seconds the banned ip should remain in blacklist.
BAN_PERIOD=600 //禁用IP時間,默認600秒,可根據情況調整
復制代碼

用戶可根據給默認配置文件加上的注釋提示內容,修改配置文件。

查看/usr/local/ddos/ddos.sh文件的第117行

netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -nr > $BAD_IP_LIST

修改為以下代碼即可!

netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sed -n ‘/[0-9]/p’ | sort | uniq -c | sort -nr > $BAD_IP_LIST

解決方法:iptables防火墻

iptables是Linux上常用的防火墻軟件,下面vps偵探給大家說一下iptables的安裝、清除iptables規則、iptables只開放指定端口、iptables屏蔽指定ip、ip段及解封、刪除已添加的iptables規則等iptables的基本應用。

安裝iptables防火墻

如果沒有安裝iptables需要先安裝,CentOS執行:

yum install iptables

清除已有iptables規則

iptables -F
iptables -X
iptables -Z

開放指定的端口

復制代碼
#允許本地回環接口(即運行本機訪問本機)
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
# 允許已建立的或相關連的通行
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#允許所有本機向外的訪問
iptables -A OUTPUT -j ACCEPT
# 允許訪問22端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#允許訪問80端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#允許FTP服務的21和20端口
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
#如果有其他端口的話,規則也類似,稍微修改上述語句就行
#禁止其他未允許的規則訪問
iptables -A INPUT -j REJECT (注意:如果22端口未加入允許規則,SSH鏈接會直接斷開。)
iptables -A FORWARD -j REJECT
復制代碼

屏蔽IP

復制代碼
#如果只是想屏蔽IP的話“3、開放指定的端口”可以直接跳過。
#屏蔽單個IP的命令是
iptables -I INPUT -s 123.45.6.7 -j DROP
#封整個段即從123.0.0.1到123.255.255.254的命令
iptables -I INPUT -s 123.0.0.0/8 -j DROP
#封IP段即從123.45.0.1到123.45.255.254的命令
iptables -I INPUT -s 124.45.0.0/16 -j DROP
#封IP段即從123.45.6.1到123.45.6.254的命令是
iptables -I INPUT -s 123.45.6.0/24 -j DROP
復制代碼

查看已添加的iptables規則

iptables -L -n
v:顯示詳細信息,包括每條規則的匹配包數量和匹配字節數
x:在 v 的基礎上,禁止自動單位換算(K、M)
n:只顯示IP地址和端口號,不將ip解析為域名

刪除已添加的iptables規則

將所有iptables以序號標記顯示,執行:
iptables -L -n --line-numbers
比如要刪除INPUT里序號為8的規則,執行:
iptables -D INPUT 8

iptables的開機啟動及規則保存

CentOS上可能會存在安裝好iptables后,iptables并不開機自啟動,可以執行一下:

chkconfig --level 345 iptables on

將其加入開機啟動。

CentOS上可以執行:service iptables save保存規則。

另外更需要注意的是Debian/Ubuntu上iptables是不會保存規則的。

需要按如下步驟進行,讓網卡關閉是保存iptables規則,啟動時加載iptables規則:

創建/etc/network/if-post-down.d/iptables文件,添加如下內容:

#!/bin/bash
iptables-save > /etc/iptables.rules

執行:chmod +x /etc/network/if-post-down.d/iptables添加執行權限。

創建/etc/network/if-pre-up.d/iptables文件,添加如下內容:

#!/bin/bash
iptables-restore < /etc/iptables.rules

執行:chmod +x /etc/network/if-pre-up.d/iptables添加執行權限。

轉載于:https://www.cnblogs.com/firstcsharp/p/10241085.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/249859.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/249859.shtml
英文地址,請注明出處:http://en.pswp.cn/news/249859.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

iTerm2 快捷鍵

Ctrl a&#xff1a;將光標移動到命令行首 Ctrl e&#xff1a;將光標移動到命令行尾 Ctrl w&#xff1a;刪除光標前的一個單詞 Ctrl u&#xff1a;刪除所有內容 Ctrl y&#xff1a;粘貼上次刪除的內容 Ctrl r&#xff1a;搜索歷史命令刪除光標之前的單詞&#xff1a;ctrl …

vscode - 添加背景圖片

首先&#xff0c;CtrlShiftP安裝backround &#xff0c; 而后重啟vscode會有默認的背景圖片 修改背景圖&#xff0c;可自定義三張 具體請看gif圖 最開始時&#xff0c;發現png根本不是全透明&#xff0c;用ps處理了一下&#xff08;下列所有操作均字母組合&#xff09; 1.1 Ctr…

架構設計雜談004——架構師

什么是架構設師 架構師是&#xff1a;負責系統架構設計的人、團隊或組織 架構師主要干什么 ●架構師是技術領導&#xff0c;領導并負責架構設計&#xff0c;負責做決策 ●架構師可以是團隊或組織&#xff0c;這個時候通常會有首席架構師 ●架構師必須掌握足夠的技術知識 ●架構…

學習JS基本數據類型與對象的valueOf方法

https://blog.csdn.net/licheng11403080324/article/details/60128090 https://yq.aliyun.com/articles/399499 轉載于:https://www.cnblogs.com/smzd/p/9548530.html

security和oauth2.0的整合

security和oauth2.0的整合 之前已經介紹過security的相關的介紹,現在所需要做的就是security和oauth2.0的整合,在原有的基礎上我們加上一些相關的代碼;代碼實現如下: pom.xml: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http:…

關于Vue.use()詳解

問題 相信很多人在用Vue使用別人的組件時&#xff0c;會用到 Vue.use() 。例如&#xff1a;Vue.use(VueRouter)、Vue.use(MintUI)。但是用 axios時&#xff0c;就不需要用 Vue.use(axios)&#xff0c;就能直接使用。那這是為什么吶&#xff1f; 答案 因為 axios 沒有 install。…

百度TTS的來由

#### https://home-assistant.io/components/tts.baidu/#### https://github.com/charleyzhu/HomeAssistant_Components#### 當前使用自定義組件 https://bbs.hassbian.com/thread-1152-1-1.html#### 2018-3-15添加百度云語音識別 - platform: baidu language: zh app_i…

eslint 禁用命令

/* eslint-disable */ ESLint 在校驗的時候就會跳過后面的代碼還可以在注釋后加入詳細規則&#xff0c;這樣就能避開指定的校驗規則了/* eslint-disable no-new */常用&#xff1a; rules: {"comma-dangle": ["error", "never"], //是否允許對象…

分布式工具的一次小升級?

前言 之前在做 秒殺架構實踐 時有提到對 distributed-redis-tool 的一次小升級&#xff0c;但是沒有細說。 其實主要原因是&#xff1a; 秒殺時我做壓測&#xff1a;由于集成了這個限流組件&#xff0c;并發又比較大&#xff0c;所以導致連接、斷開 Redis 非常頻繁。 最終導致獲…

淺談vue $mount()

Vue 的$mount()為手動掛載&#xff0c;在項目中可用于延時掛載&#xff08;例如在掛載之前要進行一些其他操作、判斷等&#xff09;&#xff0c;之后要手動掛載上。new Vue時&#xff0c;el和$mount并沒有本質上的不同。 具體見代碼&#xff1a; 順便附上vue渲染機制流程圖&a…

小三角

{border-color: transparent;border-right-color: #e5e5e5;border-width: 7px;margin-top: -7px;right: 100%;top: 20px;border: solid transparent;content: " ";height: 0;width: 0;position: absolute;pointer-events: none; }轉載于:https://www.cnblogs.com/smz…

Laravel日志查看器 -- log-viewer擴展

1.修改laravel配置文件. config\app.php log>daily 2.在項目目錄中composer命令安裝擴展&#xff1a;composer require arcanedev/log-viewer 3.安裝成功后&#xff0c;需要在config\app.php 的providers陣列中注冊服務 Arcanedev\LogViewer\LogViewerServiceProvider::clas…

論一個程序員的自我修養-從一張圖片說起

故事起源 本來今天想寫.NET Core實戰之CMS系統第十五篇文章的。哈&#xff0c;奈何今天在新生命人脈群里面看到石頭哥分享的一張圖片&#xff0c;然后大家就議論了起來&#xff0c;不過我看的很懵逼&#xff0c;這圖什么意思啊&#xff1f;當一個朋友講述了這個圖片背后的故事的…

vue實例屬性之el,template,render

一、el&#xff0c;template&#xff0c;render屬性優先性 當Vue選項對象中有render渲染函數時&#xff0c;Vue構造函數將直接使用渲染函數渲染DOM樹&#xff0c;當選項對象中沒有render渲染函數時&#xff0c;Vue構造函數首先通過將template模板編譯生成渲染函數&#xff0c;然…

mysql8的坑

plugin caching_sha2_password could not be loaded 我在mac上用Sequel Pro連數據庫的時候&#xff0c;會報出以上錯誤&#xff0c;這是應為8.0.11把身份認證插件改成了 caching_sha2_password &#xff0c;而客戶端沒法使用此插件。 這是我們只要用命令行進去mysql&#xff0c…

c/c++ 繼承與多態 文本查詢的小例子(非智能指針版本)

問題&#xff1a;在上一篇繼承與多態 文本查詢的小例子&#xff08;智能指針版本&#xff09;在Query類里使用的是智能指針&#xff0c;只把智能指針換成普通的指針&#xff0c;并不添加拷貝構造方法&#xff0c;會發生什么呢&#xff1f; 執行時&#xff0c;代碼崩掉。 分析下…

day19_生成器

20180730 初次上傳 20180731 更新&#xff0c;4、列表生成式&#xff0c;以及部分注釋 #!/usr/bin/env python # -*- coding:utf-8 -*-# ********************day19_生成器 ******************* # ********************day19_生成器 ******************* # *******************…

HTML渲染過程詳解

由于本人對http協議以及dns對url的解析問題并不了解&#xff0c;所以這里之探討url請求加載到瀏覽器端時&#xff0c;瀏覽器對html的解析到呈現過程&#xff0c;后來經過幾位道友分享&#xff0c;整理了一下url解析的過程&#xff0c;如下&#xff1a; 用戶輸入url地址&#x…

grid布局

CSS Grid 布局CSS 中最強大的布局系統。與 flexbox 的一維布局系統不同&#xff0c;CSS Grid 布局是一個二維布局系統&#xff0c;也就意味著它可以同時處理列和行。通過將 CSS 規則應用于 父元素 (成為 Grid Container 網格容器)和其 子元素&#xff08;成為 Grid Items 網格項…

vue之router-view組件的使用

開發的時候有時候會遇到一種情況&#xff0c;比如 &#xff1a;點擊這個鏈接跳轉到其他組件的情況&#xff0c;通常會跳轉到新的頁面&#xff0c;蛋是&#xff0c;我們不想跳轉到新頁面&#xff0c;只在當前頁面切換著顯示&#xff0c;那么就要涉及到路由的嵌套了&#xff0c;也…