نحوه ميزباني وب سايت با استفاده از Cloudflare و Nginx در اوبونتو 18.04
Cloudflare سرويسي است كه بين بازديد كننده و سرور مجازي مالك وب سايت قرار دارد و به عنوان يك پروكسي معكوس براي وب سايت ها عمل مي كند. Cloudflare يك شبكه انتقال محتوا (CDN) ، و همچنين خدمات سرور مجازي كاهش نام دامنه توزيع شده DDoS را فراهم مي كند.
Nginx يك سرور مجازي وب مشهور است كه مسئول ميزباني برخي از بزرگترين و پر ترافيك ترين سايتهاي اينترنت است. معمولا سازمانها وب سايتها را با Nginx ارائه كرده و از Cloudflare به عنوان ارائه دهنده CDN و DNS استفاده مي كنند.
در اين آموزش ، وب سايت خود را كه توسط Nginx با گواهي Origin CA از Cloudflare ارائه ميشود ايمن ميكنيد و سپس Nginx را براي استفاده از درخواستهاي معتبر پيكربندي ميكنيد. مزاياي استفاده از اين ستاپ اين است كه شما از CDN Cloudflare و وضوح سريع DNS بهره مي بريد و در عين حال اطمينان حاصل مي كنيد كه همه اتصالات از Cloudflare عبور مي كنند. اين مانع از رسيدن هرگونه درخواست مخرب به سرور مجازي شما مي شود.
پيش نيازها
براي تكميل اين آموزش به موارد زير نياز داريد:
⦁ يك سرور مجازي Ubuntu 18.04 با پيروي از راهنماي ستاپ اوليه سرور مجازي Ubuntu 18.04 ، از جمله يك كاربر sudo غير ريشه و فايروال راه اندازي شده.
⦁ Nginx بر روي سرور مجازي شما نصب شده باشد. مي توانيد راهنماي ما در مورد نحوه نصب Nginx را در اوبنتو 18.04 دنبال كنيد.
⦁ يك حساب Cloudflare
⦁ يك دامنه ثبت شده به حساب Cloudflare شما اضافه شده باشد كه به سرور مجازي Nginx شما اشاره كند. راهنماي ما در مورد چگونگي كاهش حملات DDoS عليه وب سايت خود با Cloudflare مي تواند در انجام اين كار به شما كمك كند. مقدمه ما در مورد اصطلاحات DNS ، مؤلفه ها و مفاهيم نيز مي تواند مفيد باشد.
⦁ سرور مجازي Nginx Block براي دامنه شما پيكربندي شده باشد ، كه مي توانيد با دنبال كردن مرحله 5 نحوه نصب Nginx در اوبونتو 18.04 ، آن را انجام دهيد.
مرحله 1 – توليد گواهي Origin CA TLS
Cloudflare Origin CA به شما امكان مي دهد تا يك گواهي TLS رايگان امضا شده توسط Cloudflare براي نصب بر روي سرور مجازي Nginx خود توليد كنيد. با استفاده از گواهي TLS توليد شده Cloudflare مي توانيد ارتباط بين سرور مجازي هاي Cloudflare و سرور مجازي Nginx خود را تضمين كنيد.
براي توليد گواهي نامه با Origin CA ، در يك مرورگر وب به حساب Cloudflare خود وارد شويد. دامنه مورد نظر براي تأمين امنيت را انتخاب كرده و به بخش SSL / TLS داشبورد Cloudflare خود برويد. از آنجا به تب Origin Server برويد و بر روي دكمه Create Certificate كليك كنيد:
گزينه پيش فرض Let Cloudflare generate a private key and a CSR را انتخاب كنيد.
بر روي Next كليك كنيد و گفتگويي با Origin Certificate و Private key را مشاهده خواهيد كرد. شما بايد گواهي مبدا و كليد خصوصي را از Cloudflare به سرور مجازي خود منتقل كنيد. به دلايل امنيتي ، اطلاعات Private Key مجدداً نمايش داده نمي شود ، بنابراين قبل از كليك بر روي Ok ، كليد سرور مجازي خود را كپي كنيد.
شما از ديركتوري / etc / ssl در سرور مجازي براي نگه داشتن گواهي مبدا و فايل هاي كليد خصوصي استفاده خواهيد كرد. اين پوشه در حال حاضر در سرور مجازي وجود دارد.
ابتدا محتويات Certificate Origin نمايش داده شده در كادر گفتگو در مرورگر خود را كپي كنيد.
سپس ، در سرور مجازي خود ، /etc/ssl/cert.pem را در ويرايشگر متن مورد نظر خود باز كنيد:
⦁ $ sudo nano /etc/ssl/cert.pem
⦁
محتواي گواهي را در فايل اضافه كنيد. سپس ذخيره كنيد و از ويرايشگر خارج شويد.
سپس به مرورگر خود بازگرديد و محتويات كليد خصوصي را كپي كنيد. فايل /etc/ssl/key.pem را براي ويرايش باز كنيد:
⦁ $ sudo nano /etc/ssl/key.pem
⦁
كليد خصوصي را درون فايل قرار دهيد ، فايل را ذخيره كنيد و از ويرايشگر خارج شويد.
توجه: گاهي اوقات ، هنگامي كه گواهي و كليد را از داشبورد Cloudflare كپي مي كنيد و آن را در فايل هاي مربوطه روي سرور مجازي پيست ميكنيد ، خطوط خالي درج مي شود. Nginx چنين گواهينامه ها و كليدها را نامعتبر ميداند ، بنابراين اطمينان حاصل كنيد كه هيچ خط خالي در فايل هاي شما وجود نداشته باشد.
هشدار: گواهي Origin CA Cloudflare فقط به Cloudflare اعتماد ميكند و بنابراين فقط بايد توسط سرور مجازيهاي مبدأ استفاده شود كه به طور فعال به Cloudflare متصل هستند. اگر در هر لحظه Cloudflare را متوقف يا غيرفعال كنيد ، گواهي Origin CA شما خطاي گواهي نامعتبر را به همراه خواهد داشت.
اكنون كه فايلهاي كليد و مجوز را در سرور مجازي خود كپي كرده ايد ، براي استفاده از آنها بايد پيكربندي Nginx را به روز كنيد.
مرحله 2 – نصب گواهي Origin CA در Nginx
در بخش قبلي ، با استفاده از داشبورد Cloudflare يك گواهي مبدأ و كليد خصوصي ايجاد كرده و فايل ها را در سرور مجازي خود ذخيره كرديد. اكنون پيكربندي Nginx را براي استفاده از گواهي مبدا و كليد خصوصي براي اطمينان از اتصال بين سرور مجازيهاي Cloudflare و سرور مجازي خود ، پيكربندي Nginx را به روز خواهيد كرد.
ابتدا مطمئن شويد UFW ترافيك HTTPS را امكان پذير مي كند. Nginx Full را فعال كنيد ، كه پورت 80 (HTTP) و پورت 443 (HTTPS) را باز مي كند:
⦁ $ sudo ufw allow ‘Nginx Full’
⦁
اكنون UFW را مجدد لود كنيد:
⦁ $ sudo ufw reload
⦁
در آخر ، بررسي كنيد كه قوانين جديد شما مجاز باشند يا UFW فعال باشد:
⦁ $ sudo ufw status
⦁
خروجي مانند اين را مشاهده خواهيد كرد:
Output
Status: active
To Action From
— —— —-
OpenSSH ALLOW Anywhere
Nginx Full ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx Full (v6) ALLOW Anywhere (v6)
اكنون آماده تنظيم بلوك سرور مجازي Nginx خود هستيد. Nginx در حين نصب بلوك سرور مجازي پيش فرض ايجاد مي كند. اگر هنوز وجود دارد ، آن را حذف كنيد ، زيرا قبلاً يك بلوك سرور مجازي اختصاصي براي دامنه خود پيكربندي كرده ايد:
⦁ $ sudo rm /etc/nginx/sites-enabled/default
⦁
سپس ، فايل پيكربندي Nginx را براي دامنه خود باز كنيد:
⦁ $ sudo nano /etc/nginx/sites-available/your_domain
⦁
فايل بايد به صورت زير باشد:
/etc/nginx/sites-available/your_domain
server {
listen 80;
listen [::]:80;
root /var/www/your_domain/html;
index index.html index.htm index.nginx-debian.html;
server_name your_domain www.your_domain;
location / {
try_files $uri $uri/ =404;
}
}
براي تنظيم موارد زير فايل پيكربندي Nginx را اصلاح مي كنيد:
• به پورت 80 گوش دهيد و كليه درخواست ها را براي استفاده از https تغيير دهيد.
• به پورت443 گوش داده و از گواهي مبدا و كليد خصوصي اضافه شده در قسمت قبلي استفاده كنيد.
فايل را تغيير دهيد تا به شكل زير باشد:
/etc/nginx/sites-available/your_domain
server {
listen 80;
listen [::]:80;
server_name your_domain www.your_domain;
return 302 https://$server_name$request_uri;
}
server {
# SSL configuration
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate /etc/ssl/cert.pem;
ssl_certificate_key /etc/ssl/key.pem;
server_name your_domain www.your_domain;
root /var/www/your_domain/html;
index index.html index.htm index.nginx-debian.html;
location / {
try_files $uri $uri/ =404;
}
}
فايل را ذخيره كرده و از ويرايشگر خارج شويد.
در مرحله بعد ، اطمينان حاصل كنيد كه هيچ خطاي نحوي در هيچ يك از فايل هاي تنظيمات Nginx شما وجود ندارد:
⦁ $sudo nginx -t
⦁
اگر مشكلي پيدا نكرديد ، Nginx را دوباره فعال كنيد تا تغييرات خود را فعال كنيد:
⦁ $ sudo systemctl restart nginx
⦁
حال به بخش SSL / TLS داشبورد Cloudflare برويد ، به تب Overview برويد و حالت رمزگذاري SSL / TLS را به حالت كامل (دقيق) تغيير دهيد. اين به Cloudflare اطلاع مي دهد تا هميشه ارتباط بين Cloudflare و سرور مجازي Nginx منشاء شما را رمزگذاري كند.
اكنون به وب سايت خود در https: // your_domain مراجعه كنيد تا صحت تنظيم آن را تأييد كنيد. صفحه اصلي خود را مشاهده خواهيد كرد و مرورگر گزارش مي دهد كه سايت امن است.
در قسمت بعد ، شما Authenticated Origin Pulls را تأييد مي كنيد كه سرور مجازي مبدا شما در واقع با Cloudflare ارتباط برقرار مي كند و نه برخي ديگر از سرور مجازي ها. با اين كار ، Nginx پيكربندي مي شود كه تنها درخواست هايي را كه از گواهي كلاينت معتبر از Cloudflare استفاده مي كنند ، بپذيرد. كليه درخواستهايي كه از Cloudflare عبور نكرده اند رد مي شوند.
مرحله 3 – تنظيم Authenticated Origin Pulls
گواهي Origin CA به Cloudflare كمك مي كند تا تاييد كند كه در حال گفتگو با سرور مجازي درست است. در اين مرحله از تأييد هويت كلاينت TLS براي تأييد صحت سرور مجازي Nginx كه با Cloudflare در حال گفتگو است ، استفاده مي كند.
در يك ارتباط TLS تأييد شده توسط كلاينت ، هر دو طرف يك گواهي براي تأييد ارائه مي دهند. سرور مجازي مبدا پيكربندي شده است كه فقط درخواستهايي را قبول كند كه از گواهي كلاينت معتبر از Cloudflare استفاده مي كنند. درخواست هايي كه از Cloudflare عبور نكرده اند رد مي شوند زيرا گواهي Cloudflare را ندارند. اين بدان معني است كه حمله گران مخرب نمي توانند اقدامات امنيتي Cloudflare را دور بزنند و مستقيماً به سرور مجازي Nginx شما متصل شوند.
Cloudflare گواهينامه هاي امضا شده توسط CA با گواهي زير را ارائه مي دهد:
—–BEGIN CERTIFICATE—–
MIIGCjCCA/KgAwIBAgIIV5G6lVbCLmEwDQYJKoZIhvcNAQENBQAwgZAxCzAJBgNV
BAYTAlVTMRkwFwYDVQQKExBDbG91ZEZsYXJlLCBJbmMuMRQwEgYDVQQLEwtPcmln
aW4gUHVsbDEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzETMBEGA1UECBMKQ2FsaWZv
cm5pYTEjMCEGA1UEAxMab3JpZ2luLXB1bGwuY2xvdWRmbGFyZS5uZXQwHhcNMTkx
MDEwMTg0NTAwWhcNMjkxMTAxMTcwMDAwWjCBkDELMAkGA1UEBhMCVVMxGTAXBgNV
BAoTEENsb3VkRmxhcmUsIEluYy4xFDASBgNVBAsTC09yaWdpbiBQdWxsMRYwFAYD
VQQHEw1TYW4gRnJhbmNpc2NvMRMwEQYDVQQIEwpDYWxpZm9ybmlhMSMwIQYDVQQD
ExpvcmlnaW4tcHVsbC5jbG91ZGZsYXJlLm5ldDCCAiIwDQYJKoZIhvcNAQEBBQAD
ggIPADCCAgoCggIBAN2y2zojYfl0bKfhp0AJBFeV+jQqbCw3sHmvEPwLmqDLqynI
42tZXR5y914ZB9ZrwbL/K5O46exd/LujJnV2b3dzcx5rtiQzso0xzljqbnbQT20e
ihx/WrF4OkZKydZzsdaJsWAPuplDH5P7J82q3re88jQdgE5hqjqFZ3clCG7lxoBw
hLaazm3NJJlUfzdk97ouRvnFGAuXd5cQVx8jYOOeU60sWqmMe4QHdOvpqB91bJoY
QSKVFjUgHeTpN8tNpKJfb9LIn3pun3bC9NKNHtRKMNX3Kl/sAPq7q/AlndvA2Kw3
Dkum2mHQUGdzVHqcOgea9BGjLK2h7SuX93zTWL02u799dr6Xkrad/WShHchfjjRn
aL35niJUDr02YJtPgxWObsrfOU63B8juLUphW/4BOjjJyAG5l9j1//aUGEi/sEe5
lqVv0P78QrxoxR+MMXiJwQab5FB8TG/ac6mRHgF9CmkX90uaRh+OC07XjTdfSKGR
PpM9hB2ZhLol/nf8qmoLdoD5HvODZuKu2+muKeVHXgw2/A6wM7OwrinxZiyBk5Hh
CvaADH7PZpU6z/zv5NU5HSvXiKtCzFuDu4/Zfi34RfHXeCUfHAb4KfNRXJwMsxUa
+4ZpSAX2G6RnGU5meuXpU5/V+DQJp/e69XyyY6RXDoMywaEFlIlXBqjRRA2pAgMB
AAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgECMB0GA1Ud
DgQWBBRDWUsraYuA4REzalfNVzjann3F6zAfBgNVHSMEGDAWgBRDWUsraYuA4REz
alfNVzjann3F6zANBgkqhkiG9w0BAQ0FAAOCAgEAkQ+T9nqcSlAuW/90DeYmQOW1
QhqOor5psBEGvxbNGV2hdLJY8h6QUq48BCevcMChg/L1CkznBNI40i3/6heDn3IS
zVEwXKf34pPFCACWVMZxbQjkNRTiH8iRur9EsaNQ5oXCPJkhwg2+IFyoPAAYURoX
VcI9SCDUa45clmYHJ/XYwV1icGVI8/9b2JUqklnOTa5tugwIUi5sTfipNcJXHhgz
6BKYDl0/UP0lLKbsUETXeTGDiDpxZYIgbcFrRDDkHC6BSvdWVEiH5b9mH2BON60z
0O0j8EEKTwi9jnafVtZQXP/D8yoVowdFDjXcKkOPF/1gIh9qrFR6GdoPVgB3SkLc
5ulBqZaCHm563jsvWb/kXJnlFxW+1bsO9BDD6DweBcGdNurgmH625wBXksSdD7y/
fakk8DagjbjKShYlPEFOAqEcliwjF45eabL0t27MJV61O/jHzHL3dknXeE4BDa2j
bA+JbyJeUMtU7KMsxvx82RmhqBEJJDBCJ3scVptvhDMRrtqDBW5JShxoAOcpFQGm
iYWicn46nPDjgTU0bX1ZPpTpryXbvciVL5RkVBuyX2ntcOLDPlZWgxZCBp96x07F
AnOzKgZk4RzZPNAxCXERVxajn/FLcOhglVAKo5H0ac+AitlQ0ip55D2/mf8o72tM
fVQ6VpyjEXdiIXWUq/o=
—–END CERTIFICATE—–
همچنين مي توانيد گواهي را مستقيماً از Cloudflare در اين لينك دانلود كنيد.
اين گواهي را كپي كنيد.
سپس فايل /etc/ssl/cloudflare.crt را براي نگه داشتن گواهي Cloudflare ايجاد كنيد:
⦁ $ sudo nano /etc/ssl/cloudflare.crt
⦁
گواهي را به فايل اضافه كنيد. سپس فايل را ذخيره كرده و از ويرايشگر خارج شويد.
اكنون پيكربندي Nginx خود را به روز كنيد تا از TLS Authenticated Origin Pulls استفاده كنيد. فايل پيكربندي را براي دامنه خود باز كنيد:
⦁ $ sudo nano /etc/nginx/sites-available/your_domain
⦁
دستورالعملهاي ssl_client_certificate و ssl_verify_client را همانطور كه در مثال زير نشان داده شده است اضافه كنيد:
/etc/nginx/sites-available/your_domain
. . .
server {
# SSL configuration
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate /etc/ssl/cert.pem;
ssl_certificate_key /etc/ssl/key.pem;
ssl_client_certificate /etc/ssl/cloudflare.crt;
ssl_verify_client on;
. . .
فايل را ذخيره كرده و از ويرايشگر خارج شويد.
سپس ، Nginx را آزمايش كنيد تا مطمئن شويد كه هيچ خطاي نحوي در پيكربندي Nginx شما وجود ندارد:
⦁ $ sudo nginx -t
⦁
اگر مشكلي پيدا نشد ، Nginx را ريستارت كنيد تا تغييرات خود را اعمال كنيد:
⦁ $ sudo systemctl restart nginx
⦁
در آخر ، براي فعال كردن Authenticated Pulls ، بخش SSL / TLS را در داشبورد Cloudflare باز كنيد ، به تب Origin Server برويد و گزينه Authenticated Origin Pulls را تغيير دهيد.
اكنون به وب سايت خود در https: // your_domain مراجعه كنيد تا صحت تنظيم آن را تأييد كنيد. مانند قبل ، صفحه اصلي خود را نمايش داده خواهيد كرد.
براي تأييد اينكه سرور مجازي شما فقط درخواستهاي امضا شده توسط CA Cloudflare را قبول خواهد كرد ، گزينه Authenticated Origin Pulls را انتخاب كنيد تا غيرفعال شود و سپس وب سايت خود را دوباره لود كنيد. بايد پيام خطاي زير را دريافت كنيد:
اگر CA Cloudflare درخواستي را امضا نكند ، سرور مجازي مبدا شما خطايي را ايجاد مي كند.
توجه: بيشتر مرورگرها درخواستها را ذخيره مي كنند ، بنابراين براي ديدن تغيير فوق مي توانيد از حالت جستجوي Incognito/Private در مرورگر خود استفاده كنيد. براي جلوگيري از عدم دسترسي به درخواست Cloudflare در هنگام تنظيم وب سايت ، به مرور كلي در داشبورد Cloudflare برويد و حالت توسعه را تغيير دهيد.
اكنون كه مي دانيد درست كار مي كند به بخش SSL / TLS در داشبورد Cloudflare برگرديد ، به تب Origin Server برويد و گزينه Authenticated Origin Pulls را دوباره بزنيد تا فعال شود.
نتيجه
در اين آموزش وب سايت خود Nginx را با رمزگذاري ترافيك بين Cloudflare و سرور مجازي Nginx با استفاده از گواهينامه Origin CA از Cloudflare ، ايمن كرديد. سپس Authenticated Origin Pulls را روي سرور مجازي Nginx تنظيم ميكنيد تا اطمينان حاصل شود كه تنها درخواستهاي سرور مجازي هاي Cloudflare را مي پذيرد و از اتصال مستقيم ديگران به سرور مجازي Nginx جلوگيري مي كند.
نحوه استفاده از Traefik به عنوان پروكسي معكوس براي كانتينرهاي Docker در اوبونتو 20.04
نحوه نصب و ايمن سازي Redis در Centos7
چگونه مي توان محيط JupyterLab را در اوبونتو 18.04 تنظيم كرد
نحوه نصب Webmin در Ubuntu 20.04
نحوه بازنويسي آدرس هاي اينترنتي با mod_rewrite براي Apache در اوبونتو 20.04
نحوه مديريت چندين سرور با دستورات Ad Hoc Ansible
چگونه مي توان REST API را با Prisma و PostgreSQL ساخت
نحوه ميزباني وب سايت با استفاده از Cloudflare و Nginx در اوبونتو 18.04
نحوه استفاده از Traefik به عنوان پروكسي معكوس براي كانتينرهاي Docker در Ubuntu 18.04
خريد vps – خريد سرور مجازي – خريد سرور – سرور هلند – فروش vps – سرور مجازي آمريكا – خريدvps – سرور مجازي هلند – فروش سرور مجازي – سرور آمريكا – vps – سرور مجازي انگليس – سرور مجازي آلمان – سرور مجازي كانادا – خريد vps آمريكا – خريد وي پي اس – سرور – خريد سرور مجازي هلند – vps خريد – سرور مجازي فرانسه – سرور مجازي هلند – خريد vps آمريكا – خريد سرور مجازي ارزان هلند – vps – خريد vps هلند – خريد سرور مجازي آمريكا – خريد vps فرانسه – تست vps – سرور مجازي تست – سرور مجازي ويندوز – ارزانترين vps – خريد وي پي اس – vps ارزان –
برچسب: ،
ادامه مطلب






