docs: add multi-language documentation (ru, fa, zh, tr, ar)

This commit is contained in:
2026-05-07 23:42:55 +03:00
parent abb382c419
commit e9d3c7e9de
157 changed files with 14339 additions and 0 deletions
+120
View File
@@ -0,0 +1,120 @@
# راهنمای امنیت
## رمزنگاری TLS/SSL
BaraDB از TLS 1.3 برای تمام پروتکل‌ها (باینری، HTTP، WebSocket) پشتیبانی می‌کند. اگر گواهی ارائه نشود، سرور در هنگام راه‌اندازی یک گواهی خودامضا تولید می‌کند.
### استفاده از گواهی‌های سفارشی
```bash
BARADB_TLS_ENABLED=true \
BARADB_CERT_FILE=/etc/baradb/server.crt \
BARADB_KEY_FILE=/etc/baradb/server.key \
./build/baradadb
```
### تولید گواهی‌های خودامضا
```bash
openssl req -x509 -newkey rsa:4096 -keyout server.key -out server.crt \
-days 365 -nodes -subj "/CN=localhost"
```
### Let's Encrypt (تولید)
از certbot استفاده کنید و BaraDB را به فایل‌های تولیدشده هدایت کنید:
```bash
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 استفاده می‌کند.
#### فعال‌سازی احراز هویت
```bash
BARADB_AUTH_ENABLED=true \
BARADB_JWT_SECRET="$(openssl rand -hex 32)" \
./build/baradadb
```
#### ایجاد توکن‌ها
```nim
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)
```nim
import barabadb/protocol/auth
var am = newAuthManager("secret-key")
let mfaCode = am.generateTOTP("user1")
let valid = am.validateTOTP("user1", mfaCode)
```
## محدودیت نرخ
محدودیت نرخ token-bucket از سوءاستفاده جلوگیری می‌کند:
```nim
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` متصل می‌شود. برای تولید:
```bash
BARADB_ADDRESS=0.0.0.0 ./build/baradadb
```
## چک‌لیست امنیتی
- [ ] تغییر رمز JWT پیش‌فرض
- [ ] فعال‌سازی TLS با گواهی‌های معتبر
- [ ] اتصال به رابط‌های خاص
- [ ] فعال‌سازی احراز هویت در تولید
- [ ] پیکربندی محدودیت نرخ
- [ ] فعال‌سازی لاگ حسابرسی
- [ ] رمزنگاری داده در حالت سکون
- [ ] اجرای BaraDB به‌عنوان کاربر غیرroot
- [ ] محدود نگه‌داشتن قوانین فایروال
- [ ] چرخش منظم رمزهای JWT