Jumat, 08 Oktober 2010

My SQL Linux Syntax untuk pemula

To login (from unix shell) use -h only if needed.

# [mysql dir]/bin/mysql -h hostname -u root -p
Create a database on the sql server.

mysql> create database [databasename];
List all databases on the sql server.

mysql> show databases;
Switch to a database.

mysql> use [db name];
To see all the tables in the db.

mysql> show tables;
To see database's field formats.

mysql> describe [table name];
To delete a db.

mysql> drop database [database name];
To delete a table.

mysql> drop table [table name];
Show all data in a table.

mysql> SELECT * FROM [table name];
Returns the columns and column information pertaining to the designated table.

mysql> show columns from [table name];
Show certain selected rows with the value "whatever".

mysql> SELECT * FROM [table name] WHERE [field name] = "whatever";
Show all records containing the name "Bob" AND the phone number '3444444'.

mysql> SELECT * FROM [table name] WHERE name = "Bob" AND phone_number = '3444444';
Show all records not containing the name "Bob" AND the phone number '3444444' order by the phone_number field.

mysql> SELECT * FROM [table name] WHERE name != "Bob" AND phone_number = '3444444' order by phone_number;
Show all records starting with the letters 'bob' AND the phone number '3444444'.

mysql> SELECT * FROM [table name] WHERE name like "Bob%" AND phone_number = '3444444';
Show all records starting with the letters 'bob' AND the phone number '3444444' limit to records 1 through 5.

mysql> SELECT * FROM [table name] WHERE name like "Bob%" AND phone_number = '3444444' limit 1,5;
Use a regular expression to find records. Use "REGEXP BINARY" to force case-sensitivity. This finds any record beginning with a.

mysql> SELECT * FROM [table name] WHERE rec RLIKE "^a";
Show unique records.

mysql> SELECT DISTINCT [column name] FROM [table name];
Show selected records sorted in an ascending (asc) or descending (desc).

mysql> SELECT [col1],[col2] FROM [table name] ORDER BY [col2] DESC;
Return number of rows.

mysql> SELECT COUNT(*) FROM [table name];
Sum column.

mysql> SELECT SUM(*) FROM [table name];
Join tables on common columns.

mysql> select lookup.illustrationid, lookup.personid,person.birthday from lookup left join person on lookup.personid=person.personid=statement to join birthday in person table with primary illustration id;
Creating a new user. Login as root. Switch to the MySQL db. Make the user. Update privs.

# mysql -u root -p
mysql> use mysql;
mysql> INSERT INTO user (Host,User,Password) VALUES('%','username',PASSWORD('password'));
mysql> flush privileges;
Change a users password from unix shell.

# [mysql dir]/bin/mysqladmin -u username -h hostname.blah.org -p password 'new-password'
Change a users password from MySQL prompt. Login as root. Set the password. Update privs.

# mysql -u root -p
mysql> SET PASSWORD FOR 'user'@'hostname' = PASSWORD('passwordhere');
mysql> flush privileges;
Recover a MySQL root password. Stop the MySQL server process. Start again with no grant tables. Login to MySQL as root. Set new password. Exit MySQL and restart MySQL server.

# /etc/init.d/mysql stop
# mysqld_safe --skip-grant-tables &
# mysql -u root
mysql> use mysql;
mysql> update user set password=PASSWORD("newrootpassword") where User='root';
mysql> flush privileges;
mysql> quit
# /etc/init.d/mysql stop
# /etc/init.d/mysql start
Set a root password if there is on root password.

# mysqladmin -u root password newpassword
Update a root password.

# mysqladmin -u root -p oldpassword newpassword
Allow the user "bob" to connect to the server from localhost using the password "passwd". Login as root. Switch to the MySQL db. Give privs. Update privs.

# mysql -u root -p
mysql> use mysql;
mysql> grant usage on *.* to bob@localhost identified by 'passwd';
mysql> flush privileges;
Give user privilages for a db. Login as root. Switch to the MySQL db. Grant privs. Update privs.

# mysql -u root -p
mysql> use mysql;
mysql> INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv) VALUES ('%','databasename','username','Y','Y','Y','Y','Y','N');
mysql> flush privileges;

or

mysql> grant all privileges on databasename.* to username@localhost;
mysql> flush privileges;
To update info already in a table.

mysql> UPDATE [table name] SET Select_priv = 'Y',Insert_priv = 'Y',Update_priv = 'Y' where [field name] = 'user';
Delete a row(s) from a table.

mysql> DELETE from [table name] where [field name] = 'whatever';
Update database permissions/privilages.

mysql> flush privileges;
Delete a column.

mysql> alter table [table name] drop column [column name];
Add a new column to db.

mysql> alter table [table name] add column [new column name] varchar (20);
Change column name.

mysql> alter table [table name] change [old column name] [new column name] varchar (50);
Make a unique column so you get no dupes.

mysql> alter table [table name] add unique ([column name]);
Make a column bigger.

mysql> alter table [table name] modify [column name] VARCHAR(3);
Delete unique from table.

mysql> alter table [table name] drop index [colmn name];
Load a CSV file into a table.

mysql> LOAD DATA INFILE '/tmp/filename.csv' replace INTO TABLE [table name] FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (field1,field2,field3);
Dump all databases for backup. Backup file is sql commands to recreate all db's.

# [mysql dir]/bin/mysqldump -u root -ppassword --opt >/tmp/alldatabases.sql
Dump one database for backup.

# [mysql dir]/bin/mysqldump -u username -ppassword --databases databasename >/tmp/databasename.sql
Dump a table from a database.

# [mysql dir]/bin/mysqldump -c -u username -ppassword databasename tablename > /tmp/databasename.tablename.sql
Restore database (or database table) from backup.

# [mysql dir]/bin/mysql -u username -ppassword databasename < /tmp/databasename.sql
Create Table Example 1.

mysql> CREATE TABLE [table name] (firstname VARCHAR(20), middleinitial VARCHAR(3), lastname VARCHAR(35),suffix VARCHAR(3),officeid VARCHAR(10),userid VARCHAR(15),username VARCHAR(8),email VARCHAR(35),phone VARCHAR(25), groups VARCHAR(15),datestamp DATE,timestamp time,pgpemail VARCHAR(255));
Create Table Example 2.

mysql> create table [table name] (personid int(50) not null auto_increment primary key,firstname varchar(35),middlename varchar(50),lastnamevarchar(50) default 'bato');

Selasa, 20 April 2010

Instalasi Web Conference ( Open Meetings ) on Centos 5

OpenMeetings dibuat untuk melakukan rapat dalam jarak jauh, atau peserta rapat yg tidak bisa hadir ditempat, OpenMeetings sangat berguna bila peserta rapat berada di wilayah lain atau luar kota.
OpenMeetings bisa didapat di situs http://code.google.com/p/openmeetings/

fiturnya adalah video conference, audio chat dan pendukung lainnya.

Instalasi OpenMeetings

file-file yang dibutuhkan oleh Open Meetings adalah

- ffmpeg-0.5.1.tar.bz2 bisa menggunakan versi terbaru
- ImageMagick-6.3.2-9.tar.bz2 gunakan versi terbaru
- swftools-0.9.0.tar.gz gunakan versi terbaru
- flash player terbaru untuk linux
- Java terbaru untuk linux
dan tidak lupa Open-Meetings

tahap pertama instalasi Open Meetings
- instalasi terlebih dahulu paket-paket pendukungnya

- ffmpeg
- imagemagick
- swftools
- flash player plugin
- Java terbaru

setelah semua selesai cek terlebih dahulu versi javanya

# java -version
java version "1.6.0"
OpenJDK Runtime Environment (build 1.6.0-b09)
OpenJDK Server VM (build 1.6.0-b09, mixed mode)

bila sudah oke, silakan extract file openMeetingnya kedirektori /opt
buat direktori di dalam /opt

# mkdir /opt/red5

# unzip red5-openmeetings-rc5.zip -d /opt/red5
# cd red5

tahap kedua sekarang buat nama databasenya di Mysql

# mysql -u root -p create openmeetings


edit file /etc/my.cnf, tambahkan berikut ini didalam bagian [mysqld]
default-character-set=utf8


copy dan edit file openmeetings dengan nama mysql_hibernate.cfg.xml
# cd webapps/openmeetings/conf
# cp mysql_hibernate.cfg.xml hibernate.cfg.xml
# vi hibernate.cfg.xml

User / Password
property name= connection.username root property
property name= connection.password secret property
rubah yg di bold dengan user privileges mysqlnya dan passwordnya


masuk kedalam direktori /opt/red5
jalankan servicenya

# cd /opt/red5
# ./red5.sh

tunggu sampai port 4445 terlihat, maka bukalah browser anda dengan alamat http://localhost:5080/openmeetings/install



akan tampil menu Installation di browser anda, klik Continue with step 1

kemudian akan kluar tampilan seperti dibawah ini... !!



isikan kebutuhan openmeetings, pada tab dibawah ini silakan default saja atau kosongkan saja



bila telah selesai dalam mengisi konfigurasinya, maka klik INSTALL , akan terlihat sepeti dibawah ini...



klik Enter the Application, maka kluar tampilan seperti berikut dibawah ini




okeh.. sisanya silakan di utak atik yach.. buat user, create room dan lainnya silakan login menggunakan user yg pertama kali dibuat..

salam hangat

Jumat, 05 Maret 2010

membangun Chat Server menggunakan Openfire di Centos 5

Instalasi Chat Server menggunakan openfire di Centos 5

langsung aja ga pake banyak cincong nih.. soalnya saya dah kelar instalasi, sisanya lg di utak atik.. hehehe

biar langsung inget nih instalasinya...

download openfire di websitenya yg versi terbaru

file berada dalam dir /usr/local/src
extract openfire ke dalam direktori /opt

# cd /usr/local/src # tar zxvf openfire-3.4.6.tar.gz -C /opt # cd /opt/openfire/bin


