دانشنامه مارال هاست دانشنامه مارال هاست
  • صفحه اصلی
  • مقالات
    • هاست اشتراکی
    • دامنه
    • سرور مجازی
    • کنترل پنل سی‌پنل
    • کنترل پنل پلسک
    • کنترل پنل دایرکت ادمین
    • ایمیل
    • CloudLinux
    • Cloudflare
  • تماس با ما
دانشنامه مارال هاست دانشنامه مارال هاست
دانشنامه مارال هاست دانشنامه مارال هاست
  • صفحه اصلی
  • مقالات
    • هاست اشتراکی
    • دامنه
    • سرور مجازی
    • کنترل پنل سی‌پنل
    • کنترل پنل پلسک
    • کنترل پنل دایرکت ادمین
    • ایمیل
    • CloudLinux
    • Cloudflare
  • تماس با ما
امنیت
  • Folder icon closed Folder open iconCIA Triad چیست؟ آشنایی با سه اصل اساسی امنیت اطلاعات
  • Folder icon closed Folder open iconAttack Surface چیست؟ آشنایی با سطح حمله در امنیت سایبری
  • Folder icon closed Folder open iconThreat چیست؟ آشنایی با مفهوم تهدید در امنیت سایبری
  • Folder icon closed Folder open iconVulnerability چیست؟ آشنایی با آسیب‌پذیری در امنیت سایبری
  • Folder icon closed Folder open iconExploit چیست؟ آشنایی با مفهوم اکسپلویت در امنیت سایبری
  • Folder icon closed Folder open iconRisk چیست؟ آشنایی با مفهوم ریسک در امنیت سایبری
  • Folder icon closed Folder open iconCVE چیست؟ آشنایی با سیستم شماره‌گذاری آسیب‌پذیری‌های امنیتی
  • Folder icon closed Folder open iconCVSS چیست؟ آشنایی با سیستم امتیازدهی آسیب‌پذیری‌های امنیتی
  • Folder icon closed Folder open iconبعد از خرید سرور مجازی لینوکس(VPS)، اولین کارهایی که باید انجام دهید
  • Folder icon closed Folder open iconآموزش تغییر Hostname سرور در لینوکس
  • Folder icon closed Folder open iconآموزش تنظیم صحیح Timezone و NTP در لینوکس
  • Folder icon closed Folder open iconآموزش بروزرسانی کامل سیستم‌عامل لینوکس همه توزیع ها
  • Folder icon closed Folder open iconآموزش ساخت کاربر جدید و حذف استفاده روزمره از Root در لینوکس
  • Folder icon closed Folder open iconآموزش تنظیم صحیح sudo در لینوکس
  • Folder icon closed Folder open iconآموزش تنظیم Banner ورود به SSH در لینوکس
  • Folder icon closed Folder open iconآموزش مدیریت Password Policy در لینوکس
  • Folder icon closed Folder open iconآموزش نصب و راه‌اندازی SSH Key Authentication در لینوکس
  • Folder icon closed Folder open iconآموزش غیرفعال کردن ورود مستقیم Root از طریق SSH
  • Folder icon closed Folder open iconتغییر پورت SSH؛ آیا واقعاً امنیت سرور را افزایش می‌دهد؟
  • Folder icon closed Folder open iconآموزش محدود کردن کاربران مجاز SSH در لینوکس
  • Folder icon closed Folder open iconآموزش محدود کردن دسترسی SSH بر اساس IP در لینوکس
  • Folder icon closed Folder open iconآموزش تنظیم LoginGraceTime در SSH؛ کاهش زمان انتظار برای احراز هویت
  • Folder icon closed Folder open iconآموزش تنظیم MaxAuthTries در SSH؛ محدود کردن تعداد تلاش‌های ورود ناموفق
  • Folder icon closed Folder open iconآموزش بررسی لاگ‌های SSH در لینوکس
  • Folder icon closed Folder open iconآموزش عیب‌یابی مشکلات SSH در لینوکس
  • Folder icon closed Folder open iconآموزش کامل UFW در لینوکس؛ راه‌اندازی، مدیریت و ایمن‌سازی فایروال سرور
  • Folder icon closed Folder open iconnftables چیست؟ آشنایی با فایروال نسل جدید لینوکس و جایگزین iptables
  • Folder icon closed Folder open iconآموزش کامل Firewalld در لینوکس
  • Folder icon closed Folder open iconآموزش کامل ConfigServer Security & Firewall (CSF)
  • Folder icon closed Folder open iconآموزش مشاهده Loginهای اخیر در لینوکس
  • Folder icon closed Folder open iconآموزش بررسی پردازش‌های مشکوک در لینوکس
  • Folder icon closed Folder open iconآموزش بررسی Cron Jobهای مشکوک در لینوکس
  • Folder icon closed Folder open iconآموزش کامل Fail2Ban در لینوکس؛ نصب و راه‌اندازی
  • Folder icon closed Folder open iconآموزش نصب RKHunter در لینوکس
  • Folder icon closed Folder open iconآموزش نصب Chkrootkit در لینوکس
  • Folder icon closed Folder open iconآموزش اسکن سرور با RKHunter و Chkrootkit
  • Folder icon closed Folder open iconآموزش نصب، پیکربندی و اسکن سرور با AIDE در لینوکس
  • Folder icon closed Folder open iconآموزش نصب، پیکربندی و استفاده از Auditd در لینوکس
  • Folder icon closed Folder open iconآموزش نصب، اسکن و تحلیل امنیت سرور با Lynis در لینوکس
  • Folder icon closed Folder open iconآموزش نصب، بروزرسانی و اسکن سرور با ClamAV در لینوکس
  • Folder icon closed Folder open iconآموزش Hardening وب‌سرور Nginx
  • Folder icon closed Folder open iconآموزش Hardening وب‌سرور Apache
  • Folder icon closed Folder open iconآموزش Hardening PHP
  • Folder icon closed Folder open iconآموزش Hardening پایگاه داده MySQL
  • Folder icon closed Folder open iconآموزش Hardening سرویس Redis
  • Folder icon closed Folder open iconآموزش Hardening سرویس Docker
  • Folder icon closed Folder open iconآموزش Hardening سرویس FTP
امنیت

آموزش Hardening سرویس Docker

آموزش Hardening سرویس Docker

مقدمه

Docker یکی از محبوب‌ترین پلتفرم‌های Containerization است که برای اجرای برنامه‌ها در محیط‌های ایزوله استفاده می‌شود. اگرچه Docker به‌صورت پیش‌فرض بسیاری از مکانیزم‌های امنیتی لینوکس را به کار می‌گیرد، اما تنظیمات پیش‌فرض آن برای محیط‌های Production کافی نیست.

در صورت پیکربندی نادرست، یک کانتینر آسیب‌پذیر می‌تواند به سایر کانتینرها یا حتی میزبان (Host) آسیب برساند. به همین دلیل، اعمال تنظیمات امنیتی یا Hardening روی Docker و کانتینرها ضروری است.

در این مقاله مهم‌ترین اقدامات برای ایمن‌سازی Docker را بررسی می‌کنیم.


بررسی نسخه Docker

ابتدا نسخه نصب‌شده را بررسی کنید:

docker --version

اطلاعات کامل‌تر:

docker version

بروزرسانی Docker

Ubuntu / Debian:

sudo apt update

sudo apt upgrade docker-ce docker-ce-cli containerd.io

AlmaLinux / Rocky Linux:

sudo dnf update docker-ce

همیشه از نسخه‌های پشتیبانی‌شده استفاده کنید.


اجرای Docker با کاربر غیر Root

به‌طور پیش‌فرض، Docker Daemon با دسترسی Root اجرا می‌شود. از ورود مستقیم Root برای مدیریت روزمره خودداری کنید و از یک کاربر دارای دسترسی مناسب استفاده کنید.

در صورت نیاز:

sudo usermod -aG docker username

سپس یک‌بار از حساب کاربری خارج و دوباره وارد شوید.

توجه داشته باشید که عضویت در گروه docker تقریباً معادل دسترسی Root است؛ فقط کاربران مورد اعتماد را به این گروه اضافه کنید.


استفاده از Rootless Mode

در صورت امکان، Docker را در حالت Rootless اجرا کنید تا وابستگی به کاربر Root کاهش یابد.

بررسی راه‌اندازی:

docker info

در خروجی می‌توانید وضعیت Rootless را بررسی کنید.


عدم استفاده از کانتینرهای Privileged

از اجرای کانتینر با گزینه زیر خودداری کنید:

docker run --privileged

این گزینه تقریباً تمام محدودیت‌های امنیتی کانتینر را حذف می‌کند.


حذف Capabilityهای غیرضروری

به‌جای اعطای دسترسی کامل، Capabilityهای اضافی را حذف کنید.

نمونه:

docker run --cap-drop ALL

در صورت نیاز فقط Capabilityهای ضروری را اضافه کنید.


جلوگیری از اجرای کانتینر با Root

در Dockerfile:

USER appuser

یا هنگام اجرا:

docker run --user 1000:1000

فعال کردن Read-only Filesystem

در صورت امکان:

docker run --read-only

این گزینه از تغییر فایل‌های سیستم داخل کانتینر جلوگیری می‌کند.


محدود کردن منابع

برای جلوگیری از مصرف بیش از حد منابع:

docker run \
--memory=512m \
--cpus=1

استفاده از Imageهای معتبر

همیشه Imageها را از منابع معتبر مانند:

  • Docker Official Images
  • Red Hat
  • Canonical
  • Bitnami

دریافت کنید.

از اجرای Imageهای ناشناس خودداری کنید.


اسکن آسیب‌پذیری Imageها

Docker Scout:

docker scout quickview image_name

یا ابزارهایی مانند:

  • Trivy
  • Grype

برای شناسایی آسیب‌پذیری‌ها استفاده کنید.


بروزرسانی Imageها

Imageها را به‌صورت دوره‌ای بروزرسانی کنید:

docker pull image_name

حذف Imageهای بلااستفاده

docker image prune

حذف همه Imageهای بلااستفاده:

docker image prune -a

حذف Containerهای بلااستفاده

docker container prune

حذف Volumeهای بلااستفاده

docker volume prune

حذف Networkهای بلااستفاده

docker network prune

محدود کردن Port Mapping

به‌جای:

-p 80:80

در صورت امکان فقط روی Localhost منتشر کنید:

-p 127.0.0.1:8080:80

استفاده از شبکه اختصاصی

به‌جای شبکه پیش‌فرض:

docker network create app-network

بررسی کانتینرهای در حال اجرا

docker ps

بررسی همه کانتینرها:

docker ps -a

بررسی لاگ‌ها

docker logs container_name

بررسی تنظیمات امنیتی

docker inspect container_name

فعال کردن Restart Policy

docker run --restart unless-stopped

محافظت از Docker Socket

فایل:

/var/run/docker.sock

فقط باید در اختیار کاربران مجاز باشد.

بررسی سطح دسترسی:

ls -l /var/run/docker.sock

هرگز این Socket را بدون احراز هویت در اختیار کانتینرها یا کاربران غیرمجاز قرار ندهید.


بررسی وضعیت سرویس

sudo systemctl status docker

تست امنیت

پس از اعمال تنظیمات، موارد زیر را بررسی کنید:

  • کانتینرها با کاربر غیر Root اجرا می‌شوند.
  • از حالت Privileged استفاده نشده است.
  • منابع محدود شده‌اند.
  • فقط پورت‌های موردنیاز منتشر شده‌اند.
  • Imageها بروزرسانی شده‌اند.
  • Docker Socket محافظت شده است.

بهترین روش‌ها

  • Docker را همواره بروزرسانی کنید.
  • فقط از Imageهای معتبر استفاده کنید.
  • کانتینرها را با کاربر غیر Root اجرا کنید.
  • از Rootless Mode در صورت امکان استفاده کنید.
  • Capabilityهای اضافی را حذف کنید.
  • منابع CPU و RAM را محدود کنید.
  • Imageها را به‌صورت منظم اسکن کنید.
  • Docker Socket را محافظت کنید.
  • از شبکه‌های اختصاصی برای ارتباط بین کانتینرها استفاده کنید.

اشتباهات رایج

  • اجرای کانتینر با --privileged
  • استفاده از کاربر Root داخل کانتینر
  • باز بودن پورت‌های غیرضروری
  • استفاده از Imageهای قدیمی یا ناشناس
  • عدم محدود کردن منابع
  • Mount کردن فایل docker.sock داخل کانتینر بدون نیاز
  • عدم اسکن امنیتی Imageها

چک‌لیست

پس از Hardening، موارد زیر را بررسی کنید:

  • Docker بروزرسانی شده است.
  • کانتینرها با کاربر غیر Root اجرا می‌شوند.
  • حالت Privileged غیرفعال است.
  • Capabilityهای غیرضروری حذف شده‌اند.
  • منابع CPU و RAM محدود شده‌اند.
  • Imageها از منابع معتبر تهیه شده‌اند.
  • Docker Socket محافظت شده است.
  • کانتینرها و Imageهای بلااستفاده حذف شده‌اند.

جمع‌بندی

Hardening Docker یکی از مهم‌ترین اقدامات برای افزایش امنیت زیرساخت‌های مبتنی بر کانتینر است. با اجرای کانتینرها با کاربر غیر Root، حذف Capabilityهای اضافی، محدود کردن منابع، استفاده از Imageهای معتبر، اسکن منظم آسیب‌پذیری‌ها و محافظت از Docker Socket، می‌توان احتمال نفوذ و سوءاستفاده از محیط Docker را به میزان قابل توجهی کاهش داد.

برای دستیابی به امنیت بیشتر، این تنظیمات را در کنار Hardening سیستم‌عامل، فایروال، مانیتورینگ لاگ‌ها و بروزرسانی منظم Docker و Imageها اجرا کنید.

کیان پور

هنوز نیاز به کمک دارید؟

آیا سوالی دارید؟

آیا این مقاله برای شما مفید بود؟ بله خیر

مطالب اخیراً بازدیدشده

  • مدیریت فایل و پوشه (file & directory management) در لینوکس
  • آشنایی با Windows Admin Center؛ مدیریت ویندوز سرور از طریق مرورگر
  • تفاوت Windows Server با Windows معمولی
  • تغییر دامنه اصلی هاست
  • آموزش بررسی etc/resolv.conf/ و عیب‌یابی مشکلات DNS در لینوکس
  • آموزش کانفیگ صحیح exim
  • مشاهده بیشتر

نظرات خود را بنویسید... لغو پاسخ

اشتراک گذاری این مقاله

آموزش Hardening سرویس Docker

کپی کردن لینک

Clipboard Icon

جدیدترین مقالات

آموزش نصب و راه‌اندازی RustDesk Server با Docker
آموزش نصب و راه‌اندازی RustDesk Server با Docker
2 minutes جولای 2, 2026
آموزش نصب و راه‌اندازی Matrix Synapse + Element Web + Coturn با Docker روی ...
4 minutes جولای 2, 2026
CXS چیست و چگونه کار می‌کند
1 minute می 3, 2026
ساخت سرور چت المنت بروی لینوکس
5 minutes آوریل 25, 2026
Geo Routing و Geo DNS
2 minutes آوریل 22, 2026

تقویم

آگوست 2026
شیدسچپج
1234567
891011121314
15161718192021
22232425262728
293031 
« جولای    

عضویت

جدیدترین پست‌ها

آموزش نصب و راه‌اندازی RustDesk Server با Docker
آموزش نصب و راه‌اندازی RustDesk Server با Docker
2 minutes جولای 2, 2026
آموزش نصب و راه‌اندازی Matrix Synapse + Element Web + Coturn با Docker روی Ubuntu 24.04
4 minutes جولای 2, 2026
CXS چیست و چگونه کار می‌کند
1 minute می 3, 2026
ساخت سرور چت المنت بروی لینوکس
5 minutes آوریل 25, 2026
Geo Routing و Geo DNS
2 minutes آوریل 22, 2026

سلام