كيفية إعداد خادم TFTP على خادم أوبونتو باستخدام tftpd-hpa

قم بتثبيت خادم tftpd-hpa وعميل tftp-hpa الخاصين بنظام أوبونتو . يقوم هذا الإعداد بنقل الملفات من وإلى الخادم /srv/tftp، ويحفظ الملفات المرفوعة في مجلد منفصل. راجع قائمة حزم الخادم والعميل في أوبونتو .

الأمان: لا يتطلب بروتوكول TFTP تسجيل دخول أو تشفير. يُنصح بتقييد الوصول إلى شبكة محلية موثوقة؛ حيث يمكن للعملاء المتاحين قراءة الملفات المتاحة وتحميلها عند توفر الصلاحيات. يُمنع نقل البيانات السرية. توضح مواصفات TFTP حدود الأمان الخاصة به.

قم بإعداد خادم TFTP

1. قم بتثبيت الخادم والعميل

قم بتحديث بيانات تعريف APT، ثم قم بتثبيت الحزمتين:

sudo apt update
sudo apt install tftpd-hpa tftp-hpa
طرفية خادم أوبونتو تعرض أمر تثبيت tftpd-hpa و tftp-hpa
قم بتثبيت حزم الخادم والعميل.

2. قم بتهيئة جذر TFTP

قم بتحرير ملف تكوين الحزمة:

sudo nano /etc/default/tftpd-hpa

اضبط هذه القيم:

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure --create --umask 027"

--secureيُقيّد هذا الخيار عمل البرنامج الخفي في جذره المُهيأ، --createويسمح برفع الملفات، --umask 027ويُقيّد الملفات الجديدة المرفوعة بوضع معين 0640. يُوثّق دليل Ubuntu tftpd هذه الخيارات. احفظ التغييرات بالضغط على Ctrl+O، ثم اضغط على Enter، ثم Ctrl+X.

لأن TFTP --secureيجعل /srv/tftpالمجلد الجذر مرئيًا للعميل، فإن أسماء الملفات تكون نسبية إليه: استخدم TFTP hello.txt، وليس TFTP /srv/tftp/hello.txt. لا تتصفح عملاء TFTP الدلائل، لذا احتفظ بقائمة بأسماء الملفات المنشورة ومساراتها.

محرر طرفي يعرض tftpd-hpa مُهيأً باستخدام جذر /srv/tftp، والوضع الآمن، والتحميلات، وumask 027
قم بتقييد الملفات وتعيين قناع التحميل.

3. أنشئ مجلد الجذر ومجلد التحميل

احتفظ بالمجلد الرئيسي مملوكًا للمستخدم root، وامنح حق الوصول للكتابة فقط إلى مجلد التحميل:

sudo install -d -o root -g root -m 0755 /srv/tftp
sudo install -d -o tftp -g tftp -m 0750 /srv/tftp/upload

يمكن للبرنامج قراءة المجلد الجذر، ولكن tftpالحساب فقط هو من يملك صلاحية الكتابة فيه /srv/tftp/upload. تجنب جعل الشجرة بأكملها قابلة للكتابة من قبل جميع المستخدمين باستخدام صلاحيات مثل 777.

يجب أن تُعامل الملفات الموجودة في المجلد الرئيسي العام على أنها قابلة للقراءة من قِبل جميع العملاء المسموح لهم. يجب حصر هذا المجلد في صور الإقلاع، والبرامج الثابتة، أو أي مواد أخرى مخصصة لتلك الشبكة. بالنسبة لعمليات النقل الخاصة، اختر بروتوكولًا يتضمن المصادقة والتشفير.

يقوم طرفية أوبونتو بإنشاء /srv/tftp/upload باستخدام مستخدم ومجموعة tftp والوضع 0750
المجلد الفرعي الخاص بالتحميل فقط هو القابل للكتابة.

4. أضف ملفًا لتقديمه

أنشئ ملفًا معروفًا في المجلد الجذر. تتطلب عمليات التحقق الافتراضية للقراءة في بروتوكول نقل الملفات البسيط (TFTP) أن تكون الملفات المُخدَّمة قابلة للقراءة العامة، لذا اضبط الوضع على 0644:

echo 'TFTP test file' | sudo tee /srv/tftp/hello.txt
sudo chmod 0644 /srv/tftp/hello.txt
يقوم طرفية خادم أوبونتو بكتابة ملف hello.txt في /srv/tftp وتعيين أذونات الملف إلى 0644
أنشئ ملفًا معروفًا لاختبار التنزيل.

5. قم بتمكين الخدمة وإعادة تشغيلها

قم بتمكين الوحدة عند بدء التشغيل، وأعد تشغيلها لتطبيق الإعدادات، ثم افحص حالتها:

sudo systemctl enable tftpd-hpa
sudo systemctl restart tftpd-hpa
sudo systemctl status tftpd-hpa --no-pager

في حالة فشل بدء التشغيل، تحقق من سجل الخدمة باستخدام sudo journalctl -u tftpd-hpa -b --no-pager.

