Anda jualan SSH ya? Nah sebagai seller tentunya anda pernah atau
masih merasa was-was dengan adanya perilaku nakal ( = baca: setia kawan)
dari user yg membagi akun yg dibeli dari anda ke orang2 lain, dengan
kata lain akan terjadi multiple-login dari 1 akun tsb. Secara teori itu
akan menyebabkan anda rugi secara ga langsung… Potensi profit yg
seharusnya lebih tapi akhirnya ga maksimal. Jika 1 akun dibagi ke 5
orang maka anda mengalami rugi karena seharusnya profit yg anda dapat 6 x
harga sewa menjadi 1 saja. Plus kerugian lain yaitu pemborosan
resources (ram, bandwidth) pada VPS yg anda sewa untuk bisnis tunneling.
Dari yg saya tahu… meskipun cuma sok tahu, banyak ssh seller yg hanya
sekedar melarang user utk multi-login dan itu wujudnya hanyalah
himbauan, sekedar slogan atau authentication banner saja, tanpa ada
upaya preventif untuk mencegah user yg nakal seperti ini. Hasilnya?
Tentu saja user masih bisa dengan bebas membagi akunnya ke para
tetangga. Seller bisa saja mengambil tindakan tegas namun akan banyak
menguras energi kalo tiap saat harus memelototi layar putty melihat
siapa yg multi-login dan menjalankan kill -9 bertubi2.
Well, sekarang saatnya anda melindungi aset bisnis berjualan SSH anda
dengan langkah yg lebih paten, lebih dari sekedar himbauan untuk tidak
multi-login tapi juga tindakan yg akan dipatuhi oleh customer anda.
Berikut ini adalah contoh yg bisa anda lakukan untuk memperketat user
dalam menggunakan tunneling.
Jurus tendangan maut ini saya ujicobakan pada sebuah VPS dg OS Debian
7.1 32 bit, jadi bagi yg pake OS lain misal CentOS harap menyesuaikan
sendiri. Script membatasi user ini originally ditulis oleh om
mikodemos
dan saya edit seperlunya plus sedikit oprekan di server agar berjalan
secara auto. OK mari kita mulai oprek server, pertama buatlah file
misalnya bernama “tendang” di dalam /usr/bin…
vim /usr/bin/tendang
Selanjutnya copas mantra jahat berikut ini dengan benar kedalam file “tendang” tsb:
#!/bin/bash
# Credit: om mikodemos
# Saya edit dikit meskipun saya
# ga paham bash programming hehehe
PARAM=$1
echo -n > /tmp/pid2
ps ax|grep dropbear > /tmp/pid
cat /tmp/pid | grep -i 'dropbear -p' > /tmp/pids
cat /var/log/auth.log | grep -i "Password auth succeeded" > /tmp/sks
perl -pi -e 's/Password auth succeeded for//g' /tmp/sks
perl -pi -e 's/dropbear//g' /tmp/sks
cat /tmp/pid | while read line;do
set -- $line
p=$1
var=`cat /tmp/sks | grep -i $1`
set -- $var
l=$6
if [ "$6" != '' ]
then
echo "$p $l" | cat - /tmp/pid2 > /tmp/temp && mv /tmp/temp /tmp/pid2
fi
done
echo -n > /tmp/user1
cat /tmp/pid2 | while read line;do
set -- $line
p=$1
u=$2
cat /tmp/user1 | grep -i $u > /dev/null
if [ $? = 1 ];then
echo $line >> /tmp/user1
else
kill $p
echo "kill $p user $u"
fi
done
rm -f /tmp/pid
rm -f /tmp/pid2
rm -f /tmp/pids
rm -f /tmp/sks
rm -f /tmp/user1
exit 0
Kalau sudah, agar file tsb bisa dieksekusi menjadi sebuah command, buatlah menjadi executable dg membisikkan mantra:
chmod +x /usr/bin/tendang
Script ini pada dasarnya berfungsi untuk membatasi user agar login HANYA dari 1
instance
saja. Saat saya ujicoba dg menjalankan 2 Bitvise bersamaan di sebuah PC
menggunakan data user yg sama, dan kemudian saya ketik “tendang” di
console yg terjadi adalah salah satu koneksi di Bitvise tsb akan
disconnect. Nahhhhh…. biar ga harus manual ngetik “tendang” sambil
pelototin layar putty 24 jam, saya akan manfaatkan crontab utk
mengeksekusi script tsb tiap menit.
vim /etc/crontab
Lalu tambahkan jurus berikut ini:
* * * * * root /usr/bin/tendang
Entry crontab tsb artinya ialah setiap 1 menit root akan menjalankan
script tendang! Sip kan? Jangan lupa restart cron setelah menambahkan
jurus tendangan maut tsb. Selanjutnya jika ada user yg login lebih dari
satu maka dia akan secara otomatis menderita tendangan bertubi2 tiap
menit, jika multi-login sebanyak 2x maka keduanya akan disconnect
bergantian tiap menit. Bitvise memang memberi opsi untuk auto-reconnect
jika terjadi dc… maka saya akan berikan trik lebih kejam agar bisa
menendang setiap 5 detik! Bersiaplah! Rasakan pembalasanku…
Sebenernya satuan waktu terkecil yg bisa dijalankan oleh crontab
adalah 1 menit artinya anda ga akan bisa menjalankan perintah yg ingin
dijalankan kurang dari 1 menit.. but here’s the dirty trick:
* * * * * root /usr/bin/tendang
* * * * * root sleep 5; /usr/bin/tendang
* * * * * root sleep 10; /usr/bin/tendang
* * * * * root sleep 15; /usr/bin/tendang
tambahkan lagi dst… sampe sleep 55;
Simpen kembali primbon crontab tsb dan restart. Lakukan test dg login
di 2 Bitvise dg data user yg sama (lakukan dari 1 pc ga perlu pinjem pc
tetangga) dan silahkan berhitung mundur… 5..4..3..2..1 gubrakkkk kedua
Bitvise akan bergantian dc terus menerus tiap 5 detik dan baru akan
terhindar dari tendangan jika salah satu Bitvise sudah logout/exit.
Hahahahaa
Meskipun Bitvise bisa auto-reconnect tapi
dc tiap 5 detik adalah hal yg menjengkelkan dan mengesalkan dan user ga
akan bisa bener2 menikmati akses tunneling. Dengan “ancaman” seperti ini
maka saya yakin user akan menjaga akunnya baik2 agar ga dipakai lebih
dari 1 secara bersamaan. Anda kepikiran ide yg lebih galak? Ya! tentu
saja anda bisa membuat tendangan tiap detik! Sesuaikan saja sleep-nya
menjadi hitungan 1 sampai 59, namun cara ini tidak saya sarankan karena
terlalu agresif, sebaiknya sih per 15 detik saja toh dg dc per 15 detik
itu sudah hal yg sangat tidak nyaman bagi user tersangka pembagi akun
ini.
Oh dari hasil ujicoba meski presentase
sangat kecil kadang user yg single-login bisa kena tendang juga meski ga
secara kontinyu dan biasanya hanya terjadi sekali saat mulai konek.
Saya ga tau penjelasannya secara teknis karena saya juga bukan
programmer hehehee. Anyway, cara ini layak anda terapkan di VPS jika
anda adalah seorang SSH seller.
Read More