برنامه نویسی

میزبان مجازی آپاچی: افزودن امنیت

Summarize this content to 400 words in Persian Lang برای اطمینان امنیت هنگام راه اندازی a پراکسی معکوس با آپاچی می توانید چندین روش برتر مانند فعال کردن را پیاده سازی کنید HTTPS با SSL/TLS، تنظیم هدرهای امنیتی، پیکربندی فایروال، و ایمن کردن دسترسی به باطن. در زیر یک پیاده سازی دقیق برای شما برای اطمینان از یک محیط امن تر ارائه شده است.

HTTPS را با SSL/TLS فعال کنید

استفاده از HTTPS برای محافظت از داده ها بین مشتری و سرور ضروری است. برای انجام این کار، یک گواهی SSL را در آپاچی پیکربندی می کنیم.

1.ماژول های Certbot و Apache SSL را نصب کنید

اگر ماژول های SSL را از قبل نصب نکرده اید، آنها را نصب کنید:

sudo apt install certbot python3-certbot-apache
sudo a2enmod ssl

2.دریافت گواهی SSL (بیایید رمزگذاری کنیم)

اگر دامنه شما از قبل به سرور اشاره می کند، می توانید یک گواهی رایگان SSL از Let's Encrypt with Certbot دریافت کنید. دستور زیر را اجرا کنید:

sudo certbot –apache -d php.info

اگر دامنه عمومی است، جایگزین کنید php.info با دامنه واقعی شما
Certbot به طور خودکار SSL را روی هاست مجازی شما پیکربندی می کند و ترافیک HTTP را به HTTPS هدایت می کند.

3.SSL میزبان مجازی را تأیید و تنظیم کنید

پس از پیکربندی، Certbot فایل پیکربندی Virtual Host SSL را ایجاد یا تغییر می دهد. بررسی کنید که آیا همه چیز درست است:

sudo your_editor /etc/apache2/sites-available/php-le-ssl.conf

باید چیزی شبیه این باشد:

<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName php.info
DocumentRoot /var/www/html/php

# Reverse Proxy Configuration for HTTPS
ProxyPreserveHost On
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/

<Directory /var/www/html/php/>
AllowOverride All
Require all granted
</Directory>

ErrorLog ${APACHE_LOG_DIR}/php_error.log
CustomLog ${APACHE_LOG_DIR}/php_access.log combined

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/php.info/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/php.info/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>

HTTP را به HTTPS هدایت کنید

می توانید اطمینان حاصل کنید که تمام ترافیک HTTP به HTTPS هدایت می شود. در میزبان مجازی HTTP شما (/etc/apache2/sites-available/php.conf)، اضافه کنید:

<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName php.info
Redirect permanent / https://php.info/
</VirtualHost>

این اطمینان حاصل می کند که هر درخواست HTTP به نسخه امن (HTTPS) سایت هدایت می شود.

سربرگ های امنیتی

هدرهای امنیتی زیر را به فایل پیکربندی میزبان مجازی SSL خود اضافه کنید تا برخی از آسیب پذیری های رایج را کاهش دهید. کلیک جک و اسکریپت بین سایتی (XSS):

<IfModule mod_headers.c>
Header always set X-Content-Type-Options “nosniff”
Header always set X-Frame-Options “SAMEORIGIN”
Header always set X-XSS-Protection “1; mode=block”
Header always set Strict-Transport-Security “max-age=31536000; includeSubDomains”
Header always set Content-Security-Policy “default-src ‘self’;”
</IfModule>

X-Content-Type-Options: از تلاش مرورگر برای حدس زدن نوع محتوا جلوگیری می کند و حملات MIME sniffing را کاهش می دهد.

X-Frame-Options: جلوگیری از استفاده از سایت در iframe، محافظت در برابر کلیک جک کردن.

X-XSS-Protection: محافظت را در برابر XSS حملات در مرورگرها