saya menggunakan database Mysql, buat dulu databasenya

# mysql -u root -p mysql> create database openfire; <--- terserah mo buat nama databasenya loh

mysql> grant all privileges to *. openuser@localhost identified by 'password'


mysql> quit


masuk kedalam direktori /opt/openfire/bin/resources/database
# cd /opt/openfire/bin/resources/database

lakukan copi data mysql kedalam database mysql

# cat openfire_mysql.sql | mysql -u root -p [namadatabase]

bila sudah selesai jalankan servicesnya :

# /opt/openfire/bin/openfire start

buka web dengan alamat http://localhost:9090
akan kluar tampilan sebagai berikut :



masukan nama domain anda untuk dijadikan alamat webchatnya.





disini saya menggunakan database mysql, jgn lupa masukan username dan password user mysql yg td telah dibuat atau bisa menggunakan root.




dalam tab profile setting saya menggunakan server LDAP, bila tidak menggunakan LDAP maka pilih default saja.



masukan hostname server ldap, jangan lupa isi base DN nya dan administrator DN nya
contoh :
pilih openldap or active directory
Base DN : dc=tester,dc=com
Administrator DN : cn=Manager,dc=tester,dc=com

klik test untuk melihat sudah benarnya koneksi ke server ldap
lalu klik continue





klik continue


klik continue


pilih user administrator untuk mengolah openfire, lalu klik continue



bila semua langkah sudah selesai maka akan kluar tampilan untuk menuju ke admin console
seperti berikut :


masukan username yg telah dibuat tadi dan passwordnya, bila login berhasil maka akan kluar tampilan seperti ini :



nah openfire telah selesai diinstalasi, silakan lakukan configurasi untuk servernya dan clientnya...

disini saya menggunakan spark dan pidgin untuk client.. :D

terima kasih.. last project sudah selesai..

sisanya tinggal tunggu project helpdesk yach..

Senin, 01 Maret 2010

Instalasi Postfix Menggunakan Courier IMAP di Centos

Instalasi Postfix Menggunakan Courier IMAP di Centos

I. PENDAHULUAN

Postfix merupakan program server mail yang banyak digunakan karena kemudahan dalam mengkonfigurasinya. Program yang dibuat oleh Wietse Venema ini dirancang supaya mudah dikonfigurasi, aman, dan cepat dalam operasinya. Karena keuntungan-keuntungan yang didapatkan sangat banyak ketika menggunakan postfix, maka banyak distro linux memaketkan program ini kedalam paket distronya yang salah satunya adalah distro Centos. Mungkin banyak tutorial di internet yang telah menjelaskan tentang bagaimana cara instalasi postfix di berbagai macam distro linux namun di dalam tutorial ini, kita akan menginstal postfix di Centos 5.4 dengan virtual domain yang dilengkapi dengan SASL, SSL, Courier Authlib, dan menggunakan Courier IMAP sebagai POP3/IMAP. Kita akan menggunakan mysql sebagai database postfix dan squirrelmail sebagai webmailnya. Dan untuk memudahkan membuat user dan domain di dalam postfix, kita akan menggunakan postfixadmin. Penulis menggunakan domain latihanlinux.co.cc dengan IP 192.168.0.248.

II. INSTALASI POSTFIX

A. Mengorganisasi Paket-Paket
1. Instalasi paket-paket
# yum -y install openldap-devel openldap-servers expect-devel gamin-devel httpd* php*

mysql* rpm-build* libtool gdbm-devel pam-devel gcc-c++ redhat-rpm-config
libtool-ltdl-devel libtool-ltdl postgresql-devel pam-devel

2. Download Paket-Paket
# cd /usr/local/src

# wget ftp://ftp.reverse.net/pub/postfix/official/postfix-2.6.5.tar.gz
# wget ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-2.1.22.tar.gz
# wget http://sourceforge.net/projects/courier/files/authlib/0.62.4/courier-authlib-0.62.4.tar.bz2/download
# wget http://sourceforge.net/projects/courier/files/imap/4.5.1/courier-imap-4.5.1.tar.bz2/download
# wget squirrelmail
# wget postfixadmin
3. Cek Paket-Paket
# rpm -qa | grep sendmail;rpm -qa | grep postfix;rpm -qa | grep cyrus;rpm -qa | grep dovecot

4. Uninstal Paket-Paket
# rpm -e sendmail-8.13.8-2.el5 sendmail-cf-8.13.8-2.el5 postfix-2.3.3-2.1.el5_2

cyrus-imapd-perl-2.3.7-2.el5 cyrus-imapd-2.3.7-2.el5 cyrus-imapd-2.3.7-2.el5
cyrus-sasl-2.1.22-4 cyrus-imapd-utils-2.3.7-2.el5 dovecot-1.0.7-7.el5 --nodeps
B. Konfigurasi Hostname
1. Merubah Hostname
Penulis mengisi file network sebagai berikut:
# vi /etc/sysconfig/network

NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=mail

2. Merubah Hosts

Penulis merubah file hosts sehingga menjadi seperti berikut:
# vi /etc/hosts

127.0.0.1 localhost.localdomain localhost
192.168.0.248 mail.latihanlinux.co.cc mail

3. Restart hostname
Restart hostname dengan cara:
/bin/hostname -f /etc/hosts

C. Instalasi Cyrus-SASL
Cyrus-SASL merupakan software yang menyediakan metode dan mekanisme yang berbeda untuk autentifikasi.
1. Ekstrak Paket
# cd /usr/local/src

# tar -zxvf cyrus-sasl-2.1.22.tar.gz
# cd cyrus-sasl-2.1.22

2. Instalasi Paket
# export CPPFLAGS="-I/usr/include/mysql"

# export LDFLAGS="-L/usr/lib/mysql -lmysqlclient -lz -lm"
# ./configure --enable-anon --enable-plain --enable-login --enable-sql --disable-krb4
--disable-otp --disable-cram --disable-digest --with-mysql=/usr/lib/mysql --without-pam
--without-saslauthd --without-pwcheck --prefix=/usr --with-plugindir=/usr/lib/sasl2;
make -j2; make install
D. Instalasi Postfix
1. Menghapus user dan grup
# userdel postfix

# groupdel postdrop
2. Membuat user dan grup
# groupadd -g 500 postfix

# groupadd -g 501 postdrop
# useradd -g 500 -G postdrop postfix
# id postfix

3. Ekstrak Postfix
# cd /usr/local/src

# tar -zxvf postfix-2.6.5.tar.gz
# cd postfix-2.6.5
# make makefiles 'CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -DUSE_TLS
-DUSE_CYRUS_SASL -I/usr/include/sasl' 'AUXLIBS=-L/usr/lib/mysql -lmysqlclient -lz
-lm -L/usr/lib -lssl -lcrypto -lsasl2'
# make install

Setelah itu, kita akan diberikan banyak pertanyaan tentang folder-folder yang akan dijadikan sebagai folder postfix. Daripada bingung, sebaiknya tekan enter saja semua pertanyaan tersebut karena linux telah menyediakan folder-folder default untuk postfix jika kita menekan enter.


4. Konfigurasi Postfix
a. Konfigurasi main.cf
# cd /etc/postfix/

# cp main.cf main.cf.ori
Tambahkan file main.cf dengan skrip sebagai berikut:

# vi main.cf
alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
broken_sasl_auth_clients = yes
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
home_mailbox = Maildir/
html_directory = no
mail_owner = postfix
mailq_path = /usr/bin/mailq
manpage_directory = /usr/local/man
mydomain = latihanlinux.co.cc
myhostname = mail.latihanlinux.co.cc
myorigin = #myhostname
newaliases_path = /usr/bin/newaliases
queue_directory = /var/spool/postfix
readme_directory = no
sample_directory = /etc/postfix
sendmail_path = /usr/sbin/sendmail
setgid_group = postdrop
smtp_tls_note_starttls_offer = yes
smtp_use_tls = yes
smtpd_banner = #myhostname ESMTP "mail.latihanlinux.co.cc"
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_invalid_hostname, reject_non_fqdn_hostname, reject_unknown_sender_domain,reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_unauth_pipelining,reject_unauth_destination,permit
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = #myhostname
smtpd_sasl_security_options = noanonymous
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
smtpd_use_tls = yes
tls_random_source = dev:/dev/urandom
unknown_local_recipient_reject_code = 550
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_gid_maps = static:500
virtual_mailbox_base = /var/vmail/
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_minimum_uid = 500
virtual_transport = virtual
virtual_uid_maps = static:500

Perlu diingat bahwa di dalam penulisan di file main.cf diusahakan bagaimana caranya agar satu skrip dalam satu baris khususnya pada bagian smtpd_recipient_restrictions.

b. Membuat file-file
Buat file tersebut di foler /etc/postfix dan tambahkan skrip sebagai berikut:
# vi mysql_virtual_alias_maps.cf

user = postfix
password = password123
hosts = localhost
dbname = postfix
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'
# vi mysql_virtual_domains_maps.cf

user = postfix
password = password123
hosts = localhost
dbname = postfix
query = SELECT domain FROM domain WHERE domain='%s' AND active = '1'

# vi mysql_virtual_mailbox_maps.cf

user = postfix
password = password123
hosts = localhost
dbname = postfix
query = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1'

E. Membuat Sertifikat SSL
SSL (Secure Sockets Layer) adalah teknologi standar keamanan yang diperlukan untuk komunikasi melalui jaringan seperti internet dan sekarang berubah menjadi TLS (Transport Layer Security). Berikut adalah langkah-langkahnya:
# mkdir /etc/postfix/ssl

# cd /etc/postfix/ssl/
# openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024
# chmod 600 smtpd.key
# openssl req -new -key smtpd.key -out smtpd.csr
# openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
# openssl rsa -in smtpd.key -out smtpd.key.unencrypted
# mv -f smtpd.key.unencrypted smtpd.key
# openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650
# chmod o= /etc/postfix/ssl/smtpd.key

