ورود به دنیای فناوری اطلاعات و ارائه خدمات نوین در این زمینه نیازمند دانش تخصصی در تکنولوژی‌های روز دنیاست. شرکت پیشگامان با داشتن تجربه فراوان در بخش آموزش و صنعت، اقدام به ارائه دوره‌های آموزشی امنیت و فناوری‌های نوین کرده است.

نکات امنیتی استفاده از سرورهای لینوکس

ایمن‌سازی سرورهای لینوکس جنبه های مثبت مختلفی در جهت محافظت داده‌ها، مالکیت معنوی و سایر موارد دارد. مدیر سیستم مسئول بررسی و تامین مقدمات امنیتی سیستم است.
در قسمت اول این مطلب ما 10 نکته امنیتی مهم برای نصب سیستم لینوکس را ارائه می‌دهیم.
بایستی توجه داشته باشید که دستوراتی که در ادامه به آن ها اشاره می‌کنیم با ورژن‌های Ubuntu/Debian و CentOS/RHEL لینوکس سازگاری دارند.

1- رمزگذاری ارتباط داده‌ها برای سرور لینوکس:

تمامی داده‌هایی که در طول شبکه انتقال پیدا میکنند قابل نظارت کردن هستند و همینطور میتوانید این داده‌ها را به وسیله پسورد و یا certificate مخصوص، رمزگذاری کنید. به چند نمونه از این روش‌ها اشاره می‌کنیم.
• برای انتقال فایل می‌توانید از دستورهای ssh، scp، rsync و یا sftp استفاده کنید. همچنین با استفاده دستور sshf می‌توانید فایل‌های سرور ریموت و یا دایرکتوری خود را mount کنید.
• GnuPG به شما اجازه می‌دهد تا داده‌ها و ارتباطات خود را با استفاده از یک سیستم مدیریت کلیدی متنوع و همچنین دسترسی به ماژول‌های مختلف دایرکتوری کلیدهای عمومی رمزگذاری کنید.
• نصب و استفاده از Apache SSL
• نصب و استفاده از Lighttpd SSL

2- استفاده از سرویس‌های FTP، Telnet را بر روی لینوکس متوقف کنید:

تحت اکثر تنظیمات شبکه، نام کاربری، رمز عبور، دستورات rsh، telnet، FTP و همینطور فایل‌های منتقل شده توسط هر شخصی در همان شبکه قابل ضبط هستند. راه حل متداول برای رفع این مشکل استفاده از OpenSSH، SFTP و یا FTPS است که رمزگذاری SSL یا TLS را به FTP اضافه می‌کنند.
برای این منظور به شکل زیر از دستور yum استفاده کنید:

yum erase xinetd ypserv tftp-server telnet-server rsh-server#

اگر از سرور لینوکسی بر پایه ی اوبونتو/دبیان استفاده میکنید، از دستور زیر برای حذف سرویس های نا امن استفاده کنید:

sudo apt-get --purge remove xinetd nis yp-tools tftpd atftpd tftpd-hpa telnetd rsh-server rsh-redone-server$
3- برای حداقل‌سازی آسیب به لینوکس از نصب نرم افزارهای اضافه خودداری کنید:

برای جلوگیری از آسیب پذیری به نرم افزار از نصب نرم افزارهای غیرضروری خودداری کنید. از سیستم‌های مدیریت بسته RPM مانند Yum و apt-get و dpkg برای بررسی و مرور بسته‌های نصب شده بر روی سیستم خود استفاده کنید.برای پاک کردن پکیج های غیر ضروری، مانند دستور زیر عمل کنید:

yum list installed#
yum list packageName#
yum remove packageName#

یا

dpkg --list#
dpkg --info packageName#
apt-get remove packageName#
4- کرنل لینوکس خود را آپدیت نگه دارید:

