Selasa, November 06, 2007

Menggunakan .htaccess untuk otentifikasi user pada situs web

.htaccess adalah sebuah file konfigurasi pada Apache yang mengatur hal-hal yang berkaitan dengan direktori di mana file .htaccess tersebut berada.
.htaccess dapat digunakan untuk melakukan pembatasan akses pada sebuah direktori. Dengan menggunakan .htaccess, maka sebelum user dapat mengakses isi direktori tersebut, ia harus melakukan proses otentifikasi dengan memasukkan nama user dan password. Nama user dan password tersebut disimpan pada sebuah file tersendiri yang akan dirujuk oleh apache.

Jadi pertama kita harus membuat user dan password dahulu dengan menggunakan perintah htpasswd
$ sudo htpasswd -c /etc/apache2/apache-users admin
New password:

Re-type new password:

Perintah di atas akan membuat user admin dalam file /etc/apache2/apache-users.
Opsi -c (create) di atas hanya diperlukan ketika kita pertama kali membuat file password.

Setelah itu kita harus membuat file .htaccess di direktori yang akan kita lindungi.
$ sudo vim /var/www/download/.htaccess

File di atas berisi baris berikut :
AuthName "Untuk Kalangan Sendiri"
AuthType Basic
AuthUserFile /etc/apache2/apache-users
require valid-user


Pastikan file .htaccess tersebut bisa dibaca user yang menjalankan apache

Selain itu kita harus memastikan bahwa untuk situs bersangkutan, penggunaan .htaccess untuk otentifikasi diperbolehkan. Di distro Debian (distro yang lain menyesuaikan) kita harus mengedit di :
$ sudo vim /etc/apache2/sites-enabled/000-default
dan mengganti opsi pada bagian
AllowOverride None
menjadi
AllowOverride AuthConfig
dan merestart Apache

Setelah langkah di atas, bila kita mengakses http://www.situsku.com/download , maka akan muncul permintaan user dan password

Rabu, September 26, 2007

Mengatur locale di Linux Debian Etch

Locale adalah sekumpulan informasi yang digunakan kebanyakan program untuk menentukan setting spesifik berdasar negara dan bahasa. Locale dan datanya merupakan bagian dari pustaka sistem dan dapat ditemukan di /usr/share/locales pada kebanyakan sistem Linux.
Nama locale biasanya mempunyai format ab_CD di mana ab adalah kode bahasa yang terdiri dari 2 (atau 3) huruf sebagaimana dispesifikasikan di ISO-639 dan CD adalah kode negara yang terdiri dari 2 huruf seperti dispesifikasikan di ISO-3166.

Di Debian, kita dapat mengatur locale ini dengan mengetikkan perintah
# dpkg-reconfigure locales
Perintah di atas akan mengatur locale default untuk sistem berjalan

Berikut contoh ketika locale diset ke en_EN :
# locale
LANG=en_US
LANGUAGE=en_ID:en_US:en_GB:en
LC_CTYPE="en_US"
LC_NUMERIC="en_US"
LC_TIME="en_US"
LC_COLLATE="en_US"
LC_MONETARY="en_US"
LC_MESSAGES="en_US"
LC_PAPER="en_US"
LC_NAME="en_US"
LC_ADDRESS="en_US"
LC_TELEPHONE="en_US"
LC_MEASUREMENT="en_US"
LC_IDENTIFICATION="en_US"
LC_ALL=
# date
Wed Sep 26 14:50:15 WIT 2007


Ketika diset ke id_ID :
# locale
LANG=id_ID
LANGUAGE=en_ID:en_US:en_GB:en
LC_CTYPE="id_ID"
LC_NUMERIC="id_ID"
LC_TIME="id_ID"
LC_COLLATE="id_ID"
LC_MONETARY="id_ID"
LC_MESSAGES="id_ID"
LC_PAPER="id_ID"
LC_NAME="id_ID"
LC_ADDRESS="id_ID"
LC_TELEPHONE="id_ID"
LC_MEASUREMENT="id_ID"
LC_IDENTIFICATION="id_ID"
LC_ALL=
# date
Rab Sep 26 14:49:08 WIT 2007


