✔ TENDANG USER MULTI LOGIN SSH

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… :P
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 :D
tendang user dropbear SSH multilogin
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. ;)

Post a Comment

Newer Post Older Post