Translate








​
Tampilkan postingan dengan label Tutorial. Tampilkan semua postingan
Tampilkan postingan dengan label Tutorial. Tampilkan semua postingan

Rabu, 10 Agustus 2016

Auto Backup Database MySQL di Server Linux CentOS


Dari sekian banyak proses maintenance database, salah satunya yakni proses Backup. Backup amat sangat diperlukan untuk berbagai keperluan, terutama ketika hendak dilakukan maintenance lebih lanjut terhadap database seperti: tunning database, analisa data terpisah, atau bahkan keperluan historical terhadap data lampau. Maka proses backup ini adalah proses yang wajib. Karena sifatnya yang begitu critical dalam dukungannya terhadap availibilitas aplikasi fornt-end yang di sokongnya, biasanya database di backup secara berkala.

Jika server kita menggunakan Linux CentOS, ada beberapa cara yang bisa dilakukan untuk melakukan Backup Database. Disini salah satunya saya akan coba menggunakan tool "AutoMySQLBackup" yang akan digunakan untuk mem Backup database MySQL. Berikut tahapannya:

  1. Download tool AutoMySQLBackup di sourceforge atau disini.
  2. Copykan file yang sudah di download tadi ke server Linux CentOS, bisa dengan WinSCP
  3. Login kedalam server, buat direktori untuk menyimpan Data Backup
    [root@SVR ~]# mkdir /home/user/backupdb
    
    
  4. Install AutoMySQLBackup
    [root@SVR ~]# tar -xzvf automysqlbackup-v3.0_rc6.tar.gz
    [root@SVR ~]# cd automysqlbackup
    [root@SVR ~]# ./install.sh
    
    
  5. Buat file / Edit konfigurasi untuk Backup Database, dalam file /etc/automysqlbackup/myserver.conf, tambahkan credential database, seperti dibawah ini:
    # Username to access the MySQL server e.g. dbuser
    CONFIG_mysql_dump_username='root'
    
    # Password to access the MySQL server e.g. password
    CONFIG_mysql_dump_password='password'
    
    # Host name (or IP address) of MySQL server e.g localhost
    CONFIG_mysql_dump_host='localhost'
    
    # Backup directory location e.g /backups
    CONFIG_backup_dir='/home/user/backupdb'
    
    # set to (), i.e. empty, if you want to backup all databases
    CONFIG_db_names=('namadatabase')
    
    
  6. Buat bash script untuk menjalankan backup, disini saya coba buat di direktori /home/user/:
    [root@SVR ~]# nano /home/user/mybackupdb.sh
    
    

    isi file:
    #!/bin/sh
    
    /usr/local/bin/automysqlbackup /etc/automysqlbackup/myserver.conf
    
    chown root.root /home/user/backupdb* -R
    find /home/user/backupdb* -type f -exec chmod 400 {} \;
    find /home/user/backupdb* -type d -exec chmod 700 {} \;
    
    
  7. Ubah hak akses dengan chmod +x mybackupdb.sh. Lalu coba jalankan secara manual bash script tersebut:
    [root@SVR user]# ./mybackupdb.sh
    
    
  8. Cek file hasil backup
    [root@SVR ~]# ls /home/user/backupdb
    daily  fullschema  latest  monthly  status  tmp  weekly 
    [root@SVR ~]# ls /home/user/backupdb/daily/namadatabase/
    daily_namadatabase_2016-08-10_10h08m_Wednesday.sql.gz
    [root@SVR ~]#
    
    
  9. Buat schedule dengan crond
    [root@SVR ~]# crontab -e
    
    

    isi crond:
    45 23 * * * /home/user/mybackupdb.sh
    
    
  10. Jangan lupa untuk restart service crond:
    [root@SVR ~]# service crond restart
    
    
Dengan konfigurasi dasar tersebut, maka Database MySQL akan dibackup secara otomatis pada pukul 23:45 malam setiap hari nya. Ini bisa disesuaikan dan dikembangkan sesuai kebutuhan kita, misalnya dengan mem Backup semua database, dengan mengirimkan notifikasi via email, dan lain-lain. Selamat mencoba.
{ Read More }


Jumat, 01 April 2016

Remote Database PostgreSQL 9.5 server CentOS 7 dari Windows Client

Untuk manajemen database PostgreSQL 9.5 yang sudah terinstall di server CentOS 7, kita bisa melakukannya secara Remote melalui aplikasi client PgAdmin. Aplikasi ini bisa di download disini.

Disini, saya akan coba menggunakan PgAdmin di Windows 7 untuk mengakses database yang berada di server (Centos 7). Sebelum melakukan remote, ada beberapa hal yang perlu disiapkan disisi server:

  1. Edit file pg_hba.conf yang berada di direktori /opt/PostgreSQL/9.5/data
    [root@sentinel ~]# nano /opt/PostgreSQL/9.5/data/pg_hba.conf
    
    

  2. Ubah atau tambahkan baris berikut
    # IPv4 local connections:
    host    all             all             127.0.0.1/32            md5
    
    
    menjadi:
    # IPv4 local connections:
    # host    all             all             127.0.0.1/32            md5
    host    all             all             0.0.0.0/0            md5
    
    

  3. Simpan hasil perubahan, lalu restart service database:
    [root@sentinel ~]# systemctl stop postgresql-9.5
    [root@sentinel ~]# systemctl start postgresql-9.5
    
    

  4. Matikan service firewall (jika sedang aktif)
    [root@sentinel ~]# systemctl stop firewalld
    
    

Dari client (Windows), buka aplikasi PgAdmin, lalu klik Add Connection, masukkan data seperti gambar dibawah (sesuaikan dengan credential database kita):

PgAdmin credential

Setelah Remote Login berhasil

Demikian cara untuk Login secara Remote kedalam Database PostgreSQL 9.5 dalam server Centos 7 dari Client Windows dengan aplikasi PgAdmin. Selanjutnya, manajemen database terasa lebih mudah.
{ Read More }


Install Database PostgreSQL 9.5 di CentOS 7