استفاده از پچ‌های امنیتی یکی از مهم‌ترین بخش‌های حفظ و نگهداری سرورهای لینوکس است. لینوکس تمام ابزارهای لازم برای به روزرسانی سیستم شما را فراهم میکند و هم‌چنین امکان استفاده آسان بین نسخه ها را نیز فراهم می‌کند.
همه‌ به روزرسانی‌های امنیتی باید در اسرع وقت بررسی و اعمال شوند، برای این منظور بایستی از دستورات yum و یا apt-get استفاده کنید.

yum update#

یا

apt-get update && apt-get upgrade#
5- حساب‌های کاربری لینوکس و استفاده از رمز عبور قوی برای آن‌ها:

از دستورات useradd/usermod برای ایجاد و نگهداری حساب‌های کاربری استفاده کنید؛ همچنین اطمینان حاصل کنید که از یک رمز عبور قوی استفاده می‌کنید. به عنوان مثال یک رمز عبور خوب شامل 8 کاراکتر و ترکیبی از اعداد و کاراکترها و حروف بزرگ و کوچک است.
برای یافتن رمز عبورهای ضعیف می‌توانید از ابزاری مانند “John the ripper” استفاده کنید.

6- تنظیم رمز عبور مدت‌دار برای کاربران لینوکس در جهت امنیت بهترسیستم:

دستور change command تاریخ بین تغییر پسورد، از اولین پسورد تنظیم شده تا اخرین پسورد را اندازه گیری کرده و تغییر می‌دهد. سیستم از این اطلاعات برای تعیین کردن زمان تغییر پسورد توسط کاربر استفاده می‌کند.

7- محدودسازی استفاده از رمزهای عبور قبلی در لینوکس:

می‌توانید از استفاده مجدد پسورد توسط کاربران جلوگیری کنید. با استفاده از پارامتر pam_unix می‌توانید استفاده مجدد از پسوردهای قدیمی را محدود کنید.

8- می‌توانید از دستور faillog برای نمایش سوابق عدم ورود موفق به سیستم و یا محدود کردن ورود ناموفق به سیستم، استفاده کنید:

دستور faillog محتوای failure log را از آدرس var/log/faillog database/log file فرمت می‌کند. همچنین می‌توانید برای ذخیره تعداد ورودهای ناموفق به سیستم از آن استفاده کنید. برای دیدن تلاش های ناموفق ورود به سیستم مانند زیر عمل کنید:

Faillog

برای باز کردن قفل حساب پس از عدم موفقیت در ورود به سیستم، دستور زیر را اجرا کنید:

faillog -r -u userName

توجه داشته باشید که می‌توانید از دستور passwd برای قفل کردن و باز کردن حساب‌ها استفاده کرد:

# lock Linux account
passwd -l userName
# unlock Linux account
passwd -u userName
9- چگونه اطمینان حاصل کنیم که هیچ اکانتی پسورد خالی ندارد:

دستور زیر را اجرا کنید:

# awk -F: '($2 == "") {print}' /etc/shadow

برای قفل کردن همه‌ی حساب ها با رمز عبور خالی:

# passwd -l accountName
10- چگونه اطمینان حاصل کنیم که هیچ اکانتی غیر از Root مقدار UID برابر 0 ندارد:

فقط اکانت root دارای UID برابر 0 و مجوز کامل برای دسترسی به سیستم است. دستور زیر را اجرا کنید تا همه اکانت‌ها با UID=0 نمایش داده شوند:

# awk -F: '($3 == "0") {print}' /etc/passwd

در ادامه باید تنها یک خط مانند زیر ببینید:

root:x:0:0:root:/root:/bin/bash

اگر خطوط دیگری را مشاهده می‌کنید آن ها را حذف کنید.

11- غیرفعال کردن سرویس‌های غیر ضروری:

همه خدمات غیرضروری و سرویس‌هایی که در پس زمینه اجرا میشوند را متوقف کنید، تمام سرویس هایی که در start-up اجرا می‌شوند را متوقف کنید. دستور زیر را اجرا کنید تا تمام سرویس‌هایی که در بوت اجرا می‌شوند را ببینید.

chkconfig --list | grep '3:on'#

برای متوقف کردن سرویس‌ها دستور زیر را اجرا کنید:

service serviceName stop#
chkconfig serviceName off#

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

systemctl disable service#
systemctl disable httpd.service#

برای شروع، توقف، ری‌استارت کردن سرویس از دستور زیر استفاده کنید:

systemctl disable service#
systemctl disable httpd.service#

برای گزارش وضعیت سرویس از دستور زیر استفاده کنید:

systemctl status service#
systemctl status httpd.service#

برای دریافت گزارشات لاگ، از دستور زیر استفاده کنید:

journalctl#
journalctl -u network.service#
journalctl -u ssh.service#
journalctl -f#
journalctl -k#
12- پورت‌های باز شبکه را پیدا کنید. (Listening Ports):

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

netstat -tulpn

یا از دستور SS به همین منظور:

$ ss -tulpn

و یا:

nmap -sT -O localhost
nmap -sT -O server.example.com
13- از SUID و SGID های غیرضروری جلوگیری کنید:

زمانی که فایل های SUID و SGID مشکلی دارند ممکن است با مشکلات امنیتی و باگ های سیستمی رو به رو شوید، بروز این مشکلات برای تمام کاربرانی که با سیستم کار میکنند امکان پذیر است در نتیجه پیشنهاد میکنیم برای پیدا کردن این مشکلات از دستور زیر استفاده کنید:

#See all set user id files:
find / -perm +4000
# See all group id files
find / -perm +2000
# Or combine both in a single command
find / \( -perm -4000 -o -perm -2000 \) -print
find / -path -prune -o -type f -perm +6000 -ls
14- پیدا کردن فایل های World-Writable:

فایل های world-writable میتوانند تبدیل به یک مشکل امنیتی شوند، از دستور زیر برای پیدا کردن این فایل ها استفاده کنید:

find /dir -xdev -type d \ (-perm -0002 -a! -perm -1000 \) -print

بعد از این میتوانید مقادیری که میخواهید را نگه داشته و بقیه را حذف کنید.

15- فایل هایی که مربوط به هیچ کاربری نمیشوند را پیدا کنید:

فایل هایی که توسط کاربر یا گروهی اداره نمیشوند ممکن است به مشکلات امنیتی بیانجامد، این فایل ها را با استفاده از دستور زیر پیدا کنید:

find /dir -xdev \ (-nouser -o -nogroup \) -print

بعد از اینکه این فایل ها را پیدا کردید، بایستی آن را به یک کاربر یا گروه خاص اختصاص داده یا آن را حذف کنید.

16- دستگاه های USB، Firewire، thunderbolt را غیرفعال کنید:

برای غیرفعال کردن دیوایس های USB از دستور زیر استفاده کنید:

echo 'install usb-storage /bin/true' >> /etc/modprobe.d/disable-usb-storage.conf#

همچنین برای غیرفعال کردن ماژول های firewire و thunderbolt، از دستور زیر استفاده کنید:

echo "blacklist firewire-core" >> /etc/modprobe.d/firewire.conf#
echo "blacklist thunderbolt" >> /etc/modprobe.d/thunderbolt.conf#

پس از انجام دادن این کار کاربران نمیتوانند داده های حساس را به سرعت در دستگاه های USB کپی کرده و یا بدافزار یا ویروس را بر روی سیستم لینوکس نصب کنند.

17- سرویس هایی که از آن ها استفاده نمیکنید را غیر فعال کنید:

میتوانید سرویس هایی که از آن استفاده ای نمیشود را با استفاده از دستور زیر غیر فعال کنید:

sudo systemctl stop service $
sudo systemctl disable service $

به عنوان مثال، اگر نمیخواهید مدتی از سرویس NginX استفاده کنید، آن را غیرفعال کنید:

sudo systemctl stop nginx $
sudo systemctl disable nginx $
18- امن سازی سرور Apache، PHP، Nginx:

فایل httpd.conf را ادیت کرده و مقادیر زیر را اضافه کنید:

ServerTokens Prod
ServerSignature Off
TraceEnable Off
Options all -Indexes
Header always unset X-Powered-By

