Translate








Rabu, 10 Desember 2014

ifconfig di Linux Centos 7

Secara default, ketika kita sudah menginstall server dengan CentOS 7, tidak dikenal perintah ifconfig. Untuk itu kita perlu menginstall paket "net-tools" agar perintah ifconfig dapat kita gunakan kembali di Centos 7. Ada beberapa cara untuk menginstall paket net-tools. Untuk server yang sudah terkoneksi ke internet mudah saja, kita tinggal ketikkan:

[root@localhost ~]# yum install net-tools
 

Cara yang lainnya, yakni dengan menginstall paket rpm bawaan dvd installer centos. Misalnya "net-tools-2.0-0.17.20131004git.el7.x86_64" yang terdapat dalam direktori "Packages" dvd installer Centos7. Kita copy kan saja atau langsung install dengan perintah:

[root@localhost Packages]# rpm -ivh net-tools-2.0-0.17.20131004git.el7.x86_64.rpm
warning: net-tools-2.0-0.17.20131004git.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:net-tools-2.0-0.17.20131004git.el################################# [100%]

 

Sekarang, Server Centos7 sudah bisa mengenali perintah "ifconfig".

[root@localhost Packages]# ifconfig
ens33: flags=4163  mtu 1500
        inet 192.168.78.118  netmask 255.255.255.0  broadcast 192.168.78.255
        inet6 2002:acfe:7b08:b:20c:29ff:fecd:9aa6  prefixlen 64  scopeid 0x0
        inet6 fe80::20c:29ff:fecd:9aa6  prefixlen 64  scopeid 0x20
        inet6 fec0::b:20c:29ff:fecd:9aa6  prefixlen 64  scopeid 0x40
        ether 00:0c:29:cd:9a:a6  txqueuelen 1000  (Ethernet)
        RX packets 7332  bytes 651294 (636.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 239  bytes 38416 (37.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10
        loop  txqueuelen 0  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


{ Read More }


Kamis, 04 September 2014

Menambahkan Default Gateway dengan Perintah route


Dalam pengetesan jaringan, terutama ketika kita hendak mencoba koneksi ke host seperti internet ataupun host lainnya dari pc/notebook kita, kadang kita sering lupa menambahkan default gateway. Untuk itu, sebagai catatan kecil, tidak saahnya kita mengingat satu baris perintah yang cukup berguna dan bisa kita gunakan dilapangan.

Cara menambahkan Default Gateway pada Linux yaitu dengan perintah:

root@knightdavion:~# route add default gw 192.168.1.1 eth0

Dengan kata lain, format yang digunakan adalah:

route add default gw ip-address-gateway nama-interface 

Satu baris perintah diatas adalah salah satu "the magic spell" kali ini yang bisa kita gunakan untuk berjibaku dengan pengetesan jaringan di lapangan.
{ 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 }


Senin, 01 September 2014

Step by step Install Linux CentOS 7

Ini adalah step by step Instalasi Linux CentOS 7 64bit. CentOS 7 merupakan versi terbaru dari Linux CentOS. Pada saat instalasi, terdapat perbedaan yang mencolok dari versi sebelumnya, yakni dengan adanya Wizard "Installation Summary" dimana terdapat display yang menampilkan menu konfigurasi seperti pengaturan timezone, pemilihan software, network dan hostname, dan lain-lain ditempatkan dalam satu layar. Sedangkan untuk pemberian password root bisa dilakukan ketika instalasi berjalan. Berikut tahapan instalasi Centos 7:
  1. Atur agar BIOS Boot dari CD / DVD pertama kali
  2. Masukkan CD/DVD Installer CentOS kedalam DVD ROM. Untuk instalasi dengan vmWare, bisa menggunakan file image (.iso)
  3. Jalankan server, dan mulai instalasi. Tampilan awal cukup sederhana, kita pilih Install CentOS 7.
  4. Selanjutnya, kita pilih bahasa yang akan digunakan untuk proses instalasi. Kita pilih default saja.
  5. Tahap selanjutnya, kita dihadapkan pada Summary, dan ini adalah hal yang baru dan berbeda dari versi CentOS sebelumnya. Disini kita bisa melakukan konfigurasi dengan memilih langsung menu yang ada. Kita sesuaikan saja dengan kebutuhan.
  6. Untuk Timezone, kita pilih Asia/Jakarta. Setelah dipilih kita klik “Done” pada bagian atas, dan kita akan dibawa kembali ke Summary untuk melakukan konfigurasi selanjutnya.
  7. Untuk Software, kita pilih Minimal install, karena untuk paket yang lainnya bisa kita install nanti. Untuk Partisi, kita bisa Custom atau memilih partisi otomatis. Untuk Network kita juga bisa set setelah instalasi selesai.
  8. Setelah semua selesai, kita mulai instalasi dengan memilih tombol “Begin Installation”. Hal yang baru dari Centos 7 berikutnya yakni pada saat instalasi berlangusng kita dihadapkan juga pada konfigurasi user dan password seperti gambar dibawah.
  9. Kita set password untuk user root
  10. Apabila kita ingin membuat user baru, kita bisa memilih menu user creation.
  11. Setelah semua dikonfigurasi, instalasi akan terus berjalan sampai selesai. Seperti kita lihat pada gambar dibawah.
Instalasi Linux Centos 7 sudah selesai, dan kita restart saja dengan menekan tombol Reboot. Setelah reboot, maka kita akan dihadapkan pada tampilan login root.
{ 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 }


Jumat, 13 Juni 2014

NSCD (Name Service Caching Daemon)


Sesuai dengan namanya, NSCD berfungsi untuk menyimpan cache dari request yang pernah diterima. Pada linux Centos, NSCD sudah terinstall secara default, namun apabil sistem belum terinstall, kita bisa lakukan dengan perintah:

#yum install nscd


NSCD memiliki dua jenis cache dalam setiap server, yakni cache positif dan cache negatif. Maksud dari pembagian jenis cache ini yakni berkaitan dengan pengaruh yang diberikan dari NSCD dalam menjalankan fungsinya. 

Cache positif adalah dimana cache akan menyimpan lookup request ketika hostname berhasil ditemukan (di-resolve). Misalnya ketika kita mengakses www.centos.org, dan berhasil ditemukan, maka cache akan disimpan. Apabila ada request yang sama, maka berikutnya akan di load dengan lebih cepat oleh resolver, karena lookup akan diambil dari cache sebelumnya. 

Apabila lookup request tidak dapat ditemukan, maka NSCD tetap akan menyimpan cache dari request tersebut, dan seakan-akan telah menandai bahwa request tersebut memang tidak bisa di resolve. Misalnya ketika kita mengakses jurnalinux.centos.org ketika pertama kali (dengan asumsi jurnalinux.centos.org belum ada) maka akan terjadi failure, dan host tersebut tidak dapat ditemukan. Selanjutnya, ketika jurnalinux.centos.org memang sudah ada (asumsi sudah dibangun), dan ada request ke host tersebut, maka akan terjadi failure kembali atau host tidak bisa ditemukan, karena resolver telah mengambil cache dari NSCD, dimana sebelumnya untuk request host tersebut memang belum ada. Ini adalah cache negatif

Untuk mengatasi cache negatif seperti diatas, kita harus membersihkan cache (refresh) dengan perintah:

#nscd -i hosts


Dengan perintah tersebut cache akan dibersihkan, dan berbagai request bisa disimpan dengan lebih update. Apabila ada perubahan host maka sebaiknya dilakukan refresh nscd ini setelah melakukan perubahan. NSCD bisa digunakan meningkatkan performa jaringan, tapi bisa menjadi permasalahan untuk lingkungan development. Setelah penjelasan ringkas diatas, kita seharusnya sudah bisa menentukan apakah perlu atau tidak untuk menggunakan NSCD dalam system kita.
{ Read More }


Jumat, 07 Maret 2014

Berbagai cara untuk mengakses Command-Line Interface server Linux

Untuk mengakses command-line interface linux, ada beberapa cara. Diantaranya:

  1. Graphical Terminal, biasanya digunakan di Desktop environment (CentOS diinstall dengan mode GUI).
  2. Remote ssh (secure shell), bisa menggunakan tool seperti putty, xshell, dll.
  3. Virtual Consoles, yakni dengan login langsung kedalam server melalui terminal (text-mode). Secara default, Linux CentOS memiliki 6 konsol yang bisa diakses dengan menekan tombol Alt+F1 sampai dengan F6, dimana setiap kombinasi tombol tersebut akan membuka satu layar konsol baru. Apabila sebelumnya kita mengakses dari server GUI, maka untuk kembali ke mode GUI, tekan Alt+F7.
{ Read More }


Rabu, 05 Maret 2014

Melindungi ssh dari Brute Force Attacks dengan fail2ban

Ssh merupakan service yang layak untuk memperoleh pengamanan ketat dalam sebuah server. Karena ssh merupakan kunci yang sangat penting untuk masuk kedalam sistem linux, dimana sangat memungkinkan untuk mengexploitasi sistem ketika ada "intruder" yang berhasil masuk melalui ssh tersebut. Disini saya akan menambahkan salah satu layer pengamanan ssh, yakni dengan menggunakan tool fail2ban.

Cara kerja tool ini fokus pada percobaan login user yang dibaca melalui file log. Apabila ada user yang gagal melakukan login selama beberapa kali (intensitas bisa kita tentukan), sistem akan melakukan ban terhadap alamat IP asal dimana user tersebut melakukan login. Dengan mekanisme tersebut, akan berguna untuk meminimalisir Brute Force Attack yang dilakukan oleh intruder.

Tutorial ini akan dibagi kedalam 3 tahap, yakni:
1. Instalasi fail2ban (dari Repositori EPEL)
2. Konfigurasi
3. Pengetesan

Untuk instalasi paket fail2ban sudah dilakukan pada artikel sebelumnya. Sekarang kita fokus pada konfigurasi fail2ban.

Paket yang digunakan yakni versi 0.8.11

[root@SRIWIJAYA ~]# rpm -qa | grep fail2ban
fail2ban-0.8.11-2.el6.noarch


File konfigurasi utama yakni jail.conf yang terdapat pada direktori /etc/fail2ban. Untuk melakukan konfigurasi, kita backup dulu file tersebut untuk berjaga-jaga apabila terjadi kegagalan konfigurasi.

[root@SRIWIJAYA ~]# cd /etc/fail2ban/
[root@SRIWIJAYA fail2ban]# cp jail.conf jail.backup
[root@SRIWIJAYA fail2ban]# ls
action.d  fail2ban.conf  filter.d  jail.backup  jail.conf


Buka file konfigurasi, lalu lakukan editing

[root@SRIWIJAYA ~]# nano /etc/fail2ban/jail.conf


# IP Address yang diabaikan oleh fail2ban (diizinkan login) 
ignoreip = 192.168.78.73/24

# Lama waktu ban (detik)
bantime  = 3600

# Waktu dimana kita harus segera login (detik)
findtime  = 900

# Jumlah percobaan login yang diizinkan
maxretry = 5
 
# Service ssh yang kita proteksi 
[ssh-iptables]

enabled  = true
filter   = sshd
action   = iptables[name=SSH, port=ssh, protocol=tcp]
           sendmail-whois[name=SSH, dest=root, sender=fail2ban@sriwijaya.com, send$
logpath  = /var/log/secure
maxretry = 5
 

Jalankan service fail2ban :
[root@SRIWIJAYA ~]# service fail2ban start



Pengetesan 



Login dari  IP lain :
Dalam hal ini coba login dari IP 192.168.78.54, dan masukkan password yang salah sebanyak 5 kali. Maka IP tersebut akan ter-Ban secara otomatis.

Berikut Notifikasi Email yang masuk:
[root@SRIWIJAYA ~]# cat /var/spool/mail/root


From fail2ban@sriwijaya.com  Mon Mar  3 19:19:18 2014
Return-Path: 
X-Original-To: root
Delivered-To: root@SRIWIJAYA.localdomain
Received: by SRIWIJAYA.localdomain (Postfix, from userid 0)
        id 95F4F6160F; Mon,  3 Mar 2014 19:19:18 +0700 (WIB)
Subject: [Fail2Ban] SSH: banned 192.168.78.54 from SRIWIJAYA
Date: Mon, 03 Mar 2014 12:19:18 +0000
From: Fail2Ban 
To: root@SRIWIJAYA.localdomain
Message-Id: <20140303121918 data-blogger-escaped-.95f4f6160f="" data-blogger-escaped-localdomain="">

Hi,

The IP 192.168.78.54 has just been banned by Fail2Ban after
5 attempts against SSH.


Here are more information about 192.168.78.54:



Regards,

Fail2Ban


Potongan Log dari /var/log/secure :
[root@SRIWIJAYA ~]# cat /var/log/secure


Mar  3 19:18:29 SRIWIJAYA sshd[2812]: Failed password for root from 192.168.78.54 port 56019 ssh2
Mar  3 19:18:29 SRIWIJAYA sshd[2813]: Connection closed by 192.168.78.54
Mar  3 19:18:29 SRIWIJAYA sshd[2812]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.78.54  user=root
Mar  3 19:19:10 SRIWIJAYA unix_chkpwd[2823]: password check failed for user (root)
Mar  3 19:19:10 SRIWIJAYA sshd[2821]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.78.54  user=root
Mar  3 19:19:13 SRIWIJAYA sshd[2821]: Failed password for root from 192.168.78.54 port 56023 ssh2
Mar  3 19:19:15 SRIWIJAYA unix_chkpwd[2824]: password check failed for user (root)
Mar  3 19:19:18 SRIWIJAYA sshd[2821]: Failed password for root from 192.168.78.54 port 56023 ssh2
You have new mail in /var/spool/mail/root


Dengan percobaan diatas, maka IP Address 192.168.78.54 telah ter-Ban, dan tidak akan bisa melakukan Login. Untuk lebih jauh, silahkan kunjungi Manual Perintah fail2ban yang bisa dicoba.

Notes:
*) Pada file konfigurasi [ssh-iptables], bisa diubah alamat email untuk notifikasi, misalnya email external.
*) File log bisa dipisahkan dengan mengubah direktif "logpath" pada file konfigurasi. Misalnya dengan membuat file log /var/log/fail2ban.log.

{ Read More }


Rabu, 26 Februari 2014

Mengaktifkan Repositori EPEL untuk Linux CentOS 6

EPEL (Extra Packages for Enterprise Linux) merupakan repositori yang berisi bermacam-macam aplikasi open source penunjang server. EPEL bukanlah bagian dari versi OS tertentu. Dengan EPEL, kita bisa melakukan instalasi paket dengan mudah dan tentunya kompatibel sesuai OS yang kita install. Disini saya menggunakan server dengan Linux centOS 6.5, dan akan saya coba untuk mengaktifkan Repositori EPEL. Syaratnya, kita harus terkoneksi ke internet.

Berikut tahapannya:
  1. Download paket EPEL :
    Untuk CentOS versi 6 32 bit download disini
    Untuk CentOS versi 6 64 bit download disini

  2. Install Paket EPEL yang sudah di download
    [root@SRIWIJAYA ~]# ls
    anaconda-ks.cfg              install.log
    epel-release-6-8.noarch.rpm  install.log.syslog
    [root@SRIWIJAYA ~]# chmod +x epel-release-6-8.noarch.rpm
    [root@SRIWIJAYA ~]# rpm -ivh epel-release-6-8.noarch.rpm
    warning: epel-release-6-8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
    Preparing...                ########################################### [100%]
       1:epel-release           ########################################### [100%]
    
    

  3. Verifikasi Repositori EPEL
    [root@SRIWIJAYA ~]# yum repolist
    Loaded plugins: fastestmirror, security
    Loading mirror speeds from cached hostfile
    epel/metalink                                            | 5.7 kB     00:00
     * c6-media:
     * epel: mirror.rndc.or.id
    epel                                                     | 4.2 kB     00:00
    http://mirror.rndc.or.id/fedora/epel/6/x86_64/repodata/repomd.xml: [Errno -1] repomd.xml does not match metalink for epel
    Trying other mirror.
    epel                                                     | 4.2 kB     00:00
    epel/primary_db                                          | 5.9 MB     00:14
    repo id           repo name                                               status
    c6-media          CentOS-6 - Media                                         6,367
    epel              Extra Packages for Enterprise Linux 6 - x86_64          10,523
    repolist: 16,890
    
    

  4. Test Install paket dari EPEL, misalnya kita coba untuk install paket "fail2ban" yang akan kita gunakan untuk Tutorial selanjutnya
    [root@SRIWIJAYA ~]# yum install fail2ban
    
    
Sampai disini, kita sudah bisa menginstall paket-paket dari EPEL yang sangat banyak sekali tool-tool powerfull bertebaran disana. :D
{ Read More }


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 }


