اسکریپت بررسی وضعیت سلامت هارد دیسک در لینوکس

سلام خدمت دوستان عزیز.

طبق کلیشه همهء دوستان وبلاگ نویس (!)‌ تنبل از جمله خودم باید گله کنم که چند وقتی هست وبلاگ را آپدیت نکردم و از این بابت خوشحال نیستم. 

یکی از دغدغه های اصلی من به عنوان System Administrator، اطلاع از وضعیت سرورها است.

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

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

حتما ایمیل ، بعد از نام اسکریپت درج شود و همینطور هم داخل CronJobs تعریف کنید.

فقط فراموش نشود که در قسمت disks ، متغیرها را بر اساس هارد دیسک های موجود در سرور تغییر دهید.

تغییر نحوه نام گذاری فایل های بکاپ در دایرکت ادمین Direct Admin

با سلام خدمت دوستان عزیز.

به جهت حال و احوال مختصر هم که شده ، یک پست اسکریپت برای دایرکت ادمین درج می کنم.

همانطور که اطلاع دارید ، بکاپ ها در دایرکت ادمین با فرمت زیر هستند.

اگر Cronjob ست کنید برای دریافت بکاپ ها ، مدام بر روی یک فایل Replace می شوند.

اگر مدنظرتون اینطور باشه که بتونید چندین بکاپ با تاریخ مشخص نگه دارید فرمت Filename بصورت زیر به دردتون میخوره 

برای اینکه فرمت فایل ها رو تغییر بدید در مسیر زیر یک فایل با نام user_backup_post.sh ایجاد کنید و محتوای زیر را بگذارید.

فایل را با دستور زیر بسازید و محتوای زیر را درون آن قرار بدید.

 

منبع اصلی: Directadmin Help

آموزش Port Forwarding بوسیله iptables در لینوکس

سلام خدمت دوستان.

امروز من به شدت نیاز Port Forwarding داشتم. متاسفانه با محدودیت تعداد IP های نسخه ۴ در دیتاسنتر ها، مجبور هستم به Port Forwarding و DMZ روی بیارم. از دوست خوب و ولایت مدارم ، kolahsefid تشکرات لازم را مبذول می نمایم که در این ره دشوار مرا همراهی و یاری داد  طبق رسم همیشگی ، به جهت ثبت در دفتر تقلب خودم ، أموزش Port Forwarding بوسیله iptables در لینوکس:

سناریو، پورت ۸۸۹۹ را از سرور ۱ به سرور ۲ Forward کنیم.

۲ سرور داریم با مشخصات زیر:

Server 1 – IP Public: 185.100.185.5 (eth0) – IP Private: 192.168.1.3 (eth1)

Server 2 – IP Private: 192.168.1.2 (eth0)

نخست IP Forwarding رو داخل سرور ۱ فعال می کنیم.

برای اطمینان خاطر تمام Rule های iptables را flush کنید.

در آخر دستورات مربوط به iptables

تمام. 

حل مشکل دسترسی فایل ها در دایرکت ادمین (کانفیگ وب سرور: Nginx_apache)

سلام

خیلی اوقات شده که از ترکیب Nginx و Apache در دایرکت ادمین استفاده می کنم و با بعضی CMS ها یا Framework به مشکل Permission ها برمیخورم.

داخل error log اطلاعات زیر هست:

راه حل این مشکل:

  • تعیین دسترسی ۷۷۵ برای Directory ها
  • تعیین دسترسی ۶۴۴ برای File ها

با ۲ دستور زیر راحت دسترسی های فوق را به دایرکتوری ها و فایل ها بدید :

بعد از اجرای دستورات بالا مشکل حل میشه !

همیشه هارد را با UUID در fstab تعریف کنید

با سلام خدمت دوستان عزیز

یک موردی که همیشه سعی داشتم در fstab سرورهایم رعایت کنم ، استفاده از UUID به جای File system (مثل /dev/sda1) بود.

فرم اصلی fstab به شکل زیر است:

حال اگر جای Jumper ها یا ترتیب هارد ها در سرور به هم بریزد ، بعد از Boot دیگر سرور به درستی بالا نمی آید یا هارد ها به درستی Mount نمی شود.

برای جلوگیری از عدم Mount شدن دیسک ها ، به جای File system از UUID استفاده کنید.

با دستور blkid می توانید UUID مربوط به دیسک را بدست بیاورید.

به جای File System مقدار UUID را بگذارید ، بصورت زیر:

 

بنچمارک با Unixbench در لینوکس

سلام دوستان.

خیلی از اوقات لازم دارم ۲ سرور را از لحاظ سخت افزاری مقایسه کنم ، اما همیشه مشخصاتی که روی کاغذ و CPUINFO و غیره هست قابل اتکا نیستند.

Unixbench چیست؟

UnixBench is the original BYTE UNIX benchmark suite, updated and revised by many people over the years. The purpose of UnixBench is to provide a basic indicator of the performance of a Unix-like system; hence, multiple tests are used to test various aspects of the system’s performance.

نخست نیازمندی های مربوط به unixbench را نصب کنید.

در توزیع های Red hat base:

در توزیع های Debian Family:

حالا فایل unixbench را دانلود و Extract کنید:

با دستور زیر Unixbench را اجرا کنید.

در آخر بعد از انجام پروسه ، یک خروجی شبیه به زیر به شما خواهد داد.

بنچمارک بالا مربوط به یکی از سرور مجازی ایران دیتا پرداز  هست. 

آموزش اضافه کردن هارد جدید و پارتیشن بندی آن در لینوکس

سلام خدمت عزیزان

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

ما در این پروسه از ابزارهای fdisk و mkfs استفاده می کنیم و با دستور زیر مطمئن میشیم که نصب هستند و اگر نیستند ، نصب خواهند شد.

 

نخست یک هارد جدید به سرور اضافه می کنیم. (حال میخواید مثل من از مجازی ساز استفاده کنید یا بصورت فیزیکی استفاده کنید)
بعد از اضافه کردن هارد ، سرور را بصورت سخت افزاری reboot کنید.
بعد از ریبوت دستور زیر fdisk -l را بزنید و هارد جدید را مشاهده می کنید که هیچ پارتیشنی ندارد. (برای من نام هارد جدید vdb هست.)

حالا با ابزار fdisk سعی می کنیم در دیسک جدید ، پارتیشن بسازیم. (بصورت کامنت قبل از هر دستور توضیح دادم)

به ترتیب کلید های زیر زده شد. n (اینتر) و ۱ (اینتر) و اینتر و اینتر و اینتر و w (اینتر) . تمام

حالا پارتیشن ساخته شده را با mkfs به فرمت ext4 تبدیل می کنیم.

حالا مقادیر زیر را در فایل /etc/fstab میگذاریم. (دستور زیر کافیست و لازم نیست فایل را باز کنید)

حالا دیسک را مونت می کنیم.

میبینم که پارتیشن اضافه شده:

 

غیرفعال کردن تمام پلاگین های وردپرس

سلام خدمت عزیزان.

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

یکی از راحت ترین راه حل ها برای پیدا کردن و رفع مشکل در وردپرس ، غیر فعال کردن افزونه ها هاست.

به ترتیب زیر در phpMyAdmin یا هرجای دیگه ای که میتونید SQL اجرا کنید ، تمام پلاگین های وردپرس رو با یک چشم بهم زدن غیرفعال کنید. 

به این ترتیب تمام پلاگین های وردپرس غیرفعال می شود.

ورود به SSH بدون رمز (SSH Key)

سلام وقت بخیر

هدف من از ایجاد SSH Key و فراهم آوردن امکان ورود به SSH Server ها بدون رمز:

در وحله اول من اعتقاد دارم در مصرف انرژی باید صرفه جویی کرد ، اما باقی افراد میگن تنبلم ، در وحله دوم نیز دارم یکسری کارها وقتی من در حال استراحت و فراغت هستم بصورت خودکار انجام بشند. مثال شما نیاز دارید هر شب ساعت ۱۲ از دیتابیس سرورتون بکاپ بگیرید و از اطریق rsync یا scp فایل ها به سرور دیگه ای انتقال داده بشه.

سرور اول A و با آی پی ۱۹۲.۱۶۸.۰.۱۰۰ و سرور دوم B و با آی پی ۱۹۲.۱۶۸.۰.۲۰۰

نخست یک ssh-key بسازید ، داخل سرور اول:

یه مشت سوال ازتون میپرسه ، همه رو بزارید دیفالت (Enter بزنید)

حالا از سرور A به سرور B با این دستور لاگین کنید:

حالا من بعد از این میتونید بدون Password داخل سرور B لاگین کنید.

 

آسیب پذیری Full Path Disclosure یا FPD

با سلام خدمت عزیزان.

چند روزی بود بلاگ رو آپدیت نکرده بودم و علت اش افزایش مشغله های کاری و غیر کاری و تحصیلی بود.

با تازگی با مشکلی با عنوان “Full Path Disclosure” مواجه شدم ؛ قبل از هر کاری در مورد این مشکل تحقیقاتی انجام دادم و سعی کردم با CMS ها و سیستم هایی که قبلا کار کردم (مثل وردپرس) بصورت عملی با FPD آشنا بشم ، خب دیدم چیز خیلی خاص و بزرگی نیست ، البته برای وب سایت های کوچکی مثل یک  وبلاگ 

اکثرا فکر می کنند (یا من اینطور فکر می کنم که بقیه فکر می کنند) که این مشکل از سمت پیکربندی و تنظیمات اصلی سرور (Hosting/Servlet) هست اما اینطور نیست این موضوع بیشتر بر میگرده به کد نویسی در هم برهم یا ‌Sloppy Coding ، چرا؟

چون خیلی از گله ی برنامه نویسان فکر می کنند با تخصیص مقدار Off برای Display Errors در فایل php.ini سرور این مشکل حل می شود و دیگر Path اصلی یا به کل Error نمایش داده نمی شود این مشکل از سمت تنظیمات غلط یا Misconfiguration است اما داستان اینطور نیست ، ما (مدیران سرور) فقط اشتباه شما (برنامه نویسان) را با این کار پنهان می کنیم و هنوز مشکل پابرجاست ، درسته؟

مشکل بزرگتر…

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

خب پس مشکل بزرگتر مشخص شد  دانشگاه های گل و بلبل ما هم که سالانه بیشتر از ۲۰۰.۰۰۰ برنامه نویس و مهندس کامپیوتر ول میده بیرون با هزار غرور و من من کردن زیر بار نمیرن که آقا / خانم این مشکل از سمت شماست ، نه مدیر سرور.

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

در فایل httpd.conf (یا apache2.conf) که در مسیر اصلی config وب سرور هست مقدار زیر را در virtual host مربوط به آن سایت درج کردم:

در فایل php.ini سرور هم مقدار زیر را طبق زیر هماهنگ کردم:

در آخر هم در کدهای سیستم جستجو کردم هر جا از ini set مربوط به نمایش error ها استفاده شده به برنامه نویس گوشزد کنم.

به دنبال مقدار زیر گشتم:

 

در آخر هم خدافسی می کنم