برای ری استارت کردن سرویس های hhtpd/apache2 بر روی لینوکس، دستور زیر را اجرا کنید:

sudo systemctl restart apache2.service $

و یا :

sudo systemctl restart httpd.service $

چنانچه موارد فوق را برای VPS لینوکسی خود انجام داده‌اید، می‌توانید از ابزار OpenSCAP برای بررسی امنیت سرور مجازی خود استفاده کنید.

همانطور که شما هم حدس میزنید، ابزارهای نظارت بر سرور گران هستند و یا امکان شخصی سازی ندارند،
ما در این مقاله یکی از مدعیان اصلی مانیتورینگ سرور را به شما معرفی میکنیم که Zabbix نام دارد.

هرچند این مقاله قرار نیست یک آموزش همه جانبه باشد، بلکه خلاصه‌ای از یاد‌گیری‌های ما در مورد راهنماهای نصب و یک سری از قوانین کلی و مفصل خواهد بود.

برخی از اصول اولیه که قبل از نصب بایستی بدانید :

۳ ابزار اصلی برای zabibx وجود دارند :
۱- سرور zabbix
۲- zabbix agent
۳- رابط وب zabbix
سرور زبیکس در‌واقع همان ابزاری است که اطلاعات مربوطه ای که شما میخواهید را از سرور اصلی جمع آوری و نظارت میکند.
سروری که میخواهید مانیتور کنید agent نام دارد، شما همچنین میتوانید بدون رابط وب zabbxi عمل مانیتورینگ را انجام دهید ولی ما توصیه میکنیم از رابط وب نیز استفاده کنید چرا که تجربه بهتری به شما میدهد.

اگر میخواهید قبل از نصب محیط کاربری zabbix را ببینید نیز این امکان فراهم است
با مراجعه به https://zabbix.org/zabbix/index.php این آدرس میتوانید بدون داشتن اکانت محیط مانیتورینگ را دیده و قسمت‌های مربوط به گزارش‌ها را نیز مشاهده کنید.

نصب:

 

در مورد نصب به ترتیب zabbix server ، zabbix agent و اضافه کردن هاست به سرور را در مقاله‌ای جدا بررسی خواهیم کرد،

باید بدانید که به طور پیش‌فرض رابط وب zabbix از آپاچی استفاده میکند، اگر میخواهید به جای آن از Nginx استفاده کنید باید تنظیماتی را به Nginx خود اضافه کنید که در ادامه خواهیم دید.

 

معرفی مختصر:

 

سرور زابیکس :
سرور اصلی است که همه چیز را رصد میکند، برای نصب این لینک را دنبال کنید.
معمولاً رابط وب نیز فقط بر روی این سرور نصب میشود، همینطور بهتر است که این سرور را از سرورهایی که قرار است مانیتور شوند جدا نگه دارید.
در این صورت حتی اگر سرور اصلی دچار خرابی شود میتوانیم زمان downtime و دلیل خرابی را متوجه شویم.

زبیکس ایجنت :
نرم افزاری است که اطلاعات را از سروری که مانیتورینگ بر روی آن انجام می‌شود را برای سرور زبیکس میفرستد،
اگر میخواهید سرور زبیکس را نیز مانیتور کنید بایستی زبیکس ایجنت را بر بر روی سرور زبیکس نیز نصب کنید.

زبیکس هاست :
هاست سروری است که شما میخواهید مانیتور کنید، بنابراین اگر میخواهید ۳ سرور مختلف را مانیتور کنید
زبیکس ایجنت را بر روی تمام آن‌ها نصب میکنید.

قالب لینوکسی :

این قالب به طور پیش‌فرض با نصب زبیکس همراه است و بیشتر پارامترهای عمومی را ارائه میدهد مانند :
درصد استفاده از cpu و ram ، این قالب از قبل پیکربندی شده است و شما نیاز به تنظیمات خاص دیگری بر روی آن ندارید.

 

اشکال یابی:

 

با اینکه رابط وب به نظر کافی میرسد اما برای اشکال یابی بهتر است از کنسول استفاده کنید.

