Penyimpanan cloud adalah cara terbaik untuk menjaga file Anda aman jika terjadi sesuatu dan komputer Anda hilang atau rusak. Ini dapat membantu Anda mengakses file Anda di jalan atau dari kantor, dan membantu Anda menjaga semuanya disinkronkan di perangkat Anda.
Penyimpanan cloud hadir dengan satu kelemahan utama. Anda harus mempercayai beberapa perusahaan dengan semua file pribadi Anda. Apa yang terjadi jika mereka diretas? Apakah mereka benar-benar dapat dipercaya, atau mereka akan melakukan hal-hal Anda ketika Anda tidak melihat? Sangat tidak mungkin untuk mengetahui dengan pasti.
Ada opsi lain. Anda dapat meng-host penyimpanan cloud Anda sendiri dengan Nextcloud. Nextcloud adalah solusi penyimpanan cloud sumber terbuka yang memungkinkan Anda menjadi perusahaan penyimpanan cloud Anda sendiri. Ini memiliki antarmuka yang mudah digunakan dan dibersihkan dan aplikasi yang menyertai untuk semua perangkat Anda, sehingga Anda tidak berurusan dengan beberapa sampah yang diretas bersama.
Panduan ini akan fokus pada hosting Nextcloud di VPS (Virtual Private Server), tetapi Anda juga dapat menjalankannya secara lokal di jaringan rumah Anda. Hanya saja, jangan berharap untuk mengaksesnya dari luar kecuali jika Anda mengatur port forwarding atau menjalankan VPN. Beberapa langkah akan sedikit berbeda, dan Anda tidak perlu membeli nama domain atau mengatur sertifikat SSL.
Pilih Tuan Rumah
tautan langsung
- Pilih Tuan Rumah
- Instal Apa yang Anda Butuhkan
- Siapkan Firewall Anda
- Konfigurasikan SSH
- Kunci SSH
- Windows
- Mac dan Linux
- Larang Root dan Kata Sandi
- Kunci SSH
- Konfigurasikan Basis Data Anda
- Konfigurasikan PHP
- Dapatkan Nextcloud
- Buat Sertifikat SSL
- Konfigurasikan Nginx
- Mulai Nextcloud
Dengan asumsi Anda akan menggunakan solusi cloud yang sebenarnya dan ingin file Anda dapat diakses melalui Web, Anda perlu mengatur VPS untuk menjadi tuan rumah Nextcloud aktif. Ada beberapa opsi hebat di luar sana, jadi pilihlah yang tampaknya terbaik untuk Anda. Lihat Linode, DigitalOcean, dan Gandi, jika Anda belum memiliki host.
Panduan ini akan menggunakan Debian 9 "Stretch" sebagai sistem operasi server. Debian sangat stabil dan cukup aman secara default. Ini juga didukung oleh sebagian besar platform hosting. Jika Anda lebih nyaman dengan Ubuntu, sebagian besar ini akan berlaku langsung di sana juga, karena Ubuntu didasarkan pada Debian.
Anda juga perlu mendapatkan nama domain untuk server Anda. Karena ini tidak akan menjadi situs publik, Anda dapat membuatnya sesuka hati. Proses untuk membeli dan menautkan nama domain berbeda untuk setiap host dan penyedia nama domain, jadi pastikan untuk memeriksa dokumentasi yang disediakan oleh layanan yang Anda pilih.
Semuanya di sini akan ditangani dari jarak jauh dari baris perintah Linux. Jadi, jika Anda menggunakan Mac atau Linux, Anda bisa membuka terminal dan menggunakan SSH untuk mengakses VPS Anda. JIKA Anda berada di Windows, ambil klien SSH seperti Putty .
Instal Apa yang Anda Butuhkan
Ada banyak bagian dari teka-teki ini. Anda bisa mengambil semuanya sekarang, jadi Anda memiliki apa yang Anda butuhkan untuk melanjutkan dari sini. Debian biasanya tidak memiliki sudo yang terinstal secara default, jadi ambil itu dulu, dan aturlah.
$ su -c 'apt install sudo'
Masukkan kata sandi root Anda dan Sudo akan diinstal. Kemudian, Anda perlu menambahkan pengguna Anda ke grup sudo.
$ su -c 'gpasswd -a username sudo'
Sekarang, Anda bisa menggunakan sudo. Anda mungkin harus masuk lagi, jika tidak segera berfungsi. Dari titik ini, Anda akan menggunakan sudo, terutama karena Anda akan menonaktifkan login root untuk tujuan keamanan.
Sekarang, ambil semuanya dari repositori Debian.
$ sudo untuk menginstal ufw mariadb-server nginx certbot php php-mysql php-fpm php-cli php-json php-curl php-imap php-gd
Siapkan Firewall Anda
Server Anda ada di Internet. Tidak ada jalan keluar, dan itu artinya Anda harus berurusan dengan penyerang. Menyiapkan firewall sederhana akan membantu mencegah banyak potensi ancaman.
Alih-alih menggunakan iptables secara langsung, Anda dapat menggunakan UFW (Uncomplicated Firewall) untuk mengamankan sistem Anda. Ini memiliki sintaks yang lebih sederhana, dan lebih mudah untuk dikerjakan.
Mulailah dengan menonaktifkan semua yang ada di firewall. Ini akan menetapkan kebijakan default untuk menolak koneksi ke semua layanan dan port, memastikan bahwa penyerang tidak dapat terhubung pada beberapa port yang terlupakan.
$ sudo ufw default tolak masuk
$ sudo ufw default deny outgoing $ sudo ufw default deny forward
Selanjutnya, Anda dapat memberi tahu ufw layanan yang Anda inginkan untuk dibolehkan. Dalam hal ini, Anda hanya perlu SSH dan akses web. Anda juga ingin mengaktifkan NTP dan DNS sehingga server Anda dapat mengambil pembaruan dan mengatur jamnya.
$ sudo ufw ijinkan di ssh $ sudo ufw ijinkan ssh $ sudo ufw ijinkan di http $ sudo ufw ijinkan http $ sudo ufw ijinkan di https $ sudo ufw ijinkan https $ sudo ufw ijinkan di ntp $ sudo ufw ijinkan ntp $ sudo ufw izinkan di 53 $ sudo ufw izinkan 53 $ sudo ufw izinkan di 67 $ sudo ufw izinkan 67
Anda dapat memulai firewall Anda sekarang. Ini akan memberi Anda peringatan tentang gangguan SSH, tetapi Anda sudah mengizinkan SSH, jadi Anda akan baik-baik saja.
Konfigurasikan SSH
SSH adalah salah satu layanan yang paling sering diserang di server Linux. Ini adalah pintu gerbang ke semua hal lain di server, dan biasanya hanya dilindungi oleh kata sandi. Itu sebabnya penting untuk memastikan bahwa server Anda tidak mudah diakses oleh penyerang melalui SSH.
Kunci SSH
Pertama, Anda perlu mengatur alternatif yang jauh lebih aman untuk kata sandi, kunci SSH. Prosesnya berbeda di Windows daripada di Mac dan Linux, jadi ikuti instruksi yang sesuai dengan desktop Anda.
Windows
Seperti cara Windows, Anda memerlukan program lain untuk menyelesaikan tugas sederhana ini. PuTTYgen adalah generator kunci RSA untuk Putty. Ini tersedia dari halaman unduhan Putty . Unduh, dan jalankan.
Di jendela yang terbuka, beri nama kunci Anda dan buat kata sandi untuknya. Ini kata sandi yang akan Anda gunakan untuk masuk ke server Anda. Di bagian bawah, pilih SSH-2 RSA dan atur ukuran kunci setidaknya 2048 bit. 4096 lebih baik, tetapi 2048 akan sedikit lebih cepat. Kemudian, buat kunci Anda, dan simpan kunci publik dan pribadi. Akhirnya, salin kunci publik yang ditampilkan di bagian atas jendela.
Gunakan Putty untuk terhubung ke server Anda. Buka file di ~ / .ssh / Authorized_key dan rekatkan kunci Anda.
Kembali di Putty, cari SSH di menu samping. Kemudian, buka "Auth." Di bidang untuk kunci pivate, browse ke lokasi kunci pribadi yang baru saja Anda simpan. Ketika semuanya dalam Putty diatur untuk server Anda, simpan sesi. Uji untuk memastikan Anda terhubung dengan kunci Anda sebelum melanjutkan.
Mac dan Linux
Pengguna Mac dan Linux memiliki jalan yang jauh lebih mudah di sini. Mulailah dengan membuat kunci SSH, jika Anda belum memilikinya. Anda memiliki opsi untuk membuat kata sandi untuk kunci tersebut. Ini opsional, jadi itu adalah panggilan Anda.
$ ssh-keygen -b 4096 -t rsa
Sekarang, cukup kirim kunci Anda ke server Anda. Gantikan nama pengguna dan IP server Anda.
$ ssh-copy-id -i ~ / .ssh / id_rsa.pub
Itu dia!
Larang Root dan Kata Sandi
Setelah kunci Anda diatur, Anda dapat menonaktifkan kata sandi untuk SSH. Jangan khawatir jika Anda mengatur kunci dengan kata sandi. Itu sesuatu yang berbeda, dan ini tidak akan berdampak sama sekali. Buka file konfigurasi SSH di / etc / ssh / sshd_config.
$ sudo nano / etc / ssh / sshd_config
Temukan baris yang berbunyi:
#PermitRootLogin melarang-kata sandi
Ubah ke:
PermitRootLogin no
Selanjutnya, cari dua baris:
#PasswordAuthentication ya #PermitEmptyPasswords no
Ubah mereka menjadi:
PasswordAuthentication no PermitEmptyPasswords no
Akhirnya, temukan:
GunakanPAM ya
Buat itu:
UsePAM no
Simpan file Anda, dan tutup. Kemudian, mulai ulang SSH. Ini mungkin menendang Anda, jadi sambungkan kembali jika ada.
Konfigurasikan Basis Data Anda
Hal selanjutnya yang perlu Anda lakukan adalah mengkonfigurasi database Anda. Sebenarnya tidak banyak yang terlibat di sini, jadi jangan terlalu khawatir. Anda hanya perlu mengatur pengguna dan mengosongkan database untuk diakses Nextcloud.
Sebenarnya ada skrip yang nyaman untuk diatur dan mengamankan MariaDB untuk Anda. Jalankan dulu.
$ sudo mysql_secure_installation
Kata sandi root default kosong, jadi "Masukkan" saat ditanya. Ini kemudian akan meminta Anda untuk mengatur kata sandi root. Lakukan itu. Jawab "Ya" untuk setiap pertanyaan berikutnya.
Anda dapat masuk ke database Anda dengan kata sandi root yang baru saja Anda siapkan.
$ sudo mysql -u root -p
Prompt akan berubah menjadi yang MariaDB. Ini adalah konsol untuk mengelola server database Anda. Mulailah dengan membuat database baru. Kapitalisasi diperhitungkan di sini.
BUAT DATABASE nextcloud;
Selanjutnya, buat pengguna untuk basis data itu.
CREATE USER `nextcloud` @` localhost` DIIDENTIFIKASI OLEH "PasswordForUser";
Kemudian, beri izin pengguna itu untuk menggunakan database.
GRANT ALL ON nextcloud. * KE `nextcloud` @` localhost`;
Itu dia! Anda dapat keluar dari server database sekarang.
Konfigurasikan PHP
Nextcloud ditulis dalam PHP. Anda telah menginstal versi terbaru PHP yang tersedia di Debian Stretch bersama dengan ekstensi PHP yang perlu difungsikan oleh Nextcloud. Anda masih perlu melakukan beberapa penyesuaian pada konfigurasi PHP Anda untuk membuatnya bekerja lebih mudah dengan Nginx.
Ini benar-benar hanya memerlukan beberapa tweak keamanan dasar. Ini bukan sesuatu yang utama, tetapi mereka akan membantu meningkatkan keamanan server Anda.
Buka /etc/php/7.0/fpm/php.ini dengan sudo dan editor teks favorit Anda.
File ini sangat besar, jadi gunakan fungsi pencarian editor Anda untuk bernavigasi. Jika Anda telah menggunakan Nano, itu Ctrl + W. Opsi pertama yang perlu Anda temukan adalah disable_functions. Tambahkan add phpinfo, sistem, mail, exec, di akhir.
Kemudian, cari sql.safe_mode dan nyalakan. Selanjutnya, nonaktifkan allow_url_fopen. Di akhir file, tambahkan baris berikut, simpan, dan tutup.
Dapatkan Nextcloud
Nextcloud belum tersedia sebagai paket untuk Debian, dan itu tidak masalah. Anda benar-benar tidak membutuhkannya. Ini sangat mirip dengan aplikasi web PHP pra-dibangun lainnya, seperti WordPress, dan itu datang dalam arsip terkompresi yang dapat Anda ekstrak di mana Anda ingin Nextcloud diinstal.
Sampai sekarang, rilis stabil terbaru adalah Nextcloud, periksa ulang apa versi terbaru untuk Anda ketika Anda membaca ini. Panduan ini akan merujuk ke 12, tetapi gunakan apa pun yang stabil terbaru.
Ubah menjadi direktori tempat Anda ingin mengunduh arsip Nextcloud Anda. Kemudian, ubah ke / var / www untuk mengekstraknya.
$ 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
Jika Anda membaca ini di masa mendatang, Anda dapat menemukan tautan unduhan pada halaman instalasi server Nextcloud.
Terakhir, ubah kepemilikan instalasi Nextcloud Anda menjadi www-data.
$ sudo chown -R www-data: www-data / var / www / nextcloud
Buat Sertifikat SSL
Membuat sertifikat SSL Anda sangat mudah berkat Certbot. Certbot akan secara otomatis menghasilkan sertifikat SSL untuk Anda dan menempatkannya di root web dari situs apa pun yang Anda buat. Anda hanya perlu menjalankan satu perintah.
$ sudo certbot certonly --webroot -w / var / www / nextcloud -d your-domain.com -d www.your-domain.com
Karena ini adalah pertama kalinya Anda menjalankan Certbot, ia akan meminta alamat email. Ini akan menggunakan alamat itu untuk memperingatkan Anda ketika sertifikat Anda akan kedaluwarsa. Anda dapat dengan mudah memperbaruinya dengan satu perintah juga.
Konfigurasikan Nginx
Nginx adalah server web yang ringan, namun kuat. Ini akan melayani antarmuka yang Anda gunakan untuk mengakses Nextcloud. Ada beberapa file konfigurasi yang terkait dengan Nginx. Yang pertama adalah konfigurasi utama yang terletak di /etc/nginx/nginx.conf. Itu adalah file konfigurasi utama, tetapi memiliki default yang solid. Anda bisa bermain dengannya jika Anda tahu apa yang Anda lakukan, tetapi Anda bisa membiarkannya dan baik-baik saja.
Konfigurasi selanjutnya jauh lebih lama dan lebih kompleks. Untungnya, Anda tidak perlu menulis semuanya. Dev Nextcloud sudah melakukannya. Anda hanya perlu memodifikasinya. File config terletak di situs Nextcloud . Ambil satu untuk akar web Nginx. Buat file baru di / etc / nginx / sites-available / nextcloud, dan tempelkan.
Setelah Anda memiliki file, Anda perlu membuat beberapa perubahan sederhana. Pertama, cari blok hulu dan ubah menjadi seperti ini:
upstream php-handler {server unix: /run/php/php7.0-fpm.sock; }
Kemudian, temukan di mana saja ia mengatakan cloud.example.com dan ubah ke nama domain Anda.
Hal terakhir yang perlu Anda lakukan adalah mengarahkan Nginx ke sertifikat SSL Anda. Ubah garis:
ssl_certificate /etc/ssl/nginx/cloud.example.com.crt; ssl_certificate_key /etc/ssl/nginx/cloud.example.com.key;
Untuk:
ssl_certificate /etc/letsencrypt/live/domain-Anda.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/domain-Anda.com/privkey.pem;
Itu dia! Selanjutnya, Anda perlu menautkannya agar Nginx dapat menemukannya.
$ cd / etc / nginx / sites-enabled $ sudo ln -s / etc / nginx / sites-available / nextcoud nextcloud
Hapus default yang ada di sana.
$ sudo rm default
Mulai ulang PHP dan Nginx, dan Anda akan dapat mengakses Nextcloud!
$ sudo systemctl restart php7.0-fpm $ sudo systemctl restart nginx
Mulai Nextcloud
Buka browser web Anda dan navigasikan ke nama domain Anda. Anda akan disambut dengan layar pengaturan Nextcloud. Buat sendiri akun admin dan masukkan informasi untuk akun basis data yang Anda buat.
Nextcloud akan membutuhkan waktu beberapa menit untuk mengonfigurasi sendiri dan menginstalnya. Setelah selesai, Anda akan dimasukkan ke dasbor Nextcloud baru Anda. Dari sana, Anda dapat membuat pengguna baru untuk memungkinkan orang yang Anda percayai ke penyimpanan cloud baru Anda. Anda juga dapat mulai mengunggah file segera.
Itu dia! Anda sekarang memiliki cloud pribadi Anda sendiri!
