GNU/Linux – Telegram
GNU/Linux
165 subscribers
69 photos
11 videos
14 files
42 links
Download Telegram
نوشتن یک rule (قانون) ساده در udev:

همه rule های udev توی پوشه /etc/udev/rules.d/ قرار دارن
محتویات پوشه :‌
70-persistent-cd.rules
73-special-net-names.rules
73-usb-net-by-mac.rules


توجه داشته باشین که این اعداد که اول فایل ها نوشته شده برای نوبت بندی فایل هاست یعنی موقع هندل کردن از فایل هایی با شماره پایین تر قانون ها خونده میشه تا اخرین فایل

حالا یه فایل میسازیم :‌
$ touch 1_usb.rules

و یک فایل اجرایی هم میسازیم :
$ touch ruel.sh

حالا با nano فایل 1_usb.rule رو باز میکنیم و دستورات زیر رو توش سیو میکنیم :‌
$ nano 1_usb.rules

write following text in rule file :

SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", RUN+="/etc/udev/ruels.d/rule.sh"


save and exit

خب حالا وارد فایل اجرایی میشیم و دستوری که میخوایم موقع متصل شدن usb را بشه رو مینویسیم :‌
$ nano rule.sh

write following text in execute file

#!/bin/bash
echo "USB device added at $(date)" >>/tmp/noscripts.log


save and exit

خب حالا فقط باید permission اجرایی رو به فایل بدین با دستور زیر :‌
chmod +x rule.sh

حالا باید udev رو reload کنیم :
$ usevadm control —reload

کار تمومه میتونین امتحان کنین یه usb به کامپیوتر متصل کنین و خبر و زمان دقیقش رو توی فایل /tmp/noscripts.log نوشته میشه
میتونین قانون های خودتون رو بنویسین
دستور arp

دستور ARP یا همان Address Resolution Protocol یکی از پروتکل‌های TCP/IP است. وظیفه‌ی اصلی arp پیدا کردن آدرس سخت‌افزاری MAC Address دستگاه‌ها در شبکه است. و به ما اجازه‌ی مشاهده‌ی کش مربوط به پروتکل ARP را می‌دهد؛ تا در صورت نیاز آن‌را بتوان ویرایش کرد.



مشاهده فهرست با استفاده از کش پروتکل ARP

برای مشاهده آدرس‌های سخت‌افزاری کش شده با پروتکل ARP، پارامتر a- را می‌توان به‌کاربرد:

arp –a

با توجه به تصویر زیر، فرمان arp فهرست MAC آدرس‌های ذخیره شده به‌همراه IP Address مرتبط را به‌نمایش می‌گذارد.

پارامتر g- هم دقیقاً مانند a- عمل کرده و فهرست MAC آدرس‌های کش شده را نمایش می‌دهد.
مشاهده فهرست با استفاده از کش پروتکل ARP

در ستون Type کلمه‌ی Static به معنی تنظیم دستی است و زمان آن موقت نیست؛ اما پس از اولین توقف TCP/IP در ویندوز این نوع کش MAC ADDRESS نیز حذف می‌شود.
دستور نمایش ARP Table مختص هر Interface

برای نمایش جدول ARP یک کارت شبکه، می‌بایست از فرمان arp به‌همراه پارامترهای a- و n- استفاده کرد. در این دستور مشخص شده که جدول Arp متعلق به کارت شبکه‌ای که آدرس ۱۹۲.۱۶۸.۱.۱۴۵ روی آن تنظیم شده است، نمایش داده شود.

به مثال زیر توجه کنید:

arp -a -n 192.168.1.145

اضافه کردن MAC Address به جدول ARP

برای اضافه کردن MAC Address به جدول ARP، می‌بایست از فرمان arp و پارامتر s- استفاده کرد. برای کار با این دستور کافی است بعد از پارامتر s- آدرس آی پی مورد نظر خود و سپس با یک فاصله آدرس سخت افزاری کارت شبکه مربوط به آن را وارد کنید. به مثال زیر توجه کنید:

در این دستور مشخص شده که آدرس سخت‌افزاری ۰۰-۱f-fb-c4-e6-c5 به آدرس ۱۹۲.۱۶۸.۱.۱ مربوط می‌شود:

arp -s 192.168.1.1 00-1f-fb-c4-e6-c5

اضافه کردن MAC Address به جدول ARP
حذف کردن MAC Address از جدول ARP

برای حذف آدرس سخت‌افزاری از جدول ARP باید از فرمان arp و پارامتر d- استفاده کرد. در این دستور IP Adress: 192.168.1.1 باید از جدول ARP حذف شود. به مثال زیر توجه کنید:

arp -d 192.168.1.1

اگر به جای آدرس سخت افزاری خاص از علامت (*) استفاده کنید، کل جدول Arp به صورت کامل خالی می‌شود.

arp -d *
GNU/Linux
Photo
نرم‌افزار Glances

نرم‌افزار Glances یک نرم‌افزار Open source و cross-platform جهت مانیتورینگ (real-time) مانند (top و htop) قابل‌استفاده بر روی سرورهای مجازی است. این نرم‌افزار می‌تواند در حالت‌های (standalone)، (clinet/server) و حالت (web server) سرویس‌دهی کند.


جهت اجرا در حالت وب‌سرویس نیاز به نصب (python bottle) و (WSGI) دارید.

مرحله اول نصب:

sudo apt install glances python-bottle #Debian/Ubuntu

sudo yum install glances python-bottle #RHEL/CentOS

sudo dnf install glancespython-bottle #Fedora 22

پس از نصب برای اجرا از –w استفاده کنید تا برنامه در حالت وب سرور اجرا شود:

glances -w
یا
glances -w

برای باز کردن پورت ۶۱۲۰۸ می‌توان از فرمان زیر استفاده کرد:

sudo firewall-cmd –permanent –add-port=61208/tcp
sudo firewall-cmd –reload

و یا
sudo ufw allow 61208/tcp
sudo ufw allow reload


