نوشته‌ها

امنیت سرور لینوکس: امن سازی لاگین روت در سیستم عامل لینوکس اکانت روت (root) به کل سیستم دسترسی دارد. بنابرین باید دسترسی به روت تا حد امکان محدود و دشوار باشد تا هکرها نتوانند به راحتی دسترسی روت پیدا کنند.   بستن اتصال ssh برای root اولین مرحله در امن سازی اکانت root در لینوکس، […]

یکی از معیارهای مهم سایت‌ها، سرعت بارگذاری آن‌ها است. سرعت وبسایت نه تنها باعث رضایت بازدیدکنندگان از سایت می‌شود، بلکه به صورت مستقیم روی سئو سایت و رتبه سایت در موتورهای جستجو تاثیر می‌گذارد. یکی از روش‌هایی که تاثیر به سزایی در افزایش سرعت سایت دارد، پیاده‌سازی سیستم کش (cache) است. با توجه به استفاده فراوان از سایت‌های وردپرس (wordpress)، افزونه‌های زیادی برای کش کردن سایت وجود دارند. گرچه نصب افزونه‌های کش بسیار راحت بوده، اما کارایی آن در مقابل سیستم کش ngnix به مراتب پایین‌تر است.

اگر سایت شما دیر لود می‌شود و TTFB (time to first byte) بالایی دارد، استفاده از سیستم کش nginx تاثیر زیادی روی افزایش سرعت سایت وردپرس شما خواهد داشت. TTFB به معنای زمان دریافت اولین بایت از سرور است و گاها تا چند ثانیه طول کشیده و سایت شما را کند می‌کند. با نصب و پیکربندی سیستم کش، این زمان تا کمتر از ۳۰۰ میلی ثانیه کاهش پیدا می‌کند. در صورتی که سرور شما به میزان کافی حافظه رم دارد، می‌توانید با انتقال فضای کش از هارد به رم،‌ سرعت سایت خود را بیش از پیش افزایش دهید. استفاده از nginx cache در کنار php-fpm ترکیبی بسیار پرسرعت برای سایت شما خواهد بود.

اولین مرحله در کانفیک کش nginx (که از FastCGI استفاده می‌کند)‌، اضافه کردن کدهای زیر به به قسمت http در فایل nginx.conf است. این فایل معمولا در آدرس زیر قرار دارد.

vim /etc/nginx/nginx.conf

fastcgi_cache_path /etc/nginx-cache levels=1:2 keys_zone=phpcache:100m inactive=60m;
fastcgi_cache_key "$scheme$request_method$host$request_uri";

در این تنظیمات، phpcache اسم key zone و 100m بیانگر میزان فضای اختصاص یافته به حافظه کش (به مگابایت) است. 60m هم مدت زمانی است که در صورت عدم تقاضای داده، آن‌ها از کش پاک می‌شوند. همچنین /etc/nginx-cache هم نشان‌دهنده محل ذخیره سازی فایل‌های کش nginx است.

مابقی تنظیمات باید در فایل nginx مربوط به سایت انجام شود.‍

vim /etc/nginx/sites-enabled/default

location ~ [^/]\.php(/|$) {
fastcgi_cache phpcache;
fastcgi_cache_valid 200 30m;
fastcgi_cache_methods GET HEAD;
add_header X-Fastcgi-Cache $upstream_cache_status;
}

در این مرحله می‌توانید سرویس nginx را ریستارت کنید. فراموش نکنید که قبل از آن حتما تنظیمات nginx را چک کنید.

nginx -t
service nginx restart

حالا سیستم کش سایت شما فعال شده و باید افزایش سرعت سایت را به طور محسوس ببینید. در سایت مورد بررسی شرکت پیشگامان، میانگین TTFB (یا همان Server response time) از بیش از ۵ ثانیه به کمتر از ۵۰۰ میلی ثانیه کاهش پیدا کرد و امتیاز سرعت سایت در ابزار سنجش سرعت سایت گوگل (PageSpeed Insights) از ۴۰ به ۸۶ افزایش داشت.

سیستم پیاده سازی شده فایل‌های کش را روی هارد دیسک ذخیره می‌کند. در صورتی که از SSD یا NVMe استفاده می‌کنید کارایی بالاتری خواهید داشت. در هر صورت استفاده از حافظه رم کارایی به مراتب بالاتری خواهد داشت. برای انتقال حافظه کش nginx به رم، کافی است خط زیر را به fstab اضافه کرده، فایل را ذخیره کرده و آن را مونت کنید.

