Monday, April 25, 2011

.:: Expect (Komunikasi program dengan program) ::.

#!/usr/bin/expect -f
# Password change shell script, tested on Linux and FreeBSD
# ----------------------------------
# It need expect tool. If you are using Linux use following command
# to install expect
# apt-get install expect
# FreeBSD user can use ports or following command:
# pkg_add -r -v expect
# ----------------------------------
# If you are using linux change first line
# From:
#!/usr/local/bin/expect -f
# To:
#!/usr/bin/expect -f
# -------------------------------------------------------------------------
# display usage

# script must be run by root user
set whoami [exec id -u]
if {$whoami!=0} {
send_user "You must be a root user to run this script\n"
exit
}
#
set timeout -1
match_max 100000
# stopre password
set password [lindex $argv 1]
# username
set user [lindex $argv 0]
# opem shell
spawn $env(SHELL)
# send passwd command
send -- "passwd root\r"
expect "assword:"
send "rahasia\r" ------> Misal : "rahasia" adalah password baru anda
expect "assword:"
send "rahasia\r" ------> Untuk pengulangan input karakter/ retype password
send "\r"
expect eof
Yakz...pada initinya kita ingin merubah password root dengan program. Program ini berguna bila di suatu sistem ada banyak admin yang ingin merubah password root sesuai kehendaknya, tapi ketika dijalankan script ini, password root akan berubah kembali ke asal.

NB : Bila program expect belum ada, install dahulu. Kalau menggunakan Yum bisa ketikkan #yum install expect.

Lumayan, ilmu baru....

Selengkapnya....

.:: Mencari kata dalam banyak file ::.

Terkadang kita harus mencari sesuatu kata yang ada di dalam banyak file,cukup merepotkan bila kita harus membuka satu persatu file. Ada cara yang lebih efektif untuk melakukan hal tersebut, yaitu menggunakan tool find. Berikut commandnya :
[root@web htdocs]# find . -type f -name '*.php' | xargs grep -lin "select";
Dalam hal ini, kita akan mencari kata "select" dalam banyak file .php. Dan berikut hasilnya :
./cargo/booking/void.class.php
./cargo/booking/booking.class.tradisi.php
./cargo/booking/booking.class.php
./cargo/booking/SmuIntr.php
./cargo/user/user.class.php
./cargo/public_class/function.php
./PAYMENTS/avtur/Approve_Head_Ho.php
./marketingNya/CargoloadProses.php
./marketingNya/cargoruteagentglproses_3ktolwu2l8.php
./marketingNya/cargoruteagentglproses_3kt21wu2l7.php
Dalam file-file tersebutlah ada kata yang dimaksud ("select"). Mungkin agar lebih enak untuk dilihat,kita bisa mendumping output ke dalam sebua file, berikut commandnya :
[root@web htdocs]# find . -type f -name '*.php' | xargs grep -lin "select" > /home/hasil.txt
Output list file akan masuk ke file hasil.txt di folder /home.

Yakz...sederhana tapi cukup membatu bukan..

Selengkapnya....

Sunday, March 20, 2011

.:: Persistent routing di Linux (CentOS) ::.

Adakalanya dalam suatu intranet yang kompleks terdiri dari banyak blok IP yang membentuk network sendiri. Oleh karena itu diperlukan banyak juga router untuk mengatasinya.
Ditempat saya ada beberapa server yang diakses dari banyak blok network yang ada di dalam intranet tersebut. Anehnya, ketika dari sisi jaringan (dalam hal ini router) telah meng-allow blok network client mengakses ke server,tapi si server tidak memberikan respon sebagaimana umumnya.
Dalam hal ini,routing rule di sisi server berlaku. Berikut contoh routing table di salah satu server yang saya kelola :

Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
202.152.54.64 0.0.0.0 255.255.255.240 U 0 0 0 eth2
10.97.53.0 192.99.99.253 255.255.255.0 UG 0 0 0 eth0
30.30.30.0 192.99.99.253 255.255.255.0 UG 0 0 0 eth0
10.100.156.0 192.99.99.253 255.255.255.0 UG 0 0 0 eth0
202.202.202.0 192.99.99.253 255.255.255.0 UG 0 0 0 eth0
192.96.96.0 192.99.99.253 255.255.255.0 UG 0 0 0 eth0
10.10.10.0 192.99.99.253 255.255.255.0 UG 0 0 0 eth0
10.10.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.99.99.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.97.97.0 192.99.99.253 255.255.255.0 UG 0 0 0 eth0
192.99.0.0 192.99.99.253 255.255.0.0 UG 0 0 0 eth0
10.101.0.0 192.99.99.253 255.255.0.0 UG 0 0 0 eth0
10.102.0.0 192.99.99.253 255.255.0.0 UG 0 0 0 eth0
192.101.0.0 192.99.99.253 255.255.0.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth2
0.0.0.0 202.152.54.65 0.0.0.0 UG 0 0 0 eth2