F. Instalasi Courier Authlib
Courier Authlib merupakan sebuah set dari program-program yang dibuat untuk menangani autentifikasi request login ke service-service paket courier IMAP.
# cd /usr/local/src

# rpmbuild -ta courier-authlib-0.62.4.tar.bz2
# cd /usr/src/redhat/RPMS/i386/
# rpm -ivh courier-authlib*

G. Instalasi Courier-IMAP
Courier-IMAP merupakan software dari courier yang digunakan untuk metode pengiriman email. Program ini mendukung format penyimpanan email dengan menggunakan format Maildir. Dalam hal ini kita menggunakan Courier-Imap untuk backend dari webmail squirrelmail. Untuk menginstalasinya, tidak bisa langsung melalui root, tetapi harus non root.
# useradd courier

$ su courier
$ mkdir $HOME/rpm
$ mkdir $HOME/rpm/SOURCES
$ mkdir $HOME/rpm/SPECS
$ mkdir $HOME/rpm/BUILD
$ mkdir $HOME/rpm/SRPMS
$ mkdir $HOME/rpm/RPMS
$ mkdir $HOME/rpm/RPMS/i386
$ echo "%_topdir $HOME/rpm" >> $HOME/.rpmmacros
$ mkdir $HOME/downloads
$ cd $HOME/downloads
$ cd /usr/local/src
$ sudo mv courier-imap* $HOME/downloads
Tekan saja Enter untuk menjawab tentang password.
$ rpmbuild -ta courier-imap*

Balik lagi menjadi root
$ su

# cd /home/courier/rpm/RPMS/i386
# rpm -ivh courier-imap*

H. Edit File-File

1. Edit file authmysqlrc
Tambahkan di file authmysqlrc dengan skrip sebagai berikut:
# cd /etc/authlib/

# mv authmysqlrc authmysqlrc.ori
# vi /etc/authlib/authmysqlrc
MYSQL_SERVER localhost
MYSQL_USERNAME postfix
MYSQL_PASSWORD password123
MYSQL_PORT 0
MYSQL_OPT 0
MYSQL_DATABASE postfix
MYSQL_USER_TABLE mailbox
MYSQL_CRYPT_PWFIELD password
MYSQL_CLEAR_PWFIELD password
MYSQL_UID_FIELD '500'
MYSQL_GID_FIELD '500'
MYSQL_LOGIN_FIELD username
MYSQL_HOME_FIELD '/var/vmail/'
MYSQL_NAME_FIELD name
MYSQL_MAILDIR_FIELD maildir

2. File authdaemonrc
Rubah file authdaemonrc dengan cara merubah authmodulelist dan DEBUG_LOGIN:
# cp authdaemonrc authdaemonrc.ori

# vi authdaemonrc
authmodulelist="authmysql authpam"
DEBUG_LOGIN=1

3. Membuat file SMTP-AUTH
Buat file smtpd.conf dan tambahkan skrip di bawah:
# vi /usr/lib/sasl2/smtpd.conf

pwcheck_method: authdaemond
log_level: 3
mech_list: PLAIN LOGIN
authdaemond_path:/var/spool/authdaemon/socket
# chmod o+x /var/spool/authdaemon

4. Membuat file direktori vmail
File vmail digunakan untuk menyimpan data user postfix.
# mkdir /var/vmail

# chown -R postfix:postfix /var/vmail/

I. MENYALAKAN SERVICE

1. Nyalakan courier-authlib
# chkconfig --levels 235 courier-authlib on

# /etc/init.d/courier-authlib start

2. Nyalakan authdaemon
# chkconfig --levels 235 courier-imap on

# /etc/init.d/courier-imap start


3. Nyalakan Postfix
# postfix start
TROUBLESHOOTING
Jika ada error seperti ini:


Hal ini dikarenakan kita tidak menulis salah satu bagian skrip di /etc/postfix/main.cf dalam satu baris. Usahakanlah bagaimana caranya agar satu skrip di dalam file tersebut berada dalam satu baris. Jika sudah diperbaiki, tuliskan perintah postfix start dan seharusnya postfix sudah dapat menyala dengan baik seperti pada gambar:

J. Menginstal Postfixadmin

1. Ekstrak Paket
# cd /usr/local/src

# tar -zxvf postfixadmin_2.3.tar.gz

2. Konfigurasi Postfixadmin
# mv postfixadmin-2.3 postfixadmin

# cp -r postfixadmin /var/www/html/
# cd /var/www/html/postfixadmin

Merubah file config.inc.php menjadi seperti berikut:
# vi config.inc.php

$CONF['configured'] = true;
$CONF['database_type'] = 'mysql';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfix';
$CONF['database_password'] = 'password123';
$CONF['database_name'] = 'postfix';
$CONF['database_prefix'] = '';

K. Konfigurasi mysql
1. Masuk ke mysql
# mysql -u root -p
2. Membuat database postfix
> create database postfix;
3. Membuat Grant untuk database postfix
> grant all on postfix.* to postfix@localhost identified by 'password123';

