چالش مدرک

یه بحث همیشگی هست، یه عده می گن مدرک مهمه ، یه عده می گند کسانی که مدرک دارند کار بلد نیستند و فقط دنبال مدرکند و این بحث ادامه داره. بحث خزعبلیه (البته هر خزعبلی به درد نخور نیست ؛-) ) در کل چون معلوم نیست سر چیه؟! بیشترین چیزی که درش دیده می شه اینه که هر کدوم چیزی را که نداره تقبیح می کنه. ولی در هر حال نظاره گران این مناظره دنبال نتیجه هستند، مدرک مهمه یا نه؟ مدرک بگیریم؟ مدرک اصلا به چه درد می خوره؟

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

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

ادامه خواندن چالش مدرک

SSL(TLS) Certificate File Extentions

همه sysadmin ها مطمئنا تا به حال حداقل یک بار مجبور به پیکربندی SSL یا TLS برای یکی از سرویس های وب یا میل شده اند. این موضوع به دلیل اینکه در طول یک پروژه یا کار خیلی کم پیش میاد، اکثر ما سطحی از کنارش می گذریم و خیلی کنجکاو نمی‌شیم که مفاهیم پایه اش را در بیاریم و یا خیلی ریز وارد جزییاتش بشیم. اکثر مواقع فقط انجامش می دیم میره.

خوب توی این مستند تصمیم دارم انواع پسوند‌هایی که برای فایل‌های کلید و Certificate امون انتخاب می کنیم و همینطور چند تا فرمتش را معرفی کنم.

ادامه خواندن SSL(TLS) Certificate File Extentions

فهرست مطالعه برای System Administrator ها – نسخه ۲

مدتها بود که دلم می خواست که یه فهرست مطالعه (Reading List) برای System adminstrator ها و Network Administrator ها در حد تجربه خود بنویسم. هی عقب می افتاد. امروز اولین پستش را میخوام بزنم.

چند نکته و ویژگی در مورد این لیست هست:
۱- در برخی تجربه‌ها در این سالها متوجه شدم که باید خیلی قبل تر مطلبی را می خوندم و یا باید می دونستم، ولی چیزی در موردش نمی دونم. برای همین به این لیست اضافه کردم
۲- این لیست یک تلاش کوچیک برای آکادمیک کردن مسیر رشد و یادگیری یک مدیر سیستم یا System Administrator است. چون یه دوستی تذکر داده بودند که کتاب‌های آقای ملکیان بسیار تئوری است و باید سراغ کتابهای عملی تر رفت، من تاکید می کنم من بسیار به تئوری اهمیت می دم و تجربم اینه که هرچه تسلط تئوری و علمی بالاتری به یک موضوع داشته باشی، پیاده سازی تمیز تر و مطمئن تری خواهی داشت.
۳- تصمیم دارم این لیست را تاجایی پیش ببرم که شبیه یک دوره لیسانس سه سال یک نفر را پر کنه و یک نفر بتونه سه سال آموزش خودشو برای ورود و یا پیشرفت در بازار کار برنامه ریزی کنه.
۴- شروع لیست با کتاب‌های فارسی است. شاید انتقاد خیلی‌ها را به همراه داشته باشه، ولی من معتقدم یادگیری پایه‌ها، مبانی و اصطلاحات یک تخصص با زبان مادری کار و پیشرفت را خیلی تسهیل می‌کنه. البته مطمئنا در یک جایی به بعد مطالعه ترجمه ها دیگر کارایی لازم را نداره و مطمئنا در ادامه تغیریبا همه کتابها انگلیسی خواهد بود.
۵- این لیست برای هنرستانی‌های رشته کامپیوتر و کاردانی و کارشناسی کامپیوتر مناسب است.
۶- سعی می‌کنم تاجایی که امکان داره دلیل پیشنهاد مطالعه هر کتاب و توانایی هایی که بعد از اون باید بدست بیارید را مطرح کنم
۷- از این نسخه از مقاله به بعد سعی می کنم، لینک خرید کتاب به همراه عکس جلد آن را هم بزارم.

