13 Agt 2016

Cara Blokir Semua Trafik Kecuali SSH Dengan IP Tables

Adlinux - Berikut cara blokir semua trafik yang masuk (incoming traffic) ke system menggunakan IP Tables. Dalam konfigurasi berikut semu... thumbnail 1 summary
Adlinux - Berikut cara blokir semua trafik yang masuk (incoming traffic) ke system menggunakan IP Tables. Dalam konfigurasi berikut semua trafik masuk ke system akan diblokir kecual koneksi SSH.

Berikut langkah-langkahnya.

Masukkan rules berikut ke shell script iptables
/sbin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

Keterangan:

Rule pertama akan menerima koneksi tcp yang masuk (INPUT) pada port 22 (ssh server). Dan rule yang ke dua akan mengirim response dari server ssh yang masuk (incoming ssh server) ke client (OUTPUT) dari server SSH kita pada port 22.

Berikut script lengkapnya:
#!/bin/sh
# My system IP/set ip address of server
SERVER_IP="67.65.15.23"
# Flushing all rules
iptables -F
iptables -X
# Setting default filter policy
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
# Allow unlimited traffic on loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
 
# Allow incoming ssh only
iptables -A INPUT -p tcp -s 0/0 -d $SERVER_IP --sport 513:65535 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -s $SERVER_IP -d 0/0 --sport 22 --dport 513:65535 -m state --state ESTABLISHED -j ACCEPT
# make sure nothing comes or goes out of this box
iptables -A INPUT -j DROP
iptables -A OUTPUT -j DROP

Script firewall di atas benar-benar sangat ketat. Hanya koneksi SSH yang diperbolehkan masuk. Tidak ada koneksi lain diperbolehkan masuk ke system seperti incoming service atau ping request tidak ada outgoing service atau request diperbolehkan. Koneksi ssh masuk dapat berupa koneksi baru atau koneksi established yang dispesifikasikan oleh state rule ‘-m state –state NEW,ESTABLISHED’. Hanya Koneksi outgoing SSH yang dapat di established. Defaultnya script ini mebolehkan setiap orang masuk ke system dengan koneksi SSH dengan rule -s 0/0. Jika Anda ingin membatasi koneksi hanya untuk IP tertentu dapat dirubah sebagai berikut:

# Allow incoming ssh only from IP 202.54.1.20
iptables -A INPUT -p tcp -s 202.54.1.20 -d $SERVER_IP --sport 513:65535 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -s $SERVER_IP -d 202.54.1.20 --sport 22 --dport 513:65535 -m state --state ESTABLISHED -j ACCEPT

Lihat juga 25 Konfigurasi Keamanan PHP Terbaik Untuk Sysadmin