إعداد خادوم وِب وخادوم FTP على Red Hat Enterprise Linux


محمد أحمد العيل

تعمل خواديم الوِب Web servers على تقديم المحتوى، صفحات الوِب ومستندات أخرى؛ للعملاء Clients عبر الشبكة. أما خادوم FTP فهو من أقدم طرق توفير الملفات - غير الآمنة - للمستخدمين عبر الشبكة وأكثرها انتشارا. يتوفّر نظام Red Hat Enterprise Linux 7 على الإصدار 2.4 من برنامج Apache لخواديم الوِب؛ كما يتوفّر على برنامج VSFTPD لتأدية عمل خادوم FTP مع إضافة طبقة TLS لتأمينه.

سنرى في هذا المقال من سلسلة دروس RHCSA كيفية تثبيت خادومي وِب وFTP، إعدادهما وتأمينهما على RHEL 7.

تثبيت Apache وخادوم FTP

تفترض الخطوات أدناه أن لديك خادوم RHEL 7 معدًّا وجاهزا للعمل. نبدأ بتثبيت Apache وVSFTPD:

# yum update && yum install httpd vsftpd

يصبح الخادومان بعد اكتمال أمر التثبيت أعلاه جاهزين، ولكن ينبغي أولا تفعيل الخدمتين يدويا ثم تفعيل تشغيلهما مع إقلاع النظام:

# systemctl start httpd
# systemctl enable httpd
# systemctl start vsftpd
# systemctl enable vsftpd

نحتاج أيضا لإضافة قاعدة إلى الجدار الناري تسمح بمرور الاتّصالات عبر المنفذين 80 و21 وهما المنفذان المبدئيان لخادومي الوِب وFTPعلى التوالي:

# firewall-cmd --zone=public --add-port=80/tcp --permanent
# firewall-cmd --zone=public --add-service=ftp --permanent
# firewall-cmd --reload

افتح المتصفح على الخادوم وأدخل العنوان 127.0.0.1 للتأكد من أن خادوم الوِب يعمل. يمكنك أيضا الوصول إلى الصفحة من حاسوب آخر يوجد على نفس الشبكة الداخليّة بإدخال عنوان IP الخاصّ بالخادوم؛ مثلا 192.168.2.200. يجب أن تظهر الصفحة التاليّة:

01_apache_homepage.png

بالنسبة لخادوم FTP فسنحتاج لإعداده قبل أن نتأكد من أنه يعمل على النحو المطلوب؛ وهو ما سنفعله بعد قليل.

إعداد خادوم وِب Apache وتأمينه

يوجد ملفّ الإعداد الأساسي لخادوم الوِب Apache على المسار etc/httpd/conf/httpd.conf/، ويمكن استخدام ملفّات إعداد أخرى بوضعها داخل المجلّد etc/httpd/conf.d/.

تكفي الإعدادات المبدئية في معظم الحالات؛ إلا أنه من الجيّد التعوّد على جميع خيارات الإعداد المتاحة، المشروحة في التوثيق الرسمي.

تأكد دائما من أخذ نسخة احتياطيّة قبل أن تبدأ في تحرير ملفّ الإعداد:

 
# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.$(date +%Y%m%d)

افتح الملفّ بمحرّر النصوص المفضّل لديك ثم ابحث عن التعليمات التاليّة:

  • ServerRoot: تحدّد قيمةُ هذه التعليمة المجلّدََ الذي توجد به ملفات الإعداد، الأخطاء والسّجلات الخاصّة بخادوم الوِب.
  • Listen: تطلُب من Apache الإنصات للاتصالات القادمة عبر منفَذ و/أو عنوان IP معيَّنين. المنفذ المبدئي هو 80.
  • Include: تطلُب من خادوم الوِب تضمين ملفّات إعداد أخرى. يجب أن تكون هذه الملفّات موجودة وإلا فإن خادوم الوِب لن يتمكّن من العمل. يمكن جعل تضمين هذه الملفّات اختياريا باستخدام IncludeOptional بدلا من Include.
  • User و Group: حساب المستخدِم والمجموعة الذين تُشغَّل خدمة الوِب باسمهما.
  • DocumentRoot: مسار المجلّد الذي يستخدمه خادوم الوِب لتقديم المحتوى. تُؤخذ مبدئيا جميع المستندات المقدَّمة للإجابة على الطلبات من هذا المجلّد؛ إلا أنه يمكن استخدام وصلات رمزية لتقديم مستندات توجد خارج هذا المجلّد.
  • ServerName: تحدّد هذه التعليمة اسم المضيف (أو عنوان IP) والمنفذ الذي يستخدمه خادوم الوِب للتعريف بنفسه.

