نویسنده: نوید نقدی
تاریخ انتشار: 4 اکتبر 2021 - بروز رسانی در تاریخ: 6 جولای 2026
0 826
امن سازی سرور: چک لیست جامع لینوکس و ویندوز

امن سازی سرور: چک لیست جامع لینوکس و ویندوز

2 امتیاز

امن سازی سرور یعنی مجموعه ای از تنظیمات پایه که بلافاصله پس از تحویل سرور انجام میدهید تا سرور در برابر حملات رایج مقاوم و برای بهره برداری آماده شود. یک سرور تازه با تنظیمات پیش فرض، هدف آسانی برای حملات خودکار اینترنتی است؛ این چک لیست کمک میکند از همان دقیقه اول امن شروع کنید، فرقی نمیکند سیستم عامل شما لینوکس باشد یا ویندوز.

مفهوم هر گام در همه سیستم عامل ها یکسان است، اما دستورها و ابزارها فرق دارند. به همین دلیل در هر گام، هم دستور لینوکس (اوبونتو، دبیان، آلمالینوکس و سنت او اس) و هم روش ویندوز سرور را کنار هم آورده ایم تا یک مرجع واحد برای امن سازی سرور داشته باشید.

این چک لیست همیشه سبز است؛ اصول آن سال ها ثابت میماند و فقط جزئیات دستورها ممکن است کمی تغییر کند. چه سرور مجازی تازه گرفته باشید و چه یک سرور اختصاصی، همین ترتیب را دنبال کنید.

این مقاله در یک نگاه
  • مفهوم امن سازی در لینوکس و ویندوز یکی است، فقط ابزارها فرق دارند
  • مهم ترین لایه، امن سازی دسترسی راه دور است: SSH در لینوکس و RDP در ویندوز
  • فایروال و دفاع خودکار در برابر حملات ورود را حتما فعال کنید

چرا امن سازی سرور مهم است؟

لحظه ای که یک سرور به اینترنت وصل میشود، ربات های خودکار شروع به آزمایش ورود به آن میکنند. این ربات ها در لینوکس پورت SSH و کاربر روت را هدف میگیرند و در ویندوز سراغ پورت RDP و حساب Administrator میروند و هزاران رمز را در دقیقه امتحان میکنند. اگر سرور را با تنظیمات پیش فرض رها کنید، فقط مسئله زمان است تا یکی از این تلاش ها موفق شود.

امن سازی سرور دقیقا همین مسیرهای ساده حمله را می بندد و سرور شما را از یک هدف آسان به یک هدف سخت تبدیل میکند. نکته مهم این است که این کار را قبل از نصب هر سرویس یا انتقال داده انجام دهید، چون امن سازی یک کار یک بار اما با اثری دائمی است. چند دقیقه وقت گذاشتن در ابتدا، شما را از دردسرهای بزرگ بعدی مثل آلوده شدن سرور یا از دست رفتن داده ها نجات میدهد.

گام اول: به روزرسانی سیستم

اولین کار روی هر سرور تازه، به روزرسانی کامل سیستم است تا وصله های امنیتی منتشرشده اعمال شوند. بسته ها و اجزای قدیمی یکی از رایج ترین راه های نفوذ هستند.

# لینوکس - اوبونتو و دبیان
sudo apt update && sudo apt upgrade -y

# لینوکس - آلمالینوکس و سنت او اس
sudo dnf update -y

روی ویندوز سرور: به روزرسانی از مسیر Settings و سپس Windows Update انجام میشود. برای انجام خودکار با PowerShell میتوانید از ماژول رسمی استفاده کنید:

# ویندوز - PowerShell با دسترسی Administrator
Install-Module PSWindowsUpdate -Force
Install-WindowsUpdate -AcceptAll -AutoReboot

بعد از به روزرسانی، اگر هسته سیستم یا اجزای حیاتی به روز شده باشند، یک بار سرور را ری استارت کنید تا تغییرات کامل اعمال شوند.

گام دوم: مدیریت کاربر و محدود کردن حساب مدیر پیش فرض

کار مستقیم با حساب مدیر پیش فرض خطرناک است، چون این حساب برای همه شناخته شده است و هدف اول حملات قرار میگیرد. راه حل در هر دو سیستم عامل یکی است: یک حساب مدیر جدید بسازید و حساب پیش فرض را محدود یا تغییر نام دهید.

# لینوکس - ساخت کاربر و دادن دسترسی مدیر
sudo adduser fama
sudo usermod -aG sudo fama # اوبونتو و دبیان
sudo usermod -aG wheel fama # آلمالینوکس و سنت او اس

روی ویندوز سرور: یک حساب مدیر جدید بسازید، سپس حساب Administrator پیش فرض را تغییر نام دهید یا غیرفعال کنید. حتما اول حساب جدید را تست کنید تا از سرور بیرون نمانید.

# ویندوز - PowerShell
New-LocalUser -Name "fama" -Password (Read-Host -AsSecureString)
Add-LocalGroupMember -Group "Administrators" -Member "fama"

# تغییر نام حساب Administrator پیش فرض
Rename-LocalUser -Name "Administrator" -NewName "fama-admin"

گام سوم: امن سازی دسترسی راه دور (SSH و RDP)

دسترسی راه دور دروازه اصلی ورود به سرور است و به همین دلیل مهم ترین لایه در امن سازی سرور محسوب میشود. در لینوکس این دروازه SSH و در ویندوز RDP است؛ هر دو باید سخت شوند.

امن سازی SSH در لینوکس

سه تغییر کلیدی بیشترین اثر را دارند: ورود با کلید به جای رمز، بستن ورود مستقیم روت و تغییر پورت پیش فرض. اگر با مفهوم SSH آشنا نیستید، ابتدا راهنمای کامل اتصال و کار با SSH را ببینید. ابتدا روی دستگاه خودتان یک کلید بسازید و آن را به سرور منتقل کنید:

ssh-keygen -t ed25519 -C "fama@laptop"
ssh-copy-id fama@YOUR_SERVER_IP

سپس فایل پیکربندی SSH را باز کنید و پورت را به یک عدد دلخواه تغییر دهید، ورود روت و رمز عبور را ببندید و سرویس را ری استارت کنید:

sudo nano /etc/ssh/sshd_config
# این مقادیر را تنظیم کنید:
Port 2222
PermitRootLogin no
PasswordAuthentication no

sudo systemctl restart ssh # در بعضی توزیعها sshd

برای سخت گیری بیشتر میتوانید با AllowUsers فقط به کاربر مشخصی اجازه ورود بدهید و برای جزئیات فنی به مستندات رسمی OpenSSH مراجعه کنید.

امن سازی RDP در ویندوز

در ویندوز، RDP معادل SSH است و همان اصول را دارد: احراز هویت قوی، تغییر پورت و محدود کردن دسترسی. مهم ترین کار، فعال بودن NLA یعنی احراز هویت در سطح شبکه است که قبل از باز شدن نشست، هویت کاربر را بررسی میکند.

# ویندوز - فعال کردن NLA
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name 'UserAuthentication' -Value 1

# تغییر پورت پیش فرض RDP (مثلا به 3390)
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name 'PortNumber' -Value 3390
Restart-Service TermService -Force

علاوه بر این، اگر آی پی ثابت دارید، بهتر است در فایروال ویندوز دسترسی RDP را فقط به همان آی پی محدود کنید تا کسی جز شما حتی نتواند به پورت وصل شود.

قبل از بستن ورود پیش فرض یا تغییر پورت، حتما یک نشست باز نگه دارید و ورود با حساب و روش جدید را در یک اتصال دیگر تست کنید.
 اگر تنظیمات اشتباه باشد و نشست فعلی را ببندید، ممکن است کاملا از سرور قفل بیرون شوید. در این حالت کنسول مدیریت سرور تنها راه بازگشت است.

گام چهارم: پیکربندی فایروال

فایروال تعیین میکند چه پورت هایی از بیرون قابل دسترسی باشند و بقیه را می بندد. بعد از تغییر پورت دسترسی راه دور، حتما همان پورت جدید را در فایروال باز کنید، وگرنه دسترسی خود را از دست میدهید.

