دانشنامه مارال هاست دانشنامه مارال هاست
  • صفحه اصلی
  • مقالات
    • هاست اشتراکی
    • دامنه
    • سرور مجازی
    • کنترل پنل سی‌پنل
    • کنترل پنل پلسک
    • کنترل پنل دایرکت ادمین
    • ایمیل
    • 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 وب‌سرور Apache

آموزش Hardening وب‌سرور Apache

مقدمه

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

پس از نصب Apache، بهتر است مجموعه‌ای از تنظیمات امنیتی یا Hardening روی آن اعمال شود تا از افشای اطلاعات، سوءاستفاده از آسیب‌پذیری‌ها و بسیاری از حملات رایج جلوگیری شود.

در این مقاله، مهم‌ترین اقدامات برای ایمن‌سازی Apache را به‌صورت عملی بررسی می‌کنیم.


بررسی نسخه Apache

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

apache2 -v

در توزیع‌های RHEL:

httpd -v

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

apachectl -V

بروزرسانی Apache

Ubuntu / Debian

sudo apt update

sudo apt upgrade apache2

AlmaLinux / Rocky Linux

sudo dnf update httpd

مخفی کردن نسخه Apache

فایل تنظیمات:

Ubuntu:

/etc/apache2/conf-enabled/security.conf

RHEL:

/etc/httpd/conf/httpd.conf

تنظیمات زیر را قرار دهید:

ServerTokens Prod

ServerSignature Off

نتیجه:

  • نسخه Apache نمایش داده نمی‌شود.
  • اطلاعات اضافی در صفحات خطا حذف می‌شود.
آموزش Hardening وب‌سرور Apache

غیرفعال کردن Directory Listing

اگر فایل Index وجود نداشته باشد، Apache ممکن است لیست فایل‌های پوشه را نمایش دهد.

برای جلوگیری:

Options -Indexes

محدود کردن HTTP Methods

در بیشتر وب‌سایت‌ها فقط این متدها کافی هستند:

  • GET
  • POST
  • HEAD

برای محدود کردن سایر متدها:

<LimitExcept GET POST HEAD>
    Require all denied
</LimitExcept>

جلوگیری از دسترسی به فایل‌های مخفی

<FilesMatch "^\.">
    Require all denied
</FilesMatch>

این قانون فایل‌هایی مانند موارد زیر را محافظت می‌کند:

  • .env
  • .git
  • .htaccess
  • .bash_history

جلوگیری از دسترسی به فایل‌های Backup

<FilesMatch "\.(bak|old|backup|swp|tmp)$">
    Require all denied
</FilesMatch>

جلوگیری از دسترسی به فایل‌های تنظیمات

<FilesMatch "\.(ini|conf|log|env)$">
    Require all denied
</FilesMatch>

محدود کردن حجم Upload

برای جلوگیری از ارسال فایل‌های بسیار بزرگ، مقدار مناسب را در تنظیمات PHP و در صورت نیاز در Apache مشخص کنید. مقدار دقیق باید متناسب با نیاز وب‌سایت انتخاب شود.


فعال کردن HTTPS

نمونه تنظیم Virtual Host:

<VirtualHost *:443>

SSLEngine on

SSLCertificateFile /path/fullchain.pem

SSLCertificateKeyFile /path/privkey.pem

</VirtualHost>

غیرفعال کردن TLSهای قدیمی

در فایل تنظیمات SSL:

SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1

در نتیجه فقط TLS 1.2 و TLS 1.3 فعال خواهند بود (در صورت پشتیبانی نسخه OpenSSL و Apache).


استفاده از Cipherهای امن

SSLHonorCipherOrder On

Cipher Suite مناسب را مطابق توصیه‌های روز انتخاب کنید.


فعال کردن HSTS

Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"

فقط زمانی این هدر را فعال کنید که کل سایت و زیر‌دامنه‌ها از HTTPS استفاده کنند.


اضافه کردن Headerهای امنیتی

Header always set X-Frame-Options "SAMEORIGIN"

Header always set X-Content-Type-Options "nosniff"

Header always set Referrer-Policy "strict-origin-when-cross-origin"

Header always set Permissions-Policy "geolocation=(), microphone=(), camera=()"

در صورت نیاز، Content-Security-Policy (CSP) را نیز متناسب با ساختار وب‌سایت تنظیم کنید.


غیرفعال کردن ماژول‌های غیرضروری

برای مشاهده ماژول‌ها:

Ubuntu:

apache2ctl -M

RHEL:

httpd -M

هر ماژولی که استفاده نمی‌شود، بهتر است غیرفعال شود.

در Ubuntu:

sudo a2dismod module_name

محافظت از فایل‌های PHP

در صورت امکان، اجرای PHP را در پوشه‌های Upload غیرفعال کنید.

نمونه:

<Directory "/var/www/html/uploads">

php_admin_flag engine off

</Directory>

در برخی نسخه‌ها یا هنگام استفاده از PHP-FPM، روش پیاده‌سازی ممکن است متفاوت باشد.


غیرفعال کردن Trace

متد TRACE معمولاً کاربردی ندارد.

TraceEnable Off

محدود کردن اطلاعات هدرها

در صورت نیاز می‌توانید برخی Headerهای غیرضروری را حذف کنید تا اطلاعات کمتری درباره سرور در اختیار کاربران قرار گیرد.


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

Ubuntu:

sudo apache2ctl configtest

RHEL:

sudo httpd -t

اگر خروجی:

Syntax OK

بود:

Ubuntu:

sudo systemctl reload apache2

RHEL:

sudo systemctl reload httpd

تست امنیت

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

  • Headerهای امنیتی
  • TLS Version
  • Cipher Suite
  • HSTS
  • Directory Listing
  • HTTP Methods

ابزارهای پیشنهادی:

  • SSL Labs
  • Security Headers
  • Mozilla Observatory
  • Nmap (اسکریپت‌های NSE)

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

  • Apache را همیشه بروزرسانی کنید.
  • فقط ماژول‌های موردنیاز را فعال نگه دارید.
  • نسخه Apache را مخفی کنید.
  • HTTPS را اجباری کنید.
  • از Headerهای امنیتی استفاده کنید.
  • دسترسی به فایل‌های حساس را مسدود کنید.
  • لاگ‌های Apache را به‌صورت دوره‌ای بررسی کنید.
  • در صورت امکان از WAF مانند ModSecurity یا Imunify360 استفاده کنید.

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

  • نمایش نسخه Apache
  • فعال بودن Directory Listing
  • استفاده از TLS 1.0 یا TLS 1.1
  • فعال بودن ماژول‌های غیرضروری
  • عدم استفاده از Headerهای امنیتی
  • قرار دادن فایل‌های Backup در مسیر قابل دسترس وب
  • عدم بررسی تنظیمات قبل از Reload

چک‌لیست

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

  • Apache بروزرسانی شده است.
  • نسخه Apache مخفی شده است.
  • HTTPS فعال است.
  • TLSهای قدیمی غیرفعال شده‌اند.
  • Headerهای امنیتی اضافه شده‌اند.
  • Directory Listing غیرفعال است.
  • فایل‌های حساس قابل دسترس نیستند.
  • ماژول‌های غیرضروری غیرفعال شده‌اند.
  • تنظیمات بدون خطا بارگذاری شده‌اند.

جمع‌بندی

Hardening وب‌سرور Apache یکی از مهم‌ترین مراحل ایمن‌سازی یک سرور لینوکسی است. با اعمال تنظیماتی مانند مخفی کردن نسخه Apache، غیرفعال کردن Directory Listing، محدود کردن متدهای HTTP، استفاده از TLSهای امن، افزودن Headerهای امنیتی و غیرفعال کردن ماژول‌های غیرضروری، می‌توان سطح حمله سرور را به‌طور قابل توجهی کاهش داد.

این اقدامات زمانی بیشترین تأثیر را خواهند داشت که در کنار بروزرسانی منظم سیستم‌عامل، استفاده از فایروال، Fail2Ban، مانیتورینگ لاگ‌ها و سایر راهکارهای امنیتی اجرا شوند و به‌صورت دوره‌ای بازبینی گردند.

کیان پور

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

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

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

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

  • تغییر پورت SSH؛ آیا واقعاً امنیت سرور را افزایش می‌دهد؟
  • ایجاد کاربران و گروه ها در لینوکس
  • آموزش Permission و Ownership در لینوکس
  • آموزش تنظیم و تغییر رمز عبور Administrator در Windows Server
  • ساخت کاربر جدید در لینوکس
  • مشاهده بیشتر

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

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

آموزش Hardening وب‌سرور Apache

کپی کردن لینک

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

سلام