بر روی سروری که از آن مانیتورینگ انجام می‌شود دستور زیر را اجرا کنید:

telnet ip-of-your-agent 10050

و سپس :

zabbix_get -s ip-of-your-agent -k agent.hostname

بر روی سرورهایی که قرار است مانیتور شوند :

در پیکربندی اصلی سرور مانیتورینگ شما درخواست داده میکند، بنابراین اگر سرور شما میتواند به agent کانکت شود همه چیز درست عمل میکند.
اما اگر از حالت active agent استفاده میکنید باید اطمینان حاصل کنید که agent شما میتواند به سرور مانیتور متصل شود ومیتواند داده‌ها را push کند.

دستور زیر را اجرا کنید :
telnet ip-of-your-server 10050

با اجرای دستور بعدی zabbix-sender را نصب کنید :

sudo apt-get install zabbix-sender

سپس دستور زیر :

zabbix_sender -vv -z [serverIp] -p 10051 -s [clientName] -k traptest -o "Test value"

در پیکربندی agent configuration توجه داشته باشید که تمام داده‌هایی که به سرور منتقل می‌شوند باید از نوع Trapper باشند. بنابراین در مثال بالا باید یک آیتم از نوع trapper بر روی سرور با کلید trapest ایجاد کنید و همچنین اطمینان حاصل کنید که داده‌هایی که ارسال میکنید از نوع مشخص شده در هنگام ایجاد آیتم بر روی سرور است.

 

گزارشات:

 

dashboard قابلیت شخصی سازی دارد بنابراین میتوانید آن را به گونه‌ای تغییر دهدید که همه ی خطاها آنجا لیست شوند، ویژگی دیگری که ما دوست داشتیم نمایشگر ها بود، ما تمام نمودارهای اصلی سرورهایمان را به آن اضافه کردیم و به این وسیله میتوانیم نقاط بحرانی را شناسایی و ردیابی کنیم.

 

اعلان ها‌:

 

به نظر ما، اعلان ها در زبیکس بسیار عالی عمل میکنند چرا که به راحتی قابل تنظیم هستند، ما از sendgrid در زبیکس استفاده میکنیم، چون که اعلان های پیش‌فرض زبیکس برای ما خوب کار نمیکردند.

 

تجربه شما از استفاده از zabbix چگونه بوده است؟

آیا از ابزارهای مانیتورینگ برای سرور خود استفاده میکنید؟

تجربه خود را با ما به اشتراک بگذارید.

بعد از انتشار ویندوز ۱۰، مایکروسافت اعلام کرد که تا ۱ سال آپدیت ویندوز ۷ و ۸.۱ به ویندوز ۱۰ رایگان خواهد بود. گرچه مدت‌هاست که این مهلت ۱ ساله پایان یافته است، هنوز می‌توان به صورت رایگان ویندوز ۷ خود را به ۱۰ آپگرید کنید. این روش مخصوصا به نفع کسانی است که لایسنس قانونی ویندوز ۷ روی لپتاپ یا کامپیوتر آن‌ها وجود داشته و حالا می‌خواهند لایسنس قانونی ویندوز ۱۰ را داشته باشند.

قبل از اقدام به آپدیت حتما ۲ نکته را مد نظر قرار دهید. اول اینکه سخت افزار لپتاپ خود را بررسی کرده و از سازگاری آن با ویندوز ۱۰ اطمینان حاصل کنید. دوم، حتما از اطلاعات حساس خود بکاپ بگیرید. همینطور بعضی از نرم افزارهای قدیمی هم به احتمال زیاد روی ویندوز ۱۰ اجرا نمی‌شوند.

  1. برای اپدیت به ویندوز ۱۰ ابتدا از طریق این لینک وارد سایت مایکروسافت شوید.
  2. با کلید روی دکمه Download Tool Now ابزار آپگرید را دانلود کنید.
  3. ابزار دانلود شده را روی لپتاپ خود اجرا کرده و مراحل آن را طی کنید.