Terlihat banyak sekali bukan ? Pertanyaannya routing table tersebut akan hilang ketika kita restart mesin server tersebut. Lalu bagaimana caranya agar routing table tersebut menjadi persistent ?
Caranya adalah membuat suatu file yang berisi rangkuman seluruh informasi routing yang berlaku pada interface ethernet yang akan digunakan, file tersebut nantinya akan dinamakan sebagai route-(interface), misal route-eth0. Itu berarti isi informasi routing dalam file route-eth0 tersebut akan berlaku pada interface eth0. File tersebut harus diletakan pada /etc/sysconfig/network-scripts. Sehingga pathnya menjadi /etc/sysconfig/network-scripts/route-eth0.

Berikut isi file di route-eth0 di sisi saya :
#nano
/etc/sysconfig/network-scripts/route-eth0
GATEWAY0=192.99.99.253
NETMASK0=255.255.0.0
ADDRESS0=192.99.0.0

GATEWAY1=192.99.99.253
NETMASK1=255.255.255.0
ADDRESS1=30.30.30.0

GATEWAY2=192.99.99.253
NETMASK2=255.255.255.0
ADDRESS2=192.97.97.0

GATEWAY3=192.99.99.253
NETMASK3=255.255.255.0
ADDRESS3=192.96.96.0

GATEWAY4=192.99.99.253
NETMASK4=255.255.0.0
ADDRESS4=192.101.0.0

GATEWAY5=192.99.99.253
NETMASK5=255.255.255.0
ADDRESS5=10.100.156.0

GATEWAY6=192.99.99.253
NETMASK6=255.255.255.0
ADDRESS6=202.202.202.0

GATEWAY7=192.99.99.253
NETMASK7=255.255.0.0
ADDRESS7=10.101.0.0

GATEWAY8=192.99.99.253
NETMASK8=255.255.0.0
ADDRESS8=10.102.0.0

GATEWAY9=192.99.99.253
NETMASK9=255.255.255.0
ADDRESS9=10.97.53.0

Di sana terlihat jelas informasi routing yang akan digunakan. Dan jangan khawatir bila mesin server restart, informasi ini otomatis aka terload di routing table dan anda tidak perlu mengetik ulang kembali informasi routing ke routing table lagi.

Selengkapnya....

.:: Open port di Linux ::.

Gak banyak tulisan, mau catat dulu aja, ntar redaksionalnya dibikin belakangan. Perintah ini sangat berguna untuk membuka suatu port di lingkungan sistem operasi GNU/Linux,misal kita ingin membuka port 9134, perintahnya adalah :
#nc -l 9134
Perintah diatas akan membuka(listen) port disemua interface.
#nc -l 127.0.0.1 9134
Perintah diatas akan membuka(listen) port di interface localhost.
Tinggal disesuakan saja dengan kebutuhan, port tersebut akan dilisten kemana.

Sedikit catatan, nc itu paket netcat. Oke segitu aja dulu, ntar diedit dah..!!

Selengkapnya....

Saturday, March 12, 2011

.:: Kapan terakhir user mengganti password ::.

Mau taruh sedikit catatan aja, bagaimana cara melihat kapan terakhir user di linux kita mengganti passwordnya. Hal ini saya tulis karena kemarin ada user yang merasa terganti passwordnya,tetapi dia lupa kapan dia menggantinya.

