ที่เก็บข้อมูลบนคลาวด์เป็นวิธีที่ยอดเยี่ยมในการรักษาไฟล์ของคุณให้ปลอดภัยในกรณีที่มีสิ่งใดเกิดขึ้นและคอมพิวเตอร์ของคุณสูญหายหรือเสียหาย มันสามารถช่วยให้คุณเข้าถึงไฟล์ของคุณขณะเดินทางหรือจากที่ทำงานและช่วยให้คุณซิงค์ทุกอย่างบนอุปกรณ์ของคุณ
ที่เก็บข้อมูลบนคลาวด์มาพร้อมกับข้อเสียเปรียบหลักอย่างหนึ่ง คุณต้องไว้วางใจ บริษัท บางแห่งด้วยไฟล์ส่วนตัวทั้งหมดของคุณ จะเกิดอะไรขึ้นถ้า พวกเขา ถูกแฮ็ก พวกเขาเป็นสิ่งที่เชื่อถือได้จริง ๆ หรือพวกเขากำลังทำสิ่งต่าง ๆ ของคุณเมื่อคุณไม่ได้มอง? เป็นไปไม่ได้ที่จะรู้อย่างแน่นอน
มีตัวเลือกอื่น คุณสามารถโฮสต์ที่เก็บข้อมูลบนคลาวด์ของคุณเองด้วย Nextcloud Nextcloud เป็นโซลูชั่นการจัดเก็บข้อมูลบนระบบคลาวด์แบบโอเพ่นซอร์สที่ช่วยให้คุณเป็น บริษัท ที่จัดเก็บข้อมูลบนคลาวด์ของคุณเอง มีอินเทอร์เฟซที่ใช้งานง่ายและสะอาดและมีแอพสำหรับอุปกรณ์ทั้งหมดของคุณดังนั้นคุณจึงไม่ต้องจัดการกับขยะที่ถูกแฮ็กด้วยกัน
คู่มือนี้จะมุ่งเน้นไปที่การโฮสต์ Nextcloud บน VPS (เซิร์ฟเวอร์ส่วนตัวเสมือน) แต่คุณยังสามารถเรียกใช้งานได้ในเครือข่ายภายในบ้านของคุณ อย่าคาดหวังว่าจะสามารถเข้าถึงได้จากภายนอกเว้นแต่คุณจะตั้งค่าการส่งต่อพอร์ตหรือใช้งาน VPN บางขั้นตอนอาจแตกต่างกันเล็กน้อยและคุณไม่จำเป็นต้องซื้อชื่อโดเมนหรือตั้งค่าใบรับรอง SSL
เลือกโฮสต์
ลิงค์ด่วน
- เลือกโฮสต์
- ติดตั้งสิ่งที่คุณต้องการ
- ตั้งค่าไฟร์วอลล์ของคุณ
- กำหนดค่า SSH
- คีย์ SSH
- ของ windows
- Mac และ Linux
- ไม่อนุญาตให้รูทและรหัสผ่าน
- คีย์ SSH
- กำหนดค่าฐานข้อมูลของคุณ
- กำหนดค่า PHP
- รับ Nextcloud
- สร้างใบรับรอง SSL
- กำหนดค่า Nginx
- เริ่ม Nextcloud
สมมติว่าคุณกำลังใช้โซลูชันคลาวด์ที่แท้จริงและต้องการให้ไฟล์ของคุณสามารถเข้าถึงได้ทางเว็บคุณจะต้องตั้งค่า VPS เพื่อโฮสต์ Nextcloud มีตัวเลือกที่ดีออกไปดังนั้นเลือกสิ่งที่ดีที่สุดสำหรับคุณ ลองดู Linode, DigitalOcean และ Gandi หากคุณยังไม่มีโฮสต์ในใจ
คู่มือนี้จะใช้ Debian 9“ Stretch” เป็นระบบปฏิบัติการเซิร์ฟเวอร์ Debian มีความเสถียรสูงและปลอดภัยเป็นค่าเริ่มต้น นอกจากนี้ยังได้รับการสนับสนุนอย่างดีจากแพลตฟอร์มโฮสต์ส่วนใหญ่ หากคุณคุ้นเคยกับอูบุนตูมากกว่านี้ส่วนใหญ่จะนำไปใช้โดยตรงที่นั่นเช่นกันเนื่องจากอูบุนตูใช้เดเบียน
คุณจะต้องได้รับชื่อโดเมนสำหรับเซิร์ฟเวอร์ของคุณด้วย เนื่องจากสิ่งนี้จะไม่เป็นเว็บไซต์สาธารณะคุณจึงสามารถทำทุกอย่างที่คุณต้องการ กระบวนการซื้อและเชื่อมโยงชื่อโดเมนนั้นแตกต่างกันสำหรับผู้ให้บริการโฮสต์และชื่อโดเมนทุกรายดังนั้นโปรดตรวจสอบเอกสารที่ให้บริการที่คุณเลือก
ทุกอย่างที่นี่จะได้รับการจัดการจากระยะไกลจากบรรทัดคำสั่ง Linux ดังนั้นหากคุณใช้ Mac หรือ Linux คุณสามารถเปิด Terminal และใช้ SSH เพื่อเข้าถึง VPS หากคุณใช้ Windows ให้คว้าไคลเอ็นต์ SSH เช่น PuTTY
ติดตั้งสิ่งที่คุณต้องการ
มีชิ้นส่วนมากมายสำหรับปริศนานี้ คุณอาจคว้าพวกเขาทั้งหมดได้ในตอนนี้ดังนั้นคุณจึงมีสิ่งที่คุณต้องทำต่อจากที่นี่ เดเบียนมักจะไม่ได้ติดตั้ง sudo โดยค่าเริ่มต้นดังนั้นคว้าแรกและตั้งค่า
$ su -c 'apt install sudo'
ป้อนรหัสผ่านรูทของคุณจากนั้น Sudo จะถูกติดตั้ง จากนั้นคุณจะต้องเพิ่มผู้ใช้ของคุณในกลุ่ม sudo
$ su -c 'gpasswd -a ชื่อผู้ใช้ sudo'
ตอนนี้คุณสามารถใช้ sudo คุณอาจต้องลงชื่อเข้าใช้อีกครั้งหากไม่สามารถใช้งานได้ทันที จากจุดนี้ไปข้างหน้าคุณจะใช้ sudo แทนโดยเฉพาะอย่างยิ่งเนื่องจากคุณจะปิดใช้งานการเข้าสู่ระบบรากเพื่อความปลอดภัย
ตอนนี้คว้าทุกอย่างจากที่เก็บของ Debian
$ sudo apt ติดตั้ง ufw mariadb-server nginx certbot PHP php-mysql php-fpm php-cli php-json php-jll php-imap php-gd php-xml php-zip php-zip php-mcrypt
ตั้งค่าไฟร์วอลล์ของคุณ
เซิร์ฟเวอร์ของคุณอยู่บนอินเทอร์เน็ต ไม่มีทางที่จะเป็นเช่นนั้นและหมายความว่าคุณจะต้องจัดการกับผู้โจมตี การตั้งค่าไฟร์วอลล์อย่างง่ายจะช่วยป้องกันภัยคุกคามที่อาจเกิดขึ้นได้มากมาย
แทนที่จะใช้ iptables โดยตรงคุณสามารถใช้ UFW (Uncomplicated Firewall) เพื่อรักษาความปลอดภัยระบบของคุณ มันมีไวยากรณ์ที่ง่ายกว่าและง่ายกว่ามากในการทำงานกับ
เริ่มต้นด้วยการปิดการใช้งานทุกอย่างในไฟร์วอลล์ การดำเนินการนี้จะตั้งค่านโยบายเริ่มต้นให้ปฏิเสธการเชื่อมต่อกับบริการและพอร์ตทั้งหมดเพื่อให้มั่นใจว่าผู้โจมตีไม่สามารถเชื่อมต่อกับพอร์ตที่ถูกลืมบางตัวได้
$ sudo ufw เริ่มต้นปฏิเสธการเข้ามา
$ sudo ufw default ปฏิเสธการส่งออก $ sudo ufw default ปฏิเสธไปข้างหน้า
ถัดไปคุณสามารถบอก 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 ufw อนุญาตใน 53 $ sudo ufw อนุญาตออก 53 $ sudo ufw อนุญาตใน 67 $ sudo ufw อนุญาตออก 67
คุณสามารถเริ่มไฟร์วอลล์ได้แล้ว มันจะให้คำเตือนเกี่ยวกับการรบกวน SSH แต่คุณได้อนุญาต SSH แล้วดังนั้นคุณจะไม่เป็นไร
กำหนดค่า SSH
SSH เป็นหนึ่งในบริการที่ถูกโจมตีบ่อยที่สุดบนเซิร์ฟเวอร์ Linux มันเป็นประตูสู่ทุกสิ่งบนเซิร์ฟเวอร์และโดยปกติแล้วจะได้รับการป้องกันด้วยรหัสผ่านเท่านั้น นั่นเป็นเหตุผลที่สำคัญที่ต้องแน่ใจว่าเซิร์ฟเวอร์ของคุณไม่สามารถเข้าถึงผู้โจมตีผ่าน SSH ได้อย่างง่ายดาย
กุญแจ SSH
ก่อนอื่นคุณต้องตั้งค่าทางเลือกที่ปลอดภัยมากขึ้นสำหรับรหัสผ่าน, คีย์ SSH กระบวนการแตกต่างกันบน Windows มากกว่าบน Mac และ Linux ดังนั้นทำตามคำแนะนำที่เหมาะสมกับเดสก์ท็อปของคุณ
ของ windows
เช่นเดียวกับวิธีของ Windows คุณต้องมีโปรแกรมอื่นเพื่อทำงานนี้ให้สำเร็จ PuTTYgen เป็นเครื่องมือสร้างคีย์ RSA สำหรับ PuTTY สามารถดูได้จาก หน้าดาวน์โหลด PuTTY ดาวน์โหลดและเรียกใช้
ในหน้าต่างที่เปิดขึ้นให้ตั้งชื่อคีย์ของคุณและสร้างรหัสผ่าน เป็นรหัสผ่านที่คุณจะใช้เพื่อเข้าสู่เซิร์ฟเวอร์ของคุณ ที่ด้านล่างเลือก SSH-2 RSA และตั้งค่าขนาดคีย์อย่างน้อย 2, 048 บิต 4096 ดีกว่า แต่ 2048 จะเร็วขึ้นเล็กน้อย จากนั้นสร้างกุญแจของคุณและบันทึกทั้งกุญแจสาธารณะและกุญแจส่วนตัว สุดท้ายให้คัดลอกกุญแจสาธารณะที่แสดงอยู่ด้านบนของหน้าต่าง
ใช้ PuTTY เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ของคุณ เปิดไฟล์ที่ ~ / .ssh / authorized_keys และวางกุญแจของคุณ
ย้อนกลับไปใน PuTTY ค้นหา SSH ที่เมนูด้านข้าง จากนั้นเปิด "ตรวจสอบความถูกต้อง" ในฟิลด์สำหรับคีย์ pivate ให้เรียกดูตำแหน่งของคีย์ส่วนตัวที่คุณเพิ่งบันทึก เมื่อทุกอย่างใน PuTTY ถูกตั้งค่าสำหรับเซิร์ฟเวอร์ของคุณให้บันทึกเซสชัน ทดสอบเพื่อให้แน่ใจว่าคุณกำลังเชื่อมต่อกับกุญแจของคุณก่อนที่จะไป
Mac และ Linux
ผู้ใช้ 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 ไม่
ถัดไปค้นหาสองบรรทัด:
#PasswordAuthentication ใช่ #PermitEmptyPasswords หมายเลข
เปลี่ยนเป็น:
รหัสผ่านการตรวจสอบสิทธิ์ไม่มีใบอนุญาตเลขที่รหัสผ่าน
ในที่สุดค้นหา:
ใช้ PAM ใช่
ทำมัน:
ใช้หมายเลข PAM
บันทึกไฟล์ของคุณและปิด จากนั้นรีสตาร์ท SSH สิ่งนี้อาจช่วยให้คุณหลุดออกดังนั้นลองเชื่อมต่อใหม่
$ sudo systemctl รีสตาร์ท sshd
กำหนดค่าฐานข้อมูลของคุณ
สิ่งต่อไปที่คุณต้องทำคือกำหนดค่าฐานข้อมูลของคุณ ที่นี่ไม่มีอะไรเกี่ยวข้องมากนักดังนั้นอย่ากังวลมากเกินไป คุณเพียงแค่ต้องตั้งค่าผู้ใช้และฐานข้อมูลว่างเปล่าสำหรับ Nextcloud เพื่อเข้าถึง
มีสคริปต์ที่สะดวกในการติดตั้งและรักษาความปลอดภัยให้กับ MariaDB สำหรับคุณ เรียกใช้ก่อน
$ sudo mysql_secure_installation
รหัสผ่านรูทเริ่มต้นว่างเปล่าดังนั้นจึงเป็น“ Enter” เมื่อถูกถาม จากนั้นจะขอให้คุณตั้งค่ารหัสผ่านรูท ทำอย่างนั้น. ตอบ“ ใช่” ทุกคำถามที่ตามมา
คุณสามารถเข้าสู่ฐานข้อมูลของคุณด้วยรหัสผ่านรูทที่คุณเพิ่งตั้งค่า
$ sudo mysql -u root -p
พรอมต์จะเปลี่ยนเป็น MariaDB หนึ่ง นี่คือคอนโซลสำหรับจัดการเซิร์ฟเวอร์ฐานข้อมูลของคุณ เริ่มต้นด้วยการสร้างฐานข้อมูลใหม่ การใช้อักษรตัวพิมพ์ใหญ่นับที่นี่
สร้างฐานข้อมูล nextcloud
จากนั้นสร้างผู้ใช้สำหรับฐานข้อมูลนั้น
สร้างผู้ใช้ `nextcloud '@' localhost` ระบุโดย" PasswordForUser ";
จากนั้นให้สิทธิ์ผู้ใช้นั้นในการใช้ฐานข้อมูล
ได้รับทั้งหมดใน nextcloud * ถึง `nextcloud` @ `localhost`;
แค่นั้นแหละ! คุณสามารถออกจากเซิร์ฟเวอร์ฐานข้อมูลได้ทันที
กำหนดค่า PHP
Nextcloud เขียนด้วย PHP คุณได้ติดตั้ง PHP เวอร์ชันล่าสุดที่มีอยู่บน Debian Stretch พร้อมกับส่วนขยาย PHP ที่ Nextcloud ต้องการเพื่อให้ทำงานได้อย่างถูกต้อง คุณยังต้องปรับแต่งค่า PHP สองสามอย่างเพื่อให้ทำงานได้ง่ายขึ้นด้วย Nginx
ต้องการเพียงแค่ปรับแต่งความปลอดภัยขั้นพื้นฐาน สิ่งเหล่านี้ไม่ใช่สิ่งสำคัญ แต่จะช่วยปรับปรุงความปลอดภัยของเซิร์ฟเวอร์ของคุณ
เปิด /etc/php/7.0/fpm/php.ini ด้วย sudo และโปรแกรมแก้ไขข้อความที่คุณโปรดปราน
ไฟล์มีขนาดใหญ่มากดังนั้นให้ใช้ฟังก์ชั่นการค้นหาของเครื่องมือแก้ไขเพื่อนำทางไปรอบ ๆ หากคุณใช้ Nano ก็คือ Ctrl + W ตัวเลือกกำปั้นที่คุณต้องการค้นหาคือ disable_functions เพิ่มเพิ่ม phpinfo, ระบบ, mail, exec, ในตอนท้าย
จากนั้นค้นหา sql.safe_mode แล้วเปิดใช้ ถัดไปตั้งค่า allow_url_fopen ในตอนท้ายของไฟล์เพิ่มบรรทัดต่อไปนี้บันทึกและปิด
รับ 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 มันจะขอที่อยู่อีเมล มันจะใช้ที่อยู่นั้นเพื่อเตือนคุณเมื่อ certs ของคุณใกล้จะหมดอายุ คุณสามารถต่ออายุได้อย่างง่ายดายด้วยคำสั่งเดียว
กำหนดค่า Nginx
Nginx เป็นเว็บเซิร์ฟเวอร์น้ำหนักเบา แต่ทรงพลัง มันจะให้บริการอินเทอร์เฟซที่คุณใช้ในการเข้าถึง Nextcloud มีไฟล์คอนฟิกูเรชันสองสามไฟล์ที่เชื่อมโยงกับ Nginx อันแรกคือการกำหนดค่าหลักอยู่ที่ /etc/nginx/nginx.conf นั่นเป็นไฟล์กำหนดค่าหลัก แต่มีค่าเริ่มต้นที่มั่นคง คุณสามารถเล่นกับมันได้หากคุณรู้ว่าคุณกำลังทำอะไรอยู่ แต่คุณสามารถทิ้งไว้คนเดียวและทำได้ดีเช่นกัน
การกำหนดค่าต่อไปมีความยาวและซับซ้อนมากขึ้น โชคดีที่คุณไม่จำเป็นต้องเขียนมันทั้งหมด Nextcloud devs ทำไปแล้ว คุณเพียงแค่ต้องปรับเปลี่ยน ไฟล์กำหนดค่าตั้งอยู่บน เว็บไซต์ของ Nextcloud คว้าหนึ่งสำหรับ webroot ของ Nginx สร้างไฟล์ใหม่ที่ / etc / nginx / sites-available / nextcloud แล้ววางลง
เมื่อคุณมีไฟล์แล้วคุณจะต้องทำการเปลี่ยนแปลงง่ายๆ ก่อนอื่นให้ค้นหาบล็อกอัปสตรีมและเปลี่ยนให้เป็นดังนี้:
upstream php-handler {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-enabled $ sudo ln -s / etc / nginx / sites-available / nextcoud nextcloud
ลบค่าเริ่มต้นที่มีอยู่ที่นั่น
$ sudo rm เริ่มต้น
รีสตาร์ท PHP และ Nginx แล้วคุณจะสามารถเข้าถึง Nextcloud!
$ sudo systemctl รีสตาร์ท php7.0-fpm $ sudo systemctl รีสตาร์ท nginx
เริ่ม Nextcloud
เปิดเว็บเบราว์เซอร์และไปที่ชื่อโดเมนของคุณ คุณจะได้รับการต้อนรับด้วยหน้าจอการตั้งค่า Nextcloud สร้างบัญชี admin ด้วยตัวคุณเองและป้อนข้อมูลสำหรับบัญชีฐานข้อมูลที่คุณสร้าง
Nextcloud จะใช้เวลาหลายนาทีในการกำหนดค่าและติดตั้ง เมื่อเสร็จสิ้นคุณจะถูกนำไปไว้ที่แผงควบคุม Nextcloud ใหม่ของคุณ จากตรงนั้นคุณสามารถสร้างผู้ใช้ใหม่เพื่อให้คนที่คุณไว้วางใจบนที่เก็บข้อมูลบนคลาวด์ใหม่ของคุณ คุณยังสามารถเริ่มอัพโหลดไฟล์ได้ทันที
แค่นั้นแหละ! ตอนนี้คุณมีคลาวด์ส่วนตัวของคุณเองแล้ว!