نحوه نصب Hashicorp Vault در اوبونتو ۲۴.۰۴ #
برنامههای مدرن به اطلاعات محرمانه، از جمله کلیدهای API، رمزهای عبور پایگاه داده، گواهیهای TLS و کلیدهای رمزگذاری متکی هستند. این اطلاعات محرمانه وقتی به صورت کدنویسی شده، در فایلهای ساده ذخیره شده یا به صورت ناامن توزیع میشوند، خطرات امنیتی جدی ایجاد میکنند. HashiCorp Vault با ارائه یک راهحل امن و متمرکز برای مدیریت اطلاعات حساس، این چالش را برطرف میکند. این نرمافزار ذخیرهسازی اطلاعات محرمانه، تولید پویای اعتبارنامه، رمزگذاری به عنوان یک سرویس و کنترل دسترسی دقیق را ارائه میدهد.
این مقاله نحوه راهاندازی یک سرور Vault آماده برای اجرا در اوبونتو ۲۴.۰۴ را نشان میدهد. این مقاله نصب Vault از مخزن رسمی HashiCorp، تولید گواهیهای TLS با Let’s Encrypt، پیکربندی Vault برای عملکرد ایمن، مقداردهی اولیه آن با کلیدهای unseal و دسترسی به CLI و رابط کاربری وب را پوشش میدهد.
پیش نیازها #
قبل از شروع، مطمئن شوید که:
- به عنوان یک کاربر sudo غیر ریشه به سرور اوبونتو ۲۴.۰۴ دسترسی داشته باشید.
- یک رکورد دامنه A که به آدرس IP سرور شما اشاره میکند، پیکربندی کنید.
نصب Vault از مخزن HashiCorp #
این بخش به اضافه کردن مخزن رسمی APT شرکت HashiCorp به سیستم شما و نصب Vault میپردازد. HashiCorp مخزن مخصوص به خود را دارد که به شما امکان دسترسی به آخرین نسخههای پایدار را مستقیماً از فروشنده میدهد.
- لیست بستههای خود را بهروزرسانی کنید.console
$ sudo apt update - بستههای مورد نیاز را نصب کنید.console
$ sudo apt install gnupg curl lsb-release -y - کلید GPG شرکت HashiCorp را اضافه کنید. این کلید تأیید میکند که بستهها واقعاً از شرکت HashiCorp میآیند.console
$ curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
- مخزن HashiCorp را به منابع سیستم خود اضافه کنید.console
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
- شاخص بسته را بهروزرسانی کنید.console
$ sudo apt update - والت را نصب کنید.console
$ sudo apt install vault -y - نصب را تأیید کنید.console
$ vault --versionخروجی:
Vault v1.20.4 (55bd8f18c6c84aa89fdede4850a622c57f03bd7e), built 2025-09-23T13:22:38Z - تکمیل خودکار پوسته را برای گاوصندوق فعال کنید.console
$ vault -autocomplete-install - برای اعمال تکمیل خودکار، پوسته خود را مجدداً بارگذاری کنید.console
$ exec $SHELL
پیکربندی دسترسی فایروال #
در این بخش، پورتهای لازم را در فایروال باز کنید تا Vault قابل دسترسی باشد. مراحل پیکربندی UFW برای دسترسی HTTPS به Vault به شرح زیر است.
- دسترسی HTTPS را روی پورت ۸۲۰۰ که رابط کاربری وب Vault در آن اجرا میشود، مجاز کنید.console
$ sudo ufw allow ۸۲۰۰/tcp
- پورت ۸۰ را موقتاً باز کنید تا Certbot بتواند گواهیهای TLS صادر کند.console
$ sudo ufw allow ۸۰/tcp
- فایروال را دوباره بارگذاری کنید.console
$ sudo ufw reload
تولید گواهیهای TLS با Let’s Encrypt #
این بخش به دریافت گواهینامههای TLS با استفاده از Certbot میپردازد. برای دریافت گواهینامههای رایگان از Let’s Encrypt، Certbot را نصب و استفاده کنید.
- Certbot را نصب کنید.console
$ sudo apt install certbot -y - برای دامنه خود یک گواهی دریافت کنید. به جای
vault.example.comدامنه واقعی خود و به جای your-your-email@example.comآدرس ایمیل خود را قرار دهید.console$ sudo certbot certonly --standalone -d vault.example.com --non-interactive --agree-tos --email your-email@example.com - پس از دریافت گواهینامههای TLS، قانون پورت ۸۰ را از فایروال خود حذف کنید.console
$ sudo ufw delete allow ۸۰/tcp
- فایروال را دوباره بارگذاری کنید.console
$ sudo ufw reload - یک دایرکتوری برای گواهیهای Vault ایجاد کنید.console
$ sudo mkdir -p /opt/vault/tls - گواهیهای Let’s Encrypt را در دایرکتوری Vault کپی کنید. به جای
vault.example.com، نام دامنه خود را قرار دهید.console$ sudo cp /etc/letsencrypt/live/vault.example.com/fullchain.pem /opt/vault/tls/cert.pem - کلید خصوصی را کپی کنید.
vault.example.comرا با نام دامنه خود جایگزین کنید.console$ sudo cp /etc/letsencrypt/live/vault.example.com/privkey.pem /opt/vault/tls/key.pem - مالکیت صحیح را برای گواهیها تعیین کنید.console
$ sudo chown -R vault:vault /opt/vault/tls - مجوزهای محدودکنندهای را روی فایلهای گواهی تنظیم کنید.console
$ sudo chmod ۶۰۰ /opt/vault/tls/cert.pem /opt/vault/tls/key.pem
- یک اسکریپت تمدید خودکار گواهینامه ایجاد کنید.console
$ sudo tee /etc/letsencrypt/renewal-hooks/deploy/vault.sh > /dev/null << 'EOF' #!/bin/bash cp /etc/letsencrypt/live/vault.example.com/fullchain.pem /opt/vault/tls/cert.pem cp /etc/letsencrypt/live/vault.example.com/privkey.pem /opt/vault/tls/key.pem chown -R vault:vault /opt/vault/tls chmod 600 /opt/vault/tls/* systemctl reload vault EOF
- اسکریپت تمدید را قابل اجرا کنید.console
$ sudo chmod +x /etc/letsencrypt/renewal-hooks/deploy/vault.sh
پیکربندی Vault برای محیط عملیاتی #
🇫🇷 سرور فرانسه 🇫🇷
این بخش پیکربندی Vault برای استفاده در محیط عملیاتی را پوشش میدهد. فایل پیکربندی، نحوه عملکرد Vault، از جمله backend ذخیرهسازی، شنودکنندگان شبکه و تنظیمات امنیتی را کنترل میکند.
- از فایل پیکربندی اصلی پشتیبان تهیه کنید.console
$ sudo cp /etc/vault.d/vault.hcl /etc/vault.d/vault.hcl.backup - یک پیکربندی عملیاتی ایجاد کنید.
vault.example.comرا با دامنه واقعی خود جایگزین کنید.console$ sudo tee /etc/vault.d/vault.hcl > /dev/null << 'EOF' # Vault production configuration # Enable the web UI ui = true # Disable memory locking (set to false if you have limited RAM) disable_mlock = true # Storage backend - uses local filesystem storage "file" { path = "/opt/vault/data" } # HTTPS listener listener "tcp" { address = "0.0.0.0:8200" tls_cert_file = "/opt/vault/tls/cert.pem" tls_key_file = "/opt/vault/tls/key.pem" # Enforce minimum TLS version tls_min_version = "tls12" # Use secure cipher suites tls_cipher_suites = "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256" # Do NOT require client certificates tls_require_and_verify_client_cert = "false" tls_disable_client_certs = "true" } # Advertise the correct address to other Vault nodes api_addr = "https://vault.example.com:8200" cluster_addr = "https://vault.example.com:8201" EOF
- سرویس Vault را طوری فعال کنید که هنگام بوت شدن سیستم شروع به کار کند.console
$ sudo systemctl enable vault
- سرویس Vault را با پیکربندی جدید مجدداً راهاندازی کنید.console
$ sudo systemctl restart vault - بررسی کنید که Vault با موفقیت شروع به کار کرده باشد.console
$ sudo systemctl status vaultخروجی باید نشان دهد:
● vault.service - "HashiCorp Vault - A tool for managing secrets" Loaded: loaded (/usr/lib/systemd/system/vault.service; enabled; preset: enabled) Active: active (running) since Thu 2025-10-02 22:15:08 UTC; 3s ago ...
محیط Vault را تنظیم کنید #
این بخش نحوه پیکربندی متغیرهای محیطی را نشان میدهد که به رابط خط فرمان (CLI) میگویند سرور Vault شما را کجا پیدا کند.
- متغیر محیطی آدرس Vault را تنظیم کنید.
vault.example.comرا با دامنه خود جایگزین کنید.console$ echo 'export VAULT_ADDR="https://vault.example.com:8200"' >> ~/.bashrc
- پیکربندی پوسته خود را مجدداً بارگذاری کنید.console
$ source ~/.bashrc
- بررسی کنید که متغیر به درستی تنظیم شده باشد.console
$ echo $VAULT_ADDR
خروجی:
https://vault.example.com:8200 - اتصال به Vault را آزمایش کنید.console
$ vault statusخروجی:
Key Value --- ----- Seal Type shamir Initialized false Sealed true
مقداردهی اولیه و باز کردن مهر و موم گاوصندوق #
این بخش به مقداردهی اولیه Vault برای تولید کلیدهای رمزگذاری و باز کردن قفل آن برای عملیاتی شدن میپردازد. Vault در حالت قفلشده شروع به کار میکند، جایی که میداند دادههایش کجا ذخیره شدهاند اما نمیتواند آنها را رمزگشایی کند.
درک فرآیند #
وقتی Vault را مقداردهی اولیه میکنید، موارد زیر را ایجاد میکند:
- Master key: تمام اسرار شما را رمزگذاری میکند
- Unseal keys: بخشهایی از کلید اصلی با استفاده از الگوریتم اشتراکگذاری مخفی شمیر جدا میشوند
- Root token: دسترسی اولیه شما به عنوان مدیر
تنظیمات پیشفرض ۵ کلید با آستانه ۳ ایجاد میکند. این یعنی برای باز کردن قفل Vault به ۳ کلید از ۵ کلید نیاز دارید. این کار مانع از دسترسی کامل هر فرد به آن میشود.
- Vault را با پیکربندی پیشفرض راهاندازی کنید.console
$ vault operator initخروجی:
Unseal Key 1: nk+b+gZRPzUcTx5yDaY7Rxv26m/JqPuuhlYKVLxqvcLV Unseal Key 2: kXi4dk1pDpTj0efjPekMMEnqMFIGVbbIECyAbYXu4XIi Unseal Key 3: jPyTlTCeKAMHu16+EYHc6FcmqW+hQ8B9ZN02vQ8VnOmd Unseal Key 4: 5rvMMnEvcIQdcAtKd+UxQX7FqsDbMEtuHqRijFlyjR9l Unseal Key 5: igcpq67F04IhxzAFQ/i+VbC5+vPSRNY5Zsg/xHu+qgID Initial Root Token: hvs.4H1RRGrHO8cbu2QumVuXUfOV ...نکتهاین کلیدها را در مکانهای جداگانه و امن ذخیره کنید، زیرا دیگر هرگز آنها را نخواهید دید.
- با اولین کلید، شروع به باز کردن قفل Vault کنید. شما باید این دستور را ۳ بار با ۳ کلید مختلف اجرا کنید.console
$ vault operator unsealوقتی از شما خواسته شد، اولین کلید را وارد کنید. خروجی، پیشرفت کار را نشان میدهد:
... Unseal Progress 1/3 ... - با کلید دوم ادامه دهید.console
$ vault operator unsealخروجی:
... Unseal Progress 2/3 ... - برای تکمیل باز کردن قفل از کلید سوم استفاده کنید.console
$ vault operator unsealوقتی موفق شدید، خواهید دید:
... Sealed false ...نکتهاگر باز کردن قفل ناموفق بود، مطمئن شوید که از ۳ کلید مختلف استفاده میکنید و نه کلیدهای یکسان.
- با توکن ریشه وارد شوید.console
$ vault loginدر صورت درخواست، توکن ریشه اولیه (Initial Root Token) را وارد کنید.
به رابط کاربری وب Vault دسترسی پیدا کنید #
این بخش نحوه دسترسی به رابط وب Vault را نشان میدهد که روشی بصری و شهودی برای مدیریت اسرار در کنار رابط خط فرمان (CLI) فراهم میکند.
- این بخش نحوه دسترسی به رابط وب Vault را نشان میدهد که روشی بصری و شهودی برای مدیریت اسرار در کنار رابط خط فرمان (CLI) فراهم میکند.
https://vault.example.com:8200 - صفحه ورود به سیستم Vault را مشاهده خواهید کرد. Token را به عنوان روش انتخاب کنید.
- توکن ریشه خود را وارد کنید و روی Sign In کلیک کنید.
- داشبورد، وضعیت گنجینه شما و موتورهای اسرار موجود را نشان میدهد.
در نهایت #
اکنون شما یک نصب آماده برای تولید Vault روی اوبونتو ۲۴.۰۴ با رمزگذاری مناسب TLS و دسترسی به رابط خط فرمان (CLI) و وب دارید. سرور Vault شما آماده است تا اطلاعات محرمانه زیرساخت شما را به طور ایمن ذخیره و مدیریت کند. برای اطلاعات بیشتر به مستندات Vault مراجعه کنید.