بعد از آپدیت می‌توانید به تنظیمات ویندوز مراجعه کرده تا از اکتیو بودن ویندوز ۱۰ مطمئن شوید.

کتاب مبانی بلاک‌چین اثر دنیل درشر به دو صورت فیزیکی و دیجیتال منتشر شد. بازدیدکنندگان گرامی برای خرید این اثر میتوانند به صفحات زیر مراجعه کنند.

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

بخش اول: اصطلاحات علمی و مبانی فنی

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

بخش دوم: چرا به بلاک چین نیاز داریم؟

در مرحله‌های ۴ تا ۷، دلایل نیاز به بلاک‌چین، مشکلاتی که بلاک‌چین آن‌ها را حل می‌کند، اهمیت این مشکلات و قابلیت‌های بلاک‌چین بیان می‌شود. در آخر مرحله هفتم، خواننده درک مناسبی از دامنه‌ی مسئله‌ی بلاک‌چین و محیطی که بلاک‌چین در آن بیشترین ارزش را دارد، خواهد داشت. همچنین علت نیاز اولیه به بلاک‌چین را خواهد آموخت.

بخش سوم: بلاک‌چین چگونه کار می‌کند؟

بخش سوم، اصلی‌ترین قسمت این کتاب است چراکه نحوه‌ی عملکرد درونی بلاک‌چین را توضیح می‌دهد. مراحل ۸ تا ۲۱ خواننده را با ۱۵ مفهوم فنی متمایز، که مجموعا بلاک‌چین را تشکیل می‌دهند، آشنا می‌کند. در پایان مرحله بیست و یکم، خواننده مفاهیم اصلی بلاک‌چین، نحوه عملکرد آن‌ها بصورت مجزا و تعامل آن‌ها برای تشکیل سازمانی عظیم به نام بلاک‌چین را می‌آموزد.

بخش چهارم: محدودیت‌ها و غلبه بر آن‌ها

مراحل ۲۲ و ۲۳ روی محدودیت‌های اصلی بلاک‌چین تمرکز کرده، دلایل آن‌ها را توضیح می‌دهد و راه‌های ممکن برای غلبه بر آن‌ها را بیان می‌کند. با پایان مرحله ۲۳، خواننده علت عدم‌سازگاریِ احتمالیِ ایده‌ی اولیه بلاک‌چین با کاربردهای تجاری وسیع را می‌آموزد و با تغییرات انجام‌شده برای حل این محدودیت‌ها و تاثیر این تغییرات بر خصوصیات بلاک چین آشنا می‌شود.

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

در مراحل ۲۴ و ۲۵، کاربرد بلاک‌چین در دنیای واقعی توضیح داده شده و مسائلی که هنگام انتخاب راه‌کارهای مبتنی بر بلاک‌چین باید مطرح شوند، بیان می‌شوند. همچنین زمینه‌های تحقیقاتی فعلی و توسعه‌های آتی بلاک‌چین در این بخش مطرح می‌شوند. در آخر مرحله ۲۵، خواننده دانشی قوی از فناوری بلاک‌چین کسب می‌کند و آمادگی کامل برای خواندن کتاب‌های تخصصی‌تر در زمینه بلاک‌چین و ورود به عرصه فعال بلاک‌چین را خواهد داشت.

 

