آموزش سریع نصب ماریا دی‌بی ۱۰ در Ubuntu 14.04

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

خیلی سریع ، آموزش نصب MariadDB 10 را در لینوکس Ubuntu را شروع می کنم.

به فرض اینکه ، repository های مربوط به maria را ندارید ، دستور های زیر را می اجرا می کنیم.

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

 

کنترل پورت ها بوسیله iptables در kvm

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

کنترل پنل پورت ها در iptables بسیار راحت و لذت بخش هست 

معمولا از مجازی ساز KVM بدون UTM/WAF/Firewall/IDS سخت افزاری استفاده می کنم در نتیجه iptables خیلی میتونه به کنترل پنل پورت ها و تامین امنیت به من کمک کنه.

 

بستن یک پورت مشخص برای تمام VM ها که از KVM Bridge استفاده می کنند:

بستن یک پورت مشخص برای یک VM (مثال کاربر پورت ۸۰ سرور را در دسترس نداشته باشد)

نکته ای که باقی میمونه ، اگر میخواید دسترسی پورت ، مثال ۲۲ ، فقط روی یک آی پی خاص قابل Listen باشه کافیه قبل از Rule بلاک کردن پورت یا Connection ، آی پی یا سابنتی که مدنظر دارید رو Allow کنید ، یعنی دقیقا همون Rule بلاک کردن را بنویسید اما به جای DROP یا Reject از ACCEPT استفاده کنید.

تا یادداشت بعدی آرزوی پیروزی 🙂

همیشه هارد را با 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 ها استفاده شده به برنامه نویس گوشزد کنم.

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

 

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

نصب وبمین (Webmin) در لینوکس

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

یکی از محبوب ترین کنترل پنل های مدیریتی برای لینوکس ، برای من ، وبمین (وب-مین / وب مین) هست.

مدیریت تقریبا تمام سرورها، سرولت ها، سرویس ها و.. در وبمین امکان پذیر هست.

مثال: ۱) وب سرور (آپاچی، انجین ایکس و..) ۲) دیتابیس سرور (MySQL, Mariadb, MongoDB و..) ۳)  سمبا سرور ۴) Mail Server  و چه و چه و چه !

یک مزیتی که وبمین داره ، استفاده از زبان پرل در هسته اصلی این کنترل پنل هست ، چرا مزیت؟ چون من میگم

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

 

۱) نصب نیازمندی ها و به روز رسانی سیستم عامل

یکی از مزیت های خیلی گولاخه (یعنی خیلی خوب) این کنترل پنل پشتیبانی از خیل عظیمی از توزیع های لینوکس مثل Redhat Base ها و Debian Family ها ، البته اینطوری که سرچ کردم از BSD هم پشتیبانی می کنه . خب یعنی خیلی هم خوبه

نخست سیستم عامل را آپدیت بفرمائید. سپس محزن اپل (epel) را نصب کنید. سپس تر از اون Development Tools یا اگه قصد دارید خیلی چراغ خاموش و سبک (Minimal) جلو برید فقط به نصب  پرل (Perl) هم میتونید بسنده کنید.

 ۲) نصب کنترل پنل

برای نصب کنترل پنل شما نیاز به rpm (توزیع های پایه رد هت) دارید.

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

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

داخل سرور فایل را دانلود می کنم و سپس نصب کنترل !

 

بعد از نصب (اگر موفقیت آمیز بود) به شما قطعا پیغامی خواهد داد که می توانید با پورت ۱۰۰۰۰ وارد کنترل پنل بشید.

۳) باز کردن پورت وبمین در فایروال

شاید تست کردید که وارد کنترل پنل بشید اما کنترل پنل باز نشد ، چون پورت وبمین (۱۰۰۰۰) داخل فایروال شما مجاز نیست.

پورت ۱۰۰۰۰ (وبمین) را داخل فایروال اضافه می کنیم و ذخیره می کنیم.

خب تموم شد.

 

تغییر تاریخ یا زمان PHP با .htaccess

گاهی اوقات دیدید که نمایش ساعت در PHP به درستی انجام نمیشه ، به خاطر اینکه Time zone یا همان منطقه زمانی پیش فرض PHP مقدار پیشفرض UTC هست. این مورد را می بایست از طریق php.ini تغییر / تخصیص داد. اما در اکثر بستر و زیرساخت ها امکان ایجاد تغییر در php.ini برای کاربر یا برنامه نویس مقدور نیست.

اما روش هایی مثل ini_set هم برای حل این موضوع وجود داره ، ولی بازهم این Function در خیلی از سرورهای اشتراکی به دلیل مسائل امنیتی بسته شده است.

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

کافی است فایل .htaccess را باز کنید (در بعضی مواقع نیاز به ایجاد فایل دارید) و خط زیر را قرار بدید.