Berikut tahapan instalasi Database PostgreSQL 9.5.1 (terbaru pada saat artikel ini dibuat) didalam server Linux CentOS 7:

  1. Download installer Postgresql 9.5 dari EnterpriseDB
  2. Copykan file yang sudah di download kedalam server dengan menggunakan WinSCP.
  3. Ubah hak akses dengan chmod +x agar bisa dieksekusi /diinstall
    [root@sentinel ~]# chmod +x postgresql-9.5.1-1-linux-x64.run
    
    

  4. Lakukan instalasi dengan mengetikkan perintah:
    [root@sentinel ~]# ./postgresql-9.5.1-1-linux-x64.run
    
    

  5. Pada tampilan Wizard, pilih saja settingan default dengan menekan tombol enter. 
  6. Installation Directory [/opt/PostgreSQL/9.5]:
    Data Directory [/opt/PostgreSQL/9.5/data]:
    
    

  7. Masukkan Password database dengan password yang diinginkan (ini adalah password untuk user default yakni user postgres) Untuk Port default adalah 5432. 
  8. Setelah instalasi selesai, jalankan service PostgreSQL:
    [root@sentinel ~]# systemctl start postgresql-9.5
    
    

  9. Untuk menjalankan PostgreSQL saat server pertama kali menyala:
    [root@sentinel ~]# systemctl enable postgresql-9.5
    
    

  10. Untuk masuk kedalam Postgresql, login sebagai user postgres:
    [root@sentinel ~]# su - postgres
    
    

  11. Maka, tampilan home direktori untuk user postgres ini berada di direktori /opt/PostgreSQL/9.5.
    -bash-4.2$ pwd
    /opt/PostgreSQL/9.5
    
    

  12. Masuk ke direktori bin (/opt/PostgreSQL/9.5/bin/):
    -bash-4.2$ cd bin/
    
    

  13. Jalankan psql dengan perintah berikut, lalu masukkan password yang telah diset pada saat instalasi:
    -bash-4.2$ ./psql
    Password:
    psql.bin (9.5.1)
    Type "help" for help.
    
    postgres=#
    
    
Sampai tahap ini, Database PostgreSQL 9.5 sudah siap digunakan untuk keperluan selanjutnya, apakah untuk Development, Production atau hanya sekedar coba-coba.

Demikian versi otodidak Bagaimana cara install Database PostgreSQL 9.5 didalam Linux Centos 7.
{ Read More }


Selasa, 02 September 2014

Merubah Nama Domain Zimbra Mail Server

Pada Tutorial sebelumnya, kita sudah bisa melakukan instalasi server mail dengan Zimbra. Ketika akses pertama kali, domain yang ada untuk akun email rasanya agak janggal. Misalnya saja untuk akun email admin yaitu : admin@www.majapahit.com. Dari format akun email tersebut, maka www.majapahit.com menjadi domain utama untuk akun user. Secara umum, nama domain untuk email yang sering digunakan adalah tanpa imbuhan "www" di depannya. Untuk itu dalam skenario kali ini saya akan coba untuk merubah nama domain, yang sebelumnya akun@www.majapahit.com menjadi akun@majapahit.com.

Tampilan user email sebelum merubah nama Domain


Berikut tahapan yang bisa kita lakukan untuk merubah nama domain email server zimbra:
  1. Login ke server email zimbra dengan akses root
  2. Stop service zimbra terlebih dahulu
    [root@MAJAPAHIT ~]# service zimbra stop
    
    

  3. Backup file zimbra. Tahap ini sifatnya optional, artinya apabila kita sudah banyak melakukan konfigurasi pada zimbra, sebaiknya kita lakukan backup. Untuk yang baru menginstall zimbra, tahap ini bisa dilewati, karena proses backup cukup memakan waktu yang lama.

    [root@MAJAPAHIT ~]# cd /opt/
    
    

    [root@MAJAPAHIT opt]# tar cvfz zimbraBackup2014.tgz zimbra 
    
    

  4. Login sebagai user zimbra (sudah ada ketika kita menginstall zimbra)
    [root@MAJAPAHIT opt]# su - zimbra
    
    

  5. Ketikkan Perintah dibawah ini untuk merubah nama Domain
    [zimbra@MAJAPAHIT ~]$ zmprov -l renameDomain www.majapahit.com majapahit.com
    
    

  6. Keluar dari user zimbra (exit), lalu jalankan kembali service zimbra
    [zimbra@MAJAPAHIT ~]$ exit 
     

    [root@MAJAPAHIT ~]$ service zimbra start 
     

Perubahan nama domain telah selesai dilakukan. Untuk melihat perubahannya, kita coba login kembali dengan browser ke alamat : https://mail.majapahit.com:7071/ lalu kita lihat kembali akun user setelah perubahan.

Tampilan nama akun email setelah perubahan nama Domain

Demikian tutorial singkat lanjutan untuk merubah nama Domain pada server email dengan Zimbra Mail Server 7. Untuk tutorial selanjutnya mengenai mail server zimbra akan dibuat pada artikel selanjutnya.
{ Read More }


Kamis, 03 Juli 2014

Instalasi Mail Server Zimbra 7 dengan Linux CentOS 5

Dalam tutorial jurnalinux kali ini, saya akan mencoba membangun Mail server dengan Zimbra. Ini adalah pengembangan dari Tutorial sebelumnya mengenai cara untuk membangun DNS Server. 

Berikut deskripsi Server lab yang akan digunakan :
1. Server Linux CentOS 5.6 32bit (majapahit.com), IP 192.168.0.101
2. Paket Zimbra 7 (zcs-7.2.5_GA_2906.RHEL5.20130911101145.tgz)

Untuk paket zimbra, bisa di download di situs resmi nya : http://www.zimbra.com/downloads/ Pada tutorial sebelumnya, saya telah membuat DNS Server, dan tentunya itu adalah bagian yang sangat penting sebelum menggunakan zimbra. Dan kita telah setengah jalan dalam membangun mail server zimbra. Selanjutnya, disini saya akan langsung saja menginstall paket zimbra.

Sebagai asumsi, kita telah mengunduh paket zimbra, lalu kita simpan di folder /root.

[root@MAJAPAHIT ~]# ls
anaconda-ks.cfg          openssh-6.1.tar.gz
install.log              rsyslog5-5.8.12-4.el5.i386.rpm
install.log.syslog       rsyslog5-gnutls-5.8.12-4.el5.i386.rpm
jdk-6u12-linux-i586.rpm  ssh
openssh                  zcs-7.2.5_GA_2906.RHEL5.20130911101145.tgz



 [root@MAJAPAHIT ~]# chmod +x zcs-7.2.5_GA_2906.RHEL5.20130911101145.tgz