Langsung saja perintahnya seperti ini (dalam CentOS 5.5 x64) :
#cut -d: -f1 /etc/passwd | while read line; do echo -n $line; \
chage -l $line | head -1 | awk -F: '{print $2}'; done
Maka hasilnya seperti ini :

root Feb 25, 2011
bin Feb 25, 2011
daemon Feb 25, 2011
adm Feb 25, 2011
lp Feb 25, 2011
sync Feb 25, 2011
shutdown Feb 25, 2011
halt Feb 25, 2011
mail Feb 25, 2011
news Feb 25, 2011
uucp Feb 25, 2011
operator Feb 25, 2011
games Feb 25, 2011
gopher Feb 25, 2011
ftp Feb 25, 2011
nobody Feb 25, 2011
nscd Feb 25, 2011
distcache Feb 25, 2011
vcsa Feb 25, 2011
pcap Feb 25, 2011
apache Feb 25, 2011
rpc Feb 25, 2011
ntp Feb 25, 2011
webalizer Feb 25, 2011
oprofile Feb 25, 2011
squid Feb 25, 2011
mailnull Feb 25, 2011
smmsp Feb 25, 2011
rpcuser Feb 25, 2011
nfsnobody Feb 25, 2011
named Feb 25, 2011
sshd Feb 25, 2011
dbus Feb 25, 2011
avahi Feb 25, 2011
xfs Feb 25, 2011
haldaemon Feb 25, 2011
avahi-autoipd Feb 25, 2011
gdm Feb 25, 2011
sabayon Feb 25, 2011
mysql Feb 27, 2011

Ok,sudah terlihat kan kapan terakhir usernya (misal:root) mengganti passwordnya.

Semoga bermanfaat.
:ngacir:

Selengkapnya....

Wednesday, February 23, 2011

.:: Menambah User Kedalam Sudoer ::.

Naruh catatan aja, supaya user biasa mempunyai hak login sebagai root dan mempunyai priviledge sebagaimana root. Untuk alasan keamanan sebaiknya kita menggunakan sudo daripada login sebagai root, dengan sudo user biasa bisa mengeksekusi perintah-perintah yang bisa dijalankan oleh root, dengan bantuan sudo. Jika sudo belum ada didalam sistem, download dulu dari repository.

Disini gw menggunakan distro centos, berikut caranya :

1. Edit file /etc/sudoers
2. Temukan baris root (ALL)=ALL ALL
3. Misal user yang akan ditambahkan adalah norman.
maka tambhkan dibawahnya menjadi :
root (ALL)=ALL ALL
norman (ALL)=ALL ALL

4.Jika ingin user norman dapat login dengan perintah sudo tanpa memasukkan password, dapat merubah bari diatas menjadi :
root (ALL)=ALL ALL
norman (ALL)=NOPASSWD: ALL


Segitu aja dulu, semoga bermanfaat.

Selengkapnya....

Saturday, January 15, 2011

.:: Melihat server-status di Apache ::.

Sekedar catatan aja biar gak lupa dikemudian hari, yaitu untuk melihat server status web server Apache. Langsung aja ke langkah-langkahnya :

1. Buka file httpd.conf
#nano /usr/local/apache2/conf/httpd.conf

2. Tambahkan direktif dibawah ini kedalam file tersebut (letakkan paling bawah)

SetHandler server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1 192.99.122.120 192.99.122.150 10.10.10.0/24 10.10.11.0/24

Atau bisa juga menggunakan domain :

SetHandler server-status
Order deny,allow
Deny from all
Allow from mrtg.norman.net mon.abc.com

3. Agar mendapat info status yang lebih detail, tambahkan juga direktif dibawah ini
ExtendedStatus On

Link sekedar referensi : http://www.cyberciti.biz/faq/apache-server-status/

Selengkapnya....

Saturday, September 18, 2010

.:: Melihat command apa yang sering digunakan ::.

Terkadang kita ingin melihat perintah apa saja yang sering kita gunakan sewaktu bekerja dalam terminal/shell. Ini ada sebaris perintah yang dapat digunakan untuk melihat statistik nya :

#history | awk '{a[$2]++}END{for(i in a){print a[i] " " i}}' | sort -rn | head

Dari perintah diatas, akan didapatkan output seperti dibawah pada mesin yang saya gunakan :

234 ls
116 cd
83 nano
55 yum
34 tail
28 cat
26 dig
24 poweroff
21 /etc/init.d/httpd
19 find

Ket : Kolom pertama adalah informasi banyaknya perintah dijalankan, sedangkan kolom kedua ada perintahnya.

Semoga bermanfaat,

Selengkapnya....

Wednesday, August 11, 2010

.:: Samba standalone sharing server dengan backend tdbsam ::.

Postingan kali ini saya akan coba mendokumentasi cara membuat sharing server (tentunya dengan samba) dengan protokol SMB serta bagaimana untuk menambahkan pengguna. Jadi, setiap pengguna akan memiliki direktori home sendiri yang dapat diakses melalui protokol SMB dan semua pengguna akan memiliki direktori bersama dengan akses read/write. Dalam kasus ini saya menggunakan sistem operasi Linux CentOS 5.4 32 bit.

1. Install Samba

- Pastikan repository telah diset dengan benar :
#yum install cups-libs samba samba-common
- Edit file smb.conf
#nano /etc/samba/smb.conf
- Edit parameter security menjadi user dan passdb backend = tdbsam di section [global]
[...]
# ----------------------- Standalone Server Options ------------------------
#
# security = the mode Samba runs in. This can be set to user, share
# (deprecated), or server (deprecated).
#
# passdb backend = the backend used to store user information in. New
# installations should use either tdbsam or ldapsam. No additional configuration
# is required for tdbsam. The "smbpasswd" utility is available for backwards
# compatibility.
#

security = user
passdb backend = tdbsam


[...]
Hal ini memungkinkan pengguna Linux sistem untuk log in ke server Samba.

- Buat aktif saat startup dan jalankan service samba
#chkconfig --levels 235 smb on
#/etc/init.d/smb start

2. Membuat folder share

- Buat folder yang dapat diakses oleh semua user yang terdaftar pada samba server dan ubah kepemilikan group menjadi group users.
#mkdir -p /home/shares/allusers
#chown -Rf root:users /home/shares/allusers/
#chmod -Rf ug+rwx,o+rx-w /home/shares/allusers/
- Edit file /etc/samba/smb.conf dan tambahkan line berikut pada akhiran
[allusers]
comment = All Users
path = /home/shares/allusers
valid users = @users
force group = users
create mask = 0660
directory mask = 0771
writable = yes
-
Jika Anda ingin semua pengguna untuk dapat membaca dan menulis ke direktori home mereka melalui Samba, tambahkan baris berikut ke /etc/samba/smb.conf.
[homes]
comment = Home Directories
browseable = no
valid users = %S
writable = yes
create mask = 0700
directory mask = 0700
- Restart samba
/etc/init.d/smb restart

3.
Menambahkan Dan Mengelola Pengguna

- Dalam kasus ini saya menambahkan user norman dan memasukkan ke group users (system)
#useradd norman -m -G users
- Buat password untuk user norman
#passwd norman
- Sekarang tambahkan user norman kedalam database user samba.
#smbpasswd -a norman
- Masukkan password ketika diminta memasukkan password untuk user samba.

Sekarang anda semestinya bisa login dari workstation Windows Anda dengan explorer (ketik \\ip_address_server pada kolom address) menggunakan username dan password (dalam hal ini user = norman ) yang dipilih dan disimpan pada database user samba server.

Semoga berguna,

Link : http://howtoforge.com/fedora-13-samba-standalone-server-with-tdbsam-backend

Selengkapnya....

Wednesday, July 21, 2010

.:: Instalasi MRTG di CentOS 5.4 ::.

MRTG (Multi Router Traffic Graph) adalah aplikasi yang digunakan untuk memantau beban trafik pada link jaringan. MRTG akan membuat halaman HTML yang berisi gambar .PNG yang mengambarkan trafik melalui jaringan secara harian, mingguan, bulanan dan tahunan. MRTG dibuat oleh Tobias Oetiker menggunakan Perl dan C dan tersedia untuk sistim operasi UNIX dan Windows NT.

Informasi yang didapat baik dari perangkat router ataupun interface ethernet mesin server adalah dari SNMP yang dibroadcast oleh perangkat tersebut. Dari informasi itulah dapat digenerate menjadi graphic dan disajikan dalam tampilan web. Karena disajikan dalam tampilan web, maka sebelumnya dibutuhkan aplikasi Web Server.

 

INSTALASI

Terlebih dahulu install paket yang dibutuhkan ":

net-snmp-utils
net-snmp-devel
zlib
libpng
gd
httpd
mrtg

Lalu install, dalam shell ketikan :

#yum install net-snmp-utils net-snmp-devel zlib libpng gd httpd mrtg

Hidupkan service httpd :

#service httpd restart

 

KONFIGURASI MRTG

1. Buat folder mrtg di bawah folder htdocs web server, dalam hal ini terdapat di /var/www/html/ :

#mkdir /var/www/html/mrtg

2. Lalu masukkan perangkat yang akan dimonitor traffic nya, dalam hal ini saya akan memonitoring traffic web server dengan informasi community dari snmp agentnya adalah public (sebelumnya install & konfigurasi SNMP pada web server dan pada informasi community berikan string public) :

#cfgmaker –-global ‘WorkDir: /var/www/html/mrtg’ --output /etc/mrtg/10.10.10.1.cfg  public@10.10.10.1

3. Periksa apakah file 10.10.10.1.cfg sudah berhasil dibuat di /etc/mrtg/ ? Jika sudah ada, kita bisa lanjut ke langkah di bawah ini :

#mrtg /etc/mrtg/10.10.10.1.cfg

4. Jika tampil pesan error seperti berikut :

———————————————————————–

ERROR: Mrtg will most likely not work properly when the environment

variable LANG is set to UTF-8. Please run mrtg in an environment

where this is not the case. Try the following command to start:

env LANG=C /usr/bin/mrtg /etc/mrtg/10.10.10.1.cfg

———————————————————————–

Jalankan perintah dibawah ini :

#env LANG=C  /usr/bin/mrtg  /etc/mrtg/10.10.10.1.cfg

Maka hasilnya kurang lebih akan seperti dibawah ini :

20-05-2009 18:34:23, Rateup WARNING: /usr/bin/rateup could not read the primary log file for 10.10.10.1_1

20-05-2009 18:34:23, Rateup WARNING: /usr/bin/rateup The backup log file for 10.10.10.1_1 was invalid as well

20-05-2009 18:34:23, Rateup WARNING: /usr/bin/rateup Can’t remove 10.10.10.1_1.old updating log file

5. Di dalam folder /var/www/html/mrtg akan tebentuk file image berbentuk .png. Lalu kita buat file index.html agar bisa terbaca oleh web server dengan perintah :

#indexmaker

--output=/var/www/html/mrtg/index.html /etc/mrtg/10.10.10.1.cfg

Coba arahkan browser ke : http://192.168.99.230/mrtg

6. Edit file /etc/mrtg/10.10.10.1.cfg dan tambahkan direktif untuk interval dan refresh mejadi seperti ini :

EnableIPv6: no

WorkDir: /var/www/html/mrtg

Interval:5

Refresh:300

7. Agar bisa termonitor setiap 5 menit sekali, maka bisa ditambahkan di dalam cronjob, serperti berikut :

#crontab –e

lalu tambahkan baris ini :

*/5 * * * * env LANG=C /usr/bin/mrtg /etc/mrtg/10.10.10.1.cfg

Sampai disini sudah selesai.

**Cat Khusus : Kita bisa menambahkan perangkat yang lain untuk dimonitor dengan mengikuti langkah nomor 2(sesuaikan IP address), 3, 4(sesuaikan IP address), 6(sesuaikan IP address), dan 7. Kenapa melewati langkah ke-5, karena kita akan menampilkan output graphic per masing-masing device dalam 1 file index.html. Lalu pada file index.html kita custom pada baris yang menampilkan graphic, lalu berikan tag </td></tr> agar graphic telihat rapi kebawah.

 

Sumber: http://1100060884.blog.binusian.org/2009/05/20/instalasi-mrtg-pada-centos-53/

Selengkapnya....