VPS-നെ DDoS ആക്രമണങ്ങളിൽ നിന്ന് എങ്ങനെ സംരക്ഷിക്കാം
ഒരു സർവറിനെയോ അതിന്റെ നെറ്റ്വർക്ക് കണക്ഷനെയോ ട്രാഫിക് കൊണ്ട് നിറച്ച്, യഥാർത്ഥ സന്ദർശകർക്ക് അകത്തേക്ക് കടക്കാൻ കഴിയാതാക്കുന്ന ആക്രമണമാണ് വിതരണം ചെയ്യപ്പെട്ട സേവന നിഷേധം (distributed denial-of-service, DDoS). ചില ആക്രമണങ്ങൾ സർവറിന് തന്നെ കൈകാര്യം ചെയ്യാവുന്നതിലും വലുതായിരിക്കും, അതിനാൽ സംരക്ഷണം പാളികളായി നടപ്പാക്കുന്നതാണ് ഏറ്റവും ഫലപ്രദം: ആദ്യം നെറ്റ്വർക്ക് എഡ്ജിൽ ഫിൽട്ടറിംഗ്, പിന്നീട് VPS-ലെ ഫയർവാളും ആപ്ലിക്കേഷൻ ക്രമീകരണങ്ങളും. ONIE, DDoS Shield ഉപയോഗിച്ചുള്ള ഹോ ചി മിൻ സിറ്റിയിലെ ക്ലൗഡ് സർവറുകൾ നെറ്റ്വർക്ക് എഡ്ജിൽ അധിക ചെലവില്ലാതെ സംരക്ഷണം നൽകുന്നു, കൂടാതെ DDoS സംരക്ഷണത്തോടെയുള്ള VPS ഏതാനും മിനിറ്റുകൾക്കുള്ളിൽ വിന്യസിക്കാം.
ആക്രമണ തരങ്ങൾ
- വോള്യൂമെട്രിക് (ലെയർ 3 ഉം 4 ഉം): നെറ്റ്വർക്ക് ലിങ്ക് നിറയ്ക്കുന്ന പാക്കറ്റ് പ്രവാഹങ്ങൾ, ഉദാഹരണത്തിന് UDP ഫ്ലഡുകൾ.
- പ്രോട്ടോക്കോൾ ആക്രമണങ്ങൾ: കണക്ഷൻ ടേബിൾ നിറയ്ക്കുന്ന SYN ഫ്ലഡുകൾ പോലുള്ള കണക്ഷൻ കൈകാര്യം ചെയ്യലിന്റെ ദുരുപയോഗം.
- ആപ്ലിക്കേഷൻ ലെയർ (ലെയർ 7): വെബ് സെർവറിനെയോ ഡാറ്റാബേസിനെയോ തളർത്തുന്ന, സാധുവെന്ന് തോന്നുന്ന നിരവധി HTTP അഭ്യർത്ഥനകൾ.
ഓരോ തരത്തിനും വ്യത്യസ്ത പ്രതിരോധം ആവശ്യമാണ്. വോള്യൂമെട്രിക് ട്രാഫിക് സർവറിൽ എത്തുന്നതിന് മുമ്പ് തടയണം; ആപ്ലിക്കേഷൻ ഫ്ലഡുകൾ സർവറിൽ തന്നെ കുറയ്ക്കാം.
1. നെറ്റ്വർക്ക് എഡ്ജിൽ ഫിൽട്ടർ ചെയ്യുക
ലിങ്ക് പൂരിതമാകാതിരിക്കാൻ, മോശം ട്രാഫിക് VPS-ൽ എത്തുന്നതിന് മുമ്പേ എഡ്ജ് ഫിൽട്ടറിംഗ് അതിനെ ഒഴിവാക്കുന്നു. DDoS Shield-ൽ XDP/eBPF ഉപയോഗിച്ച് നെറ്റ്വർക്ക് എഡ്ജിലാണ് ഫിൽട്ടറിംഗ് നടക്കുന്നത്, ഓരോ IP-ക്കും ട്രാഫിക്കും ആക്രമണ സംഭവങ്ങളും കൺസോളിൽ കാണാം. നിങ്ങൾ വിലയിരുത്തുന്ന ഏതൊരു ദാതാവിനോടും എന്തൊക്കെ ഉൾപ്പെടുന്നു, ഫിൽട്ടറിംഗ് എവിടെ നടക്കുന്നു, അധിക ചെലവുണ്ടോ എന്ന് ചോദിക്കുക.
2. ഉപയോഗിക്കാത്തവ അടയ്ക്കുക
sudo ufw default deny incoming
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enableഡാറ്റാബേസുകളോ അഡ്മിൻ പാനലുകളോ ഇൻറർനെറ്റിലേക്ക് തുറന്നു കൊടുക്കരുത്. അവയെ 127.0.0.1-ലോ ഒരു പ്രൈവറ്റ് നെറ്റ്വർക്കിലോ ബൈൻഡ് ചെയ്യുക.
3. SYN ഫ്ലഡുകൾക്കായി കേർണൽ ട്യൂൺ ചെയ്യുക
മിക്ക വിതരണങ്ങളിലും SYN കുക്കികൾ ഡിഫോൾട്ടായി ഓണാണ്. പരിശോധിക്കുക:
sysctl net.ipv4.tcp_syncookiesമറ്റ് കേർണൽ മാറ്റങ്ങൾ ചെറുതായി സൂക്ഷിക്കുകയും പരീക്ഷിക്കുകയും ചെയ്യുക, കാരണം തെറ്റായ മൂല്യങ്ങൾ സാധാരണ ട്രാഫിക്കിനെ ബാധിക്കാം.
4. Nginx-ൽ അഭ്യർത്ഥനകൾക്ക് റേറ്റ് ലിമിറ്റ് ചെയ്യുക
http ബ്ലോക്കിൽ:
limit_req_zone $binary_remote_addr zone=perip:10m rate=10r/s;
limit_conn_zone $binary_remote_addr zone=connperip:10m;server അല്ലെങ്കിൽ location ബ്ലോക്കിൽ:
limit_req zone=perip burst=20 nodelay;
limit_conn connperip 20;sudo nginx -t && sudo systemctl reload nginx ഉപയോഗിച്ച് റീലോഡ് ചെയ്യുക. സ്റ്റാറ്റിക് ഫയലുകൾ കാഷെയിൽ നിന്ന് നൽകുകയും WordPress-ൽ ഒരു കാഷിംഗ് പ്ലഗിൻ ഉപയോഗിക്കുകയും ചെയ്യുക, ഇത് ഓരോ അഭ്യർത്ഥനയുടെയും ചെലവ് കുറയ്ക്കും. Nginx ഉപയോഗിച്ച് WordPress ഇൻസ്റ്റാൾ ചെയ്യുന്ന വിധം കാണുക.
5. ട്രാഫിക് നിരീക്ഷിക്കുക
ss -s
sudo ss -ntu state established | wc -l
sudo apt install -y nload && nloadകണക്ഷനുകളിലോ ബാൻഡ്വിഡ്ത്തിലോ പെട്ടെന്നുള്ള കുതിപ്പ്, CPU ഉപയോഗം കുറവായിരിക്കെ സർവർ മന്ദഗതിയിലാകുന്നത് എന്നിവ ഒരു ആക്രമണത്തിന്റെ സൂചനയാകാം. നേരത്തെ അറിയാൻ അലേർട്ടുകൾ സജ്ജമാക്കുക.
6. സംഭവ പരിശോധനാ പട്ടിക
- ട്രാഫിക് ആക്രമണമാണോ യഥാർത്ഥ വർധനയാണോ എന്ന് കൺസോളിൽ ഉറപ്പാക്കുക.
- ആക്രമണ സംഭവങ്ങളും ആക്രമിക്കപ്പെട്ട IP-യും പരിശോധിക്കുക.
- തിരിച്ചറിയാൻ കഴിയുന്ന ദുരുപയോഗ സ്രോത ഉറവിട വിലാസങ്ങളോ ശ്രേണികളോ തടയുക.
- കർശനമായ റേറ്റ് ലിമിറ്റുകളോ മെയിന്റനൻസ് പേജോ ഓണാക്കുക.
- സമയവും IP-യും സഹിതം ദാതാവിന്റെ സപ്പോർട്ടുമായി ബന്ധപ്പെടുക.
- പിന്നീട്, ലോഗുകൾ പരിശോധിച്ച് ഈ പദ്ധതി പുതുക്കുക. ബാക്കപ്പുകളും സ്നാപ്ഷോട്ടുകളും കാലികമായി സൂക്ഷിക്കുക.
പതിവായി ചോദിക്കുന്ന ചോദ്യങ്ങൾ
VPS-ലെ ഫയർവാൾ മാത്രം വലിയ DDoS തടയുമോ?
ഇല്ല. ട്രാഫിക് നെറ്റ്വർക്ക് ലിങ്ക് നിറച്ചാൽ സർവറിന് അത് ഫിൽട്ടർ ചെയ്യാൻ കഴിയില്ല. സർവറിന് മുമ്പുള്ള ഭാഗത്ത് ഫിൽട്ടറിംഗ് ആവശ്യമാണ്.
CDN സഹായിക്കുമോ?
വെബ്സൈറ്റുകൾക്ക്, DNS-ലോ ഇമെയിൽ ഹെഡറുകളിലോ നിങ്ങളുടെ യഥാർത്ഥ സർവർ IP വെളിപ്പെടാത്തിടത്തോളം, CDN അല്ലെങ്കിൽ റിവേഴ്സ് പ്രോക്സിക്ക് വെബ് ട്രാഫിക് ഉൾക്കൊള്ളാൻ കഴിയും.
DDoS സംരക്ഷണത്തിന് പ്രത്യേക പ്ലാൻ വേണോ?
അത് ദാതാവിനെ ആശ്രയിച്ചിരിക്കുന്നു. നിങ്ങളുടെ പ്ലാനിലും ലൊക്കേഷനിലും എന്തൊക്കെ ഉൾപ്പെടുന്നു എന്ന് പരിശോധിക്കുക.