Extract Paket Installer

[root@MAJAPAHIT ~]# tar xzvf zcs-7.2.5_GA_2906.RHEL5.20130911101145.tgz


Setelah di extract, akan muncul folder baru seperti dibawah.

[root@MAJAPAHIT ~]# ls
anaconda-ks.cfg          rsyslog5-5.8.12-4.el5.i386.rpm
install.log              rsyslog5-gnutls-5.8.12-4.el5.i386.rpm
install.log.syslog       ssh
jdk-6u12-linux-i586.rpm  zcs-7.2.5_GA_2906.RHEL5.20130911101145
openssh                  zcs-7.2.5_GA_2906.RHEL5.20130911101145.tgz
openssh-6.1.tar.gz


Masuk ke direktori zcs-7.2.5_GA_2906.RHEL5.20130911101145

[root@MAJAPAHIT ~]# cd zcs-7.2.5_GA_2906.RHEL5.20130911101145


Laukan instalasi paket dengan perintah dibawah :

[root@MAJAPAHIT zcs-7.2.5_GA_2906.RHEL5.20130911101145]# ./install.sh --platform-override


Tekan pilihan "y" untuk menyetujui instalasi, dan apabila ada error seperti ini:

ERROR: Installation can not proceeed.  Please fix your /etc/hosts file
  to contain:

  127.0.0.1 localhost.localdomain localhost


Kita ubah dulu file /etc/hosts yang tadinya seperti ini:

# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1       MAJAPAHIT localhost.localdomain localhost
::1             localhost6.localdomain6 localhost6


Kita ubah menjadi seperti dibawah:

# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1       localhost.localdomain localhost
::1             localhost6.localdomain6 localhost6
192.168.0.101   www.majapahit.com       MAJAPAHIT

 
Lalu kita coba install kembali :

[root@MAJAPAHIT zcs-7.2.5_GA_2906.RHEL5.20130911101145]# ./install.sh --platform-override


Akan muncul pertanyaan dibawah:

Do you agree with the terms of the software license agreement? [N] y

Checking for prerequisites...
     FOUND: NPTL
     FOUND: nc-1.84-10
     FOUND: sudo-1.7.2p1-10
     FOUND: libidn-0.6.5-1.1
     FOUND: gmp-4.1.4-10
     FOUND: /usr/lib/libstdc++.so.6
Checking for suggested prerequisites...
     FOUND: perl-5.8.8
     MISSING: sysstat does not appear to be installed.
     FOUND: sqlite

###WARNING###

The suggested version of one or more packages is not installed.
This could cause problems with the operation of Zimbra.

Do you wish to continue? [N] y
Prerequisite check complete.

Checking for installable packages

Found zimbra-core
Found zimbra-ldap
Found zimbra-logger
Found zimbra-mta
Found zimbra-snmp
Found zimbra-store
Found zimbra-apache
Found zimbra-spell
Found zimbra-memcached
Found zimbra-proxy


Select the packages to install

Install zimbra-ldap [Y] 
Install zimbra-logger [Y] 
Install zimbra-mta [Y] 
Install zimbra-snmp [Y] 
Install zimbra-store [Y] 
Install zimbra-apache [Y] 
Install zimbra-spell [Y] 
Install zimbra-memcached [N]
Install zimbra-proxy [N]
Checking required space for zimbra-core
checking space for zimbra-store

Installing:
    zimbra-core
    zimbra-ldap
    zimbra-logger
    zimbra-mta
    zimbra-snmp
    zimbra-store
    zimbra-apache
    zimbra-spell

You appear to be installing packages on a platform different
than the platform for which they were built.

This platform is CentOS5
Packages found: RHEL5
This may or may not work.

Using packages for a platform in which they were not designed for
may result in an installation that is NOT usable. Your support
options may be limited if you choose to continue.


Install anyway? [N]Y 
The system will be modified.  Continue? [N]Y 


Tekan tombol y pada pertanyaan diatas, lalu tunggu proses instalasi sampai selesai. Setelah instalasi selesai, akan muncul tampilan seperti dibawah :

Checking for port conflicts

Main menu

   1) Common Configuration:
   2) zimbra-ldap:                             Enabled
   3) zimbra-store:                            Enabled
        +Create Admin User:                    yes
        +Admin user to create:                 admin@www.majapahit.com
******* +Admin Password                        UNSET
        +Anti-virus quarantine user:           virus-quarantine.b5jtjap69@www.majapahit.com
        +Enable automated spam training:       yes
        +Spam training user:                   spam.iyxewr67@www.majapahit.com
        +Non-spam(Ham) training user:          ham.hmbw_lgi@www.majapahit.com
        +SMTP host:                            www.majapahit.com
        +Web server HTTP port:                 80
        +Web server HTTPS port:                443
        +Web server mode:                      http
        +IMAP server port:                     143
        +IMAP server SSL port:                 993
        +POP server port:                      110
        +POP server SSL port:                  995
        +Use spell check server:               yes
        +Spell server URL:                     http://www.majapahit.com:7780/aspell.php
        +Configure for use with mail proxy:    FALSE
        +Configure for use with web proxy:     FALSE
        +Enable version update checks:         TRUE
        +Enable version update notifications:  TRUE
        +Version update notification email:    admin@www.majapahit.com
        +Version update source email:          admin@www.majapahit.com

   4) zimbra-mta:                              Enabled
   5) zimbra-snmp:                             Enabled
   6) zimbra-logger:                           Enabled
   7) zimbra-spell:                            Enabled
   8) Default Class of Service Configuration:
   r) Start servers after configuration        yes
   s) Save config to file
   x) Expand menu
   q) Quit

Address unconfigured (**) items  (? - help)


Pilih Menu Nomor 3, , lalu tekan nomor 4 untuk set password admin. Kita masukan password yang akan kita gunakan: 

Password for admin@www.majapahit.com (min 6 characters): [X47Qa2JPCc] jurnalinux

Selanjutnya, tekan tombol "r" untuk kembali ke menu utama.



*** CONFIGURATION COMPLETE - press 'a' to apply
Select from menu, or press 'a' to apply config (? - help) a
Save configuration data to a file? [Yes]
Save config in file: [/opt/zimbra/config.10627] y
Saving config in y...done.
The system will be modified - continue? [No] y



Tekan tombol a (untuk menerapkan konfigurasi), lalu ikuti seperti urutan diatas. Selanjutnya kita tunggu sampai proses selesai.

Sampai tahap ini proses instalasi zimbra telah selesai. Untuk mengaksesnya, kita gunakan browser dengan mengetikkan url: https://mail.majapahit.com:7071

Akses Zimbra :
(Akses via Browser)

Masukkan user: admin, Password : jurnalinux (yang kita sudah set sebelumnya)

Tampilan Halaman Admin di zimbra mail server
Tahap instalasi mail server zimbra telah selesai. Selanjutnya, untuk konfigurasi dan manajemen email zimbra akan saya posting pada tutorial yang akan datang.
{ Read More }


Jumat, 27 Juni 2014

Membangun DNS Server untuk Domain Jaringan Lokal dengan Linux CentOS 5

Dalam jaringan lokal (LAN) kita biasanya memiliki beberapa aplikasi berbasis web yang digunakan untuk kepentingan internal. Untuk mengakses aplikasi tersebut, biasanya dilakukan via browser dengan mengetikkan alamat ip pada browser client. Semakin banyak aplikasi yang dipakai, maka akan semakin banyak pula tuntutan kita untuk mengingat ip dari setiap aplikasi tersebut. Untuk memudahkan user/client, kita sebaiknya bangun sebuah server dns untuk menerjemahkan alamat ip menjadi nama host/aplikasi. Kita bisa dengan mudah menyesuaikan nama aplikasi sesuai dengan fungsi penggunaan aplikasi tersebut, dan tidak lagi dengan mengetikkan alamat ip.

Sebagai contoh kasus, disini saya akan membuat domain lokal dengan nama "majapahit.com", yang akan digunakan untuk jairngan lokal (internal). Tentunya penamaan domain bisa disesuaikan dengan keperluan kita.

LAB terdiri dari 2 (dua) server:
*) Server DNS CentOS 5.6 (MAJAPAHIT/192.168.0.101)
*) Server Client untuk test akses (PAJAJARAN/192.168.0.11)

Disini saya akan membagi kedalam 3 tahap:
  • Instalasi Server DNS (named)
  • Konfigurasi Server DNS (named)
  • Testing Konfigurasi

 

INSTALASI SERVER DNS

Paket yang dibutuhkan untuk instalasi di sisi server yakni named (dibaca : "nem-di"). Untuk instalasi sangat mudah, kita gunakan perintah yum seperti dibawah ini:

[root@MAJAPAHIT ~]# yum install bind bind-chroot bind-libs bind-utils


Kita coba jalankan service named, namun akan muncul pesan bahwa service tidak bisa dijalankan, seperti dibawah ini:

[root@MAJAPAHIT ~]# service named start
Locating /var/named/chroot//etc/named.conf failed:
                                                           [FAILED]
You have new mail in /var/spool/mail/root

Hal ini dikarenakan pada CentOS 5, file konfigurasi default tidak tersedia. Dari pesan diatas, bahwa file konfigurasi seharusnya ada di lokasi /var/named/chroot. Untuk itu, kita harus menginstall caching-nameserver, dan file konfigurasi default akan ter-create secara otomatis.

[root@MAJAPAHIT ~]# yum install caching-nameserver


Kita coba jalankan kembali service named seperti sebelumnya:
[root@MAJAPAHIT ~]# service named start
Starting named:                                            [  OK  ]


Dari output diatas, maka service named untuk DNS server telah berhasil dijalankan. Dari sisi Client, arahkan DNS ke IP server MAJAPAHIT (server DNS) melalui konfigurasi IP Address atau ditambahkan pada : /etc/resolv.conf. Selanjutnya kita coba test dengan perintah dibawah ini:

[root@PAJAJARAN ~]# host www.majapahit.com
;; connection timed out; no servers could be reached


Dari pesan error diatas, client tidak dapat menemukan server dns (majapahit.com). Hal ini dikarenakan pada server dns secara default hanya listen di port 53. Untuk itu di server dns, kita harus merubahnya terlebih dahulu :

[root@MAJAPAHIT ~]# nano /etc/named.caching-nameserver.conf


Berikan komentar pada baris berikut :

#listen-on port 53 { 127.0.0.1; };


Restart service named
[root@MAJAPAHIT ~]# service named restart
Stopping named:                                            [  OK  ]
Starting named:                                            [  OK  ]


Lakukan test kembali dari client PAJAJARAN:

[root@PAJAJARAN ~]# host www.majapahit.com
Host majapahit not found: 5(REFUSED)


Dari pesan diatas, BIND sudah bisa Listen request dari Client, namun masih belum bisa menjawab request domain majapahit.com, dikarenakan kita belum membuat zona untuk penamaan host.


KONFIGURASI SERVER DNS

Konfigurasi ini digunakan untuk membuat Hosting Domain di jaringan Lokal. Yang perlu kita lakukan terlebih dahulu yakni dengan membuat zona baru untuk Domain majapahit.com. Perlu diketahui bahwa server dns ini akan kita buat sebagai master-server, yang artinya apabila kita hendak menerapkannya secara luas, misalnya dengan menambahkan slave zone maka server majapahit ini akan menjadi master nya, karena informasi seluruh domain nantinya akan disimpan disini. Sebelum melakukan konfigurasi, perlu diingat kembali bahwa kita menggunakan "bind-chroot" pada saat instalasi, ini artinya file konfigurasi utama berada di "/var/named/chroot/var/named" dan bukan di "/var/named".

Untuk membuat domain "majapahit.com", BIND memerlukan 3 buah parameter. Pertama, informasi nama domain, yakni "majapahit.com". Kedua, kita akan set server ini sebagai master domain majapahit.com. Ketiga, informasi lokasi file zona yang akan digunakan untuk domain majapahit.com.

Lakukan konfigurasi pada named.conf (/var/named/chroot/etc/named.conf)

[root@MAJAPAHIT ~]# nano /var/named/chroot/etc/named.conf