Yang juga perlu diperhatikan adalah masing-masing user juga dapat mengatur locale-nya sendiri dengan mengetikkan perintah berikut :
$
export LANG="de_DE"
perintah di atas juga dapat dimasukkan ke .bashrc sehingga otomatis dijalankan ketika user login

Senin, September 10, 2007

Install MRTG di etch

Untuk install paket mrtg kita tinggal ketikkan
apt-get install mrtg

paket mrtg sudah membawa /etc/cron.d/mrtg, sehingga yang perlu kita lakukan tinggal

cp /etc/mrtg.cfg /etc/mrtg.cfg.old
cfgmaker passpublic@localhost > /etc/mrtg.cfg
indexmaker /etc/mrtg.cfg > /var/www/mrtg/index.html

dengan passpublic adalah community (password) dari SNMP yang diset di /etc/snmp/snmpd.conf.
Jadi sebelum kita install mrtg, pastikan paket snmpd telah terinstall dan berjalan

Halaman MRTG sudah bisa kita akses melalui http://alamat_ip/mrtg

Supaya tampilan grafik mengunakan satuan bits, maka kita perlu meng-enable option
Options[_]: growright, bits
Opsi growright di atas bermakna bahwa waktu yang lebih dulu adalah di sebelah kiri, sehingga seakan-akan grafiknya tumbuh ke arah kanan.

Catatan :
untuk mengecek apakah SNMP bekerja dengan baik, jalankan perintah berikut :
snmpwalk -Os -c passpublic -v 1 localhost system
dengan passpublic adalah community (password) dari SNMP untuk localhost
Perintah di atas akan menghasilkan keluaran sperti berikut :

sysDescr.0 = STRING: Linux frigg 2.6.18-4-686 #1 SMP Mon Mar 26 17:17:36 UTC 2007 i686
sysObjectID.0 = OID: netSnmpAgentOIDs.10
sysUpTimeInstance = Timeticks: (29668961) 3 days, 10:24:49.61
sysContact.0 = STRING: Admin
sysName.0 = STRING: frigg

Kamis, Juni 28, 2007

Setting password user pada mysql

