building secure server

Post on 21-Jan-2018

402 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

00000

BUILDING SECURE SERVERSWISS BELLIN - KARAWANG

Minggu12 November 2017

Budi KomarudinBackbox Indonesia

PERKENALAN

– Pengajar Cyber Security di Pusdikhub TNI

Angkatan Darat, Cimahi, Bandung.

– Penggerak/Developer Open Source di

Backbox Indonesia.

– Kontributor di National Cyber Security

Defence.

– Server developer di Bnet Karawang.

Budi Komarudin

MATERI

• Pengamanan System Operasi

• Pengamanan Webserver

• Pengamanan SSH

• Pengamanan Database

• Pengamanan Web Application

• Tips Mengamankan Server

PENGAMANAN SYSTEM

OPERASI

• Tentukan system operasi yang menurut kita

lebih baik

• Update & upgrade paket yang terinstall di

server

• Bedakan password antara akun satu dengan

akun yang lain

• Cek log aktivitas di dalam system operasi

• Blok Ip yang mempunyai request terbanyak

• Install antivirus pada server

Review tentang System

Operasi Server

Arch-Kecepatan transfer sangat besar-Arsip exploitasi publik sangat sedikit-Repository database aplikasi ter up to date-Penggunaan resource sangat sedikit-Konfigurasi aplikasi terseting aman secara default

Review tentang System

Operasi Server

OpenBSD-Bisa meminimalisir serangan ddos-Konfigurasi aplikasi terseting lebih aman-Penggunaan disk sangat kecil

Review tentang System

Operasi Server

Review tentang System

Operasi Server

Fedora-Bisa meminimalisir serangan ddos-Repository database aplikasi ter up to date-Punya fitur anti jumping server

Update System

Ubuntu/Debian$ apt update$ apt upgrade

Centos/Fedora$ yum update$ yum upgrade

Slackware$ slackpkg update$ slackpkg upgrade

Arch LInux$ pacman -Syu

OpenBSD$ pkg_add -u

FreeBSD$ pkg update$ pkg upgrade

Kasus Tidak Membedakan

Password

Cek Aktivitas Server

$ lastlog$ history$ tailf -f /var/log/apache2/access.log$ sysdig -c spy_users$ logwatch$ watch netstat --inet$ netstat -ntulp

Cek Aktivitas Port

Instal tsusen$ apt-get install git python-pip python-pcapy screen$ pip install python-geoip python-geoip-geolite2$ git clone https://github.com/stamparm/tsusen

Cara eksekusi$ screen$ cd tsusen$ python tsusen.py

Cek Aktivitas Port

Blok IP Attacker

$ ufw insert 1 deny from 8.8.8.8 to any$ iptables -A INPUT -s 8.8.8.8 -j DROP

Pasang Antivirus

• maldet• clamav• rkhunter• chkrootkit

Pasang Antivirus

$ wget http://www.backboxindonesia.or.id/tmp/maldetect-current.tar.gz$ tar -xf maldetect-current.tar.gz$ cd maldetect-1.6.2/$ bash install.sh$ maldet -a

$ apt install clamav$ clamscan

$ apt install rkhunter$ rkhunter --check

$ apt install chkrootkit$ chkrootkit

PENGAMANAN WEBSERVER

• Sembunyikan versi web server

• Non aktifkan directory listing

• Batasi trafik masuk di setingan web server

Sembunyikan Versi

Aplikasi

$ nano /etc/apache2/conf-available/security.confSet jadi:-ServerToken Prod-ServerSignature Off

Restart apache/etc/init.d/apache2 restart

Sembunyikan Versi

Aplikasi

Sembunyikan Versi

Aplikasi

Nonaktifkan Directory Listing

Hapus script Indexes pada configurasi apache

$ nano /etc/apache2/apache2.confSet jadi:<Directory /var/www/>

Options FollowSymLinksAllowOverride None Require all granted

</Directory>

Nonaktifkan Directory Listing

Nonaktifkan Directory Listing

Batasi Trafic Masuk

$ nano /etc/apache2/apache2.confSet variable pada system-TimeOut 300-MaxClients 100-KeepAliveTimeout 60-LimitRequestFieldSize 500000

$ iptables -I INPUT -p icmp -j DROP

PENGAMANAN SSH

• Rubah port default menjadi port acak

• Jangan set password untuk user root

• Batasi hak akses setiap user saat

menginputkan password yang salah

Ganti Port SSH

$ nano /etc/ssh/sshd_configTambah script:-Port 45012

Restart service ssh/etc/init.d/ssh restart

Batasi Input Password

$ nano /etc/ssh/sshd_configTambah script:-MaxAuthTries 5

Restart service ssh/etc/init.d/ssh restart

SECURING DATABASE

• Gunakan firewall database

• Non aktifkan remote database

• Gunakan password saat mengakses halaman

phpmyadmin

Firewall Database

Installasi$ wget http://www.backboxindonesia.or.id/tmp/dbshield_1-2_amd64.deb$ dpkg -i dbshield_1-2_amd64.deb

$ DBShield

Rubah konfigurasi database yang tadinya port 3306 menjadi port 5000

Firewall Database

DEMO SESSION

Nonaktifkan Remote Database

$ nano /etc/mysql/mysql.conf.d/mysqld.cnf Gantibind-address = 127.0.0.1$ /etc/init.d/mysql restart

Nonaktifkan Remote Database

Password di PHPMyAdmin

$ nano /usr/share/phpmyadmin/index.phpTambahkan script ini:<?php$valid_passwords = array ("jangan" => "diheked");$valid_users = array_keys($valid_passwords);$user = $_SERVER['PHP_AUTH_USER'];$pass = $_SERVER['PHP_AUTH_PW'];$validated = (in_array($user, $valid_users)) && ($pass == $valid_passwords[$user]);

if (!$validated) {header('WWW-Authenticate: Basic realm="My Realm"');header('HTTP/1.0 401 Unauthorized');die ("Mau ngapain hayooo...");

}

Password di PHPMyAdmin

SECURING WEB APPLICATION

• Pasang SSL di web server

• Buat halaman login palsu

• Rubah alamat admin login menjadi halaman

acak

• Buat rule user agent di halaman admin

Pasang SSL di Server

https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-ubuntu-16-04

Pasang SSL di Server

DEMO SESSION

Halaman Login Palsu

Halaman Login Palsu

Alamat url Admin Acak

Rule User Agent

$ nano /var/www/html/admin/index.phpTambahkan script ini:<?php$ua=$_SERVER['HTTP_USER_AGENT'];if($ua == 'secret'):else:echo "Mau ngapain hayoo..";die();endif;

TIPS MENGAMANKAN SERVER

• Bikin rule port yg di buka di firewall

• Nonaktifkan shell pada user yang aktif

• Hack back attacker

Rule Port Firewall

$ ufw enable$ ufw allow 80$ ufw allow 22$ ufw allow 21

Nonaktifkan Shell

$ usermod user -s /bin/falseatau$ usermod user -s /bin/jk_shell

Hack Back Attacker

SEKIAN......

top related