يتمثّل أول إعداد أمني في إنشاء حساب مستخدِم ومجموعة خاصّين بتشغيل خادوم الوِب (التعليمتان User وGroup السابقتان):

ServerRoot "/etc/httpd"
Listen 80
User academy
Group academy
ServerName www.exapmle.com
DocumentRoot "/var/www/html"

يمكننا اختبار الإعدادات بالأمر التالي:

 
# apachectl configtest

إن لم يوجد خطأ في الإعدادات فستظهر عبارة Syntax OK.

ملحوظة: إن ظهرت رسالة الخطأ Could not reliably determine the server's fully qualified domain name فهذا يعني أنه لم تُحدَّد قيمة للتعليمة ServerName في ملفّ الإعداد.

يمكننا الآن إعادة تشغيل خادوم الوِب لاعتماد الإعدادات:

# systemctl restart httpd

ملحوظة: لا يمكن - مبدئيا - استخدام منفذ مغاير للمنافذ التي تظهر في نتيجة الأمر التالي في إعداد خادوم الوِب، وذلك نظرا لسياسات SELinux:

# semanage port -l | grep -w '^http_port_t'

إن كنت ترغب في استخدام منفذ غير موجود في اللائحة أعلاه (مثلا 8100 عبر بروتوكول TCP) فستحتاج لإضافة سياق منفذ Port context خاصّ بالخدمة httpd:

# semanage port -a -t http_port_t -p tcp 8100

في ما يلي إجراءات إضافيّة يمكن تنفيذها من أجل تأمين أكبر لخادوم وِب Apache:

  1. تعطيل وصول المستخدِم الذي يُشغَّل Apache باسمه من الوصول إلى الصّدفة:

    # usermod -s /sbin/nologin academy

     

  2. تعطيل سرد محتويات المجلّدات في Apache لمنع المتصفّح من عرض محتويات مجلّد لا يحوي ملفّ index.html. حرّر الملفّ etc/httpd/conf/httpd.conf/ (وكذلك ملفات المضيفات الافتراضية في حال وجودها) وتأكّد من أن قيمة التعليمة Options في بداية مقاطع Directory تساوي None:

    Options None

     

  3. إخفاء معلومات التعريف بخادوم الوِب ونظام التشغيل عند الإجابة عن طلبات HTTP. حرّر ملفّ الإعداد etc/httpd/conf/httpd.conf/ بتغيير قيمتي التعليمتين ServerTokens وServerSignature على النحو التالي:

    ServerTokens Prod 
    ServerSignature Off

     

ستُعتمَد التعديلات بإعادة تشغيل خادوم الوِب، ويمكنك بد تقديم الصفحات من المجلّد var/www/html/.

إعداد خادوم FTP وتأمينه

يوجد ملفّ الإعداد الأساسي لخادوم Vsftpd على المسار etc/vsftpd/vsftpd.conf/. يحوي الملفّ - مثل ملفّ إعداد Apache - الكثير من التعليقات التي تشرح عمل التعليمات. تعدّ الإعدادات الأساسيّة كافيّة إلا أنه تجب معرفة التعليمات الموجودة في التوثيق من أجل تشغيل الخادوم بقعاليّة.

بالنسبة لنا استخدمنا الإعدادات التاليّة:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
allow_writeable_chroot=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

من المهمّ الإشارة إلى أن إعطاء القيمة YES للتعليمة chroot_local_user يمنع المستخدمين من الوصول إلى ملفات توجد خارج المجلدات الشخصية الخاصّة بهم.

ثم نضبُط SELinux للسماح لخادوم FTP بقراءة الملفات الموجودة في مجلد المستخدم الشخصي:

# setsebool -P ftp_home_dir on

يمكن للعملاء الآن استخدام برنامج مثل Filezilla (عميلFTP) للوصول إلى الملفات على الخادوم. يحتفظ الملفّ var/log/xferlog/ بسجلّ التنزيلات والتحميلات التي تحدُث عبر خادوم FTP.

ترجمة - بتصرّف - لمقال RHCSA Series: Installing, Configuring and Securing a Web and FTP Server – Part 9 لصاحبه Gabriel Cánepa.





تفاعل الأعضاء


لا توجد أيّة تعليقات بعد



يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن