Server ini menyediakan layanan penyimpanan objek (S3-compatible via RustFS) dan gateway akses (SFTP/FTP/HTTP via SFTPGo) dengan Caddy sebagai reverse proxy dan TLS terminator.
6.1 Instalasi Paket
6.1.1 Caddy (Reverse Proxy)
Gunakan repository resmi untuk mendapatkan versi terbaru.
Download binary resmi dan pasang sebagai service systemd.
# Download binarywget https://github.com/rustfs/rustfs/releases/latest/download/rustfs-linux-amd64 -O /usr/local/bin/rustfs
chmod +x /usr/local/bin/rustfs
# Buat user khusussudo adduser storage-user
Setup Systemd RustFS
Simpan di /etc/systemd/system/rustfs.service:
[Unit]Description=RustFS Storage ServiceAfter=network.target[Service]Type=simpleUser=storage-userWorkingDirectory=/home/storage-user# Bind ke localhost karena akan di-proxy oleh CaddyExecStart=/usr/local/bin/rustfs serve --bind 127.0.0.1:9000 --config /etc/rustfs/config.tomlRestart=always# SandboxingProtectSystem=fullPrivateTmp=yesNoNewPrivileges=yes[Install]WantedBy=multi-user.target
6.2 Konfigurasi Caddy (Reverse Proxy & SSL)
Lokasi file: /etc/caddy/Caddyfile
Caddy menangani SSL otomatis dan meneruskan trafik ke backend.
Template Konfigurasi:
storage.<YOUR_DOMAIN> { # Logging
log {
outputfile/var/log/caddy/storage_access.logformatjson } # Reverse Proxy ke RustFS (S3 API)
reverse_proxy/s3/* 127.0.0.1:9000 # Reverse Proxy ke Web Admin SFTPGo
# Memungkinkan akses HTTPS tanpa konfigurasi SSL manual di SFTPGo
reverse_proxy/admin/* 127.0.0.1:8080 # Security headers
header {
Strict-Transport-Security"max-age=31536000; includeSubDomains; preload"X-Content-Type-Options"nosniff"X-Frame-Options"DENY"Referrer-Policy"strict-origin-when-cross-origin"-Server }
}
6.3 Menggunakan Sertifikat Caddy untuk Layanan Lain
Beberapa layanan (seperti FTPS pada SFTPGo) memerlukan akses langsung ke file sertifikat. Caddy menyimpan sertifikat di /var/lib/caddy/.local/share/caddy/.
6.3.1 Izin Akses Sertifikat
Agar SFTPGo dapat membaca sertifikat Caddy:
# Tambahkan user sftpgo ke grup caddysudo usermod -aG caddy sftpgo
# Pastikan izin direktori memungkinkan grup membacasudo chmod g+rx /var/lib/caddy/.local/share/caddy
6.3.2 Konfigurasi SFTPGo (FTPS/WebDAV SSL)
Gunakan path sertifikat Caddy di /etc/sftpgo/sftpgo.json:
Catatan: Pemblokiran koneksi (remediasi) dilakukan secara otomatis pada tingkat firewall oleh crowdsec-firewall-bouncer-nftables (dikonfigurasi pada baseline), yang akan melindungi port 80, 443, 21, dan 2222.