Thursday, May 3, 2012

Bash Command System Administrator Linux

Berikut saya akan berikan beberapa tutorial dalam menggunakan bash comand shell yg diantara nya mungkin belum pernah digunakan sebelumnya .

bash command ini diantaranya hasil experiment saya dan sangat membantu sekali dalam hal manage server khususnya meningkatkan security / stabilitas server / dan beberapa diantaranya untuk guide tambahan untuk administrasi sistem .

# ps -eo user,pcpu,pmem | tail -n +2 | awk '{num[$1]++; cpu[$1] += $2; mem[$1] += $3} END{printf("NPROC\tUSER\tCPU\tMEM\n"); for (user in cpu) printf("%d\t%s\t%.2f\t%.2f\n",num[user], user, cpu[user], mem[user]) }'

Fungsi :
Melihat top / high 10 process yg sangat besar dalam penggunaan cpu dan memory server.

# for USER in `ls /var/spool/cron`; do echo "=== crontab for $USER ==="; echo $USER; done

Fungsi :
Untuk melihat siapa saja user yg memiliki cron aktif dan dijalankan di server secara rutin.

1.) Mencari files yang berada dalam zip folder tanpa harus extract dahulu.
A. ) Buat 1 file katakan lah scan.sh di root

#!/bin/bash
find /home/ -name '*.zip' | while read file
do
echo "[*] Hasil Query Dari ${file}:"
echo "==================="
unzip -l "$file" | grep
done


Note :
Misal saya mau cari kata photoshop-crack inside seluruh zip di / home user :
bagian bawah ubah text menjadi : grep photoshop-crack

B. ) Jalankan manual file pada ssh : sh scan.sh
klo untuk combine dengan cron anda bisa menambahkan pada crontab
root anda dan set mau dijalankan berapa jam sekali / hari

Deskripsi : selain zip saya juga pernah mencoba untuk tipe lain seperti rpm dan rar , jadi bisa di modifikasi sesuai kebutuhan.

# dd if=/dev/zero of=junk bs=1M count=1K

Fungsi :
Untuk merelease unused memory in server , flush temp cache buffer dalam memory server . count ini akan merelase sebesar 1 GB ram (1 M * 1k )

# find . -type f -size 0 -delete

Fungsi :
Untuk mencari file dengan ukuran 0 dan langsung menghapusnya auto.

# x=1; while [ $x = 1 ]; do process=`pgrep -u username`; if [ $process ]; then x=0; fi; done; strace -vvtf -s 256 -p $process

Fungsi :
Mencari tahu process apa saja yg sedang dilakukan / dijalankan oleh si user .

Ex : ganti username dengan nama user yg mau anda strace intip aktifitasnya.

# ps -o rss -C httpd | tail -n +2 | (sed 's/^/x+=/'; echo x) | bc

Fungsi :
Untuk mengetahui berapa banyak ram yang sedang dipakai suatu process , dalam hal ini saya mengambil sample httpd.

Ketika dijalankan cmd tsb maka akan auto calculate penggunaan memory dari seluruh process httpd tersebut diserver .

Info : anda bisa mengganti httpd dengan process lain untuk count memory usage seperti imap , mysqld , ftpd dll

# du -sk * |sort -rn |head

Fungsi :
Untuk melihat 10 list ukuran size terbesar dalam suatu folder / files

Mencari string / kata yg kita ingin cari dalam suatu files , baik PHP , GIF , HTML , CGI dsb .

# find /home/username/ -name "*".php -type f -print0| xargs -0 grep "powered by rapidleech" | uniq -c | sort -u | cut -d":" -f1 | awk '{print "Penting - tolong check files berikut " $2}' | uniq

Fungsi :
cmd diatas berfungsi untuk scanning php files dalam path si username dan mencari 1 kata / strings dalam files php yg sesuai dengan "powered by rapidleech" .

( jika ketemu maka akan ada dilistnya beserta warning ).

# find /home/username/ -name "*".php -type f -print0| xargs -0 egrep "rapidleech|c99" | uniq -c | sort -u | cut -d":" -f1 | awk '{print "Penting - tolong check files berikut " $2}' | uniq

Fungsi :
cmd diatas berfungsi untuk scanning php files dalam path si username dan mencari beberapa kata / strings dalam files php yg sesuai dengan rapidleech dan c99
( ini salah satu method yg saya gunakan untuk membuat plugin antivirus dalam cpanel).

berbeda dengan A yg hanya dapat mencari 1 pattern kata , di B ini bisa memasukan beberapa .

anda bisa memodifikasi dengan mencari kata yg sesuai untuk antisipasi misal untuk virus / rapidleech / shell attacker c99, r57 dsb.

content yg di ubah nama filesnya akan ketahuan juga nanti , jadi buka dan copas aja isi script didalamnya dan masukan query yg terkandung di dalamnya beberapa ke string pattern searching .

jadi walaupun dia rubah nama files / dir nya yg failed di locate / di find berdasarkan nama files tetep akan ke scan melalui method ini karena scan ini mencari pattern text dalam isi filesnya dan bukan dari nama filesnya.

# cat /proc/cpuinfo

Fungsi :
Untuk melihat detail cpu information .

Tracking ddos attack berdasarkan jumlah urutan IP dengan koneksi terbanyak

# netstat -ntu | awk '{print $5}' | tail --lines=+3 | cut -s -d: -f1 | sort | uniq -c | sort -n -b -r

Fungsi :
Untuk tracking ddos attack value connection > 150

ex hasil :
# IP
------------------
129 114.58.67.xx
20 114.58.67.xx

dimana 129 adalah jumlah koneksi yg di dapat dari ip 114.58.67.xx

# env LANG=C pstree -c

Fungsi :
Untuk melihat process server berdasarkan tree status

# ps aux --sort=%mem,%cpu

Fungsi:
Sortir process bedasarkan penggunaan memory dan cpu.

# chown -R username:username dir

Fungsi :
Fixed nobody user yang run wrong permission right uid .

ex : folder test pada home user andi jalan / run tanpa right permission .
untuk fix lakukan hal sbb :

# cd /home/andi/public_html
# chown -R andi:andi test

setelah selesai lakukan test eksekusi editing dan upload data pada dir tersebut.

Demikian sedikit tutorial saya mengenai beberapa bash cmd yg mungkin bisa membantu anda dalam sistem administrasi server .

Tutorial lanjutan nanti akan saya tulis kembali berikut sensor server , dan beberapa cmd2 lainnya.

No comments:

Post a Comment