Product SiteDocumentation Site

فصل 10. البنية التحتية للشبكات

10.1. البوابات
10.2. X.509 certificates
10.2.1. Creating gratis trusted certificates
10.2.2. البنية التحتية للمفاتيح العامة: easy-rsa
10.3. الشبكة الظاهرية الخاصة
10.3.1. ‏OpenVPN
10.3.2. الشبكات الخاصة الظاهرية باستخدام SSH
10.3.3. ‏IPsec
10.3.4. ‏PPTP
10.4. جودة الخدمة
10.4.1. المبدأ والآلية
10.4.2. الإعداد والتطبيق
10.5. التوجيه الديناميكي
10.6. ‏IPv6
10.6.1. الأنفاق
10.7. مخدمات أسماء النطاقات Domain Name Servers ‏(DNS)
10.7.1. DNS software
10.7.2. Configuring bind
10.8. ‏DHCP
10.8.1. الإعداد
10.8.2. ‏DHCP و DNS
10.9. أدوات تشخيص الشبكات
10.9.1. التشخيص المحلي: netstat
10.9.2. التشخيص عن بعد: nmap
10.9.3. برامج التقاط الرزم (Sniffers): ‏tcpdump وwireshark
يستفيد لينكس من الميراث الكبير لنظام يونكس في مجال الشبكات، وتقدم توزيعة دبيان مجموعة كاملة من الأدوات لإنشاء وإدارة الشبكات. يستعرض هذا الفصل هذه الأدوات.

10.1. البوابات

البوابة gateway هي نظام يربط عدة شبكات. يشير هذا المصطلح غالبًا إلى ”نقطة خروج“ الشبكة المحلية، وهي نقطة العبور الإجبارية للوصول لأي عنوان IP خارجي. تتصل البوابة بكل من الشبكتين اللتين تصل بينهما، وتعمل كموجه (router) لنقل رزم IP بين واجهاتها المختلفة.
عندما تستخدم الشبكة المحلية مجال عناوين خاص (لا يمكن التوجيه إليه من الإنترنت)، يجب أن تدعم البوابة (تنكر العناوين address masquerading) حتى تتمكن الأجهزة على الشبكة من التواصل مع العالم الخارجي. عملية التنكر هي نوع من أنواع البروكسي الذي يعمل على مستوى الشبكة: يستبدل كل اتصال خارج من جهاز داخلي باتصال من البوابة نفسها (بما أن البوابة تملك عنواناً خارجيًا يمكن التوجيه إليه)، ترسل البيانات الخارجة من الشبكة من الاتصال المتنكر عبر الاتصال الجديد، والبيانات الراجعة في الرد ترسل إلى الاتصال المتنكر إلى الجهاز الداخلي. تستخدم البوابة مجالاً من منافذ TCP المخصصة لهذا الغرض، بأرقام كبيرة جداً عادة (فوق 60000). عندئذ يظهر كل اتصال وارد من جهاز داخلي على الشبكة للعالم الخارجي على أنه اتصال وارد من أحد هذه المنافذ المحجوزة.
تستطيع البوابات أيضًا إجراء نوعين من ترجمة عناوين الشبكة Network Address Translation (أو NAT اختصاراً). النوع الأول، Destination NAT (أو DNAT) هي تقنية لتبديل عنوان IP الخاص بالوجهة (وربما منفذ TCP أو UDP أيضًا) للاتصالات الواردة (عموماً). كما تبدل آلية تتبع الاتصال (connection tracking mechanism) الرزم اللاحقة أيضًا في الاتصال نفسه لضمان استمرار الاتصال. النوع الثاني من NAT هو Source NAT (أو SNAT)، ويعتبر التنكر masquerading حالة خاصة من هذا النوع؛ يبدل SNAT عناوين IP المصدرية (وربما أرقام منافذ TCP أو UDP) للاتصالات الصادرة (عموماً). وكما هو الحال في DNAT، تتولى آلية تتبع الاتصال معالجة جميع الرزم في الاتصال. لاحظ أن NAT يستخدم فقط مع IPv4 وفضاء عناوينه المحدود؛ أما مع IPv6، فإن الوفرة الكبيرة للعناوين تحدُّ كثيراً من جدوى NAT من خلال السماح بالتوجيه المباشر لجميع العناوين ”الداخلية“ إلى الإنترنت (هذا لا يعني أنه يمكن الوصول إلى الأجهزة الداخلية، لأنه يمكن فلترة حركة الشبكة عبر جدران نارية وسيطة).
بعد الكلام النظري، لننتقل إلى التطبيق. لتحويل نظام دبيان إلى بوابة، كل ما يلزم هو تفعيل الخيار المناسب في النواة لينكس، وذلك عبر نظام الملفات الظاهري /proc/:
# echo 1 > /proc/sys/net/ipv4/conf/default/forwarding
يمكن أيضًا تفعيل هذا الخيار تلقائيًا عند الإقلاع إذا كان الملف /etc/sysctl.conf يعطي القيمة 1 للخيار net.ipv4.conf.default.forwarding.

مثال 10.1. الملف /etc/sysctl.conf

net.ipv4.conf.default.forwarding = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.tcp_syncookies = 1
يمكن الحصول على النتيجة نفسها ولكن مع IPv6 باستبدال كلمة ipv4 بكلمة ipv6 في الأمر اليدوي الأول أو استخدام الخيار net.ipv6.conf.all.forwarding في الملف /etc/sysctl.conf.
تفعيل تنكر IPv4 هي عملية أعقد من هذه بقليل وتحتاج لضبط الجدار الناري netfilter.
كما أن استخدام NAT (مع IPv4) يحتاج ضبط netfilter. بما أن الهدف من هذا العنصر هو فلترة الرزم، فإن تفاصيل إعداده مذكورة في فصل 14: “الأمن (انظر قسم 14.2, “الجدار الناري أو ترشيح الرزم”).