بعد از انجام مراحل بالا سرور با آدرس (http://server_IP:61208) در دسترس خواهد بود.
درصورتی که تمایل دارید این نرم‌افزار به‌عنوان سرویس بر روی سرور شما اجرا شود، می‌توانید به‌وسیله‌ی دستورات زیر آن‌را به سرویس‌ها اضافه کنید:

$ sudo vim /usr/lib/systemd/system/glancesweb.service

و اطلاعات زیر را در این فایل اضافه کنید:

[Unit]
Denoscription = Glances in Web Server Mode
After = network.target
[Service]
ExecStart = /usr/bin/glances -w -t 5
[Install]
WantedBy = multi-user.target


توجه داشته باشید بعد از (URL) می‌توانید زمان به‌روزرسانی خودکار را نیز برای صفحه مشخص کنید.

http://SERVERI_P:61208/8
نگاه کلی به دستورات Network

می‌توان لیست کارت شبکه‌ها و اطلاعات آن را با دستور ifconfig بدست آورد.

دادن ip به اینترفیس‌ فیزیکی enp0s31f6
ifconfig enp0s31f6 up 192.168.1.5 netmask 255.255.255.0


تغییر مک آدرس یک کارت شبکه فیزیکی(برای مک اسپوفینگ)
ifconfig enp0s31f6 hw ether AA:BB:CC:DD:EE:FF

دیدن شبکه‌ها وایرلس
iwlist wlp4s0 scan
که در اینجا wlp4s0 اسم کارت شبکه وایرلس ما است.

برای وصل شدن به یکی از شبکه‌هایی که در دستور قبل دیدیم، از دستور زیر استفاده می‌کنیم:
iwconfig wlp4s0 essid "arman" key s:password


دیدن روتینگ سیستم
netstat -nr
یا دستور:
route -n

پاک کردن دیفالت گتوی(DG)
route del default gw 192.168.1.1

اضافه کردن دیفالت گتوی(DG)
route add defualt gw 192.168.1.1



دستور ip

دیدن اینترفیس‌ها و جزئیات
ip addr show

دیدن جدول روتینگ سیستم
ip route show

دادن یک route (اینجا DG)
ip route add default via 192.168.1.1

دادن ip به یک اینترفیس
ip addr add 192.168.1.5/24 dev interfacename

حذف یک ip از یک اینترفیس
ip addr del 192.168.1.5/24 dev interfacename

غیرفعال کردن یک کارت شبکه
ip link set interfacename down

فعال کردن یک اینترفیس
ip link set interfacename up



دیدن مک‌آدرسها و اینکه چه ip گرفتن
arp -n

دیدن تمام سوکت‌ها
ss -l

چک کردن مسیر تا مقصد(مثلن گوگل)
traceroute google.com
یا دستور
mtr google.com



دستور nc یا netcat

برای listen کردن روی یک پورت(مثلن ۱۲۳۴)
nc -l 1234

وصل شدن به یک پورت در لوکال هاست
nc localhost 1234



دستور nmap

اسکن کردن یک سایت(گرفتن اطلاعات)
nmap -v google.com

چک کردن یک پورت خاص در تمام سیستم‌های یک شبکه (مثلن پورت تلنت)
nmap 192.168.1.1/24 -p 23


پیدا کردن ip یک سایت
nslookup google.com
یا دستور
dig google.com
دستور tcpdump

دیدن تمام اینترفیس‌ها
tcpdump -D

شنود کردن روی یک پورت
tcpdump -i any port 1234
بعد از سوئیچ i که any گذاشتیم، یعنی تمام اینترفیس‌ها

ریختن داده‌های دریافتی از شنود در یک فایل
tcpdump -i any port 1234 -w file.pcap

مبدا اگر یک ip بود
tcpdump src ...

اگر مقصد یک ip بود
tcpdump dst ...


برای درست کردن وایت لیست
/etc/hosts.allow

درست کردن بلک‌لیست
/etc/hosts.deny
تفسیر چند مفهوم مهم USS/PSS/VSS/RSS در حافظه اصلی:

سیستم عامل حافظه اصلی کامپیوتر (Memory) را به جای Byte به صورت صفحه به صفحه (Page) استفاده می کند و در لینوکس معمولا اندازه این صفحات 4096 بایت می باشد.


پارامتر VSS یا VSZ: این پارامتر مخفف Virtual Set Size است و مقدار کل فضای آدرسی (Address Space) که برنامه در اختیار دارد را نشان می دهد، یعنی مثلا اگر برنامه ما یک فایل 1GB را Memory Map کند (در مقالات بعدی توضیح خواهم داد) این پارامتر آن را نیز حساب می کند، پس این عدد نشانگر خوبی برای مقدار استفاده واقعی برنامه ما از Memory نیست و استفاده های دیگری دارد. در نتیجه این پارامتر مقدار کل فضای آدرسی که اشغال شده است را نشان می دهد که این آدرس ها می تواند اندازه خود برنامه اصلی، مقدار Heap اشغال شده توسط ()malloc، فایل ها، دیوایس های و ... باشد.


پارامتر RSS: این پارامتر مخفف Resident Set Size است و مقدار کل حافظه ای که خود برنامه بعلاوه Shared Library ها اشغال کرده اند را نشان می دهد، در نتیجه این پارامتر نیز برای محاسبه مقدار واقعی حافظه ای که خود برنامه استفاده می کند نیز مناسب نیست چون Shared Library ها فقط یک بار در حافظه Load می شوند و بین همه برنامه ها به اشتراک گذاشته می شوند و ممکن است یک Shared Library قبل از اجرا برنامه شما در حافظه فراخوانی شده باشد و یا برای اولین بار توسط برنامه شما به حافظه فراخوانی شود. در کل پارامتر بسیار جالب و کاربردی است ولی برای استخراج مقدار حافظه اشغال شده توسط کد های نوشته شده توسط شما مناسب نیست.


پارامتر PSS: این پارامتر مخفف Proportional Set Size است که همانطور که از Proportional به معنی متناسب مشخص است برخلاف RSS که کل فضای اشغال شده توسط Shared Library را به هر برنامه اضافه می کند، PSS آن را بین برنامه ها تقسیم می نماید! یعنی اگر یک Shared Library که 20 صفحه حافظه اشغال کرده توسط دو برنامه مورد استفاده قرار گرفت، PSS هر برنامه مقدار 10 = 2 / 20 را به عنوان Shared Library بعلامه مقدار حافظه خود برنامه جمع می زند. این پارامتر برای مجموع حافظه کل سیستم بسیار مناسب است چرا که با جمع زدن PSS همه برنامه های سیستم مقدار واقعی حافظه کل سیستم مشخص می شود.


پارامتر USS: و در آخر پارامتر USS که مخفف Unique Set Size است به معنی میزان حافظه دقیقی خود برنامه ما استفاده می کند را نشان می دهد.


نکته مهم: در صورت Kill شدن برنامه در سیستم عامل کل حافظه USS برگشت داده خواهد شد ولی در بقیه پارامتر ها به خاطر وجود Shared Library ها کل آن مقدار به حافظه برگشت داده نخواهد شد چون ممکن است آن کتابخانه توسط برنامه دیگر در حال استفاده باشد در غیر اینصورت آن کتابخانه نیز از حافظه حذف خواهد شد.
GNU/Linux
Photo
تفاوت و شباهت های Storageهای EMC VNX و EMC Unity و EMC UnityVSA


🔹بطور کلی می توان گفت Unity که در سال 2015 معرفی شد، نسل جایگزین Storageهای شرکت DELL\EMC به جای Storageهای VNX است که از دسامبر سال 2018 دیگر تولید نمی شوند. در ادامه برخی شباهت ها و تفاوت های این دو محصول با یکدیگر آمده است:


🔹بطور کلی معماری Unity و VNX متفاوت از یکدیگر است و Unity کارایی و Performance بهتری دارد.

🔹تجهیزات Unity در دو سری Hybrid (مدل های: 300 و 400 و 500 و 600 و دسته جدیدتر 350 و 450 و 550 و 650) و سری All-Flash (مدل های: 300F و 400F و 500F و 600F و سری جدیدتر AF یعنی 350F و 450F و 550F و 650F – که حرف F در آنها نشان AF بودن است) معرفی شده اند.

🔹تجهیزات VNX اما در دو سری VNX1 (یا همان VNX شامل مدل های: 5100 و 5300 و 5500 و 5700) و سری VNX2 (مدل های 5200 و 5400 و 5600 و 5800 و 7600 و 8000) ارائه شده اند که این مدل های Hybrid هستند. اما تجهیز VNX-F از سری All-Flash محصولات VNX به شمار می رود.

🔹هر دو خانواده VNX و Unity محصول virtualی نیز وجود دارد: vVNX و UnityVSA (توجه داشته باشید که این محصولات Simulator نیستند بلکه محصولات virtual applianceی هستند که در دسته SDSها یا Software-Define Storageها می باشند و می توان آنها را در محیط های Production نیز مورد استفاده قرار داد.)

🔹از لحاظ تکنولوژی Replication با یکدیگر متفاوت هستند. محصول VNX از نرم افزار MirrorView و محصول Unity از Unity Replication استفاده می کند.

🔹در هر دو محصول VNX و Unity قابلیت Synchronous Replication و Asynchronous Replication ساپورت می شود (اما در UnityVSA فقط Asynchronous Replication ساپورت می شود ولی Synchronous Replication خیر)

🔹برای مدیریت هر دو محصول VNX و Unity می توان از راهکار GUI مبتنی Unisphere و یا USM استفاده کرد. اما رابط کاربری Unisphere در Unity مبتنی بر HTML5 است و تغییرات گرافیکی زیادی داشته.

🔹محصول VNX از قابلیت VMware VVoL پشتیبانی نمی کند، اما راهکار Unity و UnityVSA و vVNX هر سه این feature را ساپورت می کنند.

🔹تجهیز Unity یک Unified Storage است یعنی علاوه بر حالت Block-based و File-based می تواند به صورت Object-based storage نیز کار کند، اما تجهیز VNX فقط به صورت Block-based و File-based کار می کند.

🔹در هر دو محصول VNX و Unity قابلیت های FAST Cache و FAST VP پشتیبانی می شود. (اما در UnityVSA قابلیت FAST Cache نداریم، فقط قابلیت FAST VP ساپورت می شود)

🔹در هر دو محصول VNX و Unity ارتباطات شبکه ای یا Storage Networking بر پایه پروتکل های FC و FCoE و iSCSI و FCIP پشتیبانی می شود (اما در UnityVSA، پروتکل Fiber Channel پشتیبانی نمی شود)

🔹قابلیت های RAID Group و Storage Pool در هر دو محصول VNX و Unity وجود دارد.

🔹قابلیت Data At Rest Encryption یا به اختصار D@RE در هر دو محصول VNX و Unity پشتیبانی می شود (اما UnityVSA از این feature پشتیبانی نمی کند)

🔹نرم افزار AppSync با هر دو محصول VNX و Unity کار می کند.
تعریف عالی از Bandwidth در مقایسه با Latency در شبکه
DNS-CheatSheet-V1.02.pdf
83.5 KB
DNS CheatSheet
مفهوم Segment Routing

چیزی حدود ۲ سال هست که مفهوم جدیدی تو شبکه های Service Provider بوجود اومده به نام Segment Routing
شرکتهایی مثل سیسکو و جونیپر که بیشتر زیرساختهای Service Provider ها رو تشکیل میدن از این متد برای افزایش کیفیت مسیریابی هاشون استفاده میکنند و جدا جایگزین خیلی ساده و خوبی برای روشهای پیچیده ای مثل MPLS-TE هست.

در واقع تو این مکانیزم به هر روتر، لینک یا ارتباط(که اصطلاحا Segment) گفته میشه یه عدد اختصاص میدن و زمانی که یه اپلیکیشن ترافیکی رو میخواد ارسال کنه بر اساس نیاز اپلیکیشن، کنترلر با Push کردن یه سری Label به دیتا ترافیک رو تو یه مسیر مشخص هدایت میکنه! انتخاب لیبل ها و سیاست های مسیر رو کنترلر تعیین میکنه نه IGP و برگ برنده این مکانیزم هم همینه که اطلاعات مسیر در خود دیتا حمل میشه و چون کنترلر کیفیت تمام لینکها رو بررسی میکنه بنابراین بسته به بهترین مسیر هدایت میشه! چیزی شبیه به MPL-TE اما با این تفاوت که اینجا نیاز به مدیریت پیچیده کلی تانل نداریم و همچنین زیرساختمون هم ساده تر میشه.

نباید به اشتباه فکر کنید که دیگه با این متد نیازی به IGP ها در زیرساخت نداریم!!! نکته مهم اینه که همچنان لیبل های اختصاص داده شده به نود ها و لینک ها رو OSPF و IS-IS جابجا میکنه. بنابراین زیرساخت ما تغییر چندانی نمیکنه اما هوشمندی اون برای به مقصد رساندن بسیار کاراتر میشه و دلیلش هم اینه که نیازهای اپلیکیشن رو خود اپلیکیشن مشخص میکنه نه زیرساخت!

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

تو ویدیو زیر مختصری در این خصوص مشاهده کنید👇
GNU/Linux
Photo
با Lest's_Encrypt گواهی SSL رایگان بگیرید.

در واقع Let’s Encrypt یک مرکز صادرکننده گواهینامه (Certificate) SSL رایگان است. پروژه Let’s Encrypt در سال ۲۰۱۴ برای اولین بار مطرح شد و پس از ۱۰ ماه موفق به انتشار اولین گواهینامه رایگان خود شد. با توجه به ارائه سرویس گواهینامه رایگان SSL توسط این مرکز از محبوبیت بالایی برخوردار است. لازم به ذکر است که این Certificate های صادر شده توسط Let's Encrypt برای مدت زمان ۹۰ روز فعال است و پس از آن امکان تمدید آن به صورت رایگان وجود دارد.

به طور خلاصه Let's Encrypt به شما گواهی SSL رایگان برای وب سایت های شما ارائه می دهد که با نصب این گواهینامه بر روی سایت خود باعث می شود ارتباط بین وب سایت شما و مرورگر کاربر رمزگذاری شود و امنیت تبادل اطلاعات برای کاربران بالا می برد و قفل سبز رنگ در کنار نوار آدرس سایت شما نمایش داده می شود، همچنین ساختار آدرس سایت شما از پروتکل HTTP به HTTPS تغییر می کند.



◾️ مزایای Let’s Encrypt

▪️ رایگان: هر کسی که صاحب دامنه است بدون پرداخت هزینه می تواند صاحب یک گواهینامه Let’s Encrypt شود.
▪️خودکار: این امکان وجود دارد که نرم افزار های موجود بر روی سرور را به گونه ای تنظیم کنیم که به صورت خود کار با گواهینامه Let’s Encrypt در تعامل باشند و یا برنامه ای بر روی سرور تنظیم کنیم که به صورت خودکار گواهینامه Let’s Encrypt را تمدید کند.
▪️امن و مطمئن: Let’s Encrypt پلت فرمی خواهد بود جهت پیشبرد خدمات بهتر امنیت TLS
▪️برای وب سایت های کوچک و کم بازدید و یا وب سایت های شخصی مناسب است.



◾️ معایب Let’s Encrypt

▪️این گواهینامه به صورت 90 روزه صادر می شود و نیاز است شما به صورت مرتب آن را تمدید نماید.
▪️مشتریان Let’s Encrypt فقط دارای یک رابط (command line(CLI هستند.
▪️مشتریان باید بتوانند با ویرایش فایل های پیکربندی اپاچی کارکنند. این فایل ها به فایل های با مشکلات زیاد و نتایج ناخوشایند معروف هستند.
▪️پشتیبانی از NGINX در محله ای آزمایشی است.و هنوز به صورت قطعی نمی توان گفت که Let’s Encrypt بتواند از nginx پشتیبانی کند.
▪️مشتریان برای Let’s Encrypt نیاز به توسعه نرم افزارهای مورد استفاده خود روی سرور دارند.
▪️این گواهینامه مورد تایید مراکز توسعه تجارت الکترونیک نمی باشد.
▪️برای دریافت درگاه پرداخت، گواهینامه های یکساله الزامی است.
TCP vs UDP
Possible Reasons for a Packet Drop
Linux command cheat sheet
تکنولوژی RDMA مخفف Remote Direct Memory Access می باشد که دسترسی مستقیم به حافظه یک هاست را به حافظه هاست دیگر بدون دخالت CPU و سیستم عامل فراهم می کند که باعث تقویت شبکه و performance هاست با کاهش latency ، کاهش بار CPU و پهنای باند بالاتر می شود. در مقابل، ارتباطات TCP / IP به طور معمول نیازمند عملیات کپی هستند که باعث افزایش قابل توجهی تاخیر در منابع CPU و حافظه می شود.