# لینوکس - اوبونتو و دبیان با UFW
sudo ufw allow 2222/tcp
sudo ufw allow http
sudo ufw allow https
sudo ufw enable

# لینوکس - آلمالینوکس و سنت او اس با firewalld
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --permanent --add-service=http --add-service=https
sudo firewall-cmd --reload

روی ویندوز سرور: فایروال Windows Defender را روشن نگه دارید و برای پورت جدید RDP یک قانون ورودی بسازید. با PowerShell:

# ویندوز - روشن نگه داشتن فایروال و افزودن قانون
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True
New-NetFirewallRule -DisplayName "RDP-Custom" -Direction Inbound -Protocol TCP -LocalPort 3390 -Action Allow

قاعده کلی در هر دو سیستم عامل یکی است: فقط پورت های موردنیاز سرویس هایتان را باز بگذارید و بقیه را بسته نگه دارید. هر پورت باز یک مسیر بالقوه برای حمله است.

گام پنجم: دفاع خودکار در برابر حملات ورود

حتی با تنظیمات درست، ربات ها به تلاش برای ورود ادامه میدهند. یک لایه دفاع خودکار، آی پی مهاجم را بعد از چند تلاش ناموفق مسدود میکند. ابزار این کار در دو سیستم عامل متفاوت است اما هدف یکی است.

روی لینوکس: ابزار Fail2ban لاگ ورودها را زیر نظر میگیرد و هر آی پی که چند بار رمز اشتباه بزند را به صورت خودکار مسدود میکند.

sudo apt install fail2ban -y
sudo systemctl enable --now fail2ban

روی ویندوز: معادل این کار، سیاست قفل شدن حساب (Account Lockout Policy) است که بعد از چند تلاش ناموفق، حساب را برای مدتی قفل میکند.

# ویندوز - قفل حساب بعد از 5 تلاش ناموفق
net accounts /lockoutthreshold:5 /lockoutduration:15 /lockoutwindow:15

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

گام ششم: سخت سازی و آماده سازی نهایی

بعد از لایه های اصلی، چند تنظیم پایانی سطح امنیت و پایداری سرور را کامل میکند. این موارد در هر دو سیستم عامل قابل اجرا هستند و بخشی جدایی ناپذیر از امن سازی سرور به حساب می آیند. هر کدام کوچک به نظر میرسند اما در مجموع تفاوت واقعی در پایداری و امنیت ایجاد میکنند.

غیرفعال کردن سرویس های بی استفاده

هر سرویسی که در حال اجراست یک سطح حمله بالقوه است. سرویس هایی که نیاز ندارید را شناسایی و غیرفعال کنید تا سطح حمله کاهش پیدا کند.

# لینوکس
sudo systemctl list-unit-files --type=service --state=enabled
sudo systemctl disable --now SERVICE_NAME

# ویندوز - PowerShell
Get-Service | Where-Object {$_.Status -eq "Running"}
Set-Service -Name "SERVICE_NAME" -StartupType Disabled

تنظیم منطقه زمانی و همگام سازی ساعت

ساعت دقیق برای درستی لاگ ها و بررسی رخدادهای امنیتی ضروری است. منطقه زمانی را تنظیم و همگام سازی خودکار ساعت را فعال کنید.

# لینوکس
sudo timedatectl set-timezone Asia/Tehran
sudo timedatectl set-ntp true

# ویندوز
tzutil /s "Iran Standard Time"
w32tm /resync

بررسی لاگ ورود و وضعیت سرور

بعد از تنظیمات، خوب است بدانید تلاش های ورود ناموفق را کجا ببینید. بررسی دوره ای لاگ ها نشان میدهد آیا کسی در حال آزمایش ورود به سرور شماست یا نه.

# لینوکس
sudo tail -n 50 /var/log/auth.log # اوبونتو و دبیان
sudo journalctl -u sshd --no-pager | tail # آلمالینوکس و سنت او اس

# ویندوز - رخداد 4625 یعنی ورود ناموفق
Get-WinEvent -FilterHashtable @{LogName='Security';Id=4625} -MaxEvents 20