أوامر طرفية لخادم أوبونتو لتمكين خدمة tftpd-hpa وإعادة تشغيلها وفحصها
أعد تشغيل الخدمة بعد تغيير إعداداتها.

6. تقييد الوصول إلى جدار الحماية

في حال تفعيل جدار الحماية UFW، اسمح بالطلب الأولي فقط من الشبكة الفرعية الخاصة بجهازك. استبدل الشبكة المذكورة في المثال بنطاق شبكة LAN الموثوقة لديك.

sudo ufw allow from 192.168.1.0/24 to any port 69 proto udp
sudo ufw status

راجع دليل UFW الخاص بنظام Ubuntu للاطلاع على قواعد شبكة المصدر. يبدأ بروتوكول TFTP على منفذ UDP رقم 69، ثم يستخدم منفذ UDP يختاره الخادم لنقل بيانات الملفات، كما هو موضح في مواصفات البروتوكول . قد يسمح جدار الحماية أو جهاز التوجيه أو جهاز NAT الصارم بالطلب ولكنه يمنع النقل. في حال انقطاع اتصال العملاء، استخدم خاصية تتبع الاتصالات المتوافقة مع TFTP أو سياسة جدار حماية مناسبة؛ لا تفتح جميع منافذ UDP أو تعرض TFTP للإنترنت. يضيف هذا الأمر قاعدة؛ ولا يُفعّل UFW. إذا كنت تُدير الخادم عبر SSH وتعتزم تشغيل جدار حماية غير نشط، فاسمح لـ SSH أولاً للحفاظ على الوصول عن بُعد.

يسمح أمر UFW باستخدام منفذ UDP رقم 69 فقط من الشبكة الفرعية 192.168.1.0/24 على سبيل المثال
السماح بالطلبات الأولية من شبكة فرعية موثوقة.

اختبار عمليات التنزيل والتحميل

7. التنزيل من عميل أوبونتو

على الخادم، شغّل البرنامج ip -brief addressوسجّل عنوان الشبكة المحلية (LAN) الخاص به. على جهاز عميل أوبونتو، ثبّت البرنامج إذا لزم الأمر. استبدل 192.0.2.10العنوان أدناه بعنوان الخادم الحقيقي:

sudo apt install tftp-hpa
tftp 192.0.2.10
tftp> binary
tftp> get hello.txt
tftp> quit

يُحفظ الملف في المجلد الحالي للعميل. يُوثّق دليل عميل TFTP في أوبونتو ذلك . يُنصح باستخدام الوضع الثنائي للبرامج الثابتة وصور الإقلاع والملفات التي يجب أن تبقى بايتاتها دون تغيير. أسماء ملفات لينكس حساسة لحالة الأحرف، لذا أدخل كل اسم ملف عن بُعد بدقة.binaryget

يقوم طرفية عميل TFTP بالاتصال بخادم المثال وتنزيل ملف hello.txt في الوضع الثنائي
اطلب الملف المعروف في الوضع الثنائي.

8. قم بتحميل الملف إلى المجلد المقيد

على جهاز العميل، أنشئ ملف اختبار، ثم أرسله إلى مسار ضمن دليل التحميل الخاص بالخادم:

printf 'Upload test' > upload-check.txt
tftp 192.0.2.10
tftp> binary
tftp> put upload-check.txt upload/upload-check.txt
tftp> quit

استخدم عنوان الخادم الفعلي. المسار البعيد نسبي إلى عنوان /srv/tftpالخادم؛ تحقق من التحميل على الخادم باستخدام الأمر المناسب sudo ls -l /srv/tftp/upload/. تستخدم برامج TFTP أسماء الملفات المعروفة بدلاً من استعراض قائمة الدليل.

يقوم طرفية عميل TFTP بإرسال ملف upload-check.txt إلى upload/upload-check.txt في الوضع الثنائي
تبقى الملفات المرفوعة داخل المجلد الفرعي القابل للكتابة.

استكشاف الأخطاء الشائعة وإصلاحها

  • لم يتم العثور على الملف: تحقق من اسم الملف بالنسبة إلى الموقع /srv/tftpوتأكد من وجوده.
  • انتهاك الوصول: اجعل الملفات المقدمة قابلة للقراءة بشكل عام؛ بالنسبة لعمليات التحميل، تحقق من tftpملكية الوجهة وتأكد --createمن تعيينها.
  • مهلة زمنية: تأكد من أن العميل يستخدم عنوان الخادم الذي يمكن الوصول إليه، وأن الخدمة نشطة، وأن جدار الحماية يسمح بتدفق بيانات UDP المتفاوض عليه.

لعزل مشكلة في الشبكة، اختبر أولاً من جهاز عميل على نفس الشبكة المحلية. إذا نجح ذلك ولكن حدث انقطاع في اتصال العميل المتصل، فتحقق من جهاز التوجيه أو جدار الحماية للتأكد من دعمه لبروتوكول نقل الملفات البسيط (TFTP) عند التعامل مع منفذ البيانات المتفق عليه.

