DDoS हमले किसी भी वेब सेवा के काम को कुछ ही मिनटों में रोक सकते हैं। हमलावर विभिन्न IP पतों से हजारों अनुरोध भेजते हैं, सर्वर को ओवरलोड करते हैं और इसे वास्तविक उपयोगकर्ताओं के लिए अनुपलब्ध बना देते हैं। प्रॉक्सी सर्वर सुरक्षा के लिए एक प्रभावी उपकरण हैं, जो हानिकारक ट्रैफ़िक को फ़िल्टर करने, लोड वितरित करने और आपके सर्वर के वास्तविक IP पते को छिपाने की अनुमति देते हैं।
इस मार्गदर्शिका में, हम DDoS से सुरक्षा के लिए प्रॉक्सी सेट करने, किस प्रकार के प्रॉक्सी का उपयोग करने और एक बहु-स्तरीय सुरक्षा प्रणाली बनाने के बारे में चर्चा करेंगे। सामग्री सिस्टम प्रशासकों, वेब सेवा के मालिकों और DevOps विशेषज्ञों के लिए लक्षित है।
DDoS हमले कैसे काम करते हैं और प्रॉक्सी कैसे मदद करते हैं
DDoS (Distributed Denial of Service) — यह सेवा में अस्वीकृति के लिए एक वितरित हमला है। हमलावर हजारों संक्रमित उपकरणों के बॉटनेट का उपयोग करते हैं, जो एक साथ आपके सर्वर पर अनुरोध भेजते हैं। लक्ष्य — सर्वर के संसाधनों (प्रोसेसर, मेमोरी, बैंडविड्थ) को समाप्त करना और इसे वैध उपयोगकर्ताओं के लिए अनुपलब्ध बनाना।
DDoS हमलों के मुख्य प्रकार:
- वॉल्यूमेट्रिक हमले — बैंडविड्थ को विशाल मात्रा में ट्रैफ़िक से भरते हैं (DNS एंप्लीफिकेशन, UDP बाढ़)
- प्रोटोकॉल हमले — नेटवर्क प्रोटोकॉल में कमजोरियों का लाभ उठाते हैं (SYN बाढ़, पिंग ऑफ डेथ)
- एप्लिकेशन लेयर हमले — वेब एप्लिकेशन के लिए वैध अनुरोधों की नकल करते हैं (HTTP बाढ़, स्लो लोरिस)
प्रॉक्सी सर्वर DDoS से सुरक्षा के लिए कई तरीकों से मदद करते हैं:
- सर्वर के वास्तविक IP पते को छिपाना — हमलावर केवल प्रॉक्सी का IP देखते हैं, आपके मुख्य सर्वर का नहीं
- हानिकारक ट्रैफ़िक का फ़िल्टरिंग — प्रॉक्सी अनुरोधों का विश्लेषण करती है और संदिग्ध को ब्लॉक करती है
- लोड वितरण — कई प्रॉक्सी सर्वर बैकएंड सर्वरों के बीच ट्रैफ़िक वितरित करते हैं
- रेट लिमिटिंग — एक IP पते से अनुरोधों की संख्या को सीमित करना
- स्टेटिक कंटेंट का कैशिंग — मुख्य सर्वर पर लोड को कम करना
यह समझना महत्वपूर्ण है कि प्रॉक्सी सभी प्रकार के DDoS के लिए एक पैनसिया नहीं हैं। शक्तिशाली वॉल्यूमेट्रिक हमले प्रॉक्सी सर्वर तक बैंडविड्थ को भर सकते हैं। इसलिए प्रॉक्सी अन्य सुरक्षा तरीकों के साथ संयोजन में प्रभावी होते हैं: CDN, क्लाउड एंटी-DDoS सेवाएं (Cloudflare, AWS Shield), फ़ायरवॉल।
DDoS से सुरक्षा के लिए प्रॉक्सी के प्रकार: रिवर्स बनाम फॉरवर्ड
DDoS से सुरक्षा के लिए दो मुख्य प्रकार के प्रॉक्सी सर्वरों का उपयोग किया जाता है:
रिवर्स प्रॉक्सी
रिवर्स प्रॉक्सी आपके वेब सर्वर के सामने स्थित होती है और ग्राहकों से सभी आने वाले अनुरोधों को स्वीकार करती है। ग्राहक केवल प्रॉक्सी के साथ बातचीत करते हैं, आपके सर्वर के वास्तविक IP पते को नहीं जानते। यह DDoS से सुरक्षा का मुख्य उपकरण है।
रिवर्स प्रॉक्सी के लिए लोकप्रिय समाधान:
- Nginx — रिवर्स प्रॉक्सी के साथ तेज और हल्का वेब सर्वर
- HAProxy — शक्तिशाली फ़िल्टरिंग क्षमताओं के साथ विशेष लोड बैलेंसर
- Apache mod_proxy — Apache के लिए एक मॉड्यूल, Nginx की तुलना में कम प्रदर्शन वाला
- Varnish — कैशिंग पर ध्यान केंद्रित करने वाला HTTP एक्सेलेरेटर
फॉरवर्ड प्रॉक्सी
फॉरवर्ड प्रॉक्सी क्लाइंट की ओर से आउटगोइंग अनुरोधों के लिए उपयोग की जाती है। DDoS से सुरक्षा के संदर्भ में, उनका उपयोग कम होता है, लेकिन ये निम्नलिखित के लिए उपयोगी हो सकते हैं:
- बाहरी API से संपर्क करते समय आपके सर्वरों के IP पतों को छिपाना
- कई IP पतों के माध्यम से आउटगोइंग ट्रैफ़िक का वितरण
- संभावित हमलों के बारे में जानकारी एकत्र करने के लिए ब्लॉकों को बायपास करना
इन कार्यों के लिए रेजिडेंशियल प्रॉक्सी उपयुक्त हैं — इनमें घरेलू उपयोगकर्ताओं के वास्तविक IP पते होते हैं और ये सामान्य ट्रैफ़िक की तरह दिखते हैं, जिससे इनका पता लगाना और ब्लॉक करना कठिन होता है।
| प्रॉक्सी का प्रकार | DDoS से सुरक्षा के लिए उपयोग | लाभ |
|---|---|---|
| रिवर्स प्रॉक्सी (Nginx, HAProxy) | आने वाले ट्रैफ़िक को स्वीकार करना, फ़िल्टरिंग, लोड वितरण | सर्वर का वास्तविक IP छिपाता है, हमलों को फ़िल्टर करता है, सामग्री को कैश करता है |
| रेजिडेंशियल प्रॉक्सी | इन्फ्रास्ट्रक्चर को छिपाना, खतरों की निगरानी | वास्तविक IP, ब्लॉक करना कठिन |
| डेटा सेंटर प्रॉक्सी | अतिरिक्त सुरक्षा स्तर, तेज़ प्रोसेसिंग | उच्च गति, कम लागत |
सर्वर की सुरक्षा के लिए Nginx पर रिवर्स प्रॉक्सी सेटअप
Nginx रिवर्स प्रॉक्सी बनाने के लिए सबसे लोकप्रिय उपकरणों में से एक है। यह आने वाले अनुरोधों को तेजी से संसाधित करता है, रेट लिमिटिंग का समर्थन करता है और संदिग्ध ट्रैफ़िक को फ़िल्टर कर सकता है।
रिवर्स प्रॉक्सी की बुनियादी सेटिंग
Nginx को एक अलग सर्वर पर स्थापित करें, जो सभी आने वाले ट्रैफ़िक को स्वीकार करेगा। वास्तविक वेब सर्वर को प्रॉक्सी के पीछे छिपा होना चाहिए और केवल उससे अनुरोध स्वीकार करना चाहिए।
# /etc/nginx/nginx.conf
http {
# एक IP से कनेक्शनों की संख्या को सीमित करना
limit_conn_zone $binary_remote_addr zone=conn_limit:10m;
limit_conn conn_limit 10;
# अनुरोधों की संख्या को सीमित करना (रेट लिमिटिंग)
limit_req_zone $binary_remote_addr zone=req_limit:10m rate=10r/s;
limit_req zone=req_limit burst=20 nodelay;
# स्लो लोरिस से सुरक्षा के लिए टाइमआउट
client_body_timeout 10s;
client_header_timeout 10s;
keepalive_timeout 5s 5s;
send_timeout 10s;
upstream backend {
# आपके वास्तविक वेब सर्वर का IP
server 192.168.1.100:80;
# लोड बैलेंसिंग के लिए कई सर्वर जोड़े जा सकते हैं
# server 192.168.1.101:80;
}
server {
listen 80;
server_name example.com;
location / {
# बैकएंड पर अनुरोधों को पास करना
proxy_pass http://backend;
# ग्राहक का वास्तविक IP पास करना
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
# प्रॉक्सी के लिए टाइमआउट
proxy_connect_timeout 5s;
proxy_send_timeout 10s;
proxy_read_timeout 10s;
}
}
}
संदिग्ध User-Agent को ब्लॉक करना
कई DDoS हमले विशिष्ट User-Agent के साथ बॉट का उपयोग करते हैं। इन्हें ब्लॉक करने के लिए नियम जोड़ें:
# ज्ञात बॉट को ब्लॉक करना
map $http_user_agent $bad_bot {
default 0;
~*bot 1;
~*crawler 1;
~*spider 1;
~*scraper 1;
"" 1; # खाली User-Agent
}
server {
listen 80;
server_name example.com;
if ($bad_bot) {
return 403;
}
location / {
proxy_pass http://backend;
}
}
अन्य देशों से अवांछित ट्रैफ़िक को Geo-ब्लॉक करना
यदि आपकी सेवा केवल कुछ देशों के लिए काम करती है, तो आप GeoIP मॉड्यूल का उपयोग करके अन्य क्षेत्रों से ट्रैफ़िक को ब्लॉक कर सकते हैं:
# GeoIP मॉड्यूल स्थापित करना
# apt-get install nginx-module-geoip
load_module modules/ngx_http_geoip_module.so;
http {
geoip_country /usr/share/GeoIP/GeoIP.dat;
# केवल रूस और यूक्रेन से ट्रैफ़िक की अनुमति देना
map $geoip_country_code $allowed_country {
default no;
RU yes;
UA yes;
}
server {
listen 80;
server_name example.com;
if ($allowed_country = no) {
return 403;
}
location / {
proxy_pass http://backend;
}
}
}
लोड वितरण और ट्रैफ़िक फ़िल्टरिंग के लिए HAProxy
HAProxy एक शक्तिशाली लोड बैलेंसर है जिसमें ट्रैफ़िक फ़िल्टरिंग की विस्तारित क्षमताएँ हैं। यह एप्लिकेशन स्तर पर हमलों को ब्लॉक करने के लिए जटिल ACL (Access Control Lists) का समर्थन करता है।
HAProxy की बुनियादी कॉन्फ़िगरेशन
# /etc/haproxy/haproxy.cfg
global
maxconn 50000
# लॉगिंग
log /dev/log local0
log /dev/log local1 notice
defaults
mode http
log global
option httplog
option dontlognull
# टाइमआउट
timeout connect 5s
timeout client 30s
timeout server 30s
# अनुरोध के आकार की सीमा (POST बाढ़ से सुरक्षा)
maxconn 3000
frontend http_front
bind *:80
# रेट लिमिटिंग: एक IP से 10 सेकंड में अधिकतम 100 अनुरोध
stick-table type ip size 100k expire 30s store http_req_rate(10s)
http-request track-sc0 src
http-request deny if { sc_http_req_rate(0) gt 100 }
# होस्ट हेडर के बिना अनुरोधों को ब्लॉक करना
acl has_host hdr(host) -m found
http-request deny if !has_host
# संदिग्ध User-Agent को ब्लॉक करना
acl bad_bot hdr_sub(User-Agent) -i bot crawler spider scraper
http-request deny if bad_bot
# बैकएंड पर पास करना
default_backend web_servers
backend web_servers
balance roundrobin
option httpchk GET /health
# बैकएंड सर्वरों की सूची
server web1 192.168.1.100:80 check
server web2 192.168.1.101:80 check
server web3 192.168.1.102:80 check
HTTP Flood से ACL के माध्यम से सुरक्षा
HTTP Flood एक हमला है जिसमें हमलावर कई वैध HTTP अनुरोध भेजता है। HAProxy आपको उनके पहचानने के लिए जटिल नियम बनाने की अनुमति देता है:
frontend http_front
bind *:80
# एक IP से अनुरोधों की संख्या की ट्रैकिंग
stick-table type ip size 100k expire 30s store http_req_rate(10s),conn_cur
http-request track-sc0 src
# सीमाओं को पार करने पर ब्लॉक करना
acl too_many_requests sc_http_req_rate(0) gt 50
acl too_many_connections sc_conn_cur(0) gt 10
http-request deny deny_status 429 if too_many_requests
http-request deny deny_status 429 if too_many_connections
# गैर-मौजूद पथों के लिए अनुरोधों को ब्लॉक करना (स्कैनिंग)
acl valid_path path_beg /api /static /login /
http-request deny if !valid_path
default_backend web_servers
विश्वसनीय IP पतों की व्हाइटलिस्ट बनाना
विश्वसनीय IP (जैसे, आपके कार्यालय के पते या भागीदारों) के लिए एक व्हाइटलिस्ट बनाएं, जिन्हें रेट लिमिटिंग के अधीन नहीं किया जाएगा:
frontend http_front
bind *:80
# विश्वसनीय IP की व्हाइटलिस्ट
acl whitelist src 203.0.113.0/24 198.51.100.50
# केवल गैर-व्हाइटलिस्ट IP के लिए रेट लिमिटिंग
stick-table type ip size 100k expire 30s store http_req_rate(10s)
http-request track-sc0 src if !whitelist
http-request deny if { sc_http_req_rate(0) gt 100 } !whitelist
default_backend web_servers
इन्फ्रास्ट्रक्चर को छिपाने के लिए रेजिडेंशियल प्रॉक्सी का उपयोग
आपके सर्वर के सामने रिवर्स प्रॉक्सी के अलावा, आप अतिरिक्त सुरक्षा के लिए रेजिडेंशियल प्रॉक्सी का उपयोग कर सकते हैं। यह विशेष रूप से महत्वपूर्ण है यदि आपको:
- आपके निगरानी सर्वरों के IP पतों को छिपाना — यदि आप DDoS हमलों की निगरानी कर रहे हैं या खतरों के बारे में जानकारी एकत्र कर रहे हैं, तो रेजिडेंशियल प्रॉक्सी आपकी गतिविधियों को छिपाने में मदद कर सकते हैं
- बाहरी API से बिना इन्फ्रास्ट्रक्चर का खुलासा किए संपर्क करना — आपके सर्वर रेजिडेंशियल प्रॉक्सी के माध्यम से अनुरोध कर सकते हैं, जिससे उनका पता लगाना कठिन हो जाएगा
- DDoS से सुरक्षा का परीक्षण करना — विभिन्न IP पतों से हमलों की नकल करना ताकि आपके फ़िल्टर की प्रभावशीलता की जांच की जा सके
रेजिडेंशियल प्रॉक्सी में वास्तविक घरेलू उपयोगकर्ताओं के IP पते होते हैं, जो उन्हें सामान्य ट्रैफ़िक के रूप में पहचानने में कठिन बनाते हैं। यह उन्हें ब्लॉक करना कठिन बनाता है और geo-प्रतिबंधों को बायपास करने की अनुमति देता है।
उदाहरण: रेजिडेंशियल प्रॉक्सी के माध्यम से खतरों की निगरानी
मान लीजिए, आप उन बॉटनेट की गतिविधियों की निगरानी करना चाहते हैं जो आपके सेवा पर हमला कर सकते हैं। रेजिडेंशियल प्रॉक्सी का उपयोग करके, आप अपने सर्वरों के IP पतों को उजागर किए बिना जानकारी एकत्र कर सकते हैं:
import requests
# रेजिडेंशियल प्रॉक्सी सेट करना
proxies = {
'http': 'http://username:password@residential-proxy.com:8080',
'https': 'http://username:password@residential-proxy.com:8080'
}
# संभावित खतरों के बारे में जानकारी एकत्र करना
threat_sources = [
'http://suspicious-site1.com',
'http://suspicious-site2.com'
]
for source in threat_sources:
try:
response = requests.get(source, proxies=proxies, timeout=5)
# हमलों के पैटर्न की पहचान के लिए प्रतिक्रिया का विश्लेषण करना
print(f"Status: {response.status_code}, IP: {response.headers.get('X-Your-IP')}")
except Exception as e:
print(f"Error accessing {source}: {e}")
फ़िल्टरिंग नियम: हमले को वैध ट्रैफ़िक से कैसे अलग करें
एप्लिकेशन स्तर (L7) पर DDoS से सुरक्षा की मुख्य चुनौती हानिकारक ट्रैफ़िक को वैध ट्रैफ़िक से अलग करना है। आधुनिक हमले वास्तविक उपयोगकर्ताओं के व्यवहार की नकल करते हैं, जिससे उनका पता लगाना कठिन हो जाता है।
DDoS हमले के संकेत
- अनुरोधों की संख्या में अचानक वृद्धि — सामान्य से 2-10 गुना अधिक एक छोटे समय में
- एक समान User-Agent के साथ अनुरोध — बॉट अक्सर एक ही User-Agent का उपयोग करते हैं
- Referer का अभाव — अन्य पृष्ठों से जाने के बिना सीधे अनुरोध
- एक समान अनुरोध — न्यूनतम भिन्नताओं के साथ एक ही URL पर अनुरोध
- JavaScript का अभाव — बॉट पृष्ठ पर JS कोड को निष्पादित नहीं करते हैं
- पृष्ठ पर कम समय — बॉट प्रतिक्रिया प्राप्त करने के बाद तुरंत कनेक्शन बंद कर देते हैं
- संदिग्ध IP रेंज — एक ही सबनेट से बड़े पैमाने पर अनुरोध
बहु-स्तरीय फ़िल्टरिंग
प्रभावी सुरक्षा कई फ़िल्टरिंग स्तरों का उपयोग करती है:
स्तर 1: IP प्रतिष्ठा
ज्ञात बॉटनेट, प्रॉक्सी सर्वरों, VPN के डेटाबेस के माध्यम से IP पते की जांच करना। खराब प्रतिष्ठा वाले IP को ब्लॉक करना।
स्तर 2: रेट लिमिटिंग
एक IP से अनुरोधों की संख्या को सीमित करना। उदाहरण के लिए, सामान्य उपयोगकर्ताओं के लिए प्रति मिनट 50 अनुरोधों से अधिक नहीं।
स्तर 3: व्यवहार का विश्लेषण
User-Agent, Referer, कुकीज़, JavaScript का निष्पादन की जांच करना। इन पैरामीटर के बिना अनुरोधों को ब्लॉक करना।
स्तर 4: CAPTCHA
संदिग्ध ट्रैफ़िक के लिए CAPTCHA प्रदर्शित किया जाता है। बॉट इसे पास नहीं कर सकते, वैध उपयोगकर्ता एक बार पास करते हैं।
उदाहरण: Nginx में JavaScript चुनौती
बॉट को फ़िल्टर करने का एक सरल तरीका है कि कुकी स्थापित करने के लिए JavaScript का निष्पादन आवश्यक हो:
server {
listen 80;
server_name example.com;
# कुकी की उपस्थिति की जांच करना
set $has_cookie 0;
if ($http_cookie ~* "verified=true") {
set $has_cookie 1;
}
# यदि कुकी नहीं है, तो JS चुनौती दिखाएं
location / {
if ($has_cookie = 0) {
return 200 '
<html>
<head><title>Verification</title></head>
<body>
<script>
document.cookie = "verified=true; path=/";
window.location.reload();
</script>
<noscript>कृपया JavaScript सक्षम करें</noscript>
</body>
</html>
';
}
proxy_pass http://backend;
}
}
वास्तविक समय में DDoS की निगरानी और प्रतिक्रिया
DDoS से प्रभावी सुरक्षा के लिए ट्रैफ़िक की निरंतर निगरानी और असामान्यताओं पर त्वरित प्रतिक्रिया की आवश्यकता होती है। एक निगरानी प्रणाली सेट करें जो प्रमुख मैट्रिक्स को ट्रैक करेगी:
- प्रति सेकंड अनुरोधों की संख्या — अचानक वृद्धि हमले का संकेत दे सकती है
- विशिष्ट IP पतों की संख्या — DDoS अक्सर कई IP से आता है
- 4xx/5xx त्रुटियों का प्रतिशत — त्रुटियों में वृद्धि ओवरलोड का संकेत हो सकती है
- सर्वर का प्रतिक्रिया समय — लेटेंसी में वृद्धि समस्याओं का संकेत देती है
- संसाधनों की खपत — CPU, मेमोरी, नेटवर्क ट्रैफ़िक
निगरानी उपकरण
| उपकरण | उद्देश्य | विशेषताएँ |
|---|---|---|
| Prometheus + Grafana | मैट्रिक्स एकत्र करना और दृश्यता | अलर्ट्स की लचीली सेटिंग, सुंदर डैशबोर्ड |
| ELK स्टैक (Elasticsearch, Logstash, Kibana) | वास्तविक समय में लॉग का विश्लेषण | लॉग पर शक्तिशाली खोज, पैटर्न की पहचान |
| Netdata | सिस्टम संसाधनों की निगरानी | सरल स्थापना, वास्तविक समय मैट्रिक्स |
| Fail2ban | IP का स्वचालित ब्लॉक करना | लॉग का विश्लेषण करता है और संदिग्ध IP को ब्लॉक करता है |
Prometheus में अलर्ट सेट करना
असामान्यताओं का पता लगाने पर स्वचालित रूप से सूचित करने के लिए नियम बनाएं:
# prometheus_alerts.yml
groups:
- name: ddos_detection
interval: 10s
rules:
# अनुरोधों की संख्या में अचानक वृद्धि पर अलर्ट
- alert: HighRequestRate
expr: rate(nginx_http_requests_total[1m]) > 1000
for: 1m
labels:
severity: warning
annotations:
summary: "उच्च अनुरोध दर का पता चला"
description: "अनुरोध दर {{ $value }} req/s है"
# 5xx त्रुटियों की वृद्धि पर अलर्ट
- alert: HighErrorRate
expr: rate(nginx_http_requests_total{status=~"5.."}[5m]) > 10
for: 2m
labels:
severity: critical
annotations:
summary: "उच्च 5xx त्रुटि दर"
description: "5xx त्रुटियाँ: {{ $value }} req/s हैं"
# उच्च CPU पर अलर्ट
- alert: HighCPUUsage
expr: 100 - (avg by(instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80
for: 5m
labels:
severity: warning
annotations:
summary: "उच्च CPU उपयोग"
description: "CPU उपयोग {{ $value }}% है"
Fail2ban के साथ स्वचालित प्रतिक्रिया
Fail2ban लॉग का विश्लेषण करता है और स्वचालित रूप से उन IP पतों को ब्लॉक करता है जो अनुरोधों की सीमाओं को पार करते हैं:
# /etc/fail2ban/jail.local
[nginx-req-limit]
enabled = true
filter = nginx-req-limit
logpath = /var/log/nginx/access.log
maxretry = 100
findtime = 60
bantime = 3600
action = iptables-multiport[name=ReqLimit, port="http,https", protocol=tcp]
# /etc/fail2ban/filter.d/nginx-req-limit.conf
[Definition]
failregex = ^<HOST> -.*"(GET|POST).*HTTP.*"
ignoreregex =
बहु-स्तरीय सुरक्षा: प्रॉक्सी को अन्य तरीकों के साथ संयोजित करना
प्रॉक्सी सर्वर DDoS से सुरक्षा का एक महत्वपूर्ण तत्व हैं, लेकिन वे अन्य तरीकों के साथ संयोजन में सबसे प्रभावी होते हैं। बहु-स्तरीय सुरक्षा की वास्तुकला पर विचार करें:
स्तर 1: नेटवर्क सुरक्षा (L3/L4)
- क्लाउड एंटी-DDoS सेवाएं — Cloudflare, AWS Shield, Google Cloud Armor ट्रैफ़िक को फ़िल्टर करते हैं इससे पहले कि यह आपके सर्वरों तक पहुंचे
- हार्डवेयर फ़ायरवॉल — नेटवर्क ट्रैफ़िक फ़िल्टरिंग के लिए विशेष उपकरण
- BGP ब्लैकहोलिंग — प्रदाता स्तर पर हानिकारक ट्रैफ़िक को "काले छिद्र" में पुनर्निर्देशित करना
स्तर 2: CDN और कैशिंग
- CDN (Content Delivery Network) — स्थिर सामग्री को कई सर्वरों में वितरित करता है, मूल पर लोड को कम करता है
- प्रॉक्सी पर कैशिंग — Varnish, Nginx लोकप्रिय पृष्ठों को कैश करते हैं और उन्हें बैकएंड से संपर्क किए बिना वितरित करते हैं
- सामग्री का अनुकूलन — CSS/JS का मिनिफिकेशन, छवियों का संकुचन ट्रैफ़िक की मात्रा को कम करता है
स्तर 3: प्रॉक्सी और लोड बैलेंसिंग (L7)
- रिवर्स प्रॉक्सी — Nginx, HAProxy एप्लिकेशन स्तर पर अनुरोधों को फ़िल्टर करते हैं
- लोड बैलेंसिंग — कई बैकएंड सर्वरों के बीच लोड का वितरण
- रेट लिमिटिंग — एक IP से अनुरोधों की संख्या को सीमित करना
- WAF (Web Application Firewall) — ModSecurity, AWS WAF वेब एप्लिकेशनों पर हमलों को ब्लॉक करते हैं
स्तर 4: बैकएंड अनुकूलन
- डेटाबेस का अनुकूलन — इंडेक्स, अनुरोधों का कैशिंग, पढ़ने की प्रतिकृतियाँ
- असिंक्रोनस प्रोसेसिंग — भारी कार्य पृष्ठभूमि में कतारों (RabbitMQ, Redis) के माध्यम से किए जाते हैं
- क्षैतिज स्केलिंग — लोड बढ़ने पर नए सर्वरों को जोड़ना
वास्तुकला का उदाहरण
क्लाइंट
↓
Cloudflare (एंटी-DDoS L3/L4, CDN)
↓
Nginx रिवर्स प्रॉक्सी (रेट लिमिटिंग, फ़िल्टरिंग)
↓
HAProxy (लोड बैलेंसिंग)
↓
बैकएंड सर्वर (वेब एप्लिकेशन)
↓
डेटाबेस (प्रतिकृति के साथ)
यह वास्तुकला सभी स्तरों पर सुरक्षा प्रदान करती है: नेटवर्क, परिवहन, एप्लिकेशन। यदि हमला एक स्तर को पार करता है, तो अगला इसे रोक देगा।
CDN और आपके सर्वरों के बीच अतिरिक्त सुरक्षा स्तर के लिए डेटा सेंटर प्रॉक्सी का उपयोग
कुछ मामलों में, CDN और आपके सर्वरों के बीच एक मध्यवर्ती स्तर के रूप में डेटा सेंटर प्रॉक्सी जोड़ना समझदारी हो सकती है। वे उच्च प्रोसेसिंग गति प्रदान करते हैं और अतिरिक्त ट्रैफ़िक फ़िल्टरिंग कर सकते हैं। डेटा सेंटर प्रॉक्सी रेजिडेंशियल और मोबाइल प्रॉक्सी की तुलना में सस्ते होते हैं, जो बड़े पैमाने पर ट्रैफ़िक को प्रोसेस करने के लिए एक आर्थिक रूप से लाभदायक समाधान बनाता है।
निष्कर्ष
प्रॉक्सी सर्वरों के माध्यम से DDoS हमलों से सुरक्षा एक प्रभावी विधि है, जो हानिकारक ट्रैफ़िक को फ़िल्टर करने, सर्वरों के वास्तविक IP पतों को छिपाने और लोड को वितरित करने की अनुमति देती है। Nginx या HAProxy पर आधारित रिवर्स प्रॉक्सी फ़िल्टरिंग नियमों, रेट लिमिटिंग और संदिग्ध अनुरोधों को ब्लॉक करने के लिए लचीली सेटिंग प्रदान करते हैं।
हमने जिन प्रमुख बिंदुओं पर चर्चा की:
- रिवर्स प्रॉक्सी (Nginx, HAProxy) — एप्लिकेशन स्तर (L7) पर सुरक्षा का मुख्य उपकरण
- रेट लिमिटिंग और User-Agent, IP प्रतिष्ठा के आधार पर फ़िल्टरिंग अधिकांश हमलों को रोकने में मदद करती है
- रेजिडेंशियल प्रॉक्सी निगरानी इन्फ्रास्ट्रक्चर को छिपाने और खतरों के बारे में जानकारी एकत्र करने के लिए उपयोगी हैं
- बहु-स्तरीय सुरक्षा (CDN + प्रॉक्सी + WAF + बैकएंड अनुकूलन) अधिकतम स्थिरता सुनिश्चित करती है
- निगरानी और स्वचालित प्रतिक्रिया हमलों का तेजी से पता लगाने और ब्लॉक करने के लिए महत्वपूर्ण हैं
याद रखें कि DDoS हमले लगातार विकसित हो रहे हैं, इसलिए सुरक्षा प्रणाली को नियमित रूप से अपडेट और परीक्षण की आवश्यकता होती है। लोड परीक्षण करें, लॉग का विश्लेषण करें, फ़िल्टरिंग नियमों को अपडेट करें और नए हमले के तरीकों पर नज़र रखें।
यदि आप प्रॉक्सी का उपयोग करके एक बहु-स्तरीय सुरक्षा प्रणाली बनाने की योजना बना रहे हैं, तो महत्वपूर्ण इन्फ्रास्ट्रक्चर को छिपाने के लिए रेजिडेंशियल प्रॉक्सी पर विचार करें और बड़े पैमाने पर ट्रैफ़िक को उच्च गति से प्रोसेस करने के लिए डेटा सेंटर प्रॉक्सी का उपयोग करें। विभिन्न प्रकार के प्रॉक्सी का संयोजन सुरक्षा, प्रदर्शन और लागत के बीच एक आदर्श संतुलन सुनिश्चित करता है।