Strict-Transport-Security: مرورگر را مجبور می کند همیشه از HTTPS استفاده کند.

Content-Security-Policy: سیاست های بارگذاری محتوا را برای جلوگیری از حملاتی مانند XSS.

ایمن سازی Backend

شما باید اطمینان حاصل کنید که سرویس پشتیبان، مانند سرور PHP یا خدمات دیگر، مستقیماً توسط عموم قابل دسترسی نیست. این کار را می توان با محدود کردن دسترسی به باطن فقط به پروکسی انجام داد.

فایروال (UFW در اوبونتو) را پیکربندی کنید:

ابتدا، فقط HTTP (پورت 80) و HTTPS (پورت 443) را به سرور مجاز کنید.

sudo ufw allow ‘Apache Full’
sudo ufw enable

اکنون، هرگونه ترافیک مستقیم به پورت را مسدود کنید 8080 (باطن)، به جز آپاچی:

sudo ufw deny 8080

نظارت و گزارش

برای نظارت بر رفتار مشکوک، به گزارش‌های دسترسی و خطاها توجه فعال داشته باشید:

دسترسی به گزارش های خطا:

tail -f /var/log/apache2/php_error.log

دسترسی به گزارش های دسترسی:

tail -f /var/log/apache2/php_access.log

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

به روز رسانی های منظم

به روز نگه داشتن سیستم عامل، آپاچی و Certbot برای اطمینان از محافظت از شما در برابر آسیب پذیری های شناخته شده ضروری است.

sudo apt update && sudo apt upgrade

با انجام این مراحل، یک امنیت خواهید داشت پراکسی معکوس محیط با HTTPS و حفاظت اولیه در برابر حملات رایج. این تنظیمات امنیت حمل و نقل (SSL/TLS)، کاهش حملات از طریق هدرهای HTTP و محافظت از باطن در برابر دسترسی خارجی را پوشش می دهد.

برای اطمینان امنیت هنگام راه اندازی a پراکسی معکوس با آپاچی می توانید چندین روش برتر مانند فعال کردن را پیاده سازی کنید HTTPS با SSL/TLS، تنظیم هدرهای امنیتی، پیکربندی فایروال، و ایمن کردن دسترسی به باطن. در زیر یک پیاده سازی دقیق برای شما برای اطمینان از یک محیط امن تر ارائه شده است.

HTTPS را با SSL/TLS فعال کنید

استفاده از HTTPS برای محافظت از داده ها بین مشتری و سرور ضروری است. برای انجام این کار، یک گواهی SSL را در آپاچی پیکربندی می کنیم.

1.ماژول های Certbot و Apache SSL را نصب کنید

اگر ماژول های SSL را از قبل نصب نکرده اید، آنها را نصب کنید:

sudo apt install certbot python3-certbot-apache
sudo a2enmod ssl

2.دریافت گواهی SSL (بیایید رمزگذاری کنیم)

اگر دامنه شما از قبل به سرور اشاره می کند، می توانید یک گواهی رایگان SSL از Let's Encrypt with Certbot دریافت کنید. دستور زیر را اجرا کنید:

sudo certbot --apache -d php.info
  • اگر دامنه عمومی است، جایگزین کنید php.info با دامنه واقعی شما

  • Certbot به طور خودکار SSL را روی هاست مجازی شما پیکربندی می کند و ترافیک HTTP را به HTTPS هدایت می کند.

3.SSL میزبان مجازی را تأیید و تنظیم کنید

پس از پیکربندی، Certbot فایل پیکربندی Virtual Host SSL را ایجاد یا تغییر می دهد. بررسی کنید که آیا همه چیز درست است:

sudo your_editor /etc/apache2/sites-available/php-le-ssl.conf

باید چیزی شبیه این باشد:

<IfModule mod_ssl.c>
    <VirtualHost *:443>
        ServerAdmin webmaster@localhost
        ServerName php.info
        DocumentRoot /var/www/html/php

        # Reverse Proxy Configuration for HTTPS
        ProxyPreserveHost On
        ProxyPass / http://localhost:8080/
        ProxyPassReverse / http://localhost:8080/

        <Directory /var/www/html/php/>
            AllowOverride All
            Require all granted
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/php_error.log
        CustomLog ${APACHE_LOG_DIR}/php_access.log combined

        SSLEngine on
        SSLCertificateFile /etc/letsencrypt/live/php.info/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/php.info/privkey.pem
        Include /etc/letsencrypt/options-ssl-apache.conf
    </VirtualHost>
</IfModule>

HTTP را به HTTPS هدایت کنید

می توانید اطمینان حاصل کنید که تمام ترافیک HTTP به HTTPS هدایت می شود. در میزبان مجازی HTTP شما (/etc/apache2/sites-available/php.conf)، اضافه کنید:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName php.info
    Redirect permanent / https://php.info/
</VirtualHost>

این اطمینان حاصل می کند که هر درخواست HTTP به نسخه امن (HTTPS) سایت هدایت می شود.

سربرگ های امنیتی

هدرهای امنیتی زیر را به فایل پیکربندی میزبان مجازی SSL خود اضافه کنید تا برخی از آسیب پذیری های رایج را کاهش دهید. کلیک جک و اسکریپت بین سایتی (XSS):

<IfModule mod_headers.c>
    Header always set X-Content-Type-Options "nosniff"
    Header always set X-Frame-Options "SAMEORIGIN"
    Header always set X-XSS-Protection "1; mode=block"
    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
    Header always set Content-Security-Policy "default-src 'self';"
</IfModule>
  • X-Content-Type-Options: از تلاش مرورگر برای حدس زدن نوع محتوا جلوگیری می کند و حملات MIME sniffing را کاهش می دهد.
  • X-Frame-Options: جلوگیری از استفاده از سایت در iframe، محافظت در برابر کلیک جک کردن.
  • X-XSS-Protection: محافظت را در برابر XSS حملات در مرورگرها
  • Strict-Transport-Security: مرورگر را مجبور می کند همیشه از HTTPS استفاده کند.
  • Content-Security-Policy: سیاست های بارگذاری محتوا را برای جلوگیری از حملاتی مانند XSS.

ایمن سازی Backend

شما باید اطمینان حاصل کنید که سرویس پشتیبان، مانند سرور PHP یا خدمات دیگر، مستقیماً توسط عموم قابل دسترسی نیست. این کار را می توان با محدود کردن دسترسی به باطن فقط به پروکسی انجام داد.

فایروال (UFW در اوبونتو) را پیکربندی کنید:

ابتدا، فقط HTTP (پورت 80) و HTTPS (پورت 443) را به سرور مجاز کنید.

sudo ufw allow 'Apache Full'
sudo ufw enable

اکنون، هرگونه ترافیک مستقیم به پورت را مسدود کنید 8080 (باطن)، به جز آپاچی:

sudo ufw deny 8080

نظارت و گزارش

برای نظارت بر رفتار مشکوک، به گزارش‌های دسترسی و خطاها توجه فعال داشته باشید:

  • دسترسی به گزارش های خطا:
tail -f /var/log/apache2/php_error.log
  • دسترسی به گزارش های دسترسی:
tail -f /var/log/apache2/php_access.log

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

به روز رسانی های منظم

به روز نگه داشتن سیستم عامل، آپاچی و Certbot برای اطمینان از محافظت از شما در برابر آسیب پذیری های شناخته شده ضروری است.

sudo apt update && sudo apt upgrade

با انجام این مراحل، یک امنیت خواهید داشت پراکسی معکوس محیط با HTTPS و حفاظت اولیه در برابر حملات رایج. این تنظیمات امنیت حمل و نقل (SSL/TLS)، کاهش حملات از طریق هدرهای HTTP و محافظت از باطن در برابر دسترسی خارجی را پوشش می دهد.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا