Linux & Open Source

تسلط بر شبکه لینوکس: نگاهی عمیق به پروتکل‌ها، امنیت و عیب‌یابی

برای مدیران سیستم و مهندسان DevOps، درک پیچیدگی‌های لایه شبکه لینوکس نه تنها یک مهارت، بلکه ضرورتی است. چه در حال پیکربندی یک وب‌سرور با در دسترس‌بودن بالا باشید، چه در حال رفع اشکال تأخیر و یا امن‌سازی یک خوشه توزیع‌شده، دانش عمیق از TCP/IP، DNS، SSH و قوانین فایروال، پایه‌ای برای قابلیت اطمینان عملیاتی است. این پست به بررسی اجزای اصلی شبکه لینوکس و ارائه دستورات کاربردی برای عیب‌یابی مؤثر می‌پردازد.

پایه و اساس: TCP/IP و DNS

در قلب شبکه لینوکس، مجموعه پروتکل‌های TCP/IP قرار دارد. در حالی که بیشتر کاربران با نام‌های دامنه قابل خواندن تعامل دارند، سیستم به سیستم نام دامنه (DNS) تکیه می‌کند تا این نام‌ها را به آدرس‌های IP تبدیل کند. پیکربندی‌های نادرست در این بخش از رایج‌ترین منابع مشکلات اتصال هستند. برای بررسی پیکربندی فعلی حل‌کننده DNS خود، فایل /etc/resolv.conf را بررسی کنید یا در توزیع‌های مدرن مبتنی بر systemd، از resolvectl استفاده نمایید.

# بررسی سرورهای DNS فعال
resolvectl status

# تست تأخیر حل DNS و رکوردهای پاسخ
dig example.com +short

هنگام عیب‌یابی شکست‌های حل نام، همیشه ترتیب منابع حل را در /etc/nsswitch.conf بررسی کنید. یک دام رایج، ترتیب files در مقابل dns است که می‌تواند منجر به رفتارهای غیرمنتظره شود اگر فایل‌های میزبان محلی به درستی نادیده گرفته نشوند.

دسترسی امن از راه دور: پیکربندی SSH

پوسته امن (SSH) ابزار اصلی برای مدیریت از راه دور است. سخت‌سازی پیکربندی SSH برای امنیت حیاتی است. به طور پیش‌فرض، احراز هویت با رمز عبور در برابر حملات brute-force آسیب‌پذیر است. بهترین روش غیرفعال کردن ورود‌های مبتنی بر رمز عبور به نفع احراز هویت مبتنی بر کلید است.

# /etc/ssh/sshd_config
PasswordAuthentication no
PubkeyAuthentication yes
PermitRootLogin prohibit-password

فراموش نکنید که پس از اعمال تغییرات، دایمون SSH را مجدداً بارگذاری کنید: systemctl reload sshd. همیشه اطمینان حاصل کنید که یک جفت کلید فعال و یک روش پشتیبان برای دسترسی دارید، قبل از غیرفعال کردن احراز هویت با رمز عبور، زیرا از دست دادن کلید می‌تواند شما را از سرور محروم کند.

کنترل ترافیک: فایروال‌ها و مسیریابی

فایروال‌های لینوکس، که معمولاً از طریق iptables یا جانشین مدرن آن nftables مدیریت می‌شوند، به عنوان دروازه‌بانان ترافیک شبکه عمل می‌کنند. در اوبونتو، ufw (فایروال ساده‌سازی شده) یک رابط ساده‌تر ارائه می‌دهد، در حالی که سیستم‌های RHEL/CentOS اغلب از firewalld استفاده می‌کنند.

# مثال UFW: اجازه SSH و HTTP
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw enable

# بررسی قوانین فعال
sudo ufw status verbose

منطق مسیریابی تعیین می‌کند که بسته‌ها چگونه بین شبکه‌ها انتقال یابند. جدول مسیریابی کرنل را می‌توان با استفاده از ip route مشاهده و اصلاح کرد. درک مسیرهای ثابت در مقابل پروتکل‌های مسیریابی پویا (مانند OSPF یا BGP) برای توپولوژی‌های شبکه پیچیده حیاتی است.

عیب‌یابی و تشخیص

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

  • ping: دسترس‌پذیری ICMP پایه را آزمایش می‌کند. توجه داشته باشید که بسیاری از فایروال‌ها ICMP را مسدود می‌کنند، بنابراین عدم پاسخ همیشه به معنای خاموش بودن میزبان نیست.
  • ss یا netstat: از ss -tuln برای فهرست کردن تمام پورت‌های TCP و UDP در حال گوش دادن استفاده کنید. این کار به بررسی این موضوع کمک می‌کند که آیا یک سرویس واقعاً به رابط مورد انتظار متصل شده است یا خیر.
  • traceroute: مسیری که بسته‌ها به سمت مقصد طی می‌کنند را ردیابی می‌کند و به شناسایی محل ریزش بسته‌ها کمک می‌کند.
  • tcpdump: یک شنودگر بسته قدرتمند است. از آن برای ضبط ترافیک روی یک رابط خاص جهت تحلیل عمیق استفاده کنید.
# ضبط ترافیک HTTP روی eth0
sudo tcpdump -i eth0 -n port 80

نتیجه‌گیری

شبکه لینوکس موضوعی گسترده است که دانش پروتکل‌های نظری را با مدیریت سیستم عملی ترکیب می‌کند. با تسلط بر ابزارهایی مانند dig، ss و tcpdump و رعایت بهترین شیوه‌های امنیتی در پیکربندی SSH و فایروال، می‌توانید اطمینان حاصل کنید که سیستم‌های لینوکس شما مقاوم، امن و با عملکرد بالا هستند. یادگیری مداوم و بازرسی منظم پیکربندی‌های شبکه کلید حفظ یک زیرساخت سالم است.

Share:

© Technical Tutorials