پشتیبان گیری و دسترسی اضطراری

پیش از بهره برداری، یک مسیر بازگشت برای خودتان بسازید. اگر ارائه دهنده امکان اسنپ شات (Snapshot) میدهد، یک نسخه از وضعیت سالم سرور بگیرید تا در صورت خرابی سریع بازگردید. همچنین مطمئن شوید به کنسول مدیریت سرور (مانند VNC یا کنسول ارائه دهنده) دسترسی دارید؛ این کنسول مستقل از SSH و RDP کار میکند و اگر روزی قفل بیرون ماندید، تنها راه ورود شماست.

چک لیست نهایی امن سازی سرور

پیش از راه اندازی سرویس اصلی، این جمع بندی سریع را مرور کنید تا مطمئن شوید چیزی جا نمانده است. این چک لیست برای لینوکس و ویندوز یکسان است.

1

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

سیستم به روز شد و یک حساب مدیر جدید به جای حساب پیش فرض ساخته شد.

2

دسترسی راه دور

SSH یا RDP سخت شد: احراز هویت قوی، بستن حساب پیش فرض و تغییر پورت.

3

فایروال و دفاع خودکار

فایروال با پورت های لازم فعال شد و دفاع خودکار در برابر حملات ورود برقرار شد.

4

سخت سازی نهایی

سرویس های بی استفاده بسته، ساعت تنظیم، و مسیر پشتیبان و دسترسی اضطراری آماده شد.

برای عمیق تر شدن، مطلب امنیت سرور را هم بخوانید که فراتر از تنظیمات اولیه به مانیتورینگ و سخت سازی سرویس ها میپردازد.

 

جمع بندی: امن سازی سرور یک کار یک بار و سریع است که تفاوت بزرگی در امنیت طولانی مدت ایجاد میکند. با به روزرسانی سیستم، ساخت حساب مدیر جدید، امن سازی SSH یا RDP، فایروال و دفاع خودکار، سرور تازه شما در هر سیستم عاملی از یک هدف آسان به یک زیرساخت مقاوم تبدیل میشود.

مهم ترین توصیه این است که این گام ها را پیش از هر کار دیگری و با دقت، به خصوص در بخش دسترسی راه دور، انجام دهید تا هم امن و هم بدون قفل شدن، سرور را آماده بهره برداری کنید.

سرور امن را از فاماسرور شروع کن

زیرساخت پایدار برای لینوکس و ویندوز؛ بقیه اش با ما.

اشتراک گذاری
+

مهم ترین گام در امن سازی سرور کدام است؟

امن سازی دسترسی راه دور؛ یعنی SSH در لینوکس و RDP در ویندوز. احراز هویت قوی، بستن حساب پیش فرض و تغییر پورت بیشترین اثر را در کاهش حملات دارند.

+

امن سازی سرور ویندوز با لینوکس چه فرقی دارد؟

مفهوم گام ها یکسان است اما ابزارها فرق دارند: در ویندوز به جای SSH از RDP، به جای UFW از فایروال ویندوز، و به جای Fail2ban از سیاست قفل حساب استفاده میشود.

+

آیا تغییر پورت دسترسی راه دور واقعا امنیت را بالا میبرد؟

تغییر پورت به تنهایی امنیت کامل نمی آورد، اما بخش بزرگی از حملات خودکار که فقط پورت پیش فرض را هدف میگیرند حذف میشوند. این کار را در کنار احراز هویت قوی و فایروال انجام دهید.

+

اگر از سرور قفل بیرون بمانم چه کنم؟

تا وقتی ورود با حساب و روش جدید را در یک نشست دیگر تست نکرده اید، نشست فعلی را نبندید. اگر قفل شدید، معمولا از کنسول مدیریت سرور (VNC یا کنسول ارائه دهنده) میتوانید دوباره وارد شوید.

+

این چک لیست برای سرور مجازی است یا اختصاصی؟

هر دو. اصول امن سازی سرور برای سرور مجازی و اختصاصی و برای هر دو سیستم عامل لینوکس و ویندوز یکسان است.

مقالات مرتبط این مطلب پیشنهاد می شود