میزبان مجازی آپاچی: افزودن امنیت
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 و محافظت از باطن در برابر دسترسی خارجی را پوشش می دهد.