مدیریت امن رمزها و کلیدهای API در سرور
رمز داخل کد یا فایل عمومی، شایعترین علت نشت اطلاعات است؛ روش نگهداری امن را بیاموزید.
آخرین بهروزرسانی: ۲۸ مهر ۱۴۰۵ · زمان مطالعه: حدود 3 دقیقه · سطح: کاربردی
- مدیریت امن رمزها و کلیدهای API در سرور
- فایلهای حاوی رمز را پیدا کنید
- نشت رمز را در Git بررسی کنید
چرا این موضوع مهم است؟
موضوع Security یکی از پایههای نگهداری سرور است. رعایت آن باعث پایداری بیشتر، کاهش ریسک امنیتی و صرفهجویی در زمان پشتیبانی میشود.
این راهنما با فرض دسترسی مدیریتی (root یا sudo) نوشته شده و مراحل آن روی یک سرور تازه آزمایش شده است.
پیشنیازها
- دسترسی SSH با کاربر root یا کاربر دارای sudo
- Ubuntu 22.04/24.04 یا Debian 12 (سازگاری با توزیعهای مشابه)
- نسخه پشتیبان از فایلها و دیتابیسهای مهم
راهنمای گامبهگام
گام 1 — فایلهای حاوی رمز را پیدا کنید
فایلهای حاوی رمز را پیدا کنید. این مرحله را با دقت انجام دهید و خروجی دستور را بررسی کنید تا از اعمال درست تغییرات مطمئن شوید.
گام 2 — رمزها را از کد جدا و در .env بگذارید
رمزها را از کد جدا و در .env بگذارید. پس از اجرا، وضعیت سرویس و لاگها را کنترل کنید؛ تغییر بدون بررسی میتواند خطای پنهان ایجاد کند.
گام 3 — مجوز فایل .env را 600 کنید
مجوز فایل .env را 600 کنید. اگر روی چند سرور کار میکنید، این مورد را یکبار روی محیط تست اجرا و سپس روی تولید اعمال کنید.
گام 4 — رمزهای قدیمی را بچرخانید
رمزهای قدیمی را بچرخانید. مقدارهای نمونه را با اطلاعات واقعی سرور خود جایگزین کنید و از اجرای دستور با مقادیر پیشفرض پرهیز کنید.
گام 5 — از مدیر رمز تیمی استفاده کنید
از مدیر رمز تیمی استفاده کنید. برای اطمینان، نتیجه را از یک مسیر دوم (مرورگر، کلاینت یا ابزار مانیتورینگ) هم بررسی کنید.
گام 6 — نشت رمز را در Git بررسی کنید
نشت رمز را در Git بررسی کنید. این کار را در بازه کمترافیک انجام دهید و در صورت نیاز کاربران را از قبل مطلع کنید.
نمونه دستورها
chmod 600 /var/www/app/.env
chown www-data:www-data /var/www/app/.env
git log -p -- .envنکات امنیتی و بهینهسازی
- دسترسیها را حداقلی نگه دارید و فقط پورتها و کاربران لازم را باز بگذارید.
- پیش از هر تغییر بزرگ، نسخه پشتیبان قابل بازیابی تهیه کنید و بازیابی را تست کنید.
- نسخه پکیجها و سیستمعامل را بهروز نگه دارید؛ بسیاری از نفوذها از نسخههای قدیمی شروع میشوند.
خطاهای رایج و راهحل
- اگر سرویس بالا نیامد، ابتدا journalctl و فایل خطای همان سرویس را بخوانید.
- خطای اتصال شبکه را با dig، ping و ss بررسی کنید؛ ممکن است فایروال یا DNS مقصر باشد.
- اگر سرویس بالا نیامد، ابتدا journalctl و فایل خطای همان سرویس را بخوانید.
سؤالات متداول
.env را در Git بگذارم؟
نه؛ فقط نمونه .env.example بدون مقدار واقعی را نگه دارید.
چطور رمزها را بین چند سرور همگام کنم؟
با مدیر رمز یا متغیرهای محیطی سیستم مدیریت Secrets، نه کپی دستی.
میلاد سرور پلنهای اقتصادی سرور مجازی ایران و سرور مجازی آلمان را با آیپی اختصاصی و قیمت شفاف ارائه میکند. برای مقایسه همه کشورها فهرست کامل سرورهای بینالملل را ببینید.
جمعبندی
با رعایت این مراحل، سرویس شما پایدارتر و امنتر خواهد بود؛ اما پایش منظم را فراموش نکنید.