Tambahkan konfigurasi seperti dibawah :

options {
        directory "/etc";
        pid-file "/var/run/named/named.pid";
        recursion no;
        };

zone "majapahit.com" {
        type master;
        file "/var/named/majapahit.com.hosts";
        };


Perhatikan pada baris "file "/var/named/majapahit.com.hosts". Kita buat file tersebut pada direktori /var/named/chroot/var/named.

[root@MAJAPAHIT ~]# nano /var/named/chroot/var/named/majapahit.com.hosts


Tambahkan konfigurasi seperti dibawah :
$ttl 38400
majapahit.com.  IN      SOA     dns0.majapahit.com. ichigo.majapahit.(
                                1187790697      ; serial number
                                10800           ; refresh
                                3600            ; retry
                                604800          ; expiry
                                38400 )         ; minimum

www.majapahit.com.      IN      A       192.168.0.101
ftp.majapahit.com.      IN      CNAME   www
mail.majapahit.com.     IN      A       192.168.0.101
majapahit.com.          IN      NS      dns0.majapahit.com.
majapahit.com.          IN      NS      ns1.majapahit.com.
majapahit.com.          IN      MX      10 mail
majapahit.com.          IN      MX      20 mail


Simpan perubahan, dan restart service named

[root@MAJAPAHIT ~]# service named restart
Stopping named:                                            [  OK  ]
Starting named:                                            [  OK  ]


Tahap konfigurasi telah selesai, dan harap diperhatikan penulisan tanda titik (" . ") dibelakang nama domain, karena biasanya kesalahan konfigurasi timbul dari hal tersebut.


TEST SERVER DNS


Untuk menguji hasil konfigurasi, kita akan lakukan dari server dns itu sendiri terlebih dahulu.

[root@MAJAPAHIT ~]# host www.majapahit.com localhost
Using domain server:
Name: localhost
Address: 127.0.0.1#53
Aliases:

www.majapahit.com has address 192.168.0.101


Test mx records, untuk keperluan penggunaan mail server yang akan kita gunakan pada tutorial selanjutnya.

[root@MAJAPAHIT ~]# host -t mx majapahit.com localhost
Using domain server:
Name: localhost
Address: 127.0.0.1#53
Aliases:

majapahit.com mail is handled by 10 mail.majapahit.com.
majapahit.com mail is handled by 20 mail.majapahit.com.


Selanjutnya, kita lakukan test dari client. Perintah yang digunakan sama seeprti diatas, hanya saja kita tidak menyertakan parameter "localhost", karena kita akan mencobanya dari server lain. Pertama, kita coba test ping dengan menggunakan nama domain:

[root@PAJAJARAN ~]# ping www.majapahit.com
PING www.majapahit.com (192.168.0.101) 56(84) bytes of data.
64 bytes from 192.168.0.101: icmp_seq=1 ttl=64 time=0.787 ms
64 bytes from 192.168.0.101: icmp_seq=2 ttl=64 time=0.745 ms
64 bytes from 192.168.0.101: icmp_seq=3 ttl=64 time=0.753 ms


Selanjutnya kita test dengan :

[root@PAJAJARAN ~]# host www.majapahit.com
www.majapahit.com has address 192.168.0.101


Test mx record :

[root@PAJAJARAN ~]# host -t mx majapahit.com
majapahit.com mail is handled by 20 mail.majapahit.com.
majapahit.com mail is handled by 10 mail.majapahit.com.


Sampai tahap ini, DNS Server untuk Hosting Domain Lokal telah siap digunakan. Ini hanyalah konfigurasi dasar, kita bisa menyesuaikan sesuai kebutuhan kita, misalnya untuk memberikan penamaan aplikasi, development web, atau kita bisa mengembangkannya untuk membangun email server.


{ Read More }


Rabu, 26 Februari 2014

Install Telnet Server di Linux CentOS 6.5

Telnet merupakan salah satu alternatif yang bisa digunakan untuk remote login ke Server yang kita bangun. Service yang digunakan untuk layanan telnet yakni xinetd. Kali ini saya akan mencoba menginstall telnet server di Linux Centos 6.5, dimana nantinya server ini akan di remote dari PC berbasis Windows melalui telnet via command prompt.

Berikut tahapan Instalasi Telnet Server di Linux CentOS:


  1. Install Telnet Server di Linux:
    [root@SRIWIJAYA ~]# yum install telnet telnet-server
    
    

  2. Periksa hasil instalasi telnet
    [root@SRIWIJAYA ~]# rpm -qa | grep telnet
    telnet-0.17-47.el6_3.1.x86_64
    telnet-server-0.17-47.el6_3.1.x86_64
    
    

  3. Aktifkan telnet server pada konfigurasi xinetd
    [root@SRIWIJAYA ~]# nano /etc/xinetd.d/telnet
    
    

    Ubah direktif "disable" menjadi "no" untuk mengaktifkan telnet
    # default: on
    # description: The telnet server serves telnet sessions; it uses \
    #       unencrypted username/password pairs for authentication.
    service telnet
    {
            flags           = REUSE
            socket_type     = stream
            wait            = no
            user            = root
            server          = /usr/sbin/in.telnetd
            log_on_failure  += USERID
            disable         = no
    }
    
    

  4. Restart service xinetd
    [root@SRIWIJAYA ~]# service xinetd restart
    Stopping xinetd:                                           [  OK  ]
    Starting xinetd:                                           [  OK  ]
    
    

  5. Jalankan telnet pada saat startup
    [root@SRIWIJAYA ~]# chkconfig xinetd on
    
    

Test Koneksi Telnet dari PC dengan OS Windows:

C:\>telnet 192.168.1.101


CentOS release 6.5 (Final)
Kernel 2.6.32-431.el6.x86_64 on an x86_64
login: ichigo
Password:
Last login: Mon Feb 24 16:27:10 from 192.168.1.10
[ichigo@SRIWIJAYA ~]$


Secara default, Linux CentOS tidak mengizinkan Login sebagai root untuk telnet. Hal ini untuk alasan security pada server yang kita bangun. Namun apabila kita ingin mengaktifkan login telnet dengan user root, kita bisa melakukannya dengan merubah konfigurasi pada file /etc/securetty : 

[root@SRIWIJAYA ~]# nano /etc/securetty