> \q

L. Melihat Postfixadmin
1. Restart webserver
# service httpd restart
2. Lihat ke browser lalu ketikkan:
http://alamat_ip/postfixadmin/setup.php
Jika tidak ada error, maka akan terlihat sebagai berikut:


Masukkan password di dalam kotak yang telah disediakan Lalu tekan tombol Generate Password Hash.


Kemudian terlihat gambar seperti ini:


Masukkan password yang sudah digenerate itu (ce3157e...) ke dalam file conf.inc.php yang berada di folder /var/www/html/postfixadmin pada bagian $CONF['setup_password']. Setelah itu isi kotak Setup password yang berada di atas dengan menuliskan password yang belum digenerate. Kemudian tuliskan email admin dan password yang akan digunakan untuk mengakses postfixadmin. Jika semuanya selesai dan tidak ada error, maka Setelah kita menekan tombol Add Admin, akan terlihat gambar seperti berikut:


Masukkan nama email dan password yang sudah kita buat sebelumnya. Jika sudah tekan tombol Login dan akan terlihat gambar seperti berikut:


Kita akan membuat virtual domain dan user account email. Untuk membuat domain baru, pilih item Domain List, lalu pilih New Domain. Sedangkan untuk membuat user account yang baru pilih item Virtual List lalu pilih Add Mailbox. Di tutorial ini, penulis membuat domain latihanlinux.co.cc dengan akun email budi@latihanlinux.co.cc This e-mail address is being protected from spambots, you need JavaScript enabled to view it .

M. Instalasi Webmail
Webmail yang akan kita gunakan adalah squirrelmail. Berikut adalah langkah-langkahnya:
# cd /usr/local/src

# tar -zxvf squirrelmail-1.4.19.tar.gz
# mv squirrelmail-1.4.19 webmail
# mv webmail /var/www/html/
# mkdir -p /var/local/squirrelmail/data/
# mkdir -p /var/local/squirrelmail/attach/
# chown apache:apache /var/local/squirrelmail/data/
# chown apache:apache /var/local/squirrelmail/attach/
Kemudian kita konfigurasi webmail dengan cara:
# cd /var/www/html/webmail

# ./configure
- Pilih Nomor 2 (Server Settings)
- Pilih Huruf A (Update IMAP Settings)
- Pilih Nomor 6 (Authentification type)
Jawab Pertanyaan dengan menjawab N dan login
- Pilih Nomor 8 (Server Software)
Tulis courier
- Pilih Huruf B (Update SMTP Settings)
- Pilih Nomor 7 (SMTP Authentification)
Jawab Pertanyaan dengan N, login, dan N
- Pilih Huruf S
- Pilih Huruf Q
Jika tidak ada error, maka bisa melihat webmail ini dengan membuka browser namun sebelumnya restart webserver terlebih dahulu:
http://alamat_ip/webmail

Masukkan username dan passwordnya, dan setelah itu tekan tombol Login. Maka, akan terlihat sebagai berikut:

TROUBLESHOOTING

Jika setelah menekan tombol login, terlihat gambar seperti berikut:


Masalah ini biasanya timbul jika kita menginstal squirrelmail bawaan dari centos atau menginstalnya melalui yum. Untuk menghilangkannya, coba ke folder /etc/squirrelmail lalu buka file config_local.php kemudian hapus atau beri tanda pagar pada bagian $default_folder_prefix. Setelah itu restart webserver dan seharusnya error itu sudah hilang.

III. Testing Postfix

Jika kita sudah selesai menginstal postfix dan membuat postfixadmin, kini saatnya kita menguji postfix.
1. Pengujian Courier Authdaemon
Untuk menguji Authdaemon, ketikkan format sebagai berikut:
# authtest -s smtp alamat_email password_email
Untuk lebih jelasnya perhatikan gambar di bawah ini:
2. Pengujian POP3
Untuk menguji POP3 dalam sistem kita, ketikkan format sebagai berikut:
# telnet localhost 110
lalu masukkan alamat email dengan terlebih dahulu menulis kata user. Setelah itu masukkan password dengan terlebih dahulu menulis kata pass. Untuk lebih jelasnya perhatikan gambar berikut:
3. Pengujian IMAP
Untuk menguji IMAP, kita menggunakan format:
# telnet localhost 143
lalu tuliskan a login kemudian tuliskan alamat_email dan passwordnya. Jika mau keluar tulis a logout. Untuk lebih jelasnya perhatikan gambar berikut:

4. Pengujian smtp
Untuk menguji smtp, tuliskan perintah berikut:
# telnet localhost 25 
setelah itu tuliskan ehlo localhost maka akan tampil item-item. Tuliskan starttls untuk melihat apakah smtp kita dapat menggunakn tls atau tidak. Untuk keluar gunakan perintah quit sebanyak 2 kali. Untuk lebih jelasnya perhatikan gambar berikut:
6. Menguji email
Untuk menguji email, buatlah 2 user dengan menggunakan postfixadmin dan cobalah saling kirim dengan menggunakan webmail (squirrelmail) dan seharusnya email sudah dapat saling terkirim dengan baik. Jika email tidak terkirim, cobalah cek error lognya di /var/log/maillog.

