Vaultwarden 1.36.0: അപ്‌ഗ്രേഡ് ഗൈഡ്

സെൽഫ്-ഹോസ്റ്റിംഗ് എന്നാൽ നിങ്ങളുടെ സുരക്ഷാ ടീം നിങ്ങൾ തന്നെയാണെന്നാണ് അർത്ഥം.

ക്ലൗഡ് സേവനങ്ങളിൽ, നിങ്ങൾ ശ്രദ്ധിക്കുന്നതിന് മുമ്പ് തന്നെ കമ്പനികൾ സുരക്ഷാ പിഴവുകൾ (vulnerabilities) പരിഹരിക്കുന്നു. എന്നാൽ Vaultwarden ഉപയോഗിക്കുമ്പോൾ, അതിന്റെ ഉത്തരവാദിത്തം നിങ്ങൾക്കാണ്. നിങ്ങൾ അപ്‌ഡേറ്റുകൾ ഒഴിവാക്കിയാൽ, അറിയപ്പെടുന്ന സുരക്ഷാ ഭീഷണികൾക്ക് നിങ്ങൾ ഇരയാകാൻ സാധ്യതയുണ്ട്.

Vaultwarden 1.36.0 രണ്ട് പ്രധാന കാര്യങ്ങൾ പരിഹരിക്കുന്നു: • അഡ്മിൻ പാനൽ ഓതന്റിക്കേഷൻ (Admin panel authentication). • സെഷൻ ടോക്കൺ കൈകാര്യം ചെയ്യൽ (Session token handling).

അഡ്മിൻ പാനൽ പലപ്പോഴും ആക്രമണങ്ങൾക്ക് ലക്ഷ്യമിടാറുള്ള ഒന്നാണ്. പല ഉപയോക്താക്കളും ഇത് പബ്ലിക് സബ്ഡൊമെയ്‌നുകളിൽ (public subdomain) ആണ് പ്രവർത്തിപ്പിക്കുന്നത്. നിങ്ങളുടെ പ്രോക്സി തലത്തിൽ /admin പാത്ത് ബ്ലോക്ക് ചെയ്തിട്ടില്ലെങ്കിൽ, നിങ്ങൾ അപകടത്തിലായേക്കാം.

1.36.0-ലെ പ്രധാന മെച്ചപ്പെടുത്തലുകൾ:

• സെർവർ-സൈഡ് റേറ്റ് ലിമിറ്റിംഗ് (Server-side rate limiting): ആപ്പ് ഇപ്പോൾ റേറ്റ് ലിമിറ്റിംഗ് ആന്തരികമായി കൈകാര്യം ചെയ്യുന്നു. ഇത് ഇനി മുതൽ നിങ്ങളുടെ Nginx അല്ലെങ്കിൽ Caddy കോൺഫിഗറേഷനെ മാത്രം ആശ്രയിക്കുന്നില്ല. വ്യാജ IP ഹെഡറുകൾ ഉപയോഗിച്ച് പരിധികൾ മറികടക്കാൻ ആക്രമണകാരികൾ ശ്രമിക്കുന്നത് ഇത് തടയുന്നു.

• മെച്ചപ്പെട്ട സെഷൻ സുരക്ഷ: ഓരോ API കോളി률 ഉം സെർവർ ഇപ്പോൾ ടോക്കൺ കാലാവധി (token expiry) പരിശോധിക്കുന്നു. ഇത് മോഷ്ടിക്കപ്പെട്ട ടോക്കണുകൾ അനാവശ്യമായി കൂടുതൽ സമയം ഉപയോഗിക്കുന്നത് തടയുന്നു.

• അപ്‌ഡേറ്റ് ചെയ്ത ഡിപെൻഡൻസികൾ (Updated dependencies): OpenSSL, tower-http എന്നിവയ്ക്കുള്ള പരിഹാരങ്ങൾ ഡെനയൽ-ഓഫ്-സർവീസ് (denial-of-service) ആക്രമണങ്ങളുടെ സാധ്യത കുറയ്ക്കുന്നു.

ഡാറ്റ നഷ്ടപ്പെടാതെ എങ്ങനെ അപ്‌ഗ്രേഡ് ചെയ്യാം:

  1. നിങ്ങളുടെ ഡാറ്റാബേസ് കൃത്യമായി ബാക്കപ്പ് ചെയ്യുക. ഫയലുകൾ മാത്രം കോപ്പി ചെയ്താൽ പോരാ. ഡാറ്റാ കേടുപാടുകൾ (corruption) ഒഴിവാക്കാൻ കണ്ടെയ്നറിനുള്ളിലെ SQLite ബാക്കപ്പ് കമാൻഡ് ഉപയോഗിക്കുക. പ്രവർത്തിപ്പിക്കുക: docker exec vaultwarden sqlite3 /data/db.sqlite3 '.backup /data/db_backup.sqlite3'

  2. ബാക്കപ്പ് പരിശോധിക്കുക. പുതിയ ഫയലിൽ ഒരു ഇൻ്റഗ്രിറ്റി ചെക്ക് (integrity check) നടത്തുക. "ok" എന്ന് കാണിക്കുന്നില്ലെങ്കിൽ, അടുത്ത ഘട്ടത്തിലേക്ക് പോകരുത്.

  3. അറ്റോമിക് അപ്‌ഗ്രേഡ് രീതി (atomic upgrade method) ഉപയോഗിക്കുക. ആദ്യം നിങ്ങളുടെ കണ്ടെയ്‌നർ നിർത്തരുത് (stop). ഇത് സേവനം തടസ്സപ്പെടാൻ (downtime) കാരണമാകും. പകരം, പഴയത് പ്രവർത്തിച്ചുകൊണ്ടിരിക്കുമ്പോൾ തന്നെ പുതിയ ഇമേജ് പൾ ചെയ്യുക (pull), തുടർന്ന് സർവീസ് പുനഃസ്ഥാപിക്കുക. പ്രവർത്തിപ്പിക്കുക: docker compose pull vaultwarden docker compose up -d vaultwarden

  4. നിങ്ങളുടെ IP ഹെഡർ സെറ്റ് ചെയ്യുക. റേറ്റ് ലിമിറ്റിംഗ് കൃത്യമായി പ്രവർത്തിക്കുന്നുണ്ടെന്ന് ഉറപ്പാക്കാൻ, നിങ്ങളുടെ പ്രോക്സി ഏത് ഹെഡറാണ് ഉപയോഗിക്കുന്നതെന്ന് Vaultwarden-നെ അറിയിക്കുക. നിങ്ങളുടെ എൻവയോൺമെന്റിൽ (environment) ഇത് ചേർക്കുക: IP_HEADER=X-Forwarded-For

നിങ്ങളുടെ സെറ്റപ്പ് കൂടുതൽ സുരക്ഷിതമാക്കാൻ (Hardening):

• പ്ലെയിൻ ടെക്സ്റ്റ് (plaintext) രൂപത്തിലുള്ള ADMIN_TOKEN ഉപയോഗിക്കുന്നത് നിർത്തുക. പകരം ഒരു argon2 ഹാഷ് ഉപയോഗിക്കുക. • നിങ്ങളുടെ റിവേഴ്സ് പ്രോക്സി (reverse proxy) വഴി /admin പാത്ത് നിങ്ങളുടെ ലോക്കൽ നെറ്റ്‌വർക്കിലേക്ക് മാത്രം പരിമിതപ്പെടുത്തുക. • നിങ്ങൾ മാത്രമാണ് ഉപയോക്താവെങ്കിൽ SIGNUPS_ALLOWED എന്നത് false എന്ന് സെറ്റ് ചെയ്യുക.

ഒരു അപ്‌ഗ്രേഡിന് അഞ്ച് മിനിറ്റ് മതിയാകും. എന്നാൽ ശരിയായ തയ്യാറെടുപ്പിന് പത്ത് മിനിറ്റ് ആവശ്യമാണ്. ബാക്കപ്പ് എടുക്കുന്നത് ഒഴിവാക്കരുത്.

ഉറവിടം: https://dev.to/ericwoooo_kr/vaultwarden-1360-what-changed-what-to-patch-and-how-to-upgrade-without-losing-your-vault-3gd2