بالنسبة للخدمة التي تعمل للقراءة فقط، قم بإزالتها --createمن TFTP_OPTIONSثم أعد تشغيلها tftpd-hpa.

اترك تعليقاً

كيفية تقسيم ملفات PDF في سطر أوامر لينكس باستخدام PDFtk

كيفية تقسيم ملفات PDF في سطر أوامر لينكس باستخدام PDFtk

قم بتقسيم كل صفحة من صفحات ملف PDF إلى ملف منفصل أو استخرج نطاقات الصفحات المختارة باستخدام PDFtk على نظام Linux، وذلك باتباع إرشادات التثبيت الحالية وأمثلة الإخراج الآمنة.

كيفية تثبيت بيئة سطح المكتب UKUI على نظام لينكس

كيفية تثبيت بيئة سطح المكتب UKUI على نظام لينكس

قم بتثبيت UKUI من الأرشيف الرسمي لأوبونتو، وراجع مسار حزمة الاختبار الحالية لديبيان، وتجنب تعليمات Arch القديمة التي لم تعد تثبت سطح المكتب بالكامل.

كيفية مشاركة الملفات لاسلكيًا بين نظامي أندرويد ولينكس باستخدام KDE Connect

كيفية مشاركة الملفات لاسلكيًا بين نظامي أندرويد ولينكس باستخدام KDE Connect

قم بإقران نظام Android مع نظام Linux عبر شبكة Wi-Fi وأرسل الملفات في كلا الاتجاهين باستخدام KDE Connect، دون الحاجة إلى كابل أو خادم FTP أو حساب سحابي.

كيفية إدارة مستخدمي ومجموعات لينكس من خلال سطر الأوامر

كيفية إدارة مستخدمي ومجموعات لينكس من خلال سطر الأوامر

تعلم كيفية التحقق من عضوية مجموعات لينكس، وإنشاء المجموعات وإزالتها، وإضافة المستخدمين بأمان، والتحقق من تغييرات الحساب باستخدام الأوامر القياسية.

كيفية إعادة تعيين كلمة مرور منسية على نظام لينكس

كيفية إعادة تعيين كلمة مرور منسية على نظام لينكس

استعد الوصول إلى حساب Linux محلي باستخدام مسؤول ثانٍ أو وضع استعادة Ubuntu، وتعرف على ما لا يمكن فتحه عن طريق إعادة تعيين كلمة المرور.

كيفية ترقية نظام openSUSE إلى إصدار جديد بأمان

كيفية ترقية نظام openSUSE إلى إصدار جديد بأمان

قم بترقية نظام openSUSE Leap باستخدام أداة الترحيل الرسمية، أو قم بتحديث Tumbleweed باستخدام zypper dup. قم بعمل نسخة احتياطية أولاً، وتحقق من التوافق، وراجع تغييرات الحزم.

كيفية تثبيت بريد تروجيتا على نظام لينكس

كيفية تثبيت بريد تروجيتا على نظام لينكس

تحقق مما إذا كانت توزيعة لينكس الخاصة بك لا تزال تحتوي على حزمة Trojita، وقم ببنائها من مصدر KDE إذا لزم الأمر، وقم بتكوين IMAP وSMTP بشكل آمن.

كيفية إضافة وإزالة مصادر البرامج المخصصة على نظام التشغيل openSUSE Linux

كيفية إضافة وإزالة مصادر البرامج المخصصة على نظام التشغيل openSUSE Linux

أضف مستودعًا تابعًا لجهة خارجية إلى openSUSE باستخدام YaST أو zypper، وتحقق من مفتاح التوقيع الخاص به وقم بتحديث الإعدادات، ثم قم بإزالة المصدر بأمان عندما لا تعود بحاجة إليه.

كيفية فحص حالة القرص الصلب على نظام لينكس باستخدام تقنية SMART

كيفية فحص حالة القرص الصلب على نظام لينكس باستخدام تقنية SMART

تحقق من حالة محركات الأقراص الصلبة، ومحركات الأقراص ذات الحالة الصلبة (SSD)، ومحركات الأقراص ذات الحالة الصلبة (NVMe) باستخدام smartctl أو GNOME Disks، واقرأ تحذيرات SMART الرئيسية، وقم بتشغيل اختبار ذاتي لمحرك الأقراص بأمان.

كيفية الوصول إلى جهاز الكمبيوتر الذي يعمل بنظام لينكس عن بُعد باستخدام NoMachine

كيفية الوصول إلى جهاز الكمبيوتر الذي يعمل بنظام لينكس عن بُعد باستخدام NoMachine

قم بتثبيت NoMachine Personal Edition على مضيف Linux الخاص بك، وقم بالاتصال باستخدام NoMachine Player، وقم بإعداد شبكة محلية (LAN) أو VPN أو الوصول إلى الإنترنت مع التنشيط الحالي وإرشادات المنفذ.