Kamis, 21 Januari 2010

Merubah tanggal system di linux

Tanggal komputer sering kali salah, untuk melakukan perubahan caranya yaitu :

* cek tanggal sekarang

# date
Tue Sep 7 11:48:37 EDT 2009

* Ganti tanggal menjadi 8 September 2009

# date +%Y%m%d -s 20090908
20090908

hasilnya jika di cek yaitu : Tue Sep 8 00:00:02 EDT 2009
ternyata jamnya menjadi 00

* Ganti jam menjadi 11:50:00

# date +%T -s 11:50:00
11:50:00

hasilnya jika di cek yaitu : Tue Sep 8 11:50:10 EDT 2009
jam dan tanggal sudah benar, akan tetapi timezone mash salah
default masih EDT

* Ganti time zone ke WIB atau bahasa inggrisnya WIT (West Indonesian Time)

1. Data zone disimpan di file /etc/localtime
2. Data zona selengkapnya disimpan di /usr/share/zoneinfo/nama kota, sehingga kalai untuk Jakarta filenya yaitu /usr/share/zoneinfo/Asia/Jakarta
3. ganti file /etc/localtime agar sama dengan file di point ke 2

# mv /etc/localtime /etc/localtime.old
# ln -s /usr/share/zoneinfo/Asia/Jakarta /etc/localtime

hasilnya jika di cek yaitu : Tue Sep 8 23:52:40 WIT 2009

ternyata hasil jamnya malah salah, jadi disesuaikan lagi

# date +%T -s 11:52:00

hasilnya jika dicek yaitu : Tue Sep 8 11:52:02 WIT 2009

* sesuaikan jam system linuk dengan jam komputer (Hardware)

1. system akan melakukan penyesuaian dengan jam komputer saat startup
2. untuk melihat jam komputer dengan perintah “hwclock”
3. untuk merubah jam komputer agar sesuai dengan sistem dengan perintah “hwclock –systohc”

# hwclock
Tue 07 Sep 2009 12:25:27 PM WIT -0.126089 seconds

# hwclock –systohc

cek hasilnya :

# hwclock
Tue 08 Sep 2009 12:25:27 PM WIT -0.126089 seconds
# date
Tue Sep 8 12:25:28 WIT 2009

Install ARJ di Linux Centos

Download file ARJ disini

extract file arj :
# tar zxvf arj-3.10.22.tar.gz

masuk kedalam dir extrakan arj

[root@tester src]#cd arj-3.10.22/gnu

[root@tester gnu]# autoconf
[root@tester gnu]# ./configure
setelah selesai kembali ke direktori arj

# cd ..

lakukan make prepare
[root@tester arj-3.10.22]# make prepare
[root@tester arj-3.10.22]# make
[root@tester arj-3.10.22]# make install

Kamis, 07 Januari 2010

10 UNIX Command Line Mistakes

10 UNIX Command Line Mistakes


Anyone who has never made a mistake has never tried anything new. -- Albert Einstein.

Here are a few mistakes that I made while working at UNIX prompt. Some mistakes caused me a good amount of downtime. Most of these mistakes are from my early days as a UNIX admin.

userdel Command

The file /etc/deluser.conf was configured to remove the home directory (it was done by previous sys admin and it was my first day at work) and mail spool of the user to be removed. I just wanted to remove the user account and I end up deleting everything (note -r was activated via deluser.conf):
userdel foo

Rebooted Solaris Box

On Linux killall command kill processes by name (killall httpd). On Solaris it kill all active processes. As root I killed all process, this was our main Oracle db box:
killall process-name

Destroyed named.conf

I wanted to append a new zone to /var/named/chroot/etc/named.conf file., but end up running:
./mkzone example.com > /var/named/chroot/etc/named.conf

Destroyed Working Backups with Tar and Rsync (personal backups)

I had only one backup copy of my QT project and I just wanted to get a directory called functions. I end up deleting entire backup (note -c switch instead of -x):
cd /mnt/bacupusbharddisk
tar -zcvf project.tar.gz functions

I had no backup. Similarly I end up running rsync command and deleted all new files by overwriting files from backup set (now I’ve switched to rsnapshot)
rsync -av -delete /dest /src
Again, I had no backup.

Deleted Apache DocumentRoot

I had sym links for my web server docroot (/home/httpd/http was symlinked to /www). I forgot about symlink issue. To save disk space, I ran rm -rf on http directory. Luckily, I had full working backup set.

Accidentally Changed Hostname and Triggered False Alarm

Accidentally changed the current hostname (I wanted to see current hostname settings) for one of our cluster node. Within minutes I received an alert message on both mobile and email.
hostname foo.example.com

Public Network Interface Shutdown

I wanted to shutdown VPN interface eth0, but ended up shutting down eth1 while I was logged in via SSH:
ifconfig eth1 down