vim /etc/fstab

tmpfs /etc/nginx/cache tmpfs defaults,size=100M 0 0

mount -a

برای مشاهده میزان استفاده از فضای تخصیص یافته به سیستم کشینگ سایت، از این دستور استفاده کنید:

df -h

به خاطر داشته باشید که در صورت استفاده از حافظه رم برای ذخیره سازی کش وبسایت، اگر سرور ریست شود حافظه کش نیز پاک شده و مجددا صفحات سایت کش خواهند شد. در صورت نیاز به پاک کردن دستی کش nginx هم می‌توانید وارد دایرکتوری کش سایت شده و فایل‌ها را پاک کنید.

اگه کانال آپاراتِ شرکت پیشگامان رو دنبال کرده باشید، حتما می‌دونید ویدیوهای آموزشی پایتون و بلاک چین ما اونجا قرار می‌گیره. حالا تصمیم گرفتیم تا این ویدیوهای آموزشی رو اینجا هم براتون قرار بدیم. اولین ویدیو، مربوط به آموزش ابتدایی و آشنایی با بلاک چین هست، اکثر افراد بلاک چین رو از طریق بیت کوین میشناسن؛ به همین دلیل، اولین بخش این آموزش به معرفی و بررسی ویژگی‌های بیت کوین می‌پردازه. بقیه این ویدیو هم شامل موضوعات زیر میشه:

  • بیت کوین چیست؟
  • بلاک چین چیست؟
  • با بلاک چین چی کار میشه کرد؟
  • چرا باید بلاک چین رو یاد بگیرید؟
  • کاربرد بلاک چین در دنیای واقعی چیه؟
  • چطور می‌تونیم برنامه نویسی بلاک چین رو شروع کنیم؟

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

نصب و پیکربندی این ابزار روی سرورهای لینوکس بسیار آسان است. در ادامه، آموزش نصب و تنظیم آن روی لینوکس اوبونتو ۱۸.۰۴ را خواهید خواند. البته این آموزش برای توزیع های دیگر سرور لینوکس هم کم و بیش همینگونه است.

نصب

برای نصب این ابزار کافی است در ترمینال دستور زیر را وارد کنید:

sudo apt-get install denyhosts -y

پیکربندی

اولین کاری که باید پس از نصب انجام دهید، اضافه کردن آی پی های مجاز است؛ در غیر این صورت ممکن است دسترسی خودتان به سرور را هم بلاک کنید. ابتدا فایل مربوطه را باز کرده، سپس آی پی های مجاز را در انتهای آن اضافه کنید:

sudo nano /etc/hosts.allow
sshd: [IP 1]
sshd: [IP 2]
sshd: [IP 3]

بعد از اضافه کردن آی پی ها، فایل را ذخیره کرده و آن را ببندید. برای تغییر تنظیمات این ابزار فایل زیر را باز کنید:

sudo nano /etc/denyhosts.conf

در این مرحله می‌توانید تنظیمات امنیتی مختلف را تغییر دهید، به عنوان مثال آپشن زیر تعداد لاگین‌های ناموفقی که باعث بلاک شدن کاربر می‌شود را مشخص می‌کند:

DENY_THRESHOLD_INVALID = 5

همچنین می‌توانید با استفاده از آپشن زیر، ایمیلی که می‌خواهید هشدارها به آن ارسال شود را تعیین کنید:

ADMIN_EMAIL =

توجه داشته باشید که این ابزار به صورت پیشفرض از پورت ۲۵ لوکال برای ارسال ایمیل استفاده می‌کند. در صورت نیاز به تغییر، می‌توانید از تنظیمات زیر استفاده کنید:

SMTP_HOST =
SMTP_PORT =
SMTP_FROM =

بعد از انجام تنظیمات مورد نظر، یک بار سرویس denyhosts را ریست و فعال کنید:

sudo systemctl restart denyhosts
sudo systemctl enable denyhosts

بررسی لاگ

ابزار denyhosts به صورت پیشفرض رخدادها را لاگ می‌کند، برای مشاهده لاگ‌های امنتیی به صورت  بلادرنگ، از دستور زیر استفاده کنید:

tail -f /var/log/auth.log

حالا می‌توانید با خیال راحت SSH کرده و سرور لینوکس خود را مدیریت کنید.