ادامه خواندن فهرست مطالعه برای System Administrator ها – نسخه ۲

راهنمای خرید سخت افزار – Memory

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

ادامه خواندن راهنمای خرید سخت افزار – Memory

ذهن تحلیل گر آشفته و رویای صادقه

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

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

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

ادامه خواندن ذهن تحلیل گر آشفته و رویای صادقه

حمله Syn Flood

حمله Syn Flood از دسته حمله هایی است که خیلی بی سر و صدا سرورتون را از دسترس خارج می کنه در نگاه اول هیچ نشانه ای نداره ، جز اینکه سرویستون دیگه جواب کاربران را نمی ده. برای اینکه بدونین چه شکلی کار می کنه اول باید بدنید three way handshaking در tcp چه شکلی کار می کنه. gif زیر که از wikipedia گرفتم را نگاه کنید

در شروع هر ارتباط tcp کلاینت برای شروع ارتباط یک بسته syn ارسال می کنه. سرور درجوابش یک syn/ack ارسال می کنه و کلاینت یک بسته ack بر می گردونه. زمانی که این سه بسته ردو بدل شد ارتباط به حالت establish می‌ره و کلاینت و سرور شروع به تبادل داده می کنند.

ادامه خواندن حمله Syn Flood

چالشهای مباحثه

قبل از این متن لطفا مطلب «اصل صحبت با انسان بالغ» را بخونید.

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

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

متوجه چند تا موضوع اولیه شدم که من را از بحث منحرف کرد و کاری را کردم که نمی خواستم. ۱- طرف مقابلت خواسته یا ناخواسته اصلا قصد بحث نداره و نمی خواد چیزی را بشنوه و دایم خواسته اش را فریاد می زنه.
راه حل: خوب با چنین کسی اصلا جای مباحثه ای نیست. چون یه مباحثه دو طرف داره و طرف دوم شما اصلا قصد نداره مباحه کنه. باید دقت داشته باشید که ممکنه طرف مقابل این صحبت را بکنه که قصد صحبت داره ، ولی شما باید با قدرت موضوع را بپیچونی. 😉
۲- استفاده از موضوعات احساسی، توهمی به عنوان دلیل. این هم یکی از اون موضوعات که تو مباحثه نمی‌گنجه.  مثل «من دلم می‌گه این درسته» !!!!!!
به این موضوعات آگاه باشید و اولین مورد که دیدید دوری کنید، سر کار می رید… بد D:

پیدا کردن تاریخ ساخت فایل

شاید به این مشکل بر خورده باشید که زمانی که جستجو می کنید و دنبال دستوری برای پیدا کردن زمان تغییر و یا ساخت یک فایل می گردید، به دستور stat  می رسید. ولی این دستور یه مشکل داره.

$ stat linuxmotto.txt $ stat linuxmotto.txt
File: linuxmotto.txt
Size: 0         Blocks: 0          IO Block: 4096   regular empty file
Device: 15h/21d Inode: 492194      Links: 1
Access: (0644/-rw-r–r–)  Uid: ( 1000/  behrad)   Gid: ( 1000/  behrad)
Access: 2017-10-14 22:25:13.673825333 +0330
Modify: 2017-10-14 22:25:13.673825333 +0330
Change: 2017-10-14 22:25:13.673825333 +0330
Birth: –

همانطور که می‌بینید، این دستور سالهاست که زمان ساخت (Birth) را نشان نمی‌ده. این به دلیل این نیست که این زمان در فایل سیستم ذخیره نمی‌شه. بلکه دقیقا مشکل دستور stat است.
البته همه فایل سیستم ها از Creation time پشتیبانی نمی‌کنند. مانند XFS و در ضمن هر فایل سیستم ممکنه این مقدار را با اسامی مختلفی نگهداری کند