Firewall Lockdown

I made changes to sshd_config and changed the ssh port number from 22 to 1022, but failed to update firewall rules. After a quick kernel upgrade, I had rebooted the box. I had to call remote data center tech to reset firewall settings. (now I use firewall reset script to avoid lockdowns).

Typing UNIX Commands on Wrong Box

I wanted to shutdown my local Fedora desktop system, but I issued halt on remote server (I was logged into remote box via SSH):
halt
service httpd stop

Wrong CNAME DNS Entry

Created a wrong DNS CNAME entry in example.com zone file. The end result - a few visitors went to /dev/null:
echo 'foo 86400 IN CNAME lb0.example.com' >> example.com && rndc reload

Failed To Update Postfix RBL Configuration

In 2006 ORDB went out of operation. But, I failed to update my Postfix RBL settings. One day ORDB was re-activated and it was returning every IP address queried as being on its blacklist. The end result was a disaster.

Conclusion

All men make mistakes, but only wise men learn from their mistakes -- Winston Churchill.

From all those mistakes I’ve learnt that:

  1. Backup = ( Full + Removable tapes (or media) + Offline + Offsite + Tested )
  2. The clear choice for preserving all data of UNIX file systems is dump, which is only tool that guaranties recovery under all conditions. (see Torture-testing Backup and Archive Programs paper).
  3. Never use rsync with single backup directory. Create a snapshots using rsync or rsnapshots.
  4. Use CVS to store configuration files.
  5. Wait and read command line again before hitting the dam [Enter] key.
  6. Use your well tested perl / shell scripts and open source configuration management software such as puppet, Cfengine or Chef to configure all servers. This also applies to day today jobs such as creating the users and so on.

Referensi from www.cyberciti.biz

How to Compile Linux kernel 2.6

How to: Compile Linux kernel 2.6


Compiling custom kernel has its own advantages and disadvantages. However, new Linux user / admin find it difficult to compile Linux kernel. Compiling kernel needs to understand few things and then just type couple of commands. This step by step howto covers compiling Linux kernel version 2.6.xx under Debian GNU Linux. However, instructions remains the same for any other distribution except for apt-get command.

Step # 1 Get Latest Linux kernel code

Visit http://kernel.org/ and download the latest source code. File name would be linux-x.y.z.tar.bz2, where x.y.z is actual version number. For example file inux-2.6.25.tar.bz2 represents 2.6.25 kernel version. Use wget command to download kernel source code:
$ cd /tmp
$ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-x.y.z.tar.bz2

Note: Replace x.y.z with actual version number.

Step # 2 Extract tar (.tar.bz3) file

Type the following command:
# tar -xjvf linux-2.6.25.tar.bz2 -C /usr/src
# cd /usr/src

Step # 3 Configure kernel

Before you configure kernel make sure you have development tools (gcc compilers and related tools) are installed on your system. If gcc compiler and tools are not installed then use apt-get command under Debian Linux to install development tools.
# apt-get install gcc

Now you can start kernel configuration by typing any one of the command:

  • $ make menuconfig - Text based color menus, radiolists & dialogs. This option also useful on remote server if you wanna compile kernel remotely.
  • $ make xconfig - X windows (Qt) based configuration tool, works best under KDE desktop
  • $ make gconfig - X windows (Gtk) based configuration tool, works best under Gnome Dekstop.

For example make menuconfig command launches following screen:
$ make menuconfig

You have to select different options as per your need. Each configuration option has HELP button associated with it so select help button to get help.

Step # 4 Compile kernel

Start compiling to create a compressed kernel image, enter:
$ make
Start compiling to kernel modules:
$ make modules

Install kernel modules (become a root user, use su command):
$ su -
# make modules_install

Step # 5 Install kernel

So far we have compiled kernel and installed kernel modules. It is time to install kernel itself.
# make install

It will install three files into /boot directory as well as modification to your kernel grub configuration file:

  • System.map-2.6.25
  • config-2.6.25
  • vmlinuz-2.6.25

Step # 6: Create an initrd image

Type the following command at a shell prompt:
# cd /boot
# mkinitrd -o initrd.img-2.6.25 2.6.25

initrd images contains device driver which needed to load rest of the operating system later on. Not all computer requires initrd, but it is safe to create one.

Step # 7 Modify Grub configuration file - /boot/grub/menu.lst

Open file using vi:
# vi /boot/grub/menu.lst

title           Debian GNU/Linux, kernel 2.6.25 Default
root (hd0,0)
kernel /boot/vmlinuz root=/dev/hdb1 ro
initrd /boot/initrd.img-2.6.25
savedefault
boot

Remember to setup correct root=/dev/hdXX device. Save and close the file. If you think editing and writing all lines by hand is too much for you, try out update-grub command to update the lines for each kernel in /boot/grub/menu.lst file. Just type the command:
# update-grub
Neat. Huh?

Step # 8 : Reboot computer and boot into your new kernel

Just issue reboot command:
# reboot

referensi from www.cyberciti.biz