console
vc/1
vc/2
vc/3
vc/4
vc/5
vc/6
vc/7
vc/8
vc/9
vc/10
vc/11
tty1
tty2
tty3
tty4
tty5
tty6
tty7
tty8
tty9
tty10
tty11


Kita ubah dengan menambahkan beberapa baris pada bagian akhir, menjadi seperti dibawah ini :

console
vc/1
vc/2
vc/3
vc/4
vc/5
vc/6
vc/7
vc/8
vc/9
vc/10
vc/11
tty1
tty2
tty3
tty4
tty5
tty6
tty7
tty8
tty9
tty10
tty11
pts/0
pts/1
pts/2
pts/3
pts/4
pts/5
pts/6
pts/7
pts/8
pts/9


Simpan perubahan, dan restart service xinetd, lalu coba Login telnet dari PC Windows seperti diatas, tapi kali ini coba login dengan user root. 

CentOS release 6.5 (Final)
Kernel 2.6.32-431.el6.x86_64 on an x86_64
login: root
Password:
Last login: Mon Feb 24 16:24:42 from 192.168.1.10
[root@SRIWIJAYA ~]#


{ Read More }


Rabu, 12 Februari 2014

Membangun Sistem Backup Otomatis dengan rsync dan cron di Linux Centos 6

Sebagai pengembangan dari penggunaan rsync dari tutorial sebelumnya, kali ini saya akan coba membangun Sistem Backup secara otomatis yakni dengan cron. Cron bisa kita gunakan untuk penjadwalan tugas berdasarkan waktu yang kita tentukan. Cron merupakan fitur default yang sudah berjalan pada server Linux Centos ketika pertama kali diinstall.

Untuk contoh kasus, saya masih menggunakan topologi sederhana seperti diatas, dimana server SRIWIJAYA akan membackup file dan menyimpannya secara remote di server PAJAJARAN. Disini, rsync akan saya jalankan di server tujuan (PAJAJARAN) untuk melakukan aksi sinkronisasi terjadwal terhadap file yang ada di server SRIWIJAYA. Untuk membangun system backup ini saya akan membaginya kedalam beberapa tahap, yakni:

  1. Login dengan rsa-key (tanpa password) dari server PAJAJARAN ke server SRIWIJAYA
  2. Membuat bash script pada server PAJAJARAN untuk melakukan sinkronisasi file dengan server SRIWIJAYA.
  3. Menambahkan script yang sudah dibuat kedalam cron job, dimana nantinya akan kita jadwalkan untuk menjalankan script setiap pukul 23:45

TAHAP PERTAMA sudah dilakukan dan kita bisa mengikuti tutorial sebelumnya, yakni penggunaan rsa-key untuk login ssh



TAHAP KEDUA, kita akan membuat bash script untuk backup di server remote (PAJAJARAN)


Pertama, kita lakukan test untuk mengambil file backup dari server SRIWIJAYA. Perintah yang digunakan:

[root@PAJAJARAN ~]# rsync -avz root@192.168.1.101:/root/filedata /home/BACKUPCONFIG/sriwijaya


Dengan perintah diatas, kita akan mengambil filedata yang berada di server SRIWIJAYA dan menempatkannya dilokasi /home/BACKUPCONIG/sriwijaya. Untuk folder BACKUPCONFIG kita harus membuatnya terlebih dahulu di server PAJAJARAN dengan mkdir. Sedangkan untuk direktori sriwijaya akan dibuat secara otomatis oleh perintah diatas. 

Berikutnya, kita akan melakukan kompresi terhadap direktori yang sudah di backup, dan memberikan nama file berdasarkan waktu. Misalnya nama file backup yang kita kehendaki yakni : tahun-bulan-tanggal-namafile, contohnya: 20140110-backup.tar.gz. Berikut perintah untuk melakukan kompresi file backup tersebut:

[root@PAJAJARAN ~]# cd /home/BACKUPCONFIG/
[root@PAJAJARAN BACKUPCONFIG]# tar -czf 20140110-backup.tar.gz sriwijaya/
[root@PAJAJARAN BACKUPCONFIG]# ls
20140210-backup.tar.gz  sriwijaya


Dari perintah diatas, kita harus masuk terlebih dahulu kedalam direktori dimana hasil backup disimpan, dalam hal ini kita masuk ke direktori BACKUPCONFIG.
Perintah :

[root@PAJAJARAN BACKUPCONFIG]# tar -czf 20140110-backup.tar.gz sriwijaya/


Bisa diganti dengan :

[root@PAJAJARAN BACKUPCONFIG]# tar -czf $(date +%Y%m%d)-backup.tar.gz sriwijaya/


Setelah mencoba perintah diatas, kita akan membuat script untuk menggabungkannya agar mempermudah dalam proses penjadwalan nantinya. Kita buat script dengan nama myBackup.sh:

[root@PAJAJARAN ~]# nano myBackup.sh


Isi script myBackup.sh :

#!/bin/bash
#script by semoetz
 
#Step 1 : Sinkronisasikan file sumber
rsync -avz root@192.168.1.101:/root/filedata /home/BACKUPCONFIG/sriwijaya

#Step 2 : Masuk ke direktori BACKUPCONFIG
cd /home/BACKUPCONFIG

#Step 3 : lakukan kompresi terhadap file yang sudah di backup
tar -czf $(date +%Y%m%d)-backup.tar.gz sriwijaya/

#Step 4 (optional) : Hapus folder sriwijaya untuk menghemat space
rm -rf sriwijaya


Ubah hak akses agar dapat dieksekusi:

[root@PAJAJARAN ~]# chmod a+x myBackup.sh


Lakukan pengujian script :

[root@PAJAJARAN ~]# ./myBackup.sh 
receiving incremental file list
created directory /home/BACKUPCONFIG/sriwijaya
filedata/
filedata/configacl.txt
filedata/configrouter.txt
filedata/configssh.txt

sent 72 bytes  received 297 bytes  246.00 bytes/sec
total size is 63  speedup is 0.17


Apabila output seperti diatas, maka kita telah berhasil menjalankan script dengan benar, dan kita bisa memeriksanya dengan perintah:

[root@PAJAJARAN ~]# ls /home/BACKUPCONFIG/
20140131-backup.tar.gz



TAHAP KETIGA, kita akan membuat system backup dengan cron:


Dari contoh kasus diatas, kita akan melakukan backup file setiap hari pada pukul 23:45. Kita akan menggunakan cron dengan perintah:

[root@PAJAJARAN ~]# crontab –e


Kita masukkan script myBackup.sh kedalam cron, dengan parameter sebagai berikut:

#Backup setiap hari pukul 23:45
45 23 * * * /root/myBackup.sh


Restart service crond, dengan perintah:

[root@PAJAJARAN ~]# service crond restart
Stopping crond:                                            [  OK  ]
Starting crond:                                            [  OK  ]


Sampai tahap ini, proses membangun system backup secara otomatis sudah dibuat. Jangan lupa untuk melakukan pemeriksaan terhadap file yang sudah kita backup, apakah berhasil atau tidak. Tutorial ini adalah versi otodidak dari penulis, mungkin diluar sana masih banyak berbagai cara yang lebih terstruktur dan bisa dipelajari sesuai kebutuhan kita.
{ Read More }


Selasa, 11 Februari 2014

Remote login ssh dengan rsa key antar server Linux

Pada artikel sebelumnya saya sudah membahas mengenai bagaimana cara login ssh dengan rsa-key dari host denga Sistem Operasi Windows. Sehingga kita tidak perlu untuk memasukkan password, tapi kita menggunakan key public yang dipasangkan pada remote server, dan opsi lain yakni dengan menambahkan passphrase. Kali ini saya akan menerapkan cara serupa tapi untuk client dengan Sistem Operasi Linux CentOS 6. Konsep nya sama persis seperti rsa key pada client Windows, namun disini saya tidak akan menggunakan passphrase, karena nantinya cara ini akan saya guakan untuk keperluan backup dan monitoring.

Penggunaan ssh dengan autentikasi rsa-key sangat diperlukan untuk keperluan monitoring ataupun backup, karena untuk keperluan tersebut biasanya akan dijalankan secara otomatis, sehingga kita tidak perlu memasukkan password ketika hendak mengakses server lain yang akan kita monitor atau backup tersebut. Dengan cara ini kita bisa membuat script yang akan kita jalankan secara otomatis dengan menggunakan cron. Untuk contoh kasus disini saya akan menunjukkan authentikasi sederhana dengan rsa key dari server PAJAJARAN ke server SRIWIJAYA, sehingga untuk login ssh tidak perlu memasukkan password.

Berikut tahapan pengerjaannya:


1. Pada server asal (PAJAJARAN), kita buat ssh key dengan perintah dibawah ini:

[root@PAJAJARAN~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
be:65:5f:a1:b0:90:66:3d:ab:77:36:85:7e:62:7b:02 root@PAJAJARAN
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|                 |
|         o       |
|        S +  ..  |
|       + .E=.... |
|        . =o...  |
|         =..O.o  |
|        o. +oB   |
+-----------------+


Tekan tombol enter untuk menyimpan file key secara default, dan untuk passphrase, kita kosongkan (teka tombol enter). Dari output diatas, kita sudah memiliki rsa key di lokasi /root/.ssh/

2. Yang akan kita gunakan yakni public key (/root/.ssh/id_rsa.pub). Kita buka isi file tersebut, dan nantinya key ini akan kita simpan di server tujuan remote (SRIWIJAYA). Masih di server PAJAJARAN, kita buka file /root/.ssh/id_rsa.pub:

[root@PAJAJARAN .ssh]# cat id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwWmYG8Goj4TOBIWcY8kEQ7lDU3WihUYdLd6w2PhLIrTSJejyiKww30INtJhtogB/yYn+5AZueJd1csC0paNnhVTfCvRxP14NYHzZhRamnuUzQWdp5WbuDj8lmvNjmGdVJimNqyxncxI9p5yOTtyIeh6iJiZ0GAJLH5p4QX+CWv6V+JH3SO36DEjOIj3b/HbBM6peCdXSz08zqpkTnoSRROF1Ar4hGJiDn103JbijD62WWX5K6/5u/lNJrCL17uD5lr1oAAgkdhmd0nPkTLqOHTJ77M6I8ej/7SEUNoDVSvU2627PX0G3APQrjRiTl3xmjP/nru4ZB9+vXZY6m51QPw== root@PAJAJARAN


Yang akan kita ambil (copy) yakni pada bagian :

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwWmYG8Goj4TOBIWcY8kEQ7lDU3WihUYdLd6w2PhLIrTSJejyiKww30INtJhtogB/yYn+5AZueJd1csC0paNnhVTfCvRxP14NYHzZhRamnuUzQWdp5WbuDj8lmvNjmGdVJimNqyxncxI9p5yOTtyIeh6iJiZ0GAJLH5p4QX+CWv6V+JH3SO36DEjOIj3b/HbBM6peCdXSz08zqpkTnoSRROF1Ar4hGJiDn103JbijD62WWX5K6/5u/lNJrCL17uD5lr1oAAgkdhmd0nPkTLqOHTJ77M6I8ej/7SEUNoDVSvU2627PX0G3APQrjRiTl3xmjP/nru4ZB9+vXZY6m51QPw==


3. Pada server SRIWIJAYA, kita buat file baru dengan nama authorized_keys, lalu kita isi dengan public key server PAJAJARAN diatas

[root@SRIWIJAYA .ssh]# nano authorized_keys


Isi file (kita paste dari public key server PAJAJARAN):

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwWmYG8Goj4TOBIWcY8kEQ7lDU3WihUYdLd6w2PhLIrTSJejyiKww30INtJhtogB/yYn+5AZueJd1csC0paNnhVTfCvRxP14NYHzZhRamnuUzQWdp5WbuDj8lmvNjmGdVJimNqyxncxI9p5yOTtyIeh6iJiZ0GAJLH5p4QX+CWv6V+JH3SO36DEjOIj3b/HbBM6peCdXSz08zqpkTnoSRROF1Ar4hGJiDn103JbijD62WWX5K6/5u/lNJrCL17uD5lr1oAAgkdhmd0nPkTLqOHTJ77M6I8ej/7SEUNoDVSvU2627PX0G3APQrjRiTl3xmjP/nru4ZB9+vXZY6m51QPw==


4. Masih didalam server SRIWIJAYA, kita restart service ssh dengan perintah:

[root@SRIWIJAYA ~]# service sshd restart


5. Dari server PAJAJARAN, kita coba lakukan remote login ssh dengan perintah:

[root@PAJAJARAN ~]# ssh root@192.168.1.101
Last login: Sat Feb  8 22:14:53 2014 from 192.168.1.100
[root@SRIWIJAYA ~]#


Dari hasil output diatas terlihat bahwa server PAJAJARAN tidak perlu memasukkan password lagi dan sudah bisa masuk ke server SRIWIJAYA. 

{ Read More }


Senin, 10 Februari 2014

Sinkronisasi File dan Folder dengan rsync di Linux CentOS 6

Rsync merupakan aplikasi yang berfungsi untuk sinkronisasi file atau folder guna berbagai kebutuhan seperti backup file. Rsync bisa berjalan secara lokal dalam mesin yang sama, ataupun dalam server yang berbeda lokasi. Rsync menggunakan protokol remote-update sehingga proses transfer terasa lebih cepat karena yang ditransfer hanyalah file yang mengalami perubahan saja, artinya tidak semua file dicopy kembali. Disini saya akan mencoba membangun Sistem Backup sederhana dengan rsync.


Gambar : Backup File dengan rsync dari server Lokal ke server Remote

Rsync pada single server

Install paket rsync dengan perintah yum untuk memudahkan instalasi.
[root@SRIWIJAYA ~]# yum install rsync


Selanjutnya kita buat direktori untuk menyimpan file backup. Misalnya kita akan menyimpan file backup di direktori /home/backup
[root@SRIWIJAYA ~]# mkdir /home/backup


Sebagai contoh, kita asumsikan dalam server kita memiliki folder dilokasi /home/filedata yang berisi berbagai macam konfigurasi, dan akan kita backup ke direktori /home/backup.
Contoh isi Direktori sumber yang akan dibackup :

[root@SRIWIJAYA ~]# ls filedata/
configacl.txt  configrouter.txt  configssh.txt


Perintah untuk melakukan backup dengan rsync, dan menempatkannya di lokasi /home/backup

[root@SRIWIJAYA ~]# rsync -avz /root/filedata/ /home/backup/

sending incremental file list
./
configacl.txt
configrouter.txt
configssh.txt

sent 275 bytes  received 72 bytes  694.00 bytes/sec
total size is 63  speedup is 0.18


Sekarang, kita periksa pada direktori /home/backup

[root@SRIWIJAYA ~]# ls /home/backup/
configacl.txt  configrouter.txt  configssh.txt


Dari output diatas terlihat bahwa file dari direktori /root/filedata berhasil disalin ke /home/backup.

Rsync dari server local ke server remote

Apabila kita ingin menyimpan file backup di server lain (remote server), kita hanya perlu untuk melakukan sedikit perubahan pada perintah sebelumnya, dan pastikan kita mempunyai akses ke remote server tersebut. Dalam hal ini kita akan menggunakan akun user root. Dari gambar diatas, local server (SRIWIJAYA) memiliki IP 192.168.1.101 dan remote server (PAJAJARAN) memiliki IP 192.168.1.100. Kita akan membackup file dari server SRIWIJAYA, yakni semua file yang berada dalam direktori /root/filedata ke server PAJAJARAN yang akan kita tempatkan pada direktori /home/sriwijaya-backup.

Dari server local (SRIWIJAYA), ketikkan perintah:

[root@SRIWIJAYA ~]# rsync -avz /root/filedata/ root@192.168.1.100:/home/sriwijaya-backup
root@192.168.1.100's password: 
sending incremental file list
created directory /home/sriwijaya-backup
./
configacl.txt
configrouter.txt
configssh.txt

sent 275 bytes  received 72 bytes  40.82 bytes/sec
total size is 63  speedup is 0.18


Perintah diatas akan menyalin file dala direktori /home/filedata ke server PAJAJARAN (IP 192.168.1.100) ke folder /home/sriwijaya-backup. Sebagi catatan, folder “sriwijaya-backup” akan dibuat secara otomatis pada remote server.

Sekarang kita beralih ke server PAJAJARAN untuk melihat hasilnya:

[root@PAJAJARAN ~]# ls /home/sriwijaya-backup/
configacl.txt  configrouter.txt  configssh.txt


Rsync dari server Remote

Nampaknya proses backup/sinkronisasi file secara remote sudah berhasil. Selain cara diatas, kita bisa mengambil file backup dari Remote server (PAJAJARAN), dengan perintah:

[root@PAJAJARAN ~]# rsync -avz root@192.168.1.101:/root/filedata /home/sriwijaya-backup
root@192.168.1.101's password: 
receiving incremental file list
created directory /home/sriwijaya-backup
filedata/
filedata/configacl.txt
filedata/configrouter.txt
filedata/configssh.txt

sent 72 bytes  received 297 bytes  82.00 bytes/sec
total size is 63  speedup is 0.17


Rsync dengan SSH

Untuk lebih meningkatkan keamanan dalam sinkronisasi file, kita bisa menggunakan rsync dengan protocol ssh agar file yang kita transfer akan terenkripsi. Berikut contoh penggunaan perintah rsync dengan ssh:

[root@SRIWIJAYA ~]# rsync -avzhe ssh /root/filedata/ root@192.168.1.100:/home/sriwijaya-backup
root@192.168.1.100's password: 
sending incremental file list
created directory /home/sriwijaya-backup
./
configacl.txt
configrouter.txt
configssh.txt

sent 275 bytes  received 72 bytes  77.11 bytes/sec
total size is 63  speedup is 0.18


Pada perintah diatas, ada penambahan parameter, yakni –h (human readable) dan –e (untuk menentukan protocol). Penggunaan rsync ini cukup luas, dan dalam tutorial ini saya hanya menunjukkan cara penggunaan sederhana. Rsync sangat cocok untuk digunakan dengan crontab, dimana kita bisa membuat jadwal untuk melakukan backup file secara otomatis pada waktu yang kita tentukan. Untuk topik tersebut sudah saya buat di Tutorial lanjutan dari rsync dengan cron.
{ Read More }


IconIconIconFollow Me on Pinterest

Blogger news

Blogroll

What's Hot