بر اساس چیزهای فوق العاده ای که درباره Nginx شنیده اید، احتمالا بخواهید کار با آن را تجربه کنید. حتی شاید بعد از مطالعه چند مقاله در این زمینه که ما در این سایت منتشر کرده ایم، آنقدر از آن خوشتان بیاید که تصمیم به جایگزین کردن Nginx با Apache خود بگیرید.
در این صورت، مطمئنم از این راهنما با آغوش باز استقبال خواهید کرد چرا که قصد داریم 12 نکته برای افزایش امنیت سرورهای Nginx شما (اعم از تمام راه های به روزرسانی Nginx با استفاده از TLS و تغیر مسیر از HTTP به HTTPS) ارائه دهیم و شما متوجه خواهید شد که بعضی از آن موارد بسیار شبیه آنچه با Apache انجام می دهید است.
همچنین توصیه میشود مطالعه کنید.
13 ترفند برای امن کردن وب سرور آپاچی در لینوکس
25 ترفند موثر از فایل ".htaccess" برای امن کردن و بهبود Performance سایت ها در Apache
پسورد گذاشتن روی (فولدر، پوشه، دایرکتوری) در وب سرور انجین ایکس
محیط تست Nginx
ما در این آموزش از محیط زیر استفاده می کنیم :
و
192.168.0.26 برای (nginxmeanspower.com)
همانطور که در بخش هاست های مجازی IP-based توضیح داده شد.
راه اندازی Virtual Hosting بر پایه Name و بر پایه IP در وب سرور Nginx
با توجه به موارد بالا، شروع کنیم.
نکته شماره 1 : Nginx را آپدیت نگه دارید
در حال حاضر، آخرین ورژن Nginx در CentOS (در EPEL) و در ریپازیتوری Debian، به ترتیب 1.6.3 و 1.6.2-5 هستند.
اگرچه نصب نرم افزار از مخازن راحت تر از کامپایل برنامه از source code است، اما گزینه ی دوم دو مزیت دارد :
1) به شما اجازه می دهد تا برای Nginx ماژول های اضافی نصب کنید (همچون mod_security)
و
2) همیشه یک ورژن جدیدتر از ریپازیتوری ها فراهم می کند (1.9.9 تا امروز). این نکات همیشه در وب سایت Nginx دردسترس می باشد.
همچنین توصیه میشود مطالعه کنید.
مقابله با حملات DDOS و Brute Force با استفاده از ماژول های Mod_Security و Mod_evasive
نکته شماره 2 : ماژول های غیرضروری در Nginx را حذف کنید
برای حذف ماژول های نصب شده از سورس در Nginx به شرح زیر عمل کنید :
برای مثال :
همانطور که احتمالا حدس می زنید، حذف ماژول های Nginx نصب شده از سورس، نیاز به اجرای دوباره ی compilation دارد.
پیغام هشدار : دستورالعمل های کانفیگ توسط ماژول ها فراهم می شود. مطمئن شوید، ماژولی که حاوی دستور مورد نیازتان هست راغیرفعال نکنید. شما باید قبل از اینکه تصمیمی در رابطه با غیرفعال کردن ماژول ها بگیرید، nginx docs را برای لیست دستورات موجود در هر ماژول چک کنید.
نکته شماره 3 : دستور server_tokens در Nginx را غیرفعال نمائید
دستور server_tokens به Nginx می گوید تا ورژن فعلی خود را در صفحات error نمایش دهد. بدیهی است که شما به دلیل جلوگیری از حملات ناشی از آسیب پذیری های شناخته شده در آن ورژن خاص web server خود، نمی خواهید آن اطلاعات را با دنیا به اشتراک بگذارید،.
برای غیرفعال کردن دستور server_tokens، داخل یک server block آنرا off کنید :
Nginx را Restart کنید تا تغییرات اعمال شود.
نکته شماره 4 : HTTP User Agents در Nginx را Deny کنید
HTTP user agent، نرم افزاری است که برای content negotiation در مقابل یک web server استفاده می شود. همچنین شامل malware botها و crawlerهایی که ممکن است به تحت تاثیر قرار دادن عملکرد web server شما با اتلاف منابع سیستم منتهی شود.
برای راحتی بیشتر، لیست undesired user agents را حفظ کنید، یک فایل ( بطور مثال /etc/nginx/blockuseragents.rules) با محتویات زیر بسازید :
سپس، قبل از تعریف server block خط زیر را قرار دهید:
و اگر رشته user agent در black list در بالا تعریف شده باشد، یک دستور شرطی جواب 403 را بر می گرداند :
Nginx را Restart کنید و همه user agentهایی که string شان با مورد بالا تطابق دارد، دسترسی به web server شما را بلاک خواهد کرد. 192.168.0.25 را با IP سرور خود جایگزین کنید و string متفاوتی برای سوئیچ --user-agent از دستور wget را انتخاب کنید:
نکته شماره 5 : متدهای ناخواسته HTTP در Nginx را غیرفعال کنید
متدهای http همانند افعال یک جمله ، action های دلخواه را که روی یک resource مربوط به nginx انجام می شوند را نمایش می دهد.
برای وب سایت ها و برنامه های رایج، شما باید تنها GET، POST و HEAD را مجاز کنید و تمام دستورات دیگر را غیرفعال کنید.
برای انجام این کار، خطوط زیر را داخل یک server block قرار دهید.
پاسخ 444 HTTP به معنی یک پاسخ خالی (empty response) است و اغلب برای فریب دادن malware attackها در Nginx استفاده می شود :
برای تست، از curl برای ارسال درخواست DELETE استفاده کنید و خروجی را زمانی که به طور منظم GET را ارسال می کنید؛ مقایسه کنید :
نکته شماره 6 : محدودیت های Buffer Size در Nginx را تنظیم کنید
برای جلوگیری از حملات buffer overflow در مقابل Nginx web server شما، دستورات زیر را در یک فایل جداگانه قرار دهید (برای مثال، فایل جدیدی به نام /etc/nginx/conf.d/buffer.conf ایجاد کنید) :
دستورات بالا، اطمینان می دهند که درخواست های ساخته شده برای web server شما، منجر به buffer overflow در سیستم شما نخواهد شد. برای جزئیات بیشتر به docs (بر روی آنچه هریک از آنها انجام می دهد) مراجعه کنید.
سپس یک دستور include در فایل کانفیگ اضافه کنید:
دستور شماره 7 : تعداد کانکشن های IP در Nginx را محدود کنید
برای محدود کردن کانکشن ها IP، از دستورات limit_conn_zone (در یک http context یا در حداقل خروجی server block) و limit_conn (در یک http، server block یا location context) استفاده کنید.
با این حال، به خاطر داشته باشید که همه کانکشن ها قابل شمارش نیستند - اما تنها آنهایی که درخواست پردازش شده از server و request headerکامل دارند؛ خوانده می شوند.
برای مثال، بگذارید حداکثر کانکشن ها معادل 1 تنظیم شود (بله، این اغراق آمیز است، اما در این مورد، کار را به نحوه احسن انجام می دهد) در یک zone به نام addr (می توانید هر نامی که می خواهید را بر روی آن بگذارید) :
یک تست ساده با Apache Benchmark (اجرای Nginx Load) و درمجموع 10 کانکشن با 2 درخواست همزمان به ما کمک می کند تا نکته مورد نظرخودمان را نشان دهیم :
برای اطلاعات بیشتر، نکته بعد را ببینید.
نکته شماره 8 : Monitor Logها را برای Nginx نصب کنید
وقتی تست توضیح داده شده در نکته قبل را اجرا کردید، error logای که برای server block تعریف شده است را چک کنید :
ممکن است بخواهید از grep برای فیلتر لاگ ها به منظور failed requestهای ایجاد شده برای تعریف addr zone در نکته شماره 7 استفاده کنید :
به همین ترتیب، شما می توانید access log را برای کسب اطلاعات مورد علاقه، فیلتر کنید، از جمله :
و اگر هرگونه فعالیت غیرمعمول و یا ناخواسته را تشخیص دادید؛ اقدامی مناسب کنید.
نکته شماره 9 : مانع از Image Hotlinking در Nginx شوید
Image hotlinking زمانی رخ می دهد که یک نفر در سایت های دیگر، image ی را از سایت شما به نمایش بگذارد. این امر سبب افزایش استفاده از پهنای باند شما (که برای آن هزینه کرده اید) می شود، در حالی که فرد دیگری با خوشحالی تصویری را به نمایش می گذارد که آن را جزو دارایی خود می داند. به عبارت دیگر، ضرر دوبرابر برای شما است.
به عنوان مثال، فرض کنید یک زیر دایرکتوری به نام img در server block خود دارید که تمام تصاویر مورد استفاده در آن virtual host را در آن ذخیره کرده اید. برای جلوگیری از دیگر سایت ها برای استفاده از تصاویر شما، لازم است location block زیر را در virtual host تعریف شده خود، قرار دهید :
سپس فایل index.html را در هر یک از virtual hostهای زیر، تغییر دهید :
########################
اکنون هریک از سایت ها را در browser باز کنید و همانطور که می بینید، تصاویر به درستی در 192.168.0.25 نمایش داده می شود اما در 192.168.0.26 به صفحه ای با پاسخ 403 منتقل می شوید :
دقت کنید که این نکته به بروزر ریموت که فیلد مربوطه را ارسال میکند بستگی دارد.
نکته شماره 10 : SSL را غیرفعال و تنها TLS را در Nginx فعال کنید
درصورت امکان، هر کاری که مانع SSL در هر یک از ورژن های آن و در عوض استفاده از TLS می شود؛ انجام دهید. ssl_protocolهای زیر باید در یک سرور یا http context در فایل virtual host شما قرار گیرد و یا یک فایل جداگانه با دستور include (برخی افراد از یک فایل به نام ssl.conf استفاده می کنند، اما این کاملا به خود شما بستگی دارد) بسازید :
برای مثال :
نکته شماره 11 : Certificateهایی در Nginx ایجاد کنید
در ابتدا، یک key و یک certificate ایجاد کنید. در صورت تمایل از یک نوع متفاوت از رمزگذاری استفاده کنید :
سپس خطوط زیر را در یک server block جداگانه به منظور آماده سازی برای نکته بعدی، اضافه کنید (http --> https redirection) و همینطور دستورات مربوط به SSL برای block جدید را جابجا کنید :
در نکته بعد، نحوه استفاده سایت مان از یک self-signed cert و TLS را بررسی می کنیم.
نکته شماره 12 : HTTP traffic را به HTTPS در Nginx تغییر مسیر دهید
خط زیر را به اولین server block اضافه کنید :
دستور بالا، پاسخ 301 (انتقال دائم- Moved permanently) را برمی گرداند، که هر زمان که درخواستی برای پورت 80 ویرچوال هاست شما ایجاد می شود، برای تغییر مسیر دائمی URLاستفاده می شود، و درخواست برای server blockای که ما در نکته قبل اضافه کردیم را تغییر مسیر (Redirect) می دهد.
تصویر زیر، تغییر مسیر (Redirect) را نشان می دهد و حقیقت اینکه ما برای رمزنگاری از TLS 1.2 و AES-256 استفاده می کنیم را تایید می کند :
همچنین توصیه میشود مطالعه کنید.
آموزش نصب وب سرور انجین ایکس در Ubuntu 16
آموزش نصب وب سرور انجین ایکس در Debian 9
آموزش نصب وب سرور انجین ایکس در RedHat/CentOS 7.0 & Fedora 24
خلاصه :
در این پست ترفندهایی برای برقراری امنیت در nginx را مطرح کردیم.
اگر شما هم نکات امنیتی دیگری می دانید باعث خوشحالیست که با ما به اشتراک بگذارید.
موفق باشید.
در این صورت، مطمئنم از این راهنما با آغوش باز استقبال خواهید کرد چرا که قصد داریم 12 نکته برای افزایش امنیت سرورهای Nginx شما (اعم از تمام راه های به روزرسانی Nginx با استفاده از TLS و تغیر مسیر از HTTP به HTTPS) ارائه دهیم و شما متوجه خواهید شد که بعضی از آن موارد بسیار شبیه آنچه با Apache انجام می دهید است.
همچنین توصیه میشود مطالعه کنید.
13 ترفند برای امن کردن وب سرور آپاچی در لینوکس
25 ترفند موثر از فایل ".htaccess" برای امن کردن و بهبود Performance سایت ها در Apache
پسورد گذاشتن روی (فولدر، پوشه، دایرکتوری) در وب سرور انجین ایکس
محیط تست Nginx
ما در این آموزش از محیط زیر استفاده می کنیم :
- Debian GNU/Linux 8.1 - jessie.
- IP address: 192.168.0.25 برای (tecmintlovesnginx.com)
و
192.168.0.26 برای (nginxmeanspower.com)
همانطور که در بخش هاست های مجازی IP-based توضیح داده شد.
راه اندازی Virtual Hosting بر پایه Name و بر پایه IP در وب سرور Nginx
- Nginx ورژن : nginx/1.6.2.
- برای راحتی کار شما می توانید فایل کانفیگ نهایی را از اینجا دریافت کنید. (Pastebin link)
کد:
http://pastebin.com/EEvVUJzg
با توجه به موارد بالا، شروع کنیم.
نکته شماره 1 : Nginx را آپدیت نگه دارید
در حال حاضر، آخرین ورژن Nginx در CentOS (در EPEL) و در ریپازیتوری Debian، به ترتیب 1.6.3 و 1.6.2-5 هستند.
اگرچه نصب نرم افزار از مخازن راحت تر از کامپایل برنامه از source code است، اما گزینه ی دوم دو مزیت دارد :
1) به شما اجازه می دهد تا برای Nginx ماژول های اضافی نصب کنید (همچون mod_security)
و
2) همیشه یک ورژن جدیدتر از ریپازیتوری ها فراهم می کند (1.9.9 تا امروز). این نکات همیشه در وب سایت Nginx دردسترس می باشد.
همچنین توصیه میشود مطالعه کنید.
مقابله با حملات DDOS و Brute Force با استفاده از ماژول های Mod_Security و Mod_evasive
نکته شماره 2 : ماژول های غیرضروری در Nginx را حذف کنید
برای حذف ماژول های نصب شده از سورس در Nginx به شرح زیر عمل کنید :
کد:
# ./configure --without-module1 --without-module2 --without-module3
کد:
# ./configure --without-http_dav_module --withouthttp_spdy_module
پیغام هشدار : دستورالعمل های کانفیگ توسط ماژول ها فراهم می شود. مطمئن شوید، ماژولی که حاوی دستور مورد نیازتان هست راغیرفعال نکنید. شما باید قبل از اینکه تصمیمی در رابطه با غیرفعال کردن ماژول ها بگیرید، nginx docs را برای لیست دستورات موجود در هر ماژول چک کنید.
نکته شماره 3 : دستور server_tokens در Nginx را غیرفعال نمائید
دستور server_tokens به Nginx می گوید تا ورژن فعلی خود را در صفحات error نمایش دهد. بدیهی است که شما به دلیل جلوگیری از حملات ناشی از آسیب پذیری های شناخته شده در آن ورژن خاص web server خود، نمی خواهید آن اطلاعات را با دنیا به اشتراک بگذارید،.
برای غیرفعال کردن دستور server_tokens، داخل یک server block آنرا off کنید :
کد:
server { listen 192.168.0.25:80; Server_tokens off; server_name tecmintlovesnginx.com www.tecmintlovesnginx.com; access_log /var/www/logs/tecmintlovesnginx.access.log; error_log /var/www/logs/tecmintlovesnginx.error.log error; root /var/www/tecmintlovesnginx.com/public_html; index index.html index.htm; }
نکته شماره 4 : HTTP User Agents در Nginx را Deny کنید
HTTP user agent، نرم افزاری است که برای content negotiation در مقابل یک web server استفاده می شود. همچنین شامل malware botها و crawlerهایی که ممکن است به تحت تاثیر قرار دادن عملکرد web server شما با اتلاف منابع سیستم منتهی شود.
برای راحتی بیشتر، لیست undesired user agents را حفظ کنید، یک فایل ( بطور مثال /etc/nginx/blockuseragents.rules) با محتویات زیر بسازید :
کد:
map $http_user_agent $blockedagent { default 0; ~ malicious 1; ~ bot 1; ~ backdoor 1; ~ crawler 1; ~ bandit 1; }
کد:
include /etc/nginx/blockuseragents.rules;
Nginx را Restart کنید و همه user agentهایی که string شان با مورد بالا تطابق دارد، دسترسی به web server شما را بلاک خواهد کرد. 192.168.0.25 را با IP سرور خود جایگزین کنید و string متفاوتی برای سوئیچ --user-agent از دستور wget را انتخاب کنید:
کد:
# wget http://192.168.0.25/index.html # wget --user-agent "I am a bandit haha" http://192.168.0.25/index.html
نکته شماره 5 : متدهای ناخواسته HTTP در Nginx را غیرفعال کنید
متدهای http همانند افعال یک جمله ، action های دلخواه را که روی یک resource مربوط به nginx انجام می شوند را نمایش می دهد.
برای وب سایت ها و برنامه های رایج، شما باید تنها GET، POST و HEAD را مجاز کنید و تمام دستورات دیگر را غیرفعال کنید.
برای انجام این کار، خطوط زیر را داخل یک server block قرار دهید.
پاسخ 444 HTTP به معنی یک پاسخ خالی (empty response) است و اغلب برای فریب دادن malware attackها در Nginx استفاده می شود :
کد:
if ($request_method !~ ^(GET|HEAD|POST)$) { return 444; }
کد:
# curl -X DELETE http://192.168.0.25/index.html # curl -X POST http://192.168.0.25/index.html
نکته شماره 6 : محدودیت های Buffer Size در Nginx را تنظیم کنید
برای جلوگیری از حملات buffer overflow در مقابل Nginx web server شما، دستورات زیر را در یک فایل جداگانه قرار دهید (برای مثال، فایل جدیدی به نام /etc/nginx/conf.d/buffer.conf ایجاد کنید) :
کد:
client_body_buffer_size 1k; client_header_buffer_size 1k; client_max_body_size 1k; large_client_header_buffers 2 1k;
سپس یک دستور include در فایل کانفیگ اضافه کنید:
کد:
include /etc/nginx/conf.d/*.conf;
دستور شماره 7 : تعداد کانکشن های IP در Nginx را محدود کنید
برای محدود کردن کانکشن ها IP، از دستورات limit_conn_zone (در یک http context یا در حداقل خروجی server block) و limit_conn (در یک http، server block یا location context) استفاده کنید.
با این حال، به خاطر داشته باشید که همه کانکشن ها قابل شمارش نیستند - اما تنها آنهایی که درخواست پردازش شده از server و request headerکامل دارند؛ خوانده می شوند.
برای مثال، بگذارید حداکثر کانکشن ها معادل 1 تنظیم شود (بله، این اغراق آمیز است، اما در این مورد، کار را به نحوه احسن انجام می دهد) در یک zone به نام addr (می توانید هر نامی که می خواهید را بر روی آن بگذارید) :
کد:
limit_conn_zone $binary_remote_addr zone=addr:5m; limit_connaddr 1;
یک تست ساده با Apache Benchmark (اجرای Nginx Load) و درمجموع 10 کانکشن با 2 درخواست همزمان به ما کمک می کند تا نکته مورد نظرخودمان را نشان دهیم :
کد:
# ab -n 10 -c 2 http://192.168.0.25/index.html
نکته شماره 8 : Monitor Logها را برای Nginx نصب کنید
وقتی تست توضیح داده شده در نکته قبل را اجرا کردید، error logای که برای server block تعریف شده است را چک کنید :
ممکن است بخواهید از grep برای فیلتر لاگ ها به منظور failed requestهای ایجاد شده برای تعریف addr zone در نکته شماره 7 استفاده کنید :
کد:
# grepaddr /var/www/logs/tecmintlovesnginx.error.log --color=auto
به همین ترتیب، شما می توانید access log را برای کسب اطلاعات مورد علاقه، فیلتر کنید، از جمله :
- Client IP
- نوع مرورگر
- منابع مورد درخواست
- نوع HTTP request
- پاسخگویی به درخواست Server block (اگر چندیدن virtual host همزمان به یک فایل لاگین کنند، مفید خواهد بود).
و اگر هرگونه فعالیت غیرمعمول و یا ناخواسته را تشخیص دادید؛ اقدامی مناسب کنید.
نکته شماره 9 : مانع از Image Hotlinking در Nginx شوید
Image hotlinking زمانی رخ می دهد که یک نفر در سایت های دیگر، image ی را از سایت شما به نمایش بگذارد. این امر سبب افزایش استفاده از پهنای باند شما (که برای آن هزینه کرده اید) می شود، در حالی که فرد دیگری با خوشحالی تصویری را به نمایش می گذارد که آن را جزو دارایی خود می داند. به عبارت دیگر، ضرر دوبرابر برای شما است.
به عنوان مثال، فرض کنید یک زیر دایرکتوری به نام img در server block خود دارید که تمام تصاویر مورد استفاده در آن virtual host را در آن ذخیره کرده اید. برای جلوگیری از دیگر سایت ها برای استفاده از تصاویر شما، لازم است location block زیر را در virtual host تعریف شده خود، قرار دهید :
کد:
location /img/ { valid_referers none blocked 192.168.0.25; if ($invalid_referer) { return 403; } }
کد:
[COLOR=#00ff00][B]192.168.0.25[/B][/COLOR] <!DOCTYPE html> <html> <head> <meta charset=”utf-8″> <title>Tecmint loves Nginx</title> </head> <body> <h1>Tecmint loves Nginx!</h1> <img src=”img/nginx.png” /> </body> </html>
کد:
[B][COLOR=#00ff00]192.168.0.26[/COLOR][/B] <!DOCTYPE html> <html> <head> <meta charset=”utf-8″> <title>Nginx means power</title> </head> <body> <h1>Nginx means power!</h1> <img src=”http://192.168.0.25/img/nginx.png” /> </body> </html>
دقت کنید که این نکته به بروزر ریموت که فیلد مربوطه را ارسال میکند بستگی دارد.
نکته شماره 10 : SSL را غیرفعال و تنها TLS را در Nginx فعال کنید
درصورت امکان، هر کاری که مانع SSL در هر یک از ورژن های آن و در عوض استفاده از TLS می شود؛ انجام دهید. ssl_protocolهای زیر باید در یک سرور یا http context در فایل virtual host شما قرار گیرد و یا یک فایل جداگانه با دستور include (برخی افراد از یک فایل به نام ssl.conf استفاده می کنند، اما این کاملا به خود شما بستگی دارد) بسازید :
کد:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
نکته شماره 11 : Certificateهایی در Nginx ایجاد کنید
در ابتدا، یک key و یک certificate ایجاد کنید. در صورت تمایل از یک نوع متفاوت از رمزگذاری استفاده کنید :
کد:
# opensslgenrsa -aes256 -out tecmintlovesnginx.key 1024 # opensslreq -new -key tecmintlovesnginx.key -out tecmintlovesnginx.csr # cptecmintlovesnginx.key tecmintlovesnginx.key.org # opensslrsa -in tecmintlovesnginx.key.org -out tecmintlovesnginx.key # openssl x509 -req -days 365 -in tecmintlovesnginx.csr -signkeytecmintlovesnginx.key -out tecmintlovesnginx.crt
کد:
server { listen 192.168.0.25:443 ssl; server_tokens off; server_name tecmintlovesnginx.com www.tecmintlovesnginx.com; root /var/www/tecmintlovesnginx.com/public_html; ssl_certificate /etc/nginx/sites-enabled/certs/tecmintlovesnginx.crt; ssl_certificate_key /etc/nginx/sites-enabled/certs/tecmintlovesnginx.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; }
نکته شماره 12 : HTTP traffic را به HTTPS در Nginx تغییر مسیر دهید
خط زیر را به اولین server block اضافه کنید :
کد:
return 301 https://$server_name$request_uri;
دستور بالا، پاسخ 301 (انتقال دائم- Moved permanently) را برمی گرداند، که هر زمان که درخواستی برای پورت 80 ویرچوال هاست شما ایجاد می شود، برای تغییر مسیر دائمی URLاستفاده می شود، و درخواست برای server blockای که ما در نکته قبل اضافه کردیم را تغییر مسیر (Redirect) می دهد.
تصویر زیر، تغییر مسیر (Redirect) را نشان می دهد و حقیقت اینکه ما برای رمزنگاری از TLS 1.2 و AES-256 استفاده می کنیم را تایید می کند :
همچنین توصیه میشود مطالعه کنید.
آموزش نصب وب سرور انجین ایکس در Ubuntu 16
آموزش نصب وب سرور انجین ایکس در Debian 9
آموزش نصب وب سرور انجین ایکس در RedHat/CentOS 7.0 & Fedora 24
خلاصه :
در این پست ترفندهایی برای برقراری امنیت در nginx را مطرح کردیم.
اگر شما هم نکات امنیتی دیگری می دانید باعث خوشحالیست که با ما به اشتراک بگذارید.
موفق باشید.
کامنت