همهٔ موضوعات ←نوشتههای با برچسب امنیت وب
۱۰۰ نوشته، از تازهترین به قدیمیترین.
۰۱
انجیناکس؛ شب ۹: لاگ درخواست، reload و عیبیابیوقتی سایت باز نمیشود باید تشخیص بدهیم خطا از listener، انتخاب سایت، مسیر فایل یا برنامه است. امشب لاگ را با پاسخ واقعی مرتبط میکنیم.
۲ دقیقه مطالعه
Nginx ←۰۲
انجیناکس؛ شب ۸: مجوز فایل، کاربر کارگر و SELinux403 همیشه یک علت ندارد. امشب policy وب، دسترسی لینوکس و label امنیتی را جدا میسنجیم تا مشکل با chmod گسترده پنهان نشود.
۲ دقیقه مطالعه
Nginx ←۰۳
انجیناکس؛ شب ۷: انتخاب location، root، alias و try_filesبیشتر خطاهای مسیریابی از تصور نادرست دربارهٔ location میآیند. امشب URL را تا مسیر فایل دنبال میکنیم و precedence یا ترتیب اولویت را با مثال میسنجیم.
۲ دقیقه مطالعه
Nginx ←۰۴
انجیناکس؛ شب ۶: چند سایت و default_serverنام ناشناس هم باید رفتار مشخصی داشته باشد. امشب سایت دوم و یک server پیشفرض محدود میسازیم تا ترتیب فایلها بهطور اتفاقی محتوای سایت اصلی را منتشر نکند.
۲ دقیقه مطالعه
Nginx ←۰۵
انجیناکس؛ شب ۵۰: پروژهٔ نهایی، آزمون خرابی و تحویل دورهپایان دوره یک config بزرگ قابل کپی نیست؛ مجموعهای از سرویسها و شواهد است که توضیح میدهد درخواست از کجا میآید، چه چیزی به آن اعتماد میکند و در خرابی چه رفتاری میبینیم.
۳ دقیقه مطالعه
Nginx ←۰۶
انجیناکس؛ شب ۵: اولین server block مستقلServer block تنظیمات سایت را بر اساس آدرس، پورت و نام جدا میکند. امشب www.nginx.test را با محتوای خودمان و لاگ مستقل راه میاندازیم.
۲ دقیقه مطالعه
Nginx ←۰۷
انجیناکس؛ شب ۴۹: اصلاح یافتههای ممیزی و آزمون بازگشتهر یافتهٔ audit باید به تغییر قابل بررسی تبدیل شود. امشب یکی از موارد نامطابق واقعی را اصلاح میکنیم، اثر آن بر برنامه را میسنجیم و استثنای لازم را با دلیل ثبت میکنیم.
۳ دقیقه مطالعه
Nginx ←۰۸
انجیناکس؛ شب ۴۸: ممیزی فقطخواندنی بر پایهٔ CIS NGINXممیزی باید نشان دهد کدام الزام، در کدام نسخه و با چه شاهدی بررسی شده است. امشب شواهد Nginx را بدون تغییر سرویس جمع میکنیم و مرز بررسی دستی و scanner را روشن میکنیم.
۳ دقیقه مطالعه
Nginx ←۰۹
انجیناکس؛ شب ۴۷: سختسازی Nginx، فایلها و سرویسسختسازی یعنی سطح دسترسی و قابلیتها با نقش واقعی سرویس هماهنگ شود. امشب فایل، شبکه، module و systemd را محدود میکنیم و سالم ماندن HTTP، PHP و stream را میسنجیم.
۳ دقیقه مطالعه
Nginx ←۱۰
انجیناکس؛ شب ۴۶: TLS passthrough، SNI و PROXY protocolدر TLS passthrough، Nginx stream گواهی را باز نمیکند؛ بر پایهٔ اطلاعات ClientHello مسیر اتصال را انتخاب میکند. امشب آن را با TLS termination و انتقال IP مقایسه میکنیم.
۳ دقیقه مطالعه
Nginx ←۱۱
انجیناکس؛ شب ۴۵: پراکسی UDP با echo خصوصی و timeout مشخصUDP handshake و پایان اتصال TCP را ندارد. امشب با یک echo کوچک، تعداد پاسخ و timeout session را بررسی میکنیم؛ آزمایشگاه به DNS resolver عمومی تبدیل نمیشود.
۳ دقیقه مطالعه
Nginx ←۱۲
انجیناکس؛ شب ۴۴: پراکسی TCP، توزیع اتصال و IP ACLپراکسی TCP بایتهای یک اتصال را به backend منتقل میکند. امشب دو backend آزمایشگاهی را پشت یک پورت میگذاریم و تفاوت توزیع اتصال با توزیع درخواست HTTP را میبینیم.
۲ دقیقه مطالعه
Nginx ←۱۳
انجیناکس؛ شب ۴۳: nginx-full، ماژول stream و context درستstream در Nginx برای پراکسی TCP و UDP است. این کاربرد با نمایش ویدئو یا HTTP streaming فرق دارد؛ قبل از تنظیم پورت باید ماژول و جای بلوک stream را درست بشناسیم.
۳ دقیقه مطالعه
Nginx ←۱۴
انجیناکس؛ شب ۴۲: درخواست، health check و ارتقای کانتینربالا بودن فرایند Nginx تضمین نمیکند backend سالم است. امشب وضعیت فرایند، مسیر واقعی درخواست، rollout و rollback را با artifact مشخص جداگانه بررسی میکنیم.
۳ دقیقه مطالعه
Nginx ←۱۵
انجیناکس؛ شب ۴۱: TLS، رازها و اعتماد در ورودی کانتینرTLS میتواند در Nginx میزبان یا در frontend کانتینری خاتمه یابد. امشب هر دو مسیر را روشن میکنیم و دسترسی کلید خصوصی را به فرایند لازم محدود میکنیم.
۳ دقیقه مطالعه
Nginx ←۱۶
انجیناکس؛ شب ۴۰: Compose، شبکهٔ خصوصی و تغییر IP backendدر کانتینر، localhost همان کانتینر است. امشب frontend به نام سرویس backend متصل میشود و با تغییر IP آن، درخواستهای جدید همچنان مسیر درست را پیدا میکنند.
۳ دقیقه مطالعه
Nginx ←۱۷
انجیناکس؛ شب ۴: contextها، Include و ماژولهاdirective درست در context اشتباه قابل استفاده نیست. امشب ساختار config را میخوانیم تا تنظیم HTTP، stream و بارگذاری ماژول با هم مخلوط نشوند.
۲ دقیقه مطالعه
Nginx ←۱۸
انجیناکس؛ شب ۳۹: اجرای Nginx در کانتینر با کاربر محدودکانتینر پیکربندی و فرایند Nginx را بستهبندی میکند، ولی trust و امنیت میزبان همچنان اهمیت دارند. امشب یک سایت ساده را با filesystem فقطخواندنی و worker بدون root اجرا میکنیم.
۳ دقیقه مطالعه
Nginx ←۱۹
انجیناکس؛ شب ۳۸: تنظیم false positive بدون خاموش کردن WAFوقتی یک فرم سالم مسدود میشود، باید بفهمیم کدام rule و کدام پارامتر سبب آن شده است. امشب استثنا را تا یک مسیر، پارامتر و شناسه محدود میکنیم و کارکرد قواعد دیگر را دوباره میسنجیم. …
۳ دقیقه مطالعه
Nginx ←۲۰
انجیناکس؛ شب ۳۷: OWASP CRS از DetectionOnly تا مسدودسازیOWASP CRS مجموعهای از قواعد عمومی تشخیص حمله است. ابتدا ثابت میکنیم موتور درخواست را میبیند، سپس قواعد CRS و مسیر عبور ترافیک سالم را بررسی میکنیم.
۳ دقیقه مطالعه
Nginx ←۲۱
انجیناکس؛ شب ۳۶: ساخت موتور و ماژول ModSecurity در cloneوقتی بستهٔ سازگار نداری، ساخت ماژول نیازمند artifact قابل بازتولید است. امشب موتور و connector را در clone میسازیم و فقط ماژول را برای Nginx موجود نصب میکنیم.
۳ دقیقه مطالعه
Nginx ←۲۲
انجیناکس؛ شب ۳۵: ModSecurity، connector و سازگاری بستههاModSecurity یک دیوارهٔ آتش برنامهٔ وب یا WAF است: درخواست HTTP را با مجموعهٔ قواعد بررسی میکند. برای Nginx، موتور، connector و قواعد سه جزء جدا هستند؛ نصب یک بسته الزاماً همهٔ …
۳ دقیقه مطالعه
Nginx ←۲۳
انجیناکس؛ شب ۳۴: backup قابل بازیابی، cron و استقرار WordPressbackup زمانی مفید است که بازیابی آن کار کند. امشب database، uploads، کد و تنظیمات را به یک مجموعهٔ سازگار تبدیل میکنیم و اجرای زمانبندیشدهٔ WordPress را از ترافیک سایت جدا …
۳ دقیقه مطالعه
Nginx ←۲۴
انجیناکس؛ شب ۳۳: اعتماد HTTPS، ظرفیت FPM و خطر cache خصوصیWordPress پشت یک پراکسی دیگر ممکن است HTTPS را اشتباه تشخیص دهد یا پاسخ خصوصی را cache کند. امشب مرز اعتماد و ظرفیت پردازش PHP را با آزمون مشخص میکنیم.
۴ دقیقه مطالعه
Nginx ←۲۵
انجیناکس؛ شب ۳۲: server block کامل WordPress و جلوگیری از اجرای uploadNginx فایل PHP را اجرا نمیکند؛ مسیر درست فایل را با FastCGI به PHP-FPM میفرستد. امشب WordPress، permalink و رسانه را فعال میکنیم و اجرای فایل بارگذاریشده را میبندیم.
۳ دقیقه مطالعه
Nginx ←۲۶
انجیناکس؛ شب ۳۱: WordPress، پایگاه داده و مالکیت کدWordPress را با پایگاه دادهٔ اختصاصی آماده میکنیم. PHP باید بتواند تنظیمات را بخواند و رسانه بارگذاری کند، اما به تغییر هسته و همهٔ فایلها دسترسی نخواهد داشت.
۳ دقیقه مطالعه
Nginx ←۲۷
انجیناکس؛ شب ۳۰: PHP-FPM روی AlmaLinux و Rocky Linuxدر شاخهٔ RHEL نام سرویس و مسیر socket فرق دارد. امشب pool مستقل را با stream مناسب PHP میسازیم، بدون تغییر کور نصب موجود.
۲ دقیقه مطالعه
Nginx ←۲۸
انجیناکس؛ شب ۳: نصب Nginx روی AlmaLinux و Rocky Linuxدر خانوادهٔ RHEL، مسیر سایت و کاربر سرویس با Debian فرق دارد. امشب Nginx را با SELinux فعال نصب میکنیم و فرضهای شاخهٔ خودمان را ثبت میکنیم.
۲ دقیقه مطالعه
Nginx ←۲۹
انجیناکس؛ شب ۲۹: PHP-FPM و socket روی Debian و UbuntuNginx خودش PHP اجرا نمیکند؛ درخواست را با FastCGI به PHP-FPM میدهد. امشب حساب مستقل WordPress و pool محدود را پیش از انتشار برنامه آماده میکنیم.
۲ دقیقه مطالعه
Nginx ←۳۰
انجیناکس؛ شب ۲۸: برنامهٔ پایدار با systemd پشت Nginxbackend وابسته به ترمینال برای بهرهبرداری مناسب نیست. امشب یک برنامهٔ WSGI، یعنی قرارداد اجرای وب پایتونی، را با حساب مستقل و Gunicorn راه میاندازیم.
۲ دقیقه مطالعه
Nginx ←۳۱
انجیناکس؛ شب ۲۷: SSE، buffering و پاسخ جریانیSSE یا رویدادهای ارسالی سرور، پیام را یکطرفه روی HTTP میفرستد. امشب تفاوت انتظار backend و تأخیر ناشی از buffering را اندازه میگیریم.
۲ دقیقه مطالعه
Nginx ←۳۲
انجیناکس؛ شب ۲۶: WebSocket و تبادل واقعی پیامWebSocket پس از handshake یک ارتباط دوطرفهٔ طولانی میسازد. امشب echo server را از wss منتشر میکنیم و تنها به دریافت کد 101 اکتفا نمیکنیم.
۲ دقیقه مطالعه
Nginx ←۳۳
انجیناکس؛ شب ۲۵: upstream، توزیع بار و خرابی عضودو backend ظرفیت و امکان ادامهٔ سرویس میدهند، ولی وضعیت نشست و عملیات نیمهتمام خودکار حل نمیشود. امشب توزیع درخواست و failover را با شواهد بررسی میکنیم.
۲ دقیقه مطالعه
Nginx ←۳۴
انجیناکس؛ شب ۲۴: TLS معتبر تا backendTLS ورودی مسیر تا backend را خودکار محافظت نمیکند. امشب ارتباط HTTPS داخلی را با بررسی نام و CA فعال میکنیم و شکست هویت را بهصورت عمدی آزمایش میکنیم.
۲ دقیقه مطالعه
Nginx ←۳۵
انجیناکس؛ شب ۲۳: زیرمسیر، هدرها، redirect و cookieبرنامهٔ ریشه همیشه زیر /service/ سالم کار نمیکند. امشب معنای slash در proxy_pass، هدرهای forwarded و اطلاعات بازگشتی را جدا بررسی میکنیم.
۲ دقیقه مطالعه
Nginx ←۳۶
انجیناکس؛ شب ۲۲: اولین برنامه پشت پراکسی معکوسNginx میتواند ورودی عمومی و TLS را مدیریت کند و برنامه فقط روی loopback پاسخ بدهد. امشب این جداسازی را با backend قابل تشخیص میسازیم.
۲ دقیقه مطالعه
Nginx ←۳۷
انجیناکس؛ شب ۲۱: محدودیت همزمانی، body و اتصال کندنرخ درخواست با تعداد درخواستهای همزمان یکی نیست. امشب اتصالهای فعال، اندازهٔ ورودی و زمان خواندن را جدا محدود میکنیم.
۲ دقیقه مطالعه
Nginx ←۳۸
انجیناکس؛ شب ۲۰: rate limit درخواست با dry runمیخواهیم تعداد درخواست سریع هر مبدأ را کنترل کنیم، بدون آنکه ابتدا رفتار کاربران را حدس بزنیم. امشب zone، burst و حالت مشاهده را با پاسخ واقعی آزمایش میکنیم.
۲ دقیقه مطالعه
Nginx ←۳۹
انجیناکس؛ شب ۲: نصب Nginx روی Debian و Ubuntuبستهٔ نصبشده، سرویس فعال و سایت قابل دسترس سه وضعیت متفاوتاند. امشب نصب را در شاخهٔ Debian انجام میدهیم و هر سه را بررسی میکنیم.
۲ دقیقه مطالعه
Nginx ←۴۰
انجیناکس؛ شب ۱۹: mTLS و گواهی کلاینتTLS معتبر هویت سرور را میسنجد؛ mTLS هویت کلاینت را هم وارد handshake میکند. امشب یک میزبان خصوصی با گواهی کلاینت و محدودیت IP میسازیم.
۲ دقیقه مطالعه
Nginx ←۴۱
انجیناکس؛ شب ۱۸: IP واقعی و مرز اعتماد به پراکسیوقتی Nginx پشت edge باشد، مبدأ اتصال خود edge است. امشب فقط به یک همتای مشخص اجازه میدهیم IP کلاینت را اعلام کند؛ این تصمیم روی allowlist و rate limit اثر دارد.
۲ دقیقه مطالعه
Nginx ←۴۲
انجیناکس؛ شب ۱۷: محدودیت IP و احراز هویت همزمانبرای بخش مدیریتی، IP مجاز و کاربر معتبر را با هم میخواهیم. امشب allow/deny و satisfy را با درخواست واقعی از دو کلاینت بررسی میکنیم.
۲ دقیقه مطالعه
Nginx ←۴۳
انجیناکس؛ شب ۱۶: فشردهسازی و cache فایل ثابتcache مناسب ترافیک را کم میکند؛ cache پاسخ شخصی میتواند داده را افشا کند. امشب فقط داراییهای ثابت را تنظیم میکنیم و نوع محتوا و رفتار gzip را میسنجیم.
۲ دقیقه مطالعه
Nginx ←۴۴
انجیناکس؛ شب ۱۵: هدرهای امنیتی، ارثبری و CSPهدر صحیح اگر در location فرزند حذف شود، حفاظت موردنظر را نمیدهد. امشب ارثبری add_header و سیاست محتوا را با پاسخ موفق و خطا بررسی میکنیم.
۲ دقیقه مطالعه
Nginx ←۴۵
انجیناکس؛ شب ۱۴: سیاست TLS، HTTP/2 و HSTSHTTP/2 چند جریان درخواست را روی یک اتصال حمل میکند. امشب آن را با نحو سازگار نسخه فعال و سیاست TLS و HSTS را با امکان بازگشت تنظیم میکنیم.
۲ دقیقه مطالعه
Nginx ←۴۶
انجیناکس؛ شب ۱۳: گواهی عمومی، ACME و تمدیدCA محلی برای دامنهٔ عمومی اعتماد ایجاد نمیکند. امشب صدور و تمدید را روی دامنهای متعلق به خودمان طراحی میکنیم؛ این شاخه روی .test اجرا نمیشود.
۲ دقیقه مطالعه
Nginx ←۴۷
انجیناکس؛ شب ۱۲: HTTPS، SNI و ورودی ناشناسگواهی آماده است؛ اکنون آن را روی سایت نصب میکنیم و انتخاب گواهی را از انتخاب Host در HTTP جدا میسنجیم.
۲ دقیقه مطالعه
Nginx ←۴۸
انجیناکس؛ شب ۱۱: گواهی آزمایشگاهی و نام معتبربرای تمرین HTTPS نباید بررسی اعتماد را خاموش کنیم. امشب یک CA محلی، یعنی مرجع صدور گواهی، میسازیم و گواهی با نامهای واقعی lab صادر میکنیم.
۲ دقیقه مطالعه
Nginx ←۴۹
انجیناکس؛ شب ۱۰: redirect، rewrite و query stringانتقال نشانی قدیمی با مسیریابی داخلی برنامه متفاوت است. امشب redirect را بدون ساختن حلقه یا اعتماد به Host ورودی پیاده میکنیم.
۲ دقیقه مطالعه
Nginx ←۵۰
انجیناکس؛ شب ۱: آزمایشگاه و مسیر یک درخواستهدف این دوره ساخت چند سرویس وب با ورودی قابل کنترل است. امشب آزمایشگاهی میسازیم که بتوان در آن درخواست مجاز، درخواست نامجاز و خرابی backend را جدا دید.
۲ دقیقه مطالعه
Nginx ←۵۱
آپاچی؛ شب ۹: لاگها، reload و تشخیص ۴۰۳ تا ۵۰۳وقتی مرورگر فقط «باز نمیشود» میگوید، باید شاهد جمع کنیم. امشب درخواست، کد پاسخ، میزبان انتخابشده و error log را به هم وصل میکنیم.
۲ دقیقه مطالعه
Apache ←۵۲
آپاچی؛ شب ۸: Directory، Location و Aliasنشانی مرورگر همیشه مسیر مستقیم روی دیسک نیست. امشب یک پوشهٔ خارج از DocumentRoot را با Alias منتشر میکنیم و تفاوت محدود کردن فایل و URL را میبینیم.
۲ دقیقه مطالعه
Apache ←۵۳
آپاچی؛ شب ۷: مجوز فایل و برچسب SELinuxخطای 403 میتواند از policy Apache، مجوز لینوکس یا SELinux بیاید. امشب این سه علت را جدا میکنیم تا رفع مشکل به باز کردن بیحساب دسترسی تبدیل نشود.
۲ دقیقه مطالعه
Apache ←۵۴
آپاچی؛ شب ۶: چند سایت و پاسخ به نام ناشناسدو نام میتوانند روی یک IP سایتهای متفاوت داشته باشند، اما درخواست با نام ناشناس هم به یک میزبان میرسد. امشب ترتیب انتخاب سایت و میزبان پیشفرض را آزمایش میکنیم.
۲ دقیقه مطالعه
Apache ←۵۵
آپاچی؛ شب ۵۰: پروژهٔ نهایی و تحویل وبسرور قابل نگهداریاکنون اجزای زیادی داریم؛ تحویل خوب یعنی همهٔ آنها در یک سناریوی روشن و قابل بازیابی کار کنند. امشب سرویس را از دید کاربر، مدیر و ممیز بررسی میکنیم.
۲ دقیقه مطالعه
Apache ←۵۶
آپاچی؛ شب ۵: اولین میزبان مجازی با DocumentRoot مستقلمیخواهیم نام www.example.test به محتوای خودمان برسد. VirtualHost یا میزبان مجازی، تنظیمات یک سایت را روی یک IP و پورت مشخص از سایتهای دیگر جدا میکند.
۲ دقیقه مطالعه
Apache ←۵۷
آپاچی؛ شب ۴۹: اصلاح یافتههای CIS و آزمون عدم خرابیممیزی بدون اصلاح، بدهی مشخصشده باقی میگذارد؛ اصلاح بدون آزمون میتواند سرویس سالم را قطع کند. امشب هر یافته را به یک تغییر محدود و نتیجهٔ قابل بازبینی تبدیل میکنیم.
۲ دقیقه مطالعه
Apache ←۵۸
آپاچی؛ شب ۴۸: ممیزی CIS با شاهد و بررسی فقطخواندنیوجود directive در یک فایل، فعال بودن آن را اثبات نمیکند. امشب ممیزی را از config خواندهشده تا رفتار شبکه پیش میبریم و وضعیت هر کنترل را با شاهد ثبت میکنیم.
۲ دقیقه مطالعه
Apache ←۵۹
آپاچی؛ شب ۴۷: CIS Apache؛ نسخه، دامنه و baselineCIS Benchmark مجموعهٔ توصیههای پیکربندی است، نه گواهی امن بودن یک سرویس. امشب مرجع ممیزی، دامنهٔ سرویس و استثناها را قبل از اجرای اصلاحات مشخص میکنیم.
۲ دقیقه مطالعه
Apache ←۶۰
آپاچی؛ شب ۴۶: مانیتورینگ خصوصی، خطا و چرخش لاگپاسخ 200 لحظهای برای بهرهبرداری کافی نیست. امشب ظرفیت، خطاهای backend، تاریخ گواهی و رشد لاگ را به چند شاهد قابل پیگیری تبدیل میکنیم.
۲ دقیقه مطالعه
Apache ←۶۱
آپاچی؛ شب ۴۵: سختسازی با SELinux، AppArmor و systemdمجوز فایل تنها مرز اجرای برنامه نیست. امشب کنترل اجباری سیستمعامل و محدودیت واحد سرویس را بررسی میکنیم، با آزمونهایی که خرابی ناشی از policy را آشکار کنند.
۲ دقیقه مطالعه
Apache ←۶۲
آپاچی؛ شب ۴۴: محدودیت درخواست، اتصال کند و بودجهٔ منابعیک وبسرور با TLS و هدرهای درست هنوز میتواند زیر بار نامتناسب از دسترس خارج شود. امشب زمانها، اندازهٔ درخواست و ظرفیت کارگر را با رفتار برنامه هماهنگ میکنیم.
۲ دقیقه مطالعه
Apache ←۶۳
آپاچی؛ شب ۴۳: سختسازی پایهٔ Apache و بستن مسیرهای اضافیHardening یا سختسازی یعنی کم کردن سطح حمله با حفظ قابلیت لازم. امشب ماژولها، فایلهای منتشرشده و میزبان پیشفرض را بررسی میکنیم؛ هر حذف باید آزمون بازگشت داشته باشد.
۳ دقیقه مطالعه
Apache ←۶۴
آپاچی؛ شب ۴۲: backup، بازیابی، cron و ارتقای WordPressنسخهٔ پشتیبان زمانی ارزش دارد که بتوانی آن را بازیابی کنی. امشب دیتابیس، فایلها و تنظیمات لازم را جمع میکنیم و اجرای کارهای زمانبندیشده را از ترافیک بازدیدکننده جدا میکنیم.
۳ دقیقه مطالعه
Apache ←۶۵
آپاچی؛ شب ۴۱: پیوندهای WordPress، upload و HTTPS پشت پراکسیسایت باز میشود، اما پیوند مطلب 404 میدهد یا تصویر upload نمیشود. امشب مسیرهای WordPress و محدودهٔ نوشتن را تکمیل میکنیم؛ سپس اعتماد به HTTPS اعلامشده از edge را جدا بررسی …
۲ دقیقه مطالعه
Apache ←۶۶
آپاچی؛ شب ۴۰: سایت WordPress با PHP-FPM و HTTPSمسیر اصلی دوره اکنون آمادهٔ انتشار WordPress است: Apache event برای HTTP و pool مستقل برای PHP. امشب میزبان اختصاصی را میسازیم و نصب را با HTTPS معتبر تکمیل میکنیم.
۳ دقیقه مطالعه
Apache ←۶۷
آپاچی؛ شب ۴: فایلهای پیکربندی، Include و ماژولهایک directive درست در فایل خواندهنشده هیچ اثری ندارد. امشب یاد میگیریم Apache چه فایلهایی را میخواند و ماژول لازم برای هر قابلیت را چگونه پیدا کنیم.
۲ دقیقه مطالعه
Apache ←۶۸
آپاچی؛ شب ۳۹: اجرای WordPress با mod_php و PHP-CGIWordPress وابسته به یک روش خاص اجرای PHP نیست. امشب یک deployment یکسان را در دو Clone با mod_php و PHP-CGI میسنجیم تا تفاوت هویت اجرا، ظرفیت و تنظیمات روشن شود.
۲ دقیقه مطالعه
Apache ←۶۹
آپاچی؛ شب ۳۸: آمادهسازی WordPress، دیتابیس و فایلهاWordPress به PHP، پایگاه داده و فایلهای قابل مدیریت نیاز دارد. امشب دیتابیس با حساب محدود به خودش میسازیم و کد و راز را پیش از انتشار از هم جدا میکنیم.
۳ دقیقه مطالعه
Apache ←۷۰
آپاچی؛ شب ۳۷: ظرفیت FPM، OPcache و slow logافزایش تعداد کارگر بدون بودجهٔ حافظه میتواند کل سرویس را از دسترس خارج کند. امشب ظرفیت PHP را با اندازهگیری انتخاب میکنیم و درخواست کند را بدون نمایش خطا به کاربر پیدا میکنیم.
۲ دقیقه مطالعه
Apache ←۷۱
آپاچی؛ شب ۳۶: pool مستقل و حساب کماختیار برای WordPressاگر همهٔ سایتها با یک کاربر PHP اجرا شوند، compromise یک سایت میتواند دادهٔ سایت دیگر را هم در دسترس بگذارد. امشب حساب runtime WordPress و socket مستقل آن را آماده میکنیم.
۲ دقیقه مطالعه
Apache ←۷۲
آپاچی؛ شب ۳۵: PHP-FPM روی AlmaLinux و Rocky Linuxدر خانوادهٔ RHEL 9، مدل بستهبندی PHP با FPM کار میکند. امشب stream مناسب را آگاهانه انتخاب میکنیم و socket اختصاصی را به میزبان وصل میکنیم.
۲ دقیقه مطالعه
Apache ←۷۳
آپاچی؛ شب ۳۴: PHP-FPM روی Debian و UbuntuPHP-FPM اجرای PHP را از کارگرهای Apache جدا میکند. امشب یک pool محدود میسازیم، Apache event را نگه میداریم و نبودن FPM را نیز آزمایش میکنیم.
۲ دقیقه مطالعه
Apache ←۷۴
آپاچی؛ شب ۳۳: PHP-CGI، Action و جلوگیری از اجرای مستقیمPHP-CGI روش قدیمیتر اتصال PHP به Apache است. امشب در یک Clone نشان میدهیم فایل PHP چگونه از طریق Action به مفسر میرسد و چرا حفاظت اجرای مستقیم مفسر لازم است.
۲ دقیقه مطالعه
Apache ←۷۵
آپاچی؛ شب ۳۲: PHP با mod_php روی Debian و Ubuntumod_php کد PHP را داخل کارگرهای Apache اجرا میکند. امشب آن را در Clone مستقل میآزماییم؛ مسیر اصلی event و PHP-FPM دوره را پس از آزمایش بازیابی میکنیم.
۲ دقیقه مطالعه
Apache ←۷۶
آپاچی؛ شب ۳۱: CGI با یک برنامهٔ کوچک و محدودCGI یا Common Gateway Interface قرارداد اجرای برنامه و تحویل خروجی آن به وبسرور است. امشب یک برنامهٔ ساده اجرا میکنیم تا تفاوت فایل ثابت، برنامهٔ اجراشدنی و FastCGI روشن شود.
۲ دقیقه مطالعه
Apache ←۷۷
آپاچی؛ شب ۳۰: اجرای پایدار برنامه پشت Apache با systemdترمینال باز راه نگهداری سرویس نیست. امشب یک برنامهٔ WSGI را با حساب مستقل و Gunicorn زیر systemd اجرا میکنیم و Apache را به ورودی HTTPS آن تبدیل میکنیم.
۲ دقیقه مطالعه
Apache ←۷۸
آپاچی؛ شب ۳: نصب httpd روی AlmaLinux و Rocky Linuxهمان Apache در خانوادهٔ RHEL با نام بسته و سرویس httpd عرضه میشود. امشب آن را با SELinux فعال نصب میکنیم و مسیرهای این شاخه را ثبت میکنیم.
۲ دقیقه مطالعه
Apache ←۷۹
آپاچی؛ شب ۲۹: SSE، پاسخ جریانی و timeoutبعضی برنامهها پیام را فقط از سرور به مرورگر میفرستند. SSE یا Server-Sent Events این کار را روی HTTP انجام میدهد؛ برخلاف WebSocket به upgrade نیاز ندارد. امشب زمان رسیدن هر پیام …
۲ دقیقه مطالعه
Apache ←۸۰
آپاچی؛ شب ۲۸: WebSocket و آزمون رفتوبرگشت پیامWebSocket پس از handshake، ارتباط دوطرفهٔ طولانی میسازد. امشب یک echo server محلی را از مسیر wss://app.example.test/ws/ منتشر میکنیم و دریافت 101 را با تبادل واقعی پیام تکمیل …
۲ دقیقه مطالعه
Apache ←۸۱
آپاچی؛ شب ۲۷: توزیع بار و رفتار هنگام خرابی backendدو backend میتوانند ظرفیت و امکان ادامهٔ سرویس بدهند، اما دادهٔ نشست و درخواست نیمهتمام خودکار حل نمیشود. امشب توزیع درخواست و خرابی یک عضو را اندازه میگیریم.
۲ دقیقه مطالعه
Apache ←۸۲
آپاچی؛ شب ۲۶: TLS معتبر میان Apache و backendTLS در ورودی، مسیر تا backend را خودکار محافظت نمیکند. امشب backend دارای HTTPS میسازیم و بررسی CA و نام آن را در Apache الزامی میکنیم.
۲ دقیقه مطالعه
Apache ←۸۳
آپاچی؛ شب ۲۵: پراکسی زیرمسیر، redirect و cookieبرنامهای که در ریشه کار میکند الزاماً زیر /service/ درست کار نمیکند. امشب مسیر درخواست، redirect و cookie را جدا بررسی میکنیم و محدودیت بازنویسی پراکسی را میشناسیم.
۲ دقیقه مطالعه
Apache ←۸۴
آپاچی؛ شب ۲۴: پراکسی معکوس اولین برنامهپراکسی معکوس درخواست عمومی را میگیرد و به یک برنامهٔ داخلی میفرستد. امشب TLS در Apache تمام میشود و یک backend محلی بدون پورت عمومی پاسخ میدهد.
۲ دقیقه مطالعه
Apache ←۸۵
آپاچی؛ شب ۲۳: اعتماد به پراکسی و IP واقعی کلاینتوقتی Apache پشت پراکسی باشد، همتای اتصال خود پراکسی است. امشب مشخص میکنیم چه کسی اجازه دارد IP کلاینت را اعلام کند؛ اعتماد به هر هدر دریافتی allowlist را قابل دور زدن میکند.
۲ دقیقه مطالعه
Apache ←۸۶
آپاچی؛ شب ۲۲: محدودیت شبکه با UFW و firewalldRequire ip فقط درخواست HTTP را محدود میکند؛ فایروال میتواند اتصال غیرمجاز را پیش از Apache ببندد. امشب HTTPS آزمایشگاه را فقط برای .20 باز میکنیم و راه مدیریت را حفظ میکنیم.
۲ دقیقه مطالعه
Apache ←۸۷
آپاچی؛ شب ۲۱: mTLS و گواهی کلاینت برای ورودی خصوصیدر TLS معمولی فقط هویت سرور بررسی میشود. mTLS یا TLS متقابل گواهی کلاینت را هم بررسی میکند. امشب یک میزبان مدیریتی جدا میسازیم و اعتبار گواهی را از مجوز دسترسی تفکیک میکنیم.
۲ دقیقه مطالعه
Apache ←۸۸
آپاچی؛ شب ۲۰: احراز هویت و IP بهصورت همزمانمحدودیت شبکه مشخص نمیکند چه کسی وارد شده است. امشب ورود با گذرواژه را روی HTTPS اضافه میکنیم و سیاست «کاربر درست و IP درست» را صریح مینویسیم.
۲ دقیقه مطالعه
Apache ←۸۹
آپاچی؛ شب ۲: نصب apache2 روی Debian و Ubuntuامشب Apache را از مخزن توزیع نصب میکنیم و میان نصب بسته، اجرای سرویس و دسترسی شبکه تفاوت میگذاریم. نتیجه باید پاسخ HTTP واقعی از VM باشد.
۲ دقیقه مطالعه
Apache ←۹۰
آپاچی؛ شب ۱۹: اجازهٔ دسترسی فقط از IPهای مشخصبرای یک بخش مدیریتی میخواهیم فقط کلاینت .20 اجازه داشته باشد. امشب allowlist یا فهرست مجاز IP را با آزمون واقعی از دو ماشین پیاده میکنیم.
۲ دقیقه مطالعه
Apache ←۹۱
آپاچی؛ شب ۱۸: فشردهسازی و cache محتوای ثابتفشردهسازی و cache میتوانند ترافیک را کم کنند، اما ذخیرهٔ پاسخ شخصی در cache خطرناک است. امشب فقط داراییهای ثابت را تنظیم میکنیم و رفتارشان را با پاسخ HTML مقایسه میکنیم.
۲ دقیقه مطالعه
Apache ←۹۲
آپاچی؛ شب ۱۷: CSP از گزارش خطا تا سیاست اجراییسیاست محدودکنندهٔ محتوا یا CSP به مرورگر میگوید محتوا و اسکریپت را از چه منابعی بپذیرد. امشب برای سایت ثابت آن را مرحلهای تنظیم میکنیم تا خرابی برنامه پشت یک چکلیست پنهان نشود. …
۲ دقیقه مطالعه
Apache ←۹۳
آپاچی؛ شب ۱۶: Security Headers برای پاسخ موفق و خطایک هدر امنیتی فقط وقتی مفید است که در پاسخ درست، با مقدار درست و بدون نسخهٔ تکراری ارسال شود. امشب سیاست پایه را برای سایت ثابت میگذاریم و پاسخهای 200 و 404 را بررسی میکنیم.
۲ دقیقه مطالعه
Apache ←۹۴
آپاچی؛ شب ۱۵: HTTP/2 و انتخاب MPMHTTP/2 چند جریان درخواست را روی یک اتصال حمل میکند. امشب آن را روی HTTPS فعال میکنیم و همزمان مدل کارگر Apache را بررسی میکنیم تا قابلیت جدید با مدل PHP بعدی سازگار باشد.
۲ دقیقه مطالعه
Apache ←۹۵
آپاچی؛ شب ۱۴: سیاست TLS و HSTS با امکان بازگشتHTTPS فعال است، اما نسخههای پروتکل و رفتار مرورگر هنوز باید مشخص شوند. امشب TLS را محدود میکنیم و HSTS را ابتدا با زمان کوتاه آزمایش میکنیم.
۲ دقیقه مطالعه
Apache ←۹۶
آپاچی؛ شب ۱۳: گواهی عمومی، ACME و تمدید قابل آزمونگواهی آزمایشگاهی برای دامنهٔ عمومی کافی نیست. امشب روند صدور و تمدید گواهی عمومی را طراحی میکنیم و فقط روی یک دامنه و سرور عمومیِ متعلق به خودمان اجرا میکنیم.
۲ دقیقه مطالعه
Apache ←۹۷
آپاچی؛ شب ۱۲: HTTPS و انتخاب گواهی با SNIگواهی شب قبل را نصب میکنیم و تفاوت انتخاب گواهی با انتخاب سایت را میسنجیم. نتیجه باید HTTPS معتبر برای نام سایت باشد، با شکست مشخص برای نام اشتباه.
۲ دقیقه مطالعه
Apache ←۹۸
آپاچی؛ شب ۱۱: CA آزمایشگاهی و گواهی با نام درستHTTPS فقط رمزنگاری نیست؛ کلاینت باید هویت سرور را هم بررسی کند. امشب یک مرجع صدور گواهی کوچک میسازیم تا آزمایشها بدون خاموش کردن بررسی اعتماد انجام شوند.
۲ دقیقه مطالعه
Apache ←۹۹
آپاچی؛ شب ۱۰: Redirect، Rewrite و مرز .htaccessمیخواهیم نشانی قدیمی به نشانی تازه برود و مسیرهای یک برنامه به ورودی اصلی آن برسند. این دو کار رفتار متفاوت دارند: redirect از کلاینت درخواست تازه میخواهد؛ rewrite میتواند داخل …
۲ دقیقه مطالعه
Apache ←۱۰۰
آپاچی؛ شب ۱: آزمایشگاه و مسیر یک درخواست HTTPقرار است یک وبسرور را از نصب تا بهرهبرداری بسازیم. امشب محیطی آماده میکنیم که تغییر اشتباه در آن قابل بازگشت باشد و بتوانیم درخواست مجاز و غیرمجاز را از دو ماشین متفاوت بفرستیم. …
۲ دقیقه مطالعه
Apache ←