Anonim

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

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

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

سيركز هذا الدليل على استضافة Nextcloud على VPS (خادم خاص افتراضي) ، ولكن يمكنك أيضًا تشغيله محليًا على شبكتك المنزلية. لا تتوقع فقط الوصول إليه من الخارج إلا إذا قمت بإعداد إعادة توجيه المنفذ أو تشغيل VPN. ستكون بعض الخطوات مختلفة بعض الشيء ، ولن تحتاج إلى شراء اسم المجال أو إعداد شهادات طبقة المقابس الآمنة.

اختيار المضيف

روابط سريعة

  • اختيار المضيف
  • تثبيت ما تحتاجه
  • قم بإعداد جدار الحماية الخاص بك
  • تكوين SSH
    • مفاتيح SSH
      • شبابيك
      • ماك ولينكس
    • عدم السماح الجذر وكلمات المرور
  • تكوين قاعدة البيانات الخاصة بك
  • تكوين PHP
  • الحصول على Nextcloud
  • إنشاء شهادات SSL
  • تكوين Nginx
  • بدء Nextcloud

على افتراض أنك تستخدم حلًا سحابيًا حقيقيًا وترغب في الوصول إلى ملفاتك عبر الويب ، فأنت بحاجة إلى إعداد VPS لاستضافة Nextcloud. هناك بعض الخيارات الرائعة ، لذا اختر الأفضل لك. تحقق من Linode و DigitalOcean و Gandi ، إذا لم يكن لديك مضيف بالفعل.

سيستخدم هذا الدليل Debian 9 "Stretch" كنظام تشغيل للخادم. دبيان فائقة الاستقرار وآمنة إلى حد ما بشكل افتراضي. كما أنها مدعومة بشكل جيد من قبل معظم منصات الاستضافة. إذا كنت أكثر راحة مع Ubuntu ، فسيتم تطبيق معظم ذلك مباشرةً هناك أيضًا ، لأن Ubuntu يعتمد على Debian.

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

كل شيء هنا سوف يتم التعامل معه عن بعد من سطر أوامر Linux. لذلك ، إذا كنت تستخدم نظام Mac أو Linux ، فيمكنك فقط فتح محطة واستخدام SSH للوصول إلى VPS. إذا كنت تستخدم نظام Windows ، فاخذ عميل SSH مثل المعجون .

تثبيت ما تحتاجه

هناك الكثير من القطع لهذا اللغز. يمكنك أيضًا الاستيلاء عليها جميعًا الآن ، بحيث يكون لديك ما تحتاج إلى المتابعة من هنا. لا يتم عادةً تثبيت دبيان sudo بشكل افتراضي ، لذلك انتزاع أولاً ، وقم بإعداده.

$ su -c "apt install sudo"

أدخل كلمة مرور الجذر وسيتم تثبيت سودو. ثم ، تحتاج إلى إضافة المستخدم الخاص بك إلى مجموعة sudo.

$ su -c "gpasswd - اسم مستخدم sudo"

الآن ، يمكنك استخدام sudo. قد تحتاج إلى تسجيل الدخول مرة أخرى ، إذا لم يعمل على الفور. من هذه النقطة إلى الأمام ، ستستخدم sudo بدلاً من ذلك ، خاصة وأنك ستقوم بتعطيل تسجيلات الدخول الجذرية لأغراض أمنية.

الآن ، احصل على كل شيء من مستودعات دبيان.

$ sudo apt install ufw mariadb-server nginx certbot php-mysql php-fpm php-cli php-json php-curl php-imap php-gd php-xml php-xml php-zip php-mcrypt php-mcrypt

قم بإعداد جدار الحماية الخاص بك

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

بدلاً من استخدام iptables مباشرة ، يمكنك استخدام UFW (جدار حماية غير معقد) لتأمين نظامك. يحتوي على بناء جملة أبسط ، وهو أسهل بكثير في التعامل معه.

ابدأ بتعطيل كل شيء في جدار الحماية. سيؤدي ذلك إلى تعيين السياسة الافتراضية لرفض الاتصالات بجميع الخدمات والمنافذ ، مما يضمن عدم تمكن المهاجمين من الاتصال على بعض المنافذ المنسية.

$ sudo ufw الافتراضي ينفي الواردة

$ sudo ufw الافتراضي ينفي المنتهية ولايته $ sudo ufw الافتراضي ينكر الأمام

بعد ذلك ، يمكنك إخبار الخدمات التي ترغب في السماح بها. في هذه الحالة ، ما عليك سوى الوصول إلى SSH والوصول إلى الويب. ستحتاج أيضًا إلى تمكين NTP و DNS حتى يتمكن الخادم الخاص بك من جلب التحديثات وتعيين ساعته.

السماح بـ sudo ufw $ بـ ssh $ السماح لـ sudo ufw بـ ssh $ sudo ufw تسمح بـ http $ sudo ufw تسمح بـ http $ sudo ufw تسمح بـ https $ sudo ufw تسمح بـ https $ sudo ufw تسمح بـ ntp $ sudo ufw تسمح بـ ntp $ sudo ufw allow in 53 $ sudo ufw allow out 53 $ sudo ufw allow in 67 $ sudo ufw allow out 67

يمكنك بدء تشغيل جدار الحماية الخاص بك الآن. سيوفر لك تحذيرًا بشأن تعطيل SSH ، لكنك سمحت بالفعل لـ SSH ، لذلك ستكون على ما يرام.

تمكين sudo ufw $

تكوين SSH

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

مفاتيح SSH

أولاً ، تحتاج إلى إعداد بديل أكثر أمانًا لكلمة مرور ، وهو مفتاح SSH. تختلف العملية في نظامي التشغيل Windows عن نظامي التشغيل Mac و Linux ، لذا اتبع التعليمات التي تناسب سطح المكتب.

شبابيك

كما هي طريقة Windows ، فأنت بحاجة إلى برنامج آخر لإكمال هذه المهمة البسيطة. PuTTYGEN هو مولد مفتاح RSA لـ PuTTY. إنه متاح من صفحة تنزيل المعجون . قم بتنزيله وتشغيله.

في النافذة التي تفتح ، اسم المفتاح الخاص بك وإنشاء كلمة مرور لذلك. إنها كلمة المرور التي ستستخدمها لتسجيل الدخول إلى الخادم الخاص بك. في الجزء السفلي ، حدد SSH-2 RSA وقم بتعيين حجم مفتاح لا يقل عن 2048 بت. 4096 أفضل ، لكن 2048 سيكون أسرع قليلاً. ثم ، قم بإنشاء المفاتيح الخاصة بك ، واحفظ المفاتيح العامة والخاصة. أخيرًا ، انسخ المفتاح العمومي الذي يظهر في الجزء العلوي من النافذة.

استخدم المعجون للاتصال بالخادم الخاص بك. افتح ملفًا على ~ / .ssh / Author_keys والصق المفتاح في.

مرة أخرى في المعجون ، والعثور على SSH في القائمة الجانبية. بعد ذلك ، افتح "Auth". في الحقل الخاص بالمفتاح pivate ، استعرض للوصول إلى موقع المفتاح الخاص الذي قمت بحفظه للتو. عندما يتم إعداد كل شيء في PuTTY لخادمك ، احفظ الجلسة. اختبرها للتأكد من اتصالك بالمفتاح قبل الانتقال.

ماك ولينكس

يمتلك مستخدمو Mac و Linux طريقًا أسهل بكثير هنا. ابدأ بإنشاء مفتاح SSH ، إذا لم يكن لديك مفتاح بالفعل. لديك خيار إنشاء كلمة مرور للمفتاح. إنه اختياري ، بحيث تكون مكالمتك.

$ ssh-keygen -b 4096 -t rsa

الآن ، فقط أرسل مفتاحك إلى الخادم الخاص بك. استبدل اسم المستخدم و IP الخاص بالخادم.

$ ssh-copy-id -i ~ / .ssh / id_rsa.pub

هذا هو!

عدم السماح الجذر وكلمات المرور

بعد إعداد مفتاحك ، يمكنك تعطيل كلمات مرور SSH. لا تقلق إذا قمت بإعداد مفتاح بكلمة مرور. هذا شيء مختلف ، وهذا لن يؤثر على الإطلاق. افتح ملف التكوين SSH في / etc / ssh / sshd_config.

sudo nano / etc / ssh / sshd_config

ابحث عن السطر الذي يقرأ:

#PermitRootLogin يحظر كلمة المرور

تغييره إلى:

PermitRootLogin لا

بعد ذلك ، ابحث عن الخطين:

#Password المصادقة نعم #PermitEmptyPasswords لا

تغييرها إلى:

PasswordAuthentication no PermitEmptyPasswords no

أخيرًا ، ابحث عن:

UsePAM نعم

أصنعها:

UsePAM لا

احفظ ملفك وأغلقه. ثم ، أعد تشغيل SSH. قد ينفدك ذلك ، لذا أعد الاتصال إذا حدث ذلك.

$ sudo systemctl إعادة تشغيل sshd

تكوين قاعدة البيانات الخاصة بك

الشيء التالي الذي عليك القيام به هو تكوين قاعدة البيانات الخاصة بك. لا يوجد الكثير من المشاركين هنا ، لذلك لا تقلق كثيرًا. تحتاج فقط إلى إعداد مستخدم وقاعدة بيانات فارغة للوصول إلى Nextcloud.

يوجد بالفعل نص مناسب لإعداد MariaDB وتأمينه لك. تشغيله أولا.

$ sudo mysql_secure_installation

كلمة مرور الجذر الافتراضية فارغة ، لذلك "Enter" عند الطلب. سيطلب منك بعد ذلك إعداد كلمة مرور جذر. إفعل ذلك. أجب ب "نعم" على كل سؤال تالي.

يمكنك تسجيل الدخول إلى قاعدة البيانات الخاصة بك باستخدام كلمة مرور الجذر التي قمت بإعدادها للتو.

$ sudo mysql -u root -p

سيتغير الموجه إلى MariaDB. هذا هو وحدة التحكم لإدارة خادم قاعدة البيانات الخاصة بك. ابدأ بإنشاء قاعدة بيانات جديدة. الكتابة بالأحرف الكبيرة هنا.

إنشاء قاعدة بيانات nextcloud؛

بعد ذلك ، قم بعمل مستخدم لقاعدة البيانات تلك.

CREATE USER `nextcloud` @` localhost` IDifiedIFIED by "PasswordForUser"؛

ثم ، منح هذا المستخدم إذن لاستخدام قاعدة البيانات.

منح الجميع ON nextcloud. * TO `nextcloud` @` localhost`؛

هذا هو! يمكنك الخروج من خادم قاعدة البيانات الآن.

ف

تكوين PHP

Nextcloud هو مكتوب في PHP. لقد قمت بالفعل بتثبيت أحدث إصدار من PHP المتوفر على Debian Stretch جنبًا إلى جنب مع امتدادات PHP التي يجب أن يعمل Nextcloud بشكل صحيح. ما زلت بحاجة إلى إجراء بعض التعديلات على تهيئة PHP لجعلها تعمل بسهولة أكبر مع Nginx.

انها حقا تحتاج فقط بعض القرص الأمن الأساسية. هذه ليست شيئًا مهمًا ، لكنها ستساعد في تحسين أمان خادمك.

افتح /etc/php/7.0/fpm/php.ini مع sudo ومحرر النصوص المفضل لديك.

الملف ضخم ، لذا استخدم وظيفة البحث الخاصة بالمحرر للتنقل. إذا كنت تستخدم Nano ، فهو Ctrl + W. خيار القبضة الذي تحتاج إلى البحث عنه هو delete_functions. إضافة إضافة phpinfo ، النظام ، البريد ، exec ، في النهاية.

بعد ذلك ، ابحث عن sql.safe_mode وقم بتشغيله. بعد ذلك ، اضبط allow_url_fopen. في نهاية الملف ، أضف السطر التالي واحفظه وأغلقه.

register_globals = متوقف

الحصول على Nextcloud

Nextcloud غير متاح كحزمة لـ Debian حتى الآن ، وهذا جيد. أنت حقا لا تحتاج إلى أن يكون. يشبه إلى حد كبير تطبيقات الويب PHP الأخرى التي تم إنشاؤها مسبقًا ، مثل WordPress ، ويأتي في أرشيف مضغوط يمكنك استخراجه حيث تريد تثبيت Nextcloud.

اعتبارا من الآن ، أحدث إصدار مستقر هو Nextcloud ، تحقق مرة أخرى من أحدث إصدار لك عند قراءتك لهذا. سوف يشير الدليل إلى 12 ، ولكن استخدم أيًا كان آخر مستقر.

التغيير إلى دليل حيث تريد تنزيل أرشيف Nextcloud. بعد ذلك ، قم بالتغيير إلى / var / www لاستخراجها.

$ cd ~ / Downloads $ wget https://download.nextcloud.com/server/releases/nextcloud-12.0.3.tar.bz2 $ cd / var / www $ sudo tar xjpf ~ / Downloads / nextcloud-12.0.3. tar.bz2

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

أخيرًا ، قم بتغيير ملكية تثبيت Nextcloud إلى www-data.

sudo chown -R www-data: www-data / var / www / nextcloud

إنشاء شهادات SSL

من السهل جدًا إنشاء شهادات SSL بفضل Certbot. سيقوم Certbot تلقائيًا بإنشاء عمليات SSL الخاصة بك ووضعها في جذر الويب لأي موقع تقوم بإنشائه. تحتاج فقط إلى تشغيل أمر واحد.

$ sudo certbot certonly - webroot -w / var / www / nextcloud -d your-domain.com -d www.your-domain.com

نظرًا لأن هذه هي المرة الأولى التي تقوم فيها بتشغيل Certbot ، فسيطلب منك عنوان بريد إلكتروني. سوف يستخدم هذا العنوان لتحذيرك عندما تنتهي صلاحية خدماتك. يمكنك تجديدها بسهولة باستخدام أمر واحد أيضًا.

تجديد sudo certbot

تكوين Nginx

Nginx هو خادم ويب خفيف الوزن ولكنه قوي. ستخدم الواجهة التي تستخدمها للوصول إلى Nextcloud. هناك بعض ملفات التكوين المرتبطة بـ Nginx. الأول هو التكوين الرئيسي الموجود في /etc/nginx/nginx.conf. هذا هو ملف التكوين الرئيسي ، ولكن لديه افتراضيات قوية. يمكنك اللعب معها إذا كنت تعرف ما تفعله ، لكن يمكنك تركه بمفرده ويكون جيدًا أيضًا.

التكوين التالي أطول بكثير وأكثر تعقيدًا. والحمد لله ، لا تحتاج إلى كتابة كل شيء. وقد ديف بالفعل Nextcloud. تحتاج فقط إلى تعديله. يقع ملف التكوين على موقع Nextcloud . الاستيلاء على واحد لل webroot من Nginx. قم بإنشاء ملف جديد على / etc / nginx / sites-available / nextcloud ، وقم بلصقه.

بمجرد امتلاك الملف ، ستحتاج إلى إجراء بعض التعديلات البسيطة. أولاً ، ابحث عن الكتلة الأولية وقم بتغييرها لتبدو كما يلي:

php-handler {server unix: /run/php/php7.0-fpm.sock؛ }

ثم ابحث عن أي مكان يقوله cloud.example.com وقم بتغييره إلى اسم المجال الخاص بك.

آخر ما عليك القيام به هو توجيه Nginx إلى خدمات SSL الخاصة بك. تغيير الخطوط:

ssl_certificate /etc/ssl/nginx/cloud.example.com.crt؛ ssl_certificate_key /etc/ssl/nginx/cloud.example.com.key؛

إلى:

ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem؛ ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem؛

هذا هو! بعد ذلك ، تحتاج إلى ربطه حتى يتمكن Nginx من العثور عليه.

$ cd / etc / nginx / sites-$ $ sudo ln -s / etc / nginx / sites-available / nextcoud nextcloud

إزالة الافتراضي الحالي الموجود هناك.

$ sudo rm افتراضي

أعد تشغيل PHP و Nginx ، وستتمكن من الوصول إلى Nextcloud!

sudo systemctl إعادة تشغيل php7.0-fpm $ sudo systemctl إعادة تشغيل nginx

بدء Nextcloud

افتح متصفح الويب الخاص بك وانتقل إلى اسم المجال الخاص بك. سيتم الترحيب بك من خلال شاشة إعداد Nextcloud. قم بإنشاء حساب مسؤول وأدخل معلومات حساب قاعدة البيانات الذي قمت بإنشائه.

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

هذا هو! لديك الآن سحابة خاصة بك!

إنشاء سحابة خاصة بك مع nextcloud