گرفتن IP واقعی کاربران در Nginx زمانی که از آروان کلود می شود

خدمات آروان کلود برای شبکه توزیع محتوا (Content Delivery Network) بسیار مناسب هست.

همونطور که میدونیم، وب سرور آروان کلود بصورت Reverse Proxy عمل می کنه و بصورت پیشفرض تمام IP های کاربرای به IP وب سرور آروان کلود تغییر پیدا می کنه.

برای حل این مشکل در وب سرور انجین ایکس (nginx) بصورت زیر عمل می کنیم.

در فایل کانفیگ اصلی انجین ایکس که معمولا nginx.conf  هست در پایین قسمت http کد های زیر رو قرار میدیم.

حالا تمام آی پی کاربران به درستی در access log ذخیره شده و همینطور به Backend یا Web Application هم آی پی به درستی forward میشه.

آموزش ارتقاء MariaDB در پلسک، CentOS 7

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

در حالت پیشفرض زمان نصب Plesk یا Plesk Onyx در CentOS 7 نسخه مربوط به دیتابیس سرور MariaDB 5.5 خواهد بود. اما آخرین نسخه پایداری این دیتابیس ۱۰٫۱ هست.

برای ارتقاء از MariaDB 5.5 به MariaDB 10.1 مراحل زیر را انجام دادم.

  • غیر فعال سازی Watchdog برای مانیتورینگ MySQL
  • اضافه کردن مخزن MariaDB 10.1 در yum repository
  • انجام ارتقاء
  • تمام

نخست Watchdog را غیر فعال کنید:

اگر به خطای زیر مواجه شدید ، مشکلی نیست یعنی شما Watchdog ندارید.

سپس مخزن MariaDB را به Yum اضافه کنید:

در آخر هم آپگرید انجام بدید.

هیچ تضمینی نیست که اطلاعاتتون از بین نره ،‌ حتما قبلش بکاپ بگیرید…. (فکر کنم اول پست باید می گفتم )

آموزش نصب Bind DNS Server در CentOS

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

یکی از پر استفاده ترین DNS Server ها در لینوکس ، Bind می باشد.

در صورتی که این DNS Server با config پیشفرض در سرور نصب گردد باعث دریافت Abuse / گزارش تخلفات خاصی خواهد شد و صد البته باعث رخداد مشکلات امنیتی خواهد بود.

خیلی خلاصه شروع به نصب و پیکربندی اولین Zone می کنیم.

فایل named.conf را باز می کنیم و چند خطی که در زیر مشخص کردم را comment می کنیم.

در آخر بعد از خط include “/etc/named.root.key”; خط زیر را که مربوط به zone دامنه ما example.com هست اضافه می کنیم.

در فایل example.com.db که در بالا مسیر دهی کردیم ، محتوای یک فایل zone استاندارد را خواهیم داشت.

 

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

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

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

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

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

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

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

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

 

منبع اصلی: Directadmin Help

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

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

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

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

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

 

آسیب پذیری 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 را باز کنید (در بعضی مواقع نیاز به ایجاد فایل دارید) و خط زیر را قرار بدید.

 

انتقال ایمیل ها از Plesk به cPanel (یه هر اکانت IMAP دیگری)

سلامی دوباره 

گاهی ممکنه شما قصد داشته باشید اکانت های ایمیلتان را از یک شرکت یا سرور قدیمی به سرور جدیدتان ببرید ، دسترسی لازم هم برای انتقال ایمیل ها ندارید ، اینجا ابزاری مثل ImapSync خیلی بهتون کمک می کنه.

کار اصلی Imap Sync انتقال ایمیل ها (inbox,sent item,…) از سرور مبدا به مقصد بدون نیاز به دسترسی Super User / Root / Reseller ، فقط دسترسی Login به Imap / POP3 هست.

امروز آموزش انتقال اکانت های ایمیل از کنترل پنل پلسک به cPanel را میگذارم.

دسترسی هایی که به ۲ سرور دارم به شرح زیر هست:

  • دسترسی به کنترل پنل هاست (Plesk و cPanel) برای ایجاد Email Account و تغییر رمز Account ها.
  • لیست Email و Password ها در سرور.
  • ایمیل سرور اول‌(پلسک) با آی پی ۱۹۲.۱۶۸.۱.۱۰۰
  • ایمیل سرور دوم(سی پنل) با آی پی ۱۹۲.۱۶۸.۱.۲۰۰

بعد از اینکه لیست Email ها و Password هارو تهیه کردید ، یک سند (فایل معمولی) در Notepad / vim / kate / … ایجاد کنید و با فرمت زیر Email ها و Password ها رو لیست کنید:

خب ، فایل بالا را نگه دارید چون فعلا لازمش نداریم.

روی سرور مقصد (cPanel) می بایست ImapSync را دانلود کنید.

اگر سیستم ۶۴ بیت دارید glibc i686 هم نصب کنید ، اگر نصب نباشه با خدا مواجه میشید.

خب خب خب ، وارد فولدر imapcync شدیم ، حالا باید اطلاعات ایمیل ها و مشخصات مبدا و مقصد رو برای imapsync تعریف کنیم.

فایل ImapCopy.cfg رو باز کنید. ، به قسمتی که شکل زیر هست دقت کنید:

Source Server = مبدا

Destination Server = مقصد

حالا IP/Address سرور رو جای localhost جا گذاری کنید.

قسمت زیر هم توجه کنید:

دقیقا به همون فرمتی هست که بالا گفتم ،‌ این مورد هم جا گذاری کنید و این ۲ نمونه هم کامنت کنید.

بعد از اینکه مقادیر رو تعریف کردید ، میریم سراغ تست.

با دستور زیر تست می کنه و نتیجه رو بهتون میگه (اگر error رخ داد توجه و رفع کنید)

دستور دوم هم عملیات انتقال رو شروع می کنه.

 

خب تموم شد. 

فعلا