Ketika melakukan instalasi server mysql, password root secara default adalah kosong. Untuk itu kita perlu melakukan set password root dahulu. Berikut caranya (diambil dari http://www.howtoforge.com/)
shell> mysql -u root
mysql> USE mysql;
mysql> UPDATE user SET Password=PASSWORD('password-baru') WHERE user='root';
mysql> FLUSH PRIVILEGES;
Cara di atas juga dapat digunakan untuk mengganti password user yang lain dengan mengganti user='....'
Cara lain adalah dengan mengetikkan perintah berikut dari shell
shell> mysqladmin -u root password 'password-baru'
Dari dua cara atas, aku lebih memilih cara pertama karena tidak meningggalkan bekas di history bash
Untuk mengecek apakah sudah bekerja, Anda dapat mencoba masuk ke shell mysql dengan
mysql -u root -p
catatan :
saat instalasi mysql-server di Debian, kita akan diminta mengeset password root saat Package Configuration, sehingga kita mungkin tidak perlu melakukan langkah di atas.

Sabtu, Maret 24, 2007

Membuat Dummy File di Linux

Kadang-kadang untuk keperluan pengujian sistem atau jaringan, kita memerlukan file dengan ukuran yang besar. Bagaimana kalau kita kesulitan mencari file yang besar? Cara termudah adalah membuat dummy file, dan Linux sudah menyediakan perintah dd :
$ dd if=/dev/zero of=100mega bs=10000 count=10000
10000+0 records in
10000+0 records out
100000000 bytes transferred in 0.547400 seconds (182681737 bytes/sec)
$ ls -la 100mega
-rw-r--r-- 1 chandra chandra 100000000 Mar 24 12:45 100mega
Perintah dd di atas artinya kita mengcopykan 10000 block dari zero (karakter null) terbuffer (diperoleh dari /dev/zero yang ditentukan dari opsi of=...) sebanyak 10000 kali ke file dengan nama 100mega (opsi of=...)

Pada dasarnya perintah dd berfungsi untuk menyalin dan mengkonversi data. Contoh penggunaan yang lain adalah
dd if=/dev/zero of=/dev/fd0
yang akan memformat disket floppy

Lebih lanjut dengan perintah dd, bisa dilihat di :

Jumat, Desember 08, 2006

Tips : Sorting di vim

Ini adalah operasi yang kadang-kadang kubutuhkan, dan karena cuma kadang-kadang dipakai, biasanya tidak kuingat, sehingga harus googling dulu. Akhirnya aku pikir lebih baik kutulis saja di catatan kecilku ini :
  • Memilih baris-baris yang akan diurutkan melalui mode Visual.
  • Setelah baris dipilih tekan tombol !, otomatis baris terakhir jendela vim menjadi :'<,'>!
  • Lengkapi menjadi :'<,'>!sort, maka baris-baris di atas sudah diurutkan

Pada dasarnya cara diatas menggunakan perintah sort di shell, sehingga kita bisa menggunakan :'<,'>!sort -r untuk mengurutkan dengan urutan terbalik.

Cara lain adalah seperti berikut :
  • Memilih baris-baris yang akan diurutkan melalui mode Visual.
  • Setelah baris dipilih tekan tombol :, otomatis baris terakhir jendela vim menjadi :'<,'>
  • Lengkapi menjadi :'<,'>Vissort, maka baris-baris di atas sudah diurutkan

Tips ini diambil dari

Selasa, Juni 13, 2006

Mengenai VirtualHost di apache

Pada distribusi Redhat, opsi VirtualHost dimatikan secara default.
Untuk menggunakan Name-based VirtualHost, maka httpd.conf perlu disunting sebagai berikut :

NameVirtualHost *

<VirtualHost *>
ServerAdmin webmaster@northjogja.net
DocumentRoot /var/www/html/
ServerName zeus.northjogja.net
ErrorLog logs/zeus.northjogja.net-error_log
CustomLog logs/zeus.northjogja.net-access_log common
</VirtualHost>

<VirtualHost *>
ServerAdmin webmaster@northjogja.net
DocumentRoot /var/www/html/wiki
ServerName wiki.northjogja.net
ErrorLog logs/wiki.northjogja.net-error_log
CustomLog logs/wiki.northjogja.net-access_log common
</VirtualHost>


Pada konfigurasi di atas ada dua VirtualHost, yaitu :
  • zeus.northjogja.net, yang file-filenya (Document Root) berada di /var/www/html/
  • wiki.northjogja.net, yang file-filenya (Document Root) berada di /var/www/html/wiki

Namun konfigurasi di atas tidak bisa bekerja dengan baik bila mod_ssl terpasang. Bila mod_ssl terpasang, dan konfigurasi terpasang seperti di atas, maka bila httpd direstart, akan muncul pesan error :
[error] VirtualHost _default_:443 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results

Untuk mengatasinya konfgurasi di atas harus diubah seperti berikut :

NameVirtualHost *:80
NameVirtualHost *:443

<VirtualHost *:80>
ServerAdmin webmaster@northjogja.net
DocumentRoot /var/www/html/
ServerName zeus.northjogja.net
ErrorLog logs/zeus.northjogja.net-error_log
CustomLog logs/zeus.northjogja.net-access_log common
</VirtualHost>

<VirtualHost *:80>
ServerAdmin webmaster@northjogja.net
DocumentRoot /var/www/html/wiki
ServerName wiki.northjogja.net
ErrorLog logs/wiki.northjogja.net-error_log
CustomLog logs/wiki.northjogja.net-access_log common
</VirtualHost>

<VirtualHost *:443>
ServerAdmin webmaster@northjogja.net
DocumentRoot /var/www/html/
ServerName zeus.northjogja.net
ErrorLog logs/zeus.northjogja.net-error_log
CustomLog logs/zeus.northjogja.net-access_log common
</VirtualHost>

<VirtualHost *:443>
ServerAdmin webmaster@northjogja.net
DocumentRoot /var/www/html/wiki
ServerName wiki.northjogja.net
ErrorLog logs/wiki.northjogja.net-error_log
CustomLog logs/wiki.northjogja.net-access_log common
</VirtualHost>


Untuk konfigurasi yang lebih kompleks dapat dilihat contohnya di http://httpd.apache.org/docs/2.0/vhosts/examples.html#purename