Lưu trữ đám mây là một cách tuyệt vời để giữ an toàn cho các tệp của bạn trong trường hợp xảy ra sự cố và máy tính của bạn bị mất hoặc bị hỏng. Nó có thể giúp bạn truy cập các tệp của mình trên đường hoặc từ nơi làm việc và giúp bạn giữ mọi thứ được đồng bộ hóa trên các thiết bị của mình.
Lưu trữ đám mây đi kèm với một nhược điểm lớn, mặc dù. Bạn phải tin tưởng một số công ty với tất cả các tệp cá nhân của bạn. Điều gì xảy ra nếu họ bị hack? Họ thực sự là tất cả những người đáng tin cậy, hoặc họ đang trải qua những thứ của bạn khi bạn không tìm kiếm? Chắc chắn không thể biết được.
Có một lựa chọn khác. Bạn có thể lưu trữ lưu trữ đám mây của riêng mình với Nextcloud. Nextcloud là một giải pháp lưu trữ đám mây nguồn mở cho phép bạn trở thành công ty lưu trữ đám mây của riêng mình. Nó có giao diện dễ sử dụng và dọn dẹp và các ứng dụng đi kèm cho tất cả các thiết bị của bạn, vì vậy bạn không phải đối phó với một số rác bị hack cùng nhau.
Hướng dẫn này sẽ tập trung vào việc lưu trữ Nextcloud trên VPS (Máy chủ riêng ảo), nhưng bạn cũng có thể chạy nó cục bộ trên mạng gia đình của mình. Chỉ không mong đợi truy cập nó từ bên ngoài trừ khi bạn thiết lập chuyển tiếp cổng hoặc đang chạy VPN. Một số bước sẽ khác một chút và bạn sẽ không cần mua tên miền hoặc thiết lập chứng chỉ SSL.
Chọn một máy chủ
đường dẫn nhanh
- Chọn một máy chủ
- Cài đặt những gì bạn cần
- Thiết lập tường lửa của bạn
- Định cấu hình SSH
- Khóa SSH
- các cửa sổ
- Mac và Linux
- Không cho phép root và mật khẩu
- Khóa SSH
- Cấu hình cơ sở dữ liệu của bạn
- Cấu hình PHP
- Nhận Nextcloud
- Tạo chứng chỉ SSL
- Cấu hình Nginx
- Bắt đầu tiếp theo
Giả sử bạn đang sử dụng một giải pháp đám mây thực sự và muốn các tệp của bạn có thể truy cập được trên Web, bạn cần thiết lập một VPS để lưu trữ Nextcloud. Có một số lựa chọn tuyệt vời ngoài kia, vì vậy hãy chọn những gì có vẻ tốt nhất cho bạn. Hãy xem Linode, DigitalOcean và Gandi, nếu bạn chưa có máy chủ lưu trữ.
Hướng dẫn này sẽ sử dụng Debian 9 chín Stretch Stretch làm hệ điều hành máy chủ. Debian là siêu ổn định và khá an toàn theo mặc định. Nó cũng được hỗ trợ tốt bởi hầu hết các nền tảng lưu trữ. Nếu bạn cảm thấy thoải mái hơn với Ubuntu, hầu hết điều này cũng sẽ được áp dụng trực tiếp tại đó, vì Ubuntu dựa trên Debian.
Bạn cũng sẽ cần phải có một tên miền cho máy chủ của bạn. Vì đây không phải là một trang web công cộng, bạn thực sự có thể làm cho nó bất cứ điều gì bạn thích. Quá trình mua và liên kết một tên miền là khác nhau đối với mỗi nhà cung cấp máy chủ và tên miền, do đó hãy chắc chắn kiểm tra tài liệu được cung cấp bởi các dịch vụ bạn chọn.
Mọi thứ ở đây sẽ được xử lý từ xa từ dòng lệnh Linux. Vì vậy, nếu bạn đang dùng Mac hoặc Linux, bạn chỉ cần mở một thiết bị đầu cuối và sử dụng SSH để truy cập VPS của mình. NẾU bạn đang ở trên Windows, hãy lấy một máy khách SSH như PuTTY .
Cài đặt những gì bạn cần
Có rất nhiều mảnh cho câu đố này. Bạn cũng có thể lấy tất cả chúng bây giờ, vì vậy bạn có những gì bạn cần để tiếp tục từ đây. Debian thường không được cài đặt sudo theo mặc định, vì vậy hãy lấy nó trước và cài đặt nó.
$ su -c 'apt cài đặt sudo'
Nhập mật khẩu gốc của bạn và Sudo sẽ được cài đặt. Sau đó, bạn cần thêm người dùng của mình vào nhóm sudo.
$ su -c 'gpasswd -a tên người dùng sudo'
Bây giờ, bạn có thể sử dụng sudo. Bạn có thể cần phải đăng nhập lại, nếu nó không hoạt động ngay lập tức. Từ thời điểm này trở đi, bạn sẽ sử dụng sudo thay vào đó, đặc biệt là khi bạn sẽ vô hiệu hóa đăng nhập gốc cho mục đích bảo mật.
Bây giờ, lấy tất cả mọi thứ từ kho của Debian.
$ sudo apt cài đặt ufw mariadb-server nginx certbot php php-mysql php-fpm php-cli php-json php-curl php-imap php-gd php-xml php-zip php-intl php-mcrypt php-fantick php-mbopes
Thiết lập tường lửa của bạn
Máy chủ của bạn đang ở trên Internet. Không có cách nào khác, và điều đó có nghĩa là bạn sẽ cần phải đối phó với những kẻ tấn công. Thiết lập một tường lửa đơn giản sẽ giúp ngăn chặn rất nhiều mối đe dọa tiềm ẩn.
Thay vì sử dụng iptables trực tiếp, bạn có thể sử dụng UFW (Tường lửa không biến đổi) để bảo mật hệ thống của bạn. Nó có cú pháp đơn giản hơn và làm việc với nó dễ dàng hơn nhiều.
Bắt đầu bằng cách vô hiệu hóa mọi thứ trong tường lửa. Điều này sẽ đặt chính sách mặc định từ chối kết nối tới tất cả các dịch vụ và cổng, đảm bảo kẻ tấn công không thể kết nối trên một số cổng bị lãng quên.
$ sudo ufw mặc định từ chối đến
$ sudo ufw mặc định từ chối gửi đi $ sudo ufw mặc định từ chối chuyển tiếp
Tiếp theo, bạn có thể nói với ufw các dịch vụ mà bạn muốn nó cho phép. Trong trường hợp này, bạn chỉ cần truy cập SSH và web. Bạn cũng sẽ muốn kích hoạt NTP và DNS để máy chủ của bạn có thể tìm nạp các bản cập nhật và đặt đồng hồ.
$ sudo ufw cho phép trong ssh $ sudo ufw cho phép ra ssh $ sudo ufw cho phép trong http $ sudo ufw cho phép http $ sudo ufw cho phép trong https $ sudo ufw cho phép https $ sudo ufw cho phép trong ntp $ sudo uf ufw cho phép trong 53 $ sudo ufw cho phép ra 53 $ sudo ufw cho phép trong 67 $ sudo ufw cho phép 67
Bạn có thể khởi động tường lửa của bạn bây giờ. Nó sẽ đưa ra cảnh báo về việc phá vỡ SSH, nhưng bạn đã cho phép SSH, vì vậy bạn sẽ ổn thôi.
Định cấu hình SSH
SSH là một trong những dịch vụ bị tấn công thường xuyên nhất trên các máy chủ Linux. Đó là cổng vào mọi thứ khác trên máy chủ và nó thường chỉ được bảo vệ bằng mật khẩu. Đó là lý do tại sao điều quan trọng là đảm bảo rằng máy chủ của bạn không dễ bị kẻ tấn công truy cập qua SSH.
Khóa SSH
Trước tiên, bạn cần thiết lập một giải pháp thay thế an toàn hơn nhiều cho mật khẩu, khóa SSH. Quá trình này khác với Windows so với trên Mac và Linux, vì vậy hãy làm theo các hướng dẫn phù hợp với máy tính để bàn của bạn.
các cửa sổ
Theo cách của Windows, bạn cần một chương trình khác để hoàn thành nhiệm vụ đơn giản này. PuTTYgen là trình tạo khóa RSA cho PuTTY. Nó có sẵn từ trang tải xuống PuTTY . Tải về và chạy nó.
Trong cửa sổ mở ra, hãy đặt tên cho khóa của bạn và tạo mật khẩu cho nó. Đó là mật khẩu bạn sẽ sử dụng để đăng nhập vào máy chủ của mình. Ở phía dưới, chọn SSH-2 RSA và đặt kích thước khóa ít nhất là 2048 bit. 4096 là tốt hơn, nhưng 2048 sẽ nhanh hơn một chút. Sau đó, tạo khóa của bạn và lưu cả khóa chung và khóa riêng. Cuối cùng, sao chép khóa công khai hiển thị trên cùng của cửa sổ.
Sử dụng PuTTY để kết nối với máy chủ của bạn. Mở tệp tại ~ / .ssh / ủy quyền và dán khóa của bạn vào.
Quay lại PuTTY, tìm SSH trên menu bên. Sau đó, mở lên Aut Aut.. Trong trường cho khóa pivate, duyệt đến vị trí của khóa riêng mà bạn vừa lưu. Khi mọi thứ trong PuTTY được thiết lập cho máy chủ của bạn, hãy lưu phiên. Kiểm tra nó để đảm bảo bạn đang kết nối với chìa khóa của mình trước khi tiếp tục.
Mac và Linux
Người dùng Mac và Linux có con đường dễ dàng hơn nhiều ở đây. Bắt đầu bằng cách tạo khóa SSH, nếu bạn chưa có khóa. Bạn có tùy chọn tạo mật khẩu cho khóa. Nó là tùy chọn, vì vậy đó là cuộc gọi của bạn.
$ ssh-keygen -b 4096 -t rsa
Bây giờ, chỉ cần gửi chìa khóa của bạn đến máy chủ của bạn. Thay thế tên người dùng của bạn và IP của máy chủ.
$ ssh-copy-id -i ~ / .ssh / id_rsa.pub
Đó là nó!
Không cho phép root và mật khẩu
Sau khi bạn đã thiết lập khóa, bạn có thể tắt mật khẩu cho SSH. Đừng lo lắng nếu bạn thiết lập một khóa bằng mật khẩu. Đó là một cái gì đó khác biệt, và điều này sẽ không ảnh hưởng gì cả. Mở tệp cấu hình SSH tại / etc / ssh / sshd_config.
$ sudo nano / etc / ssh / sshd_config
Tìm dòng có nội dung:
#PermitRootLogin cấm mật khẩu
Thay đổi nó thành:
PermitRootLogin không
Tiếp theo, tìm hai dòng:
#PasswordAuthentication có #PermitEmptyPasswords không
Thay đổi chúng thành:
Mật khẩu xác thực không có PermitEmptyPasswords không
Cuối cùng, tìm:
Sử dụngPAM có
Làm cho nó:
UsePAM không
Lưu tệp của bạn và đóng nó. Sau đó, khởi động lại SSH. Điều này có thể đuổi bạn đi, vì vậy hãy kết nối lại nếu có.
$ sudo systemctl khởi động lại sshd
Cấu hình cơ sở dữ liệu của bạn
Điều tiếp theo bạn sẽ cần làm là cấu hình cơ sở dữ liệu của bạn. Thực sự không có nhiều liên quan ở đây, vì vậy đừng quá lo lắng. Bạn chỉ cần thiết lập một người dùng và cơ sở dữ liệu trống để Nextcloud truy cập.
Thực sự có một kịch bản thuận tiện để thiết lập và bảo mật MariaDB cho bạn. Chạy nó trước.
$ sudo mysql_secure_installation
Mật khẩu gốc mặc định trống, do đó, Enter Enter Enter khi được hỏi. Sau đó, nó sẽ yêu cầu bạn thiết lập mật khẩu root. Làm việc đó đi. Trả lời Có Có đối với mọi câu hỏi tiếp theo.
Bạn có thể đăng nhập vào cơ sở dữ liệu của mình bằng mật khẩu gốc mà bạn vừa thiết lập.
$ sudo mysql -u root -p
Dấu nhắc sẽ thay đổi thành MariaDB. Đây là bàn điều khiển để quản lý máy chủ cơ sở dữ liệu của bạn. Bắt đầu bằng cách tạo một cơ sở dữ liệu mới. Vốn hóa được tính ở đây.
TẠO cơ sở dữ liệu nextcloud;
Tiếp theo, tạo một người dùng cho cơ sở dữ liệu đó.
TẠO NGƯỜI DÙNG `nextcloud` @` localhost` Được xác định bởi "PasswordForUser";
Sau đó, cấp quyền cho người dùng đó để sử dụng cơ sở dữ liệu.
CẤP TẤT CẢ TRÊN nextcloud. * ĐẾN `nextcloud` @` localhost`;
Đó là nó! Bạn có thể thoát khỏi máy chủ cơ sở dữ liệu bây giờ.
Cấu hình PHP
Nextcloud được viết bằng PHP. Bạn đã cài đặt phiên bản PHP mới nhất có sẵn trên Debian Stretch cùng với các phần mở rộng PHP mà Nextcloud cần để hoạt động đúng. Bạn vẫn cần thực hiện một vài điều chỉnh cho cấu hình PHP của mình để làm cho nó hoạt động dễ dàng hơn với Nginx.
Nó thực sự chỉ cần một số điều chỉnh bảo mật cơ bản. Đây không phải là bất cứ điều gì quan trọng, nhưng chúng sẽ giúp cải thiện bảo mật của máy chủ của bạn.
Mở /etc/php/7.0/fpm/php.ini với sudo và trình soạn thảo văn bản yêu thích của bạn.
Tệp rất lớn, vì vậy hãy sử dụng chức năng tìm kiếm của biên tập viên để điều hướng xung quanh. Nếu bạn đã sử dụng Nano, đó là Ctrl + W. Tùy chọn nắm tay mà bạn cần tìm là vô hiệu hóa. Thêm thêm phpinfo, hệ thống, thư, thực thi, vào cuối.
Sau đó, tìm sql.safe_mode và bật nó lên. Tiếp theo, đặt allow_url_fopen tắt. Ở cuối tập tin, thêm dòng sau, lưu và đóng nó.
Nhận Nextcloud
Nextcloud chưa có sẵn dưới dạng gói cho Debian và không sao. Bạn thực sự không cần nó để được. Nó rất giống với các ứng dụng web PHP dựng sẵn khác, như WordPress, và nó có trong một kho lưu trữ nén mà bạn có thể trích xuất ở nơi bạn muốn cài đặt Nextcloud.
Ngay từ bây giờ, bản phát hành ổn định mới nhất là Nextcloud, hãy kiểm tra kỹ phiên bản mới nhất dành cho bạn khi bạn đọc bản này. Hướng dẫn sẽ đề cập đến 12, nhưng sử dụng bất cứ thứ gì ổn định mới nhất.
Thay đổi thành một thư mục mà bạn muốn tải xuống kho lưu trữ Nextcloud của mình. Sau đó, thay đổi thành / var / www để giải nén nó.
$ cd ~ / Tải xuống $ wget https://doad.nextcloud.com/server/release/nextcloud-12.0.3.tar.bz2 $ cd / var / www $ sudo tar xjpf ~ / Tải xuống / nextcloud-12.0.3. tar.bz2
Nếu bạn đang đọc điều này trong tương lai, bạn có thể tìm thấy liên kết tải xuống trên trang cài đặt máy chủ của Nextcloud.
Cuối cùng, thay đổi quyền sở hữu cài đặt Nextcloud của bạn thành dữ liệu www.
$ sudo chown -R www-data: www-data / var / www / nextcloud
Tạo chứng chỉ SSL
Tạo chứng chỉ SSL của bạn rất dễ dàng nhờ có Certbot. Certbot sẽ tự động tạo các chứng chỉ SSL cho bạn và đặt chúng vào thư mục gốc của bất kỳ trang web nào bạn đang tạo. Bạn chỉ cần chạy một lệnh duy nhất.
$ sudo certbot certonly --webroot -w / var / www / nextcloud -d your-domain.com -d www.your-domain.com
Vì đây là lần đầu tiên bạn chạy Certbot, nó sẽ hỏi địa chỉ email. Nó sẽ sử dụng địa chỉ đó để cảnh báo bạn khi certs của bạn sắp hết hạn. Bạn cũng có thể dễ dàng làm mới chúng bằng một lệnh duy nhất.
Cấu hình Nginx
Nginx là một máy chủ web nhẹ, nhưng mạnh mẽ. Nó sẽ phục vụ giao diện mà bạn sử dụng để truy cập Nextcloud. Có một vài tệp cấu hình được liên kết với Nginx. Cái đầu tiên là cấu hình chính nằm ở /etc/nginx/nginx.conf. Đó là tập tin cấu hình chính, nhưng nó có mặc định chắc chắn. Bạn có thể chơi với nó nếu bạn biết bạn đang làm gì, nhưng bạn có thể để nó một mình và cũng ổn.
Cấu hình tiếp theo dài hơn và phức tạp hơn. Rất may, bạn không cần phải viết tất cả. Các nhà phát triển Nextcloud đã làm. Bạn chỉ cần sửa đổi nó. Các tập tin cấu hình được đặt trên trang web của Nextcloud . Lấy một cái cho webroot của Nginx. Tạo một tệp mới tại / etc / nginx / site-Available / nextcloud và dán nó vào.
Một khi bạn có tập tin, bạn cần thực hiện một vài thay đổi đơn giản. Đầu tiên, tìm khối ngược dòng và thay đổi nó thành như thế này:
php-handler ngược dòng {máy chủ unix: /run/php/php7.0-fpm.sock; }
Sau đó, tìm bất cứ nơi nào nó nói cloud.example.com và thay đổi nó thành tên miền của bạn.
Điều cuối cùng bạn cần làm là hướng Nginx vào các chứng chỉ SSL của bạn. Thay đổi dòng:
ssl_cert ve /etc/ssl/nginx/cloud.example.com.crt; ssl_cert ve_key /etc/ssl/nginx/cloud.example.com.key;
Đến:
ssl_cert ve /etc/letsencrypt/live/your-domain.com/fullchain.pem; ssl_cert ve_key /etc/letsencrypt/live/your-domain.com/privkey.pem;
Đó là nó! Tiếp theo, bạn cần liên kết nó để Nginx có thể tìm thấy nó.
$ cd / etc / nginx / kích hoạt trang web $ sudo ln -s / etc / nginx / site-Available / nextcoud nextcloud
Xóa mặc định hiện có đó.
$ sudo rm mặc định
Khởi động lại PHP và Nginx và bạn sẽ có thể truy cập Nextcloud!
$ sudo systemctl khởi động lại php7.0-fpm $ sudo systemctl khởi động lại nginx
Bắt đầu tiếp theo
Mở trình duyệt web của bạn và điều hướng đến tên miền của bạn. Bạn sẽ được chào đón với màn hình thiết lập Nextcloud. Tạo cho mình một tài khoản quản trị và nhập thông tin cho tài khoản cơ sở dữ liệu mà bạn đã tạo.
Nextcloud sẽ mất vài phút để tự cấu hình và cài đặt. Khi kết thúc, bạn sẽ được thả vào bảng điều khiển Nextcloud mới của mình. Từ đó, bạn có thể tạo người dùng mới để cho phép những người bạn tin tưởng vào bộ nhớ đám mây mới của bạn. Bạn cũng có thể bắt đầu tải lên các tập tin ngay lập tức.
Đó là nó! Bây giờ bạn có đám mây riêng của mình!
