گیک فارسی

نوشته های یک گیک فارسی از فعالیت ها ،‌ علاقه مندی ها و نقد هایش

خطای Cannot connect to RDP server در نرم‌افزار Remmina Remote Desktop

نویسنده:
۷ شهریور ۹۴

من برای ارتباط Desktop با سرور های VPS مخصوصاً ویندوزی ها از Remmina استفاده میکنم. نرم‌افزار خیلی خوبیه و تنظیمات خیلی کاملی داره و قطعاً نیاز remote Desktop را توی محیط لینوکس کامل برآورده میکنه. اما بعضی مواقع شروع میکنه خطای Connect دادن در حالی که مثلاً تا همین دیروز به خوبی کار میکرده و این واقعاً اذیت میکنه.

این موضوع باعث شد نرم‌افزار های Remote Desktop دیگه را هم توی لینوکس چک کنم اما واقعاً نرم‌افزاری بهتر از Reminna پیدا نکردم. پس سعی کردم ببینم آیا کس دیگه ای هم با مشکل مشابه روبرو بوده یا نه؟! بعد از کمی بررسی و مطالعه راه حل‌ها متوجه شدم مشکل به خاطر Cache شدن تنظیمات سرورها و Certificate هاشون معمولاً به وجود میاد و با حذف دایرکتوری freerdp./~ و بارگزاری مجدد برنامه حل میشه.

میدونم که در آینده به این مشکل برخورد میکنم و دوستان دیگه هم توی انجمن‌های لینوکس این مشکل براشون پیش اومده بود. پس بهترین کار نوشتن راه حل در قالب یک پست وبلاگی و اشتراکش با بقیه هست.

بدست آوردن IP درست سایت که درگاه های پرداخت بانکی و سایت‌های دیگه ما را با اون شناسایی میکنن

نویسنده:
۳۰ مرداد ۹۴

بارها شده برای استفاده از خدماتی مثل درگاه های بانکی نیاز بوده که آدرس IP سرور را به بانک یا شرکت دیگه ای بدیم. عموما فکر میکنیم وقتی از سایت ping بگیریم متوجه این آدرس خوهیم شد. مثلاً وقتی بزنیم ping geekfarsi.com به آدرس IP معادل ۴۶٫۲۸٫۵۰٫۱۸۱ میرسیم و این آدرس را به عنوان IP سرور به بانک میدیم.

ولی این برداشت و نتیجه‌گیری روی سرویس های اشتراکی که از IP های اشتراکی استفاده میکنن همیشه درست نیست ،‌ کلاً این فرضیه وقتی درسته که سرویس دهنده میزبان ما بر اساس تفکر ما عمل کرده باشه که خوب میتونه اینطور نباشه. اما حالا باید چیکار کنیم ؟! من یک کد نوشتم که با استفاده از سرویس سایت ipinfo.io میشه بهش درخواست داد تا آدرسی که ما را باهاش شناسایی میکنه مشخص کنه :

$curl = curl_init();
curl_setopt_array($curl, array(
		CURLOPT_RETURNTRANSFER => 1,
		CURLOPT_URL => 'http://ipinfo.io/json'
));
$retval = curl_exec($curl);
curl_close($curl);
$info = json_decode($retval,true);
echo $info['ip'];

حالا اگه این کد را روی سرور Geekfarsi بگذارم و اجراش کنم مقدار ۴۶٫۲۸٫۵۰٫۱۸۰ را بر میگردونه که این همون IP آدرس درستی هست که باید در اختیار بانک بگذاریم.

توجه : اگه از سرویس های اختصاصی VPS یا سرویس های Shared با IP اختصاصی استفاده میکنید نیاز به این کار ندارین و IP همونی هست که شرکت میزبان به شما اختصاص داده و مقدراش با Ping هم برابره.

نقدی بر عملکرد مدیریتی باشگاه فوتبال سپاهان اصفهان

نویسنده:
۳۰ مرداد ۹۴

سال گذشته با وجود اینکه پس از جایگزین شدن فرکی خیلی امیدی به قهرمانی سپاهان نداشتم اما با اضافه شدن محرم نویدکیا در نیم فصل دوم و حمایت خوب مدیریتی باشگاه برای پنجمین بار سپاهان به قهرمانی لیگ برتر رسید و این قهرمانی خیلی هم جای افتخار داره در حالی که تیمی مثل پرسپولیس بیش از ۷ سال هست که در این امر ناکام بوده.

