إعداد SFTP على لينوكس مع دعم لعدة مستخدمين
تعد عملية إعداد SFTP (SSH File Transfer Protocol) على نظام Linux خطوة مهمة لضمان نقل الملفات بشكل آمن بين الأنظمة. في العديد من الحالات، قد يحتاج المستخدمون إلى الوصول إلى مجلدات معينة فقط، مما يتطلب تكوينًا خاصًا لكل مستخدم. في هذا المقال، سنناقش عملية إعداد SFTP مع عدة مستخدمين وكيفية ضبط إعدادات SSHD لتلبية احتياجات جميع المستخدمين.
إعداد بيئة SFTP على Linux
لنفترض أنك ترغب في إعداد خادم SFTP على نظام Linux لدعم مجموعة من المستخدمين. في هذا السيناريو، لديك هيكل مجلدات يشمل /var/home/outbound/
مع مجلدات فرعية لكل مستخدم مثل /var/home/outbound/user1
و/var/home/outbound/user2
و/var/home/outbound/user3
. لقد قمت أيضًا بإنشاء مجموعة مستخدمين تسمى sftpusers
وأضفت المستخدمين المحددين.
تكوين ملف SSHD
بدايةً، يجب عليك تحديث ملف التكوين sshd_config
لضمان إعداد بيئة SFTP بشكل صحيح. على سبيل المثال، يمكنك إضافة التكوين التالي:
Match Group sftpusers
ChrootDirectory /var/home/outbound
ForceCommand internal-sftp
PasswordAuthentication yes
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
يجب أن تتأكد من أن كل مجلد ضمن الدليل الجذري له الأذونات الصحيحة. فمثلاً، إذا كان لديك المستخدمين 1 و2 و3، فيجب أن يكون لكل مجلد منهم أذونات متوافقة مع متطلبات Chroot.
مشكلة الوضعية والملكية
غالبًا ما يواجه المستخدمون مشكلات مثل "ملكيات غير صحيحة أو أوضاع لدليل chroot" مثلما حدث في حالتك. هذه المشكلة تشير إلى أنه يجب أن تكون مجلدات Chroot مملوكة للمستخدم الجذر (root) ولا ينبغي أن تُعطى أذونات كتابة للمستخدمين العاديين.
إليك كيفية ضبط الأذونات:
-
تأكد من أن دليل Chroot (
/var/home/outbound
) مملوك للمستخدم الجذر:chown root:root /var/home/outbound
-
يجب أن تكون أذونات الدليل الجذري 755:
chmod 755 /var/home/outbound
- بالنسبة لمجلدات المستخدمين، يمكنك تخصيص الملكية والمجموعات لضمان أن المستخدمين العاديين يمكنهم الوصول إلى مجلداتهم فقط:
chown user1:sftpusers /var/home/outbound/user1 chmod 700 /var/home/outbound/user1
كرر الخطوات أعلاه لكل مستخدم لتضمن أن تكون إعدادات الأذونات سليمة.
تجربة خيارات مختلفة
إذا قمت بتجربة خيارات مختلفة في ملف تكوين SSHD مثل:
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
PasswordAuthentication yes
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
أو
Match Group sftpusers
ChrootDirectory /var/home/outbound/%u
ForceCommand internal-sftp
PasswordAuthentication yes
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
ومع ذلك حصلت على نفس الخطأ، يُفترض أن تعود إلى إعدادات الصيغة الأولى. تأكد من صحة الملكية والأذونات في المجلدات المعنية.
الخلاصة
إعداد SFTP على نظام Linux يعتبر أمرًا حيويًا لتأمين نقل البيانات بين المستخدمين. من الضروري أخذ الوقت الكافي لضبط إعدادات Chroot وأذونات المجلدات بشكل صحيح لتجنب أي أخطاء. من خلال اتباع الخطوات الصحيحة، يمكن لكافة المستخدمين الوصول إلى ملفاتهم الخاصة فقط، مما يعزز من أمان النظام بشكل عام. باستخدام الملف المناسب لتكوين SSHD والأذونات الملائمة، يمكنك إنشاء بيئة SFTP موثوقة تدعم عدة مستخدمين بكفاءة.
لنستمر في تعزيز الأمان والوصول المحدد لكل مستخدم عند إعداد SFTP على Linux!