یکی از معیارهای مهم سایت‌ها، سرعت بارگذاری آن‌ها است. سرعت وبسایت نه تنها باعث رضایت بازدیدکنندگان از سایت می‌شود، بلکه به صورت مستقیم روی سئو سایت و رتبه سایت در موتورهای جستجو تاثیر می‌گذارد. یکی از روش‌هایی که تاثیر به سزایی در افزایش سرعت سایت دارد، پیاده‌سازی سیستم کش (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 هم می‌توانید وارد دایرکتوری کش سایت شده و فایل‌ها را پاک کنید.

بر اساس خبری که هفته پیش منتشر شد، بنیاد توسعه استلار (Stellar) قصد دارد با همکاری اپلیکیشن پیام رسان و کیف پول دیجیتال کی‌بیس (Keybase) مقدار ۲ میلیارد ارز دیجیتال استالار را به صورت رایگان بین کاربران این برنامه پیام‌رسان توزیع کند. این دو میلیارد لومنز (Lumens یا XLM) در حال حاضر حدود ۱۱۴ میلیون دلار ارزش دارد. با توجه به تعداد کاربران کیف پول ارز مجازی کیبیس و تعداد کاربرانی که تا کنون برای دریافت ارز دیجیتال رایگان ثبت نام کرده‌اند،‌ ارزش ارزهای اهدایی ماهانه حدود ۱۹ دلار خواهد بود. البته پیشبینی می‌شود با گذشت زمان و افزایش تعداد ثبت‌نام کنندگان، این مقدار کاهش پیدا کند.

برای دریافت رایگان ارز استلار باید دارای شرایط خاصی باشید که در ادامه به توضیح این شرایط و همچنین آموزش نحوه دریافت آن اشاره می‌کنیم.

شرط اول برای دریافت رایگان این ارز، ثبت ۳ وسیله در کیف پول ارز دیجیتال کی بیس است. با توجه به اینکه اپلیکیشن کیف پول دیجیتال کیبیس دارای نسخه‌های مختلفی برای موبایل و کامپیوتر است، می‌توانید با نصب آن روی گوشی و لپتاپ خود، ۲ وسیله در حساب کاربری خود ثبت کنید. دریافت کد بازیابی ۱۲ کلمه‌ای نیز یکی از وسایل کیف پول حساب شده و به این طریق می‌توانید ۳ وسیله خود را ثبت کنید.

شرط دوم داشتن یک حساب کاربری در گیت هاب (Github) یا هکر نیوز (Hacker News) است، این حساب‌های کاربری باید قبل از ۹ سپتامبر ساخته شده باشند، در غیر این صورت واجد شرایط دریافت رایگان ارز مجازی نخواهید شد. در صورتی که دارای یکی از حساب‌های کاربری هکر نیوز یا گیت هاب هستید، می‌توانید با مراجعه به قسمت پروفایل در برنامه کی‌بیس، آن را به حساب کاربری خود اضافه کنید.

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

زمان واریز ارز دیجیتال استلار اواسط ماه میلادی است. برای افرادی که اکانت کی بیس خود را قبل از ۹ سپتامبر ساخته بودند، ارز دیجیتال رایگان ماه سپتامبر واریز شده است، کسانی که بعد از ۹ سپتامبر یا در زمان خواندن این خبر اقدام به ثبت نام در این پروژه نموده‌اند، واریز ارز مجازی از ماه آینده، یعنی اواسط ماه اکتبر انجام خواهد شد. قابل به ذکر است که حد مجاز دریافت ارز مجازی رایگان ۵۰۰ دلار بوده و کسی نمی‌تواند بیشتر از این مقدار در این بازه‌ی ۲۰ ماهه دریافت کند.

در زمان نگارش این مقاله، حدود ۷۶ هزار نفر از کاربران کی‌بیس در این برنامه ثبت نام کرده‌اند. قابل ذکر است که ارز دیجیتال استلار با ارزش بازار بیش از یک میلیارد دلار، در رتبه ی ۱۲ ام ارزهای مجازی قرار دارد. بیت کوین و اتریوم هر کدام با ارزش بازار ۱۸۵ و ۲۰ میلیارد دلار به ترتیب اول و دوم هستند.

بروزرسانی (۲۰ آذر): طی بیانه‌ای که امروز در سایت کی‌بیس منتشر شد، این ماه آخرین دور از عرضه استلارهای رایگان خواهد بود. این عرضه طی ۲ ماه گذشته انجام شد ولی به علت هجوم کاربران ساختگی (fake) و سوءاستفاده آن‌ها از این برنامه، کی‌بیس تصمیم به لغو آن گرفت.

اکثر فضای میزبانی در اینترنت را سرورهای اختصاصی و مجازی لینوکس تشکیل می‌دهند. همانطور که می‌دانید مدیریت و پشتیبانی سرورهای لینوکس از طریق ارتباط SSH صورت می‌گیرد. بنابراین ایمن‌سازی SSH و حفاظت از آن در برابر هک و حملات سایبری از اهمیت بالایی برخوردار است. اگر اخبار و مقالات امنیتی پیشگامان را دنبال کرده باشید، می‌دانید که در مطلب گذشته درباره ایمن‌سازی سرور لینوکس در مقابل حملات SSH نوشته بودیم. حالا در این مطلب نحوه فعال‌سازی تایید دو مرحله‌ای (Two Factor Authentication) را برای اتصالات SSH توضیح می‌دهیم که تاثیر بسیاری در امنیت سرور مجازی لینوکس خواهد داشت.

دستورات این آموزش بر مبنای توزیع فدورا هستند، اما با اندکی تغییر برای لینوکس‌های اوبونتو یا دبیان هم کاربرد دارند. قبل از شروع آموزش، پیشنهاد می‌کنیم از دسترسی فیزیکی یا کنسول به سرور لینوکس خود اطمینان حاصل کنید تا در صورت وقوع مشکل امکان بازیابی و رفع مشکل سرور خود را داشته باشید.

نصب احراز هویت دو مرحله‌ای

ابتدا یک ترمینال باز کنید و برای نصب ابزار احراز هویت گوگل، دستور زیر را وارد کنید:

sudo dnf install google-authenticator nano -y

بعد از نصب، با دستور زیر می‌توانید ابزار را اجرا کنید:

google-authenticator

سپس به دو سوال بعدی جواب مثبت دهید. در مرحله بعدی به شما یک QR کد نمایش داده می‌شود که باید با اپلیکیشن authenticator گوشی همراه خود اسکن کنید. همچنین تعدادی کد امنیتی هم به شما نمایش داده می‌شود که باید در محلی امن ذخیره کنید. در ادامه سه سوال دیگر هم از شما پرسیده می‌شود که باید جواب بله بدهید.

تنظیم SSH

به صورت پیشفرض دیمن SSH در فدورا فعال نیست. با دستورات زیر SSH را فعال کنید:

sudo systemctl start sshd
sudo systemctl enable sshd

بعد از اجرای SSH، کلیدهای خود را با دستور زیر به سرور لینوکس اضافه کنید.

ssh-copy-id USER@FEDORA_IP

بعد از اضافه کردن کلید SSH خود، حالا باید امکان تایید دو مرحله‌ای را در تنظیمات SSH سرور فعال کنید. برای این منظور دستور زیر را در ترمینال سرور لینوکس وارد کنید:

sudo nano /etc/pam.d/sshd

سپس با استفاده از علامت شارپ خط اول را کامنت کرده و خط دوم را در انتهای فایل اضافه کنید:

#auth substack password-auth
auth sufficient pam_google_authenticator.so

فایل را ذخیره کنید و آن را ببندید. حالا باید تنظیمات دیمن SSH را درست کنید. سپس تنظیمات خط‌های بعدی را به ترتیب به بله و خیر تغییر دهید:

sudo nano /etc/ssh/sshd_config
ChallengeResponseAuthentication yes
PasswordAuthentication no

سپس خط زیر را به آخر فایل اضافه کرده و فایل را ذخیره کنید:

AuthenticationMethods publickey,password publickey,keyboard-interactive

در نهایت برای اعمال تغییرات سرویس SSH را ریست (راه‌اندازی مجدد!) کنید:

sudo systemctl restart sshd

حالا خواهید دید که بعد از SSH به سرور لینوکس، از شما کد تایید خواسته می‌شود که باید با استفاده از برنامه تایید دو مرحله‌ای که در گوشی خود دارید، آن را وارد کنید.

 

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

  • معرفی بلاک چین به زبان ساده
  • معرفی سیستم‌های غیر متمرکز و آشنایی با آن‌ها
  • توضیح دفتر کل توزیع شده
  • معرفی و توضیح الگوریتم‌های اجماع در سیستم توزیعی

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

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

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