zfs → crtime
ext4 → crtime
btrfs → otime

برای اینکه بتونید زمان ساخت یک فایل را پیدا کنید، می تونید از دستور دیگری به نام debugfs استفاده کنید. debugfs دستور بسیار قدرتمندی برای بررسی یک فایل سیستم است. این دستور مربوط به فایل سیستم ext4 هست، و من نتونستم دستور معادلی برای btrfs پیدا کنم. اگه سراغ دارید ممنون می شم در کامنت معرفی کنید.

debugfs -R “stat /tmp/linuxmotto.txt” /dev/sda2 | grep crtime

ترافیک نداشتن ماشین KVM

مدتی هست که دیگه از اسکریپت های فایروال خودم استفاده نمی کنم. روی Debian Base ها که ufw باب شده و روی Redhat Base ها هم Firewall-cmd استفاده می شه. برای همین نیازی نیست که از اسکریپت‌های خودم استفاده کنم.
حالا همین موضوع دردسر شده و گهگاهی یادم می ره که این ابزارها rule های پیشفرضی دارند که جلوی همه چی را می بندند.

مشکل
ترافیک به دست ماشین KVM نمی رسه، ولی ping داره

راه حل
نیاز هست که برای ترافیک ورودی و خروجی بر روی Host ای که ماشین مجازی نصبه دو تا rule یکی برای ترافیک ورودی و یکی برای ترافیک خروجی در FORWARD Chain تعریف کنید. برای این کار باید توی فایل  etc/ufw/before.rules/  در قسمت rule های FORWARD اضافه کنید. این کار باعث می شه که هر دفعه سرور را restart می کنید، این rule ها هم اعمال بشه.

-A ufw-before-forward -p ip -s 172.17.120.55/24 -j ACCEPT
-A ufw-before-forward -p ip -d 172.17.120.55/24 -j ACCEPT

و یک بار هم اجرا کنید، تا در همین لحظه هم اعمال بشند

iptables -A ufw-before-forward -p ip -s 172.17.120.55/24 -j ACCEPT
iptables -A ufw-before-forward -p ip -d 172.17.120.55/24 -j ACCEPT

تغییر نام database بر روی mariadb

شاید برای شما هم پیش بیاد که بخواین که نام دیتابیس را تغییر بدید. خوب اگه از phpmyadmin استفاده می‌کنید که اون خودش براتون این کار را می کنه. ولی اگه خودتون می خواید از طریق خط فرمان این کار را انجام بدید، باید بدونید که دستوری برای این کار نداریم!

پس برای انجام این کار باید چی کار کرد. یک راه حل اولیه اینه که یک دیتابیس جدید با اسم مورد نظر بسازید، از دیتا بیس قبلی backup بگیرید و بعد در دیتابیس جدید restore کنید.

mysqldump -u username -p -v olddatabase > olddbdump.sql
mysqladmin -u username -p create newdatabase
mysql -u username -p newdatabase < olddbdump.sql

اگه بخوایم یه کم بار I/O را کم کنیم می تونیم از ترفند زیر استفاده کنیم (من از stackoverflow پیدا کردم)

mysqladmin -u username -p create newdatabase
mysqldump -u username -v olddatabase -p | mysql -u username -p -D newdatabase

اگه از Innodb برای دیتابیس استفاده می‌کنید، یه روش کم بار تر هم می تونید استفاده کنید. دیتابیس جدید با اسم جدید بسازید و بعد table هاتون را rename کنید.

RENAME TABLE old_db.table TO new_db.table;

برای اینکه همه table ها را یکجا rename کنید از حلقه while یا for می تونید استفاده کنید

mysql -u username -ppassword old_db -sNe ‘show tables’ | while read table; \
do mysql -u username -ppassword -sNe “rename table old_db.$table to new_db.$table”; done

 

اینجا باید راحت باشی !