اما فصل گذشته تموم شد و نباید در خواب اون قهرمانی موند و مشکلات باشگاه و مخصوصاً مدیریت و کادر فنی را عنوان نکرد. در مورد کادر فنی با توجه به ۱۰ امتیاز و صدر جدول بودن تیم بعد از سه بازی خیلی نمیشه نقد کرد اما سپاهان در دفاع مشکل داره و باید خیلی زود این مشکلش را رفع کنه. مهمترین نقد بر حسین فرکی در فصل جدید عدم به خدمت گرفتن یک بازیکن بازی ساز میانی در قامت محرم نوید کیا بود که با توجه به عدم حضور نویدکیا این کاستی هر هفته بیشتر خودش را نشون میده. از دست دادن سوکای هم به نظر من اشتباه بود و سوکای بازیکن خوب و تأثیر گذرای بود که فرکی نتونست ازش بازی بگیره.

از بحث کادر فنی که بگذریم وقتی به عملکرد مدیریتی باشگاه و اتفاقات اخیر نگاه میکنیم متوجه میشیم که سپاهان توی این چند سال در این زمینه خیلی بد بوده. اول باید به کنار گذاشته شدن خلیلیان و کلاً تعویض دائم مدیران اشاره کرد. من اصلاً کاری به شخص خلیلیان یا هر کس دیگه ای ندارم. همینکه بدونیم باشگاه سپاهان از مرداد سال ۱۳۸۱ تا مرداد ۱۳۹۰ تحت مدیریت محمد رضا ساکت بوده و سپاهان در همین دوران به صورت پیوسته با رشد روبرو بوده و قهرمانی های زیادی کسب کرده و تیم اول ایران شده و پس از اون از مرداد سال ۱۳۹۰ تا مرداد ۱۳۹۴ چهار بار مدیریتش عوض شده (یعنی هر سال ۱ مدیر) حتی با وجود ثبات در مدیریت کلان و داشتن نقشه راه باز هم به صورت میانگین هر سال مدیر عوض کردن در شان سپاهان نیست. قطعاً این باشگاه با این وضعیت به مشکل بر میخوره که البته خورده.

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

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

همونطور که وقتی کسی زحمت میکشه باید قدرش را دونست وقتی هم کسی به تیم ضربه میزنه باید باهاش برخورد کرد. بازیکنی که یکدفعه ول میکنه و میره و حتی زنگ نمیزنه خداحافظی کنه و توضیح بده یک یاغی بیشتر نیست و باید بفرستنش کمیته انضباطی باشگاه و به شدت باهاش برخورد کنن وحتی اگه لازم بود باهاش فسخ قرارداد کنن. پرسپولیس با بُت ساختن از علی کریمی و علی دایی به جایی نرسیده که شما با بُت ساختن و حلوا حلوا کردن بازیکن حاشیه سازی حتی اگه اسمش محرم نویدکیا باشه برسین.

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

از کجا بفهمیم یک سایت از چه سیستم عامل ،‌ سرویس دهنده وب و زبان برنامه نویسی استفاده میکنه ؟

نویسنده:
۱۵ مرداد ۹۴

یکی از مباحثی که در انجمن‌ها و جوامع برنامه نویسان وب مطرح هست این موضوعه که چه وب سایت‌های موفقی از زبان برنامه نویسی مورد علاقه من استفاده میکنند !؟ گذشته از اینکه این سؤال به نظر من اصلاً مهم نیست چون من دوستان برنامه نویس موفقی دارم که از Scala برای توسعه وب استفاده میکنند در حالی که پروژه خیلی موفق و دهن پر کنی هم در موردش وجود نداره در عوض میشه این موضوع را بهانه قرار داد تا یاد بگیریم چطور میشه خیلی ساده تشخیص داد یک سایت از چه سیستم عامل ، سرویس دهنده وب و زبان برنامه نویسی استفاده میکنه.

مدیر سیستم ،‌تحلیل شبکه

شاید اولین اشتباه در نگاه اول به یک سایت این باشه که از روی پسوند فایل‌ها استنباط کنیم که از چه زبان برنامه نویسی و سیستم عامل و … داره استفاده میشه که البته خیلی قابل اطمینان نیست چون واقعاً براحتی از طریق یک فایل htaccess. روی سیستم عامل لینوکسی میشه فایل‌ها با پسوند aspx را دوباره نویسی (URL Rewriting) کرد یا حتی از سرویس دهنده وب بخوایم پسوند aspx را به عنوان یک پسوند معتبر برای PHP فرض کنه.

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

دستوری که میخوایم ازش استفاده کنیم خیلی سادست ، مثلاً بیاین سایت digikala.com را بررسی کنیم :

curl -s -I digikala.com

که این خروجی را بر میگردونه :

HTTP/1.1 301 Moved Permanently
Content-Length: 147
Content-Type: text/html; charset=UTF-8
Location: http://www.digikala.com/
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Wed, 05 Aug 2015 22:53:37 GMT

که ازش متوجه میشیم داره از سیتم عامل ویندوز ، IIS7.5 به عنوان سرویس دهنده و زبان ASP .NET استفاده میکنه.

اما همیشه هم نمیشه ۱۰۰ درصد در مورد یک یا چند مورد از سوالاتمون اطمینان حاصل کنیم ، مثلاً خروجی سایت Ponisha.ir :

HTTP/1.0 200 OK
Date: Wed, 05 Aug 2015 22:59:54 GMT
Server: Apache/2
X-Powered-By: PHP/5.5.27
Set-Cookie: PonishaSession=kbt88b72ms7p9nk2l9bpnqiiu7; path=/; domain=.ponisha.ir
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Vary: User-Agent
Content-Type: text/html
Connection: close

مشخصه که سرویس دهنده Apache هست و زبان برنامه نویسی PHP 5.5 اما با اطمینان نمیتونیم بگیم داره از سرویس دهنده لینوکسی استفاده میکنه چون روی ویندوز هم قابل استفاده هست اما در حالت نرمال و حرفه‌ای ۹۵ درصد میشه اطمینان داشت سیستم عامل از خانواده لینوکس یا یونیکس هستش.

همونطور که گفتم مدیر سیستم میتونه این اطلاعات را دستکاری کنه ، مثلاً خروجی mihanblog.com را اگه ببینید :

HTTP/1.0 200 OK
Date: Wed, 05 Aug 2015 23:04:46 GMT
Content-Type: text/html
Set-Cookie: mib_lb_id=m0; path=/; domain=.mihanblog.com
Cache-Control: no-cache, must-revalidate, no-cache="Set-Cookie", private
Vary: Accept-Encoding
Server: Toofun/1.0.1
Connection: close

هموطنر که میبینید تنها موردی که برمیگردونه سرویس دهنده هست که اون را Toofun معرفی میکنه اما من که چنین سرویس دهنده ای را نمیشناسم اما گویا سایت‌های cloob.com و aparat.com هم چنین خروجیی را بر میگردونه (به نظر میاد مالک همشون یک گروه باشه) اما با کمی مطالعه دقیقتر و مراجعه به آرشیو های سایت‌های موجود و دیدن ردپای nginx میشه حدس زد شاید Forky ی از اون باشه اما نمیشه صد در صد گفت.

یادتونه گفتم به پسوند فایل‌ها اعتماد نکنید ؟ خوب اگه خروجی سایت بانک ملت را ببینیم :

HTTP/1.0 301 Moved Permanently
Cache-Control: private
Content-Length: 150
Content-Type: text/html; charset=utf-8
Location: http://bankmellat.ir/default.aspx
Server: Apache/2.2.3 (Linux/SUSE)
Date: Wed, 05 Aug 2015 23:11:28 GMT
Connection: close

داره میگه سرویس دهده Apache روی لینوکس SUSE اما پسوند فایل Header مربوط به Location که داره Redirect میکنه aspx هست. استنباط اینکه داره برای گمراهی پسوند را عوض میکنه خیلی قوی‌تر از این هست که فکر کنیم IIS داره خروجی گمراه‌کننده برای جا زدن خودش به عنوان Apache تولید میکنه.