अधिक से अधिक लोग वेबसाइट बनाने के लिए वीपीएस होस्ट का उपयोग कर रहे हैं, लेकिन वर्चुअल होस्ट या प्रबंधित सर्वर की तुलना में, व्यक्तिगत वीपीएस होस्ट मूल रूप से अप्रबंधित हैं, यानी तकनीकी मुद्दों के लिए होस्ट प्रदाता केवल वीपीएस होस्ट के सुचारू नेटवर्क के लिए जिम्मेदार है आपको इसका स्वयं ही पता लगाना होगा। अतीत में, अलीबाबा क्लाउड द्वारा उपयोग किए जाने वाले वीपीएस होस्ट पर अक्सर सीसी और डीडीओएस द्वारा हमला किया जाता था, मूल रूप से, हर बार जब उन पर हमला किया जाता था, तो वे अलीबाबा क्लाउड के "ब्लैक होल" में प्रवेश करते थे।
सीसी और डीडीओएस के लिए अलीबाबा क्लाउड के वीपीएस होस्ट आम तौर पर बहुत अधिक ट्रैफ़िक से बचाव नहीं कर सकते हैं, एक बार जब हमले का ट्रैफ़िक बढ़ जाता है, तो मार्ग मूल रूप से साफ़ हो जाएंगे, यहां तक कि एक या कई दिनों के लिए "ब्लैक होल" भी होगा . अब मैंने अपनी वेबसाइट को क्लासिक सीएन2 वीपीएस पोर्टर पर स्थानांतरित कर दिया है, मुझे पहले उत्साही मित्रों से अनुस्मारक मिले हैं कि पोर्टर केवल तीन बार सीसी और डीडीओएस का इलाज करता है, यह सीधे वीपीएस को ब्लॉक कर देगा।
इस हमले ने मुझे यह भी सिखाया कि अपनी वेबसाइट को क्लासिक वीपीएस होस्ट पर रखते समय मुझे अभी भी सतर्क रहने की जरूरत है। मैं शुरुआत में साइट नहीं खोल सका, और फिर मुझे कई दोस्तों के संदेशों से याद आया कि मैंने तुरंत जांच करने के लिए होस्टिंग प्रदाता के बैकएंड में लॉग इन किया, मैं देख सकता हूं कि वीपीएस का सीपीयू उपयोग अधिक हो गया है 100%, और बैंडविड्थ की गति सैकड़ों एमबी से अधिक हो गई, जाहिर तौर पर वीपीएस होस्टिंग प्रदाता द्वारा डिस्कनेक्ट कर दिया गया था।
यह लेख उन दोस्तों के साथ साझा करेगा जो वेबसाइट बनाने के लिए वीपीएस होस्ट का उपयोग करते हैं, छोटे सीसी और डीडीओएस हमलों से निपटने के लिए बुनियादी कदम, जो मूल रूप से फ़ायरवॉल के माध्यम से दुर्भावनापूर्ण आईपी को अवरुद्ध करने के आसपास घूमते हैं।
अधिक वेबसाइट सुरक्षा और वेबसाइट निर्माण में अनुभव के लिए, ये हैं:
- निःशुल्क वीपीएस नियंत्रण कक्ष का उपयोग करने के लिए पांच सुरक्षा युक्तियाँ - हैकर्स को फायदा न उठाने दें
- लिनक्स php-fpm अनुकूलन अनुभव-php-fpm प्रक्रिया बड़ी मेमोरी लेती है और मेमोरी समस्याएं जारी नहीं करती है
- DNS डोमेन नाम रिज़ॉल्यूशन DNSSEC को DNS अपहरण-Google क्लाउड DNS सेटिंग्स DNSSEC को रोकने में सक्षम बनाता है
PS: 6 मार्च, 2018 को अपडेट किया गया, यदि आप विशिष्ट IP को वेबसाइट तक पहुंचने से रोकना चाहते हैं, तो आप इस विधि का उपयोग कर सकते हैं: विशिष्ट क्षेत्रों और देशों के लिए वेबसाइट को ब्लॉक करना और IP एक्सेस सेटिंग्स को ब्लॉक करना - PHP कोड/Nginx / वर्डप्रेस सेटिंग्स।
पीएस: 19 मार्च, 2020 को अपडेट किया गया , यदि आपकी वेबसाइट हैक हो गई है, तो आप समस्या को हल करने के लिए निम्नलिखित तरीकों का उल्लेख कर सकते हैं: वेबसाइट ट्रोजन और सर्वर हैकिंग समस्या निवारण विश्लेषण - वीपीएस होस्ट और सर्वर उन्नत सुरक्षा विधियां।
1. सीसी और डीडीओएस से निपटते समय अपना होमवर्क पहले से करें
आप निम्नलिखित दो आदेशों के साथ वर्तमान हमले का तुरंत आकलन कर सकते हैं: एकल आईपी के लिए कनेक्शन की संख्या देखने के लिए निम्नलिखित आदेश दर्ज करें।
netstat -nat|grep -i '80'|wc -l
कनेक्टेड आईपी को कनेक्शन की संख्या के आधार पर क्रमबद्ध करें और टीसीपी कनेक्शन स्थिति देखें।
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
1.1 बारंबार बैकअप-स्थानीय और ऑफ-साइट बैकअप का संयोजन
CC और DDOS हमलों से निपटने के लिए वेबसाइट बैकअप एक अचूक तरीका है, हमले के बावजूद, जब तक डेटा नष्ट नहीं होता, हम नुकसान को कम कर सकते हैं। बार-बार अपडेट किए गए डेटा के लिए, दिन में एक बार बैकअप लेने की अनुशंसा की जाती है। कुछ होस्टिंग प्रदाता स्नैपशॉट बैकअप फ़ंक्शन भी प्रदान करेंगे, जैसे कि अलीबाबा क्लाउड, टेनसेंट क्लाउड और पहले पेश किए गए लिनोड स्नैपशॉट।
लोकल बैकअप के अलावा ऑफ-साइट बैकअप करना स्वाभाविक है। डेटा को सहेजने के लिए ऑफ-साइट बैकअप को क्लाउड स्टोरेज या क्लाउड डिस्क के साथ जोड़ा जा सकता है। पहले साझा किया गया लिनक्स वीपीएस स्वचालित रूप से Google ड्राइव और ड्रॉपबॉक्स को माउंट करके वीपीएस पर नेटवर्क डिस्क पर डेटा अपलोड कर सकता है, या DigitalOcean Spaces क्लाउड स्टोरेज या क्लाउड शूटिंग का उपयोग कर सकता है। , Qiniu क्लाउड स्टोरेज, Baidu BOS और अन्य पेशेवर क्लाउड स्टोरेज।
1.2 लिनक्स वीपीएस सिस्टम लोड की जांच करना सीखें
एक बार जब हम सीसी और डीडीओएस हमलों से पीड़ित हो जाते हैं, तो हम आमतौर पर वीपीएस होस्टिंग प्रदाता के नियंत्रण कक्ष के माध्यम से इसकी जांच कर सकते हैं। हम अपने निगरानी डेटा में स्पष्ट "असामान्यताएं" देख सकते हैं। नीचे दी गई तस्वीर वीपीएस होस्ट मॉनिटरिंग द्वारा प्रदर्शित 100% आईओ, सीपीयू, मेमोरी इत्यादि दिखाती है जब मुझ पर हमला किया गया था। (बड़ा करने के लिए क्लिक करें)
2.2 हमलावर आईपी को ब्लॉक करने के लिए Fail2ban का उपयोग करें
फेल2बैन पायथन भाषा में विकसित एक मॉनिटरिंग सॉफ्टवेयर है, यह एक निश्चित आईपी द्वारा दुर्भावनापूर्ण पहुंच को रोकने के लिए सिस्टम लॉग की लॉगिन जानकारी की निगरानी करके संबंधित लॉगिन आईपी को ब्लॉक करने के लिए iptables को कॉल करता है। Fail2ban संबंधित लॉग फ़ाइल, Debian/Ubuntu:/var/log/auth.log, CentOS/Redhat:/var/log/secure को पढ़ता है। फेल2बैन स्थापित करें:
apt-get install fail2ban
#CentOS内置源并未包含fail2ban,需要先安装epel源
yum -y install epel-release
#安装fial2ban
yum -y install fail2ban
इंस्टॉलेशन पूरा होने के बाद, मुख्य कॉन्फ़िगरेशन फ़ाइलें /etc/fail2ban निर्देशिका में होती हैं, जिसमें दो फ़ाइलें और दो निर्देशिकाएं होती हैं:
Fail2ban.conf: कॉन्फ़िगरेशन फ़ाइल Fail2ban द्वारा रिकॉर्ड किए गए लॉग स्तर, लॉग फ़ाइल स्थान और सॉकेट को परिभाषित करती है।
जेल.कॉन्फ़ उन सेवाओं को परिभाषित करता है जिनकी निगरानी की जानी है और कुछ रणनीतियों का उपयोग किया जाता है।
जेल.कॉन्फ की शुरुआत डिफ़ॉल्ट वैश्विक कॉन्फ़िगरेशन ब्लॉक [डिफॉल्ट] है। डिफ़ॉल्ट कॉन्फ़िगरेशन का वर्णन इस प्रकार है:
[DEFAULT]
#忽略哪些IP,可以是具体IP、CIDR类型的地址,多个IP用空格分开
ignoreip = 127.0.0.1
#设置IP被锁住的时间,单位为秒
bantime = 600
#检测时间,在此时间内超过规定的次数会激活fail2ban
findtime = 600
#尝试的次数
maxretry = 3
#日志检测机器,有"gamin", "polling" and "auto"三种模式。
backend = polling
#发送报警邮件的地址
destemail = root@localhost #默认的动作执行行为,在action.d目录下有各种行为策略,默认是iptables-#multiport
banaction = iptables-multiport
#0.8.1版本后fail2ban默认用sendmail MTA
mta = sendmail
#默认使用tcp协议
protocol = tcp
#定义了各种行动的参数
#banaction参数在action.d目录下具体定义,name port protocol 也可以自己定义
#只禁止IP
action_ = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s]
#即禁止IP又发送email
action_mw = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s]
%(mta)s-whois[name=%(__name__)s, dest="%(destemail)s", protocol="%(protocol)s]
#禁止IP、发送email、报告有关日志
action_mwl = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s]
%(mta)s-whois-lines[name=%(__name__)s, dest="%(destemail)s", logpath=%(logpath)s]
#如果没有定义行为,则默认的行为为action,可选择action_,action_mw, action_mwl 等
action = %(action_)s
默认配置文件含有此模块
#定义子模块名
[ssh]
#是否激活
enabled = true
#定义port,可以是数字端口号表示,也可以是字符串表示
port= ssh
#过滤规则,在filter.d目录下定义
filter = sshd
#检测日志的路径
logpath = /var/log/auth.log
#尝试的次数,覆盖了全局配置的
maxretry = 6
#banaction 在action.d目录下定义,此参数值会替换action中选用的默认行为中定义的banaction参数
banaction = iptables-allports
#注意 port protocol banaction 可以不用分开定义,直接使用action定义也可以,例如:
#action = iptables[name=SSH, port=ssh, protocol=tcp]
#在子模块中定义的port protocol banaction 都会在action_ action_mw, action_mwl中替换成具体的设置值。
Fail2ban के अन्य निर्देशिका कार्य इस प्रकार वर्णित हैं:
फ़िल्टर.डी निर्देशिका लॉग फ़ाइलों के आधार पर फ़िल्टरिंग के नियमों को परिभाषित करती है, मुख्य रूप से त्रुटियों का कारण बनने वाले कीवर्ड से मिलान करने के लिए नियमित अभिव्यक्तियों का उपयोग करती है।
Action.d निर्देशिका में बताया गया है कि फ़िल्टरिंग नियमों के अनुसार संबंधित आईपी के विरुद्ध किस प्रकार की कार्रवाइयां की जानी चाहिए।
Fail2ban एंटी-सीसी हमले का उदाहरण:
#需要先新建一个nginx日志匹配规则
vi /etc/fail2ban/filter.d/nginx-cc.conf
#填写如下内容
[Definition]
failregex = <HOST> -.*- .*HTTP/1.* .* .*$
ignoreregex =
jail.local
को संशोधित करना जारी रखें और निम्नलिखित सामग्री जोड़ें:
[nginx-cc]
enabled = true
port = http,https
filter = nginx-cc
action = %(action_mwl)s
maxretry = 60
findtime = 60
bantime = 3600
logpath = /data/wwwlogs/wzfou.com_nginx.log
उपरोक्त कॉन्फ़िगरेशन का मतलब है कि यदि एक ही आईपी 60 सेकंड के भीतर 60 अनुरोधों तक पहुंचता है, तो उसका आईपी 1 घंटे के लिए प्रतिबंधित कर दिया जाएगा। अपनी वेबसाइट लॉग पथ को संशोधित करना याद रखें। Fail2ban स्थिति देखने और प्रतिबंधित IP पतों की सूची प्रदर्शित करने के लिए निम्नलिखित कमांड का उपयोग करें।
/usr/local/python/bin/fail2ban-client status ssh-iptables
उपरोक्त कोड को सहेजने के बाद, x (निष्पादन) अनुमति प्रदान करें। यह समझने के लिए कि शेल स्क्रिप्ट पृष्ठभूमि में एक डेमॉन के समान है, आपको nohup का उपयोग करने की आवश्यकता है:
nohup 该shell script的位置 >/dev/null 2>&1 &
>/dev/null 2>&1
का अर्थ है शेल स्क्रिप्ट (डिबगिंग के लिए उपयोग की जाने वाली शेल स्क्रिप्ट में कई इको) को निष्पादित करके सूचना आउटपुट को /dev/null पर पुनर्निर्देशित करना। अंत में & पृष्ठभूमि निष्पादन का प्रतिनिधित्व करता है। इस मामले में, भले ही आप लॉग आउट करें, शेल स्क्रिप्ट अभी भी पृष्ठभूमि में निष्पादित होगी।
3. सारांश
मैंने उपरोक्त दो स्क्रिप्ट का उपयोग किया है जो वास्तविक समय में वेबसाइट लॉग का पता लगाता है और ब्लॉक करने के लिए स्वचालित रूप से आईपीटेबल्स में असामान्य आईपी जोड़ता है। परिणाम बहुत अच्छे हैं और छोटे सीसी हमलों से निपटने के लिए पर्याप्त हैं। वर्तमान में, Fail2ban का उपयोग वेबसाइट लॉग का पता लगाने और दुर्भावनापूर्ण IP को ब्लॉक करने के लिए किया जाता है। तीनों स्क्रिप्टों में से प्रत्येक के अपने फायदे हैं, और आप अपनी आवश्यकताओं के अनुसार चुन सकते हैं।
हालाँकि, यदि आप एक बड़े DDOS हमले का सामना करते हैं, तो आपको अभी भी एक विशेष एंटी-अटैक सेवा का उपयोग करना होगा, उदाहरण के लिए, क्लाउडफ़ेयर एंटी-अटैक सेवा मूल रूप से, VPS उद्योग में हर कोई इसका उपयोग करता है। यदि आपकी वेबसाइट पर हमला हुआ है और वह पहुंच से बाहर हो गई है, तो आप क्लाउडफ्लेयर को भुगतान किए गए संस्करण में अपग्रेड कर सकते हैं, जो बेहतर सुरक्षा प्रदान करेगा।