Home Server
Bangun home server untuk mengoptimalkan keamanan dan privasi data pribadi. Dengan cara ini, kita dapat mengendalikan sepenuhnya penyimpanan dan akses informasi tanpa harus bergantung pada layanan cloud pihak ketiga yang dapat menjadi titik lemah.
Persiapan
Membangun infrastruktur data pribadi yang aman dan terkontrol merupakan tindakan proaktif yang krusial. Ini adalah langkah berani untuk melindungi informasi pribadi dari pengawasan luar dan memastikan bahwa hak digital tetap terjaga dengan baik.
Memperbarui Sistem
Perbarui sistem dengan menjalankan perintah berikut:
1
sudo apt update && sudo apt upgrade -y
Instalasi LAMPP
Instal dan konfigurasi LAMPP (Linux, Apache, MySQL, PHP), karena Nextcloud memerlukan server web dan basis data. Jalankan perintah berikut:
1
sudo apt install -y apache2 mariadb-server php libapache2-mod-php php-cgi php-mysqli php-pear php-phpseclib php-mysql php-mbstring php-zip php-gd php-curl php-common php-imagick php-gmp php-intl php-apcu
Unduh Nextcloud menggunakan wget
:
1
wget https://download.nextcloud.com/server/releases/latest.zip
Ekstrak file yang telah diunduh dan pindahkan ke direktori /var/www/html
:
1
sudo unzip latest.zip -d /var/www/html
Akses direktori Nextcloud:
1
cd /var/www/html
Ubah kepemilikan direktori Nextcloud:
1
sudo chown -R www-data:www-data nextcloud
Konfigurasi MySQL
Atur kata sandi root untuk basis data dengan menjalankan:
1
sudo mysql_secure_installation
Login ke MySQL menggunakan perintah berikut:
1
mysql -u root -p
Membuat Basis Data dan Pengguna
Gantilah username
dan password
sesuai kebutuhan:
1
CREATE DATABASE home_server;
1
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
Izinkan pengguna untuk mengakses basis data home_server
:
1
GRANT ALL PRIVILEGES ON home_server.* TO 'username'@'localhost';
1
FLUSH PRIVILEGES;
1
exit
Konfigurasi Virtual Host
Buat konfigurasi virtual host dengan perintah berikut:
1
sudo nano /etc/apache2/sites-available/nextcloud.conf
Isi berkas dengan konfigurasi berikut:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<VirtualHost *:80>
ServerName localhost
ServerAdmin admin@example.com
DocumentRoot /var/www/html/nextcloud
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/html/nextcloud/>
Options +FollowSymlinks
AllowOverride All
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/html/nextcloud
SetEnv HTTP_HOME /var/www/html/nextcloud
</Directory>
</VirtualHost>
Simpan berkas dan aktifkan konfigurasi:
1
sudo a2ensite nextcloud.conf && sudo systemctl restart apache2
Konfigurasi Nextcloud
Buka browser dan akses http://localhost/nextcloud.
Petunjuk instalasi Nextcloud akan muncul. Selama proses instalasi, atur basis data MariaDB, akun admin, dan direktori penyimpanan data. Ikuti instruksi yang diberikan.
Selesai. Sekarang, unduh aplikasi Nextcloud ke perangkat dan mulai mengunggah serta mengelola file secara mandiri.
Selain untuk home server, Nextcloud juga menjadi fondasi utama untuk pengembangan NextCrow berkat sifatnya yang open source, memberikan kontrol penuh atas data, serta fitur keamanan tingkat tinggi.
Selanjutnya, jalankan perintah berikut untuk membuat crontab baru yang akan digunakan untuk menjalankan skrip crontab Nextcloud:
1
sudo crontab -u www-data -e
Parameter -u www-data
digunakan karena server web Apache2 berjalan di atas pengguna tersebut.
Tambahkan konfigurasi berikut ke file crontab:
1
*/5 * * * * php -f /var/www/html/nextcloud/cron.php
Simpan dan keluar dari file setelah selesai.
Mengganti Alamat IP
Ubah trusted domain
di berkas config.php
:
1
sudo nano /var/www/html/nextcloud/config/config.php
Isi dari berkas tersebut akan menampilkan seperti ini:
1
2
3
4
5
6
7
8
9
$CONFIG = array (
'instanceid' => 'ocfwe8edkz4v',
'passwordsalt' => 'kf0eOXdbetRdsrobORxjkHefQoa/SJ',
'secret' => 'nl6PNO/1Yhd1ZSefWBiPBLRhucTZLXuq7fqTn1FhCixufSqm',
'trusted_domains' =>
array (
0 => 'masukkan alamat ip atau domain di sini',
),
);
Ubah Virtual Host
dengan memasukkan perintah:
1
sudo nano /etc/apache2/sites-available/nextcloud.conf
Pada bagian:
1
ServerName *masukkan ip address atau domain di sini*
Untuk mengaktifkan protokol HTTPS, tambahkan baris berikut ke dalam konfigurasi server:
1 Redirect permanent / https://ip_address
Simpan berkas dan aktifkan konfigurasi:
1
sudo a2ensite nextcloud.conf && sudo systemctl restart apache2
Mengatasi Security & setup warnings
Sistem Nextcloud secara berkala melakukan pemeriksaan keamanan dan konfigurasi untuk memastikan lingkungan operasi yang optimal. Jika terdapat peringatan keamanan atau setup, sistem akan menampilkan notifikasi di halaman admin.
Untuk menyelesaikan permasalahan yang muncul, gunakan AI atau salin pesan kesalahan spesifik dan tempelkan ke mesin pencari browser untuk menemukan solusi terkini dari komunitas Nextcloud.
Pemecahan Masalah Konfigurasi Dasar
Beberapa peringatan umum dapat diselesaikan dengan modifikasi file konfigurasi config.php
. Tambahkan atau perbarui parameter berikut sesuai kebutuhan:
1
2
3
4
5
6
'maintenance' => false,
'background_jobs_mode' => 'cron', // Ubah dari 'ajax' ke 'cron' melalui pengaturan dasar admin
'maintenance_start' => '',
'maintenance_window_start' => 1,
'memcache.local' => '\OC\Memcache\APCu',
'memcache.locking' => '\OC\Memcache\APCu',
Konfigurasi Header HSTS pada File .htaccess
Peringatan HSTS (HTTP Strict Transport Security) dapat diatasi dengan modifikasi file .htaccess
di direktori root Nextcloud. Lokasi file umumnya berada di:
/var/www/html/nextcloud/.htaccess
(Apache pada Ubuntu/Debian)/usr/share/nginx/nextcloud/.htaccess
(Nginx)
Langkah Implementasi
- Akses file
.htaccess
menggunakan editor teks dengan hak aksessudo
:1
sudo nano /var/www/nextcloud/.htaccess
- Tambahkan konfigurasi HSTS dalam blok
<IfModule mod_headers.c>
setelah direktifX-XSS-Protection
:1 2
Header onsuccess unset Strict-Transport-Security Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains; preload"
- Simpan perubahan dan restart layanan web:
- Apache:
1
sudo systemctl restart apache2
- Nginx:
1
sudo systemctl restart nginx
- Apache:
Contoh Struktur File .htaccess
yang Diperbarui
1
2
3
4
5
6
7
8
9
10
11
12
<IfModule mod_headers.c>
<IfModule mod_env.c>
...
Header onsuccess unset X-XSS-Protection
Header always set X-XSS-Protection "1; mode=block"
# HSTS Header Configuration
Header onsuccess unset Strict-Transport-Scurity
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains; preload"
...
</IfModule>
</IfModule>
Pertimbangan Keamanan
- Pastikan sertifikat SSL/TLS telah terkofigurasi dengan benar sebelum mengaktifkan HSTS
- Parameter
preload
bersifat permanen dan memerlukan komitmen jangka panjang - Untuk lingkungan dengan reverse proxy, konfigurasi HSTS mungkin perlu diterapkan di level proxy
- Selalu buat backup file konfigurasi sebelum melakukan modifikasi
Dengan menerapkan konfigurasi ini, peringatan keamanan terkait HSTS pada Nextcloud seharusnya teratasi.
Untuk peringatan keamanan lainnya, selalu merujuk kepada dokumentasi resmi Nextcloud untuk panduan penyelesaian yang terperinci.