Panduan instalasi Sovereign¶
Persiapan¶
Daftar persyaratan sebelum memulai:
- Nama domain, dapat didaftarkan pada GoDaddy - Cari Domain
- VPS Hosting, dapat dibuat pada Digital Ocean Droplets
- Debian / Ubuntu
- Memori 1Gb
Instalasi¶
Pengamanan pertama kali¶
# mengganti sandi root
passwd
# Galat locale
locale-gen en_US.UTF-8 && localedef -i en_US -f UTF-8 en_US.UTF-8
export LANGUAGE=en_US.UTF-8 && export LANG=en_US.UTF-8 && export LC_ALL=en_US.UTF-8
locale-gen en_US.UTF-8 && dpkg-reconfigure locales
echo 'export LC_ALL="en_US.UTF-8"' >> ~/.bashrc
sed -e '/SendEnv/ s/^#*/#/' -i /etc/ssh/ssh_config
update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
# Menyesuiakan zona waktu untuk server
dpkg-reconfigure tzdata
# menjalankan pembaruan
apt-get update && apt-get upgrade -y
# instalasi paket yang akan dibutuhkan
apt-get install -y \
fail2ban \
htop \
git \
logwatch \
screen \
sudo \
ufw \
unattended-upgrades
# membuang paket yang sudah tidak dibutuhkan
apt-get autoremove -y
# membuat pengguna deploy
adduser deploy
# menyiapkan kunci privat untuk koneksi ke server
mkdir -p /home/deploy/.ssh
chmod 700 /home/deploy/.ssh
# salin dan tempel kunci publik kedalam berkas ini
nano /home/deploy/.ssh/authorized_keys
# mengamankan dan memberikan akses sudo tanpa kata sandi bagi pengguna deploy
chmod 400 /home/deploy/.ssh/authorized_keys
chown deploy:deploy /home/deploy -R
# menamankan pengguna deploy
passwd deploy
echo 'deploy ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers.d/deploy
# pengaturan akses ssh
nano /etc/ssh/sshd_config
# ubah sesuaikan nilain seperti di bawah
PermitRootLogin no
PasswordAuthentication no
/etc/init.d/ssh restart
# pengaturan firewall (ufw)
ufw allow 22
ufw allow 80
ufw allow 443
ufw enable
# pembaruan bekala
nano /etc/apt/apt.conf.d/10periodic
# salin rekat baris di bawah
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";
APT::Periodic::Unattended-Upgrade "1";
# pemantauan harian server
nano /etc/cron.daily/00logwatch
# salin rekat baris di bawah
/usr/sbin/logwatch --output mail --mailto [email protected] --detail high
# restart server
shutdown -r now
Persiapan server dengan pengguna root sudah selesai, mulai sekarang kita bisa melupakan menggunakan pengguna root/
Ansible¶
sudo easy_install pip
sudo pip install ansible
git clone https://github.com/sovereign/sovereign.git
cd sovereign
group_vars/sovereign¶
nano group_vars/sovereign
# ubah sesuaikan nilai
domain: (wajib)
main_user_name: (wajib)
password_hash: (buat terlebih dahulu)
Nilai password_hash dapat dibuat terlebih dahulu dengan cara menjalankan perintah di bawah pada sesi baru
python3 -c 'import crypt; print(crypt.crypt("sandipilihananda", salt=crypt.METHOD_SHA512))'
hosts¶
Terakhir, sesuaikan nilai host.example.net pada berkas hosts menjadi naman host dari mesin atau alamat IP yang dimiliki
nano hosts
kotak.peladen.xyz
Rujukan:
- https://cloud.digitalocean.com/droplets
- http://docs.ansible.com/ansible/intro_installation.html#latest-releases-via-pip
- http://sealedabstract.com/code/nsa-proof-your-e-mail-in-2-hours/
- http://plusbryan.com/my-first-5-minutes-on-a-server-or-essential-security-for-linux-servers
Tautan: