Files
Baradb/docs/fa/security.md
T

3.1 KiB

راهنمای امنیت

رمزنگاری TLS/SSL

BaraDB از TLS 1.3 برای تمام پروتکل‌ها (باینری، HTTP، WebSocket) پشتیبانی می‌کند. اگر گواهی ارائه نشود، سرور در هنگام راه‌اندازی یک گواهی خودامضا تولید می‌کند.

استفاده از گواهی‌های سفارشی

BARADB_TLS_ENABLED=true \
BARADB_CERT_FILE=/etc/baradb/server.crt \
BARADB_KEY_FILE=/etc/baradb/server.key \
./build/baradadb

تولید گواهی‌های خودامضا

openssl req -x509 -newkey rsa:4096 -keyout server.key -out server.crt \
  -days 365 -nodes -subj "/CN=localhost"

Let's Encrypt (تولید)

از certbot استفاده کنید و BaraDB را به فایل‌های تولیدشده هدایت کنید:

sudo certbot certonly --standalone -d db.example.com

BARADB_CERT_FILE=/etc/letsencrypt/live/db.example.com/fullchain.pem \
BARADB_KEY_FILE=/etc/letsencrypt/live/db.example.com/privkey.pem \
./build/baradadb

احراز هویت

احراز هویت مبتنی بر JWT

BaraDB از JWT با امضای HMAC-SHA256 استفاده می‌کند.

فعال‌سازی احراز هویت

BARADB_AUTH_ENABLED=true \
BARADB_JWT_SECRET="$(openssl rand -hex 32)" \
./build/baradadb

ایجاد توکن‌ها

import barabadb/protocol/auth

var am = newAuthManager("your-secret-key")
let token = am.createToken(JWTClaims(
  sub: "user1",
  role: "admin",
  exp: getTime() + 24.hours
))

کنترل دسترسی مبتنی بر نقش

نقش مجوزها
admin دسترسی کامل
write خواندن + نوشتن
read فقط خواندن
monitor فقط معیارها و سلامت

احراز هویت چندعاملی (MFA)

import barabadb/protocol/auth

var am = newAuthManager("secret-key")
let mfaCode = am.generateTOTP("user1")
let valid = am.validateTOTP("user1", mfaCode)

محدودیت نرخ

محدودیت نرخ token-bucket از سوءاستفاده جلوگیری می‌کند:

import barabadb/protocol/ratelimit

var rl = newRateLimiter(
  rlaTokenBucket,
  globalRate = 10000,
  perClientRate = 1000,
  burstSize = 100
)

if not rl.allowRequest("client-ip"):
  return error("محدودیت نرخ تجاوز شده")

امنیت شبکه

آدرس اتصال

به‌صورت پیش‌فرض BaraDB به 127.0.0.1 متصل می‌شود. برای تولید:

BARADB_ADDRESS=0.0.0.0 ./build/baradadb

چک‌لیست امنیتی

  • تغییر رمز JWT پیش‌فرض
  • فعال‌سازی TLS با گواهی‌های معتبر
  • اتصال به رابط‌های خاص
  • فعال‌سازی احراز هویت در تولید
  • پیکربندی محدودیت نرخ
  • فعال‌سازی لاگ حسابرسی
  • رمزنگاری داده در حالت سکون
  • اجرای BaraDB به‌عنوان کاربر غیرroot
  • محدود نگه‌داشتن قوانین فایروال
  • چرخش منظم رمزهای JWT