Kamis, 20 Februari 2014

SFTP dengan CHROOT pada Linux CentOS

Pada Tutorial sebelumnya kita sudah mencoba membangun server FTP sederhana dengan vsftpd.Sekarang saya akan mencoba membangun Sistem serupa dengan menggunakan SFTP (Secure FTP), dengan CHROOT agar user hanya bisa mengakses Direktori yang kita tentukan saja. Perbedaan dari FTP konvensional adalah dari sisi keamanan, dengan SFTP relatif lebih aman dikarenakan ada enkripsi data, perbedaan lainnya yakni dari port default yang digunakan yaitu port 22 sama seperti port SSH, walaupun sebenarnya port ini bisa kita tentukan sendiri.


Untuk membangun SFTP dengan CHROOT, berikut tahapannya:
  1. Instalasi paket Openssh yang dibutuhkan.
  2. Membuat Direktori baru untuk user/client. Direktori ini sebaiknya dipisahkan dari direktori home default. Misalnya kita akan buat seperti ini: /home/ftp/ucox. Direktori "ucox" inilah yang kita sediakan untuk Client.
  3. Membuat User baru untuk Client, misalnya saja user baru tersebut adalah Ucox.
  4. Batasi User Client agar tidak bisa mengakses SHELL.
  5. Lakukan perubahan Hak Akses dan kepemilikan direktori
  6. Konfigurasi pada /etc/ssh/sshd_config
  7. Pengetesan Akses dengan sftp client (WinScp)

1. Instalasi paket openssh yang dibutuhkan


Disini, saya menggunakan Linux CentOS 5.6 32bit. Untuk paket openssh default nya yakni versi 4.3p2xx tidak akan kita gunakan karena tidak support untuk parameter "Match" didalam file konfigurasi ssh. Disini saya menggunakan paket openssh sebagai berikut:

  • openssh-server-6.1p1-5.el5.1.i386.rpm
  • openssh-6.1p1-5.el5.1.i386.rpm
  • openssh-clients-6.1p1-5.el5.1.i386.rpm
  • openssh-askpass-6.1p1-5.el5.1.i386.rpm
  • libedit-20090923-3.0_1.el5.rf.i386.rpm
Paket-paket tersebut sudah saya kumpulkan dan bisa anda download disini, dan paket-paket ini cocok digunakan di CentOS 5.6. Didalam nya sudah saya sertakan untuk CentOS 64 bit juga.


Tahapan instalasi :
[root@MAJAPAHIT openssh]# rpm -ivh openssh-server-6.1p1-5.el5.1.i386.rpm openssh-6.1p1-5.el5.1.i386.rpm openssh-askpass-6.1p1-5.el5.1.i386.rpm libedit-20090923-3.0_1.el5.rf.i386.rpm openssh-clients-6.1p1-5.el5.1.i386.rpm


Jika paket openssh versi bawaan CentOS default sudah terinstall, silahkan uninstall terlebih dahulu karena bisa menyebabkan conflict.

2. Menyiapkan Direktori baru untuk Client

Berikutnya, kita siapkan Direktori baru untuk Home Direktori client. Disini saya akan menyiapkan direktori /ftp didalam /home dengan format: /home/ftp/ucox. Direktori yang perlu dibuat adalah /sftp dan /ucox (bisa langsung dibuat dengan parameter "-d").

[root@MAJAPAHIT ~]# mkdir /home/ftp
[root@MAJAPAHIT ~]# mkdir /home/ftp/ucox



3. Membuat user baru untuk Client


[root@MAJAPAHIT ~]# useradd -d /home/ftp/ucox/ ucox
[root@MAJAPAHIT ~]# passwd ucox



4. Membatasi akses user Client agar tidak bisa mengakses shell,kita ketikkan perintah:


[root@MAJAPAHIT ~]# usermod -s /sbin/nologin ucox


atau kita bisa merubahnya secara manual pada file /etc/passwd.

5. Merubah Hak Akses dan Kepemilikan Direktori.


Berdasarkan hirarki Direktori dibawah ini, kita ubah hak akses untuk direktori /ftp


[root@MAJAPAHIT ~]# chown root:root /home/ftp/



Ubah kepemilikan direktori untuk Client Ucox

[root@MAJAPAHIT ~]# chown ucox:ucox -R /home/ftp/ucox/



6. Konfigurasi file sshd_config


Buka File sshd_config, lalu tambahkan beberapa baris konfigurasi seperti dibawah:

# override default of no subsystems
#Subsystem      sftp    /usr/libexec/openssh/sftp-server
Subsystem       sftp    internal-sftp

Match User ucox
    ChrootDirectory /home/ftp/
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no


7. Lakukan Test Login dengan WinSCP



Dengan cara-cara diatas, SFTP server kita sudah berjalan, dan user/cliet dengan nama ucox hanya bisa melakukan transfer file dari dan ke direktori nya saja, tidak bisa membuka direktori lain.
{ 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