Author: admin

  • PostgreSQL 8.4 Upgrade ke 9.5 (SPSE Master-Slave Streaming Replication #1)

    Catatan ini akan dibuat secara bertahap dengan tujuan akhir ‘server SPSE yang bisa berjalan dengan sistem master-slave secara streaming’, sehingga bila server-master mengalami kegagalan perangkat dan tidak dapat difungsikan, dengan sedikit mengubah konfigurasi pada server-slave akan langsung menjalankan tugas menggantikan server-master.

    Fitur streaming replication (dalam hal ini kita akan menggunakan hot_standby) hanya ada pada PostgreSQL 8.5 Alpha3 keatas, seperti dilansir oleh https://wiki.postgresql.org/wiki/Hot_Standby :
    “Hot Standby is the name for the capability to run queries on a database that is currently performing archive recovery. Log Shipping replication allows you to create one or more standby nodes that are replicas of the primary node (or master node). Standby nodes can then be used for read-only query access.
    Hot Standby was developed for inclusion in PostgreSQL 9.0 by Simon Riggs of 2ndQuadrant via public sponsorship.
    The feature was committed in PostgreSQL 8.5 Alpha3 and is available in PostgreSQL 9.0 and above. See the Hot Standby docs for full details.
    This feature augments streaming replication feature that was introduced in PostgreSQL 9.1, though it does not rely on it and has minimal interaction with it.”

    Server SPSE menggunakan Centos 6 dan Postgresql 8.4, maka dilakukan upgrade database ke PostgreSQL 9.5, versi terbaru (stable) saat catatan ini ditulis. Postgresql 9.5 bisa di install berdampingan dengan Postgresql 8.4 tanpa saling mengganggu, proses instalasi ini dijalankan tanpa terlebih dahulu me-remove Postgresql 8.4 yang sedang berjalan.

    1. yum update
    2. yum upgrade
    3. netstat -tulpn | grep postmaster
    (127.0.0.1:5432 – ini adalah postgresql yang sedang berjalan/digunakan)
    4. rpm -ivh https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-6-x86_64/pgdg-centos95-9.5-2.noarch.rpm
    5. yum install postgresql95 postgresql95-server postgresql95-devel postgresql95-contrib
    6. service postgresql-9.5 initdb
    7. lakukan proses backup database dari Postgresql 8.4 :
    su – postgres
    psql -l (misal databasenya = epns-prod)
    pg_dump -U postgres epns-prod -f epns-prod.sql (akan terbentuk file /var/lib/pgsql/epns-prod.sql)
    8. nano /var/lib/pgsql/9.5/data/pg_hba.conf
    local all all trust
    host all all 127.0.0.1/32 trust
    host all all ::1/128 trust
    9. service postgresql stop
    service postgresql-9.5 start
    10. chkconfig postgresql off
    chkconfig postgresql-9.5 on
    11. su – postgres
    psql
    CREATE USER epns password ‘epns’;
    \q
    createdb -U postgres -O epns epns-prod;
    psql -U postgres -d epns-prod -f epns-prod.sql
    exit
    12. service postgresql-9.5 restart

    Sampai sini proses upgrade dan pemindahan database ke Postgresql 9.5 sudah selesai, silakan melakukan check dan re-check kembali terhadap server SPSE anda, apakah sudah bisa berjalan dengan normal? Bila tidak ada masalah , lanjutkan dengan uninstall Postgresql 8.4 :

    13. yum remove postgresql postgresql-server

    Siap untuk melanjutkan ke SPSE Master-Slave Streaming Replication #2?…tunggu tanggal main nya!

  • Pengaturan Beda Bandwith IIX dan INTL Mikrotik

    Pengaturan beda bandwith untuk mikrotik, contoh nya seperti dibawah ini (sesuaikan dengan kondisi jaringan anda) :

    1. Persiapan NICE.RSC

    /system scheduler
    add comment=update-nice interval=1w name=update-nice-rsc on-event=”:if ([:len \
    [/file find name=nice.rsc]] > 0) do={ /file remove nice.rsc }; /tool fetch\
    \_address=ixp.mikrotik.co.id src-path=/download/nice.rsc mode=http; /impor\
    t nice.rsc” policy=\
    ftp,reboot,read,write,policy,test,password,sniff,sensitive start-date=\
    jan/01/1970 start-time=06:00:00

    2. Persiapan Mangle

    /ip firewall mangle
    add action=mark-connection chain=forward dst-address-list=nice \
    new-connection-mark=conn-IIX-04 src-address=192.168.12.0/24
    add action=mark-connection chain=forward dst-address-list=!nice \
    new-connection-mark=conn-INT-04 src-address=192.168.12.0/24
    add action=mark-packet chain=forward connection-mark=conn-IIX-04 \
    new-packet-mark=IIX-04
    add action=mark-packet chain=forward connection-mark=conn-INT-04 \
    new-packet-mark=INT-04

    3. Persiapan Queue

    /queue tree
    add burst-limit=21M burst-threshold=1M burst-time=1m30s comment=”Main BW” \
    max-limit=14M name=Total-Download parent=bridge1_dmz queue=default
    add burst-limit=21M burst-threshold=1M burst-time=1m30s max-limit=14M name=\
    Download-IIX parent=Total-Download queue=default
    add burst-limit=21M burst-threshold=1M burst-time=1m30s max-limit=14M name=\
    Download-INT parent=Total-Download queue=default

    add name=lokal-041 \
    packet-mark=IIX-04 parent=Download-IIX queue=default
    add burst-limit=4M burst-threshold=512k burst-time=20s \
    max-limit=2M name=lokal-042 \
    packet-mark=INT-04 parent=Download-INT queue=default

  • Cara Reset Konfigurasi Cluster Proxmox

    Create cluster pada proxmox bila dilakukan dengan perintah ‘cman’ selalu mensyaratkan nodes harus dalam kondisi kosong (tidak ada guest didalamnya), pada langkah-langkah berikut ini proses pemisahan (reset konfigurasi cluster) dan create ulang cluster pada proxmox dapat dilakukan tanpa mengosongkan dan mengganggu-gugat guest pada master maupun nodes :

    Proses reset & create ulang cluster :
    1. cp -a /etc/pve /root/pve_backup
    2. /etc/init.d/pve-cluster stop
    3. umount /etc/pve
    4. /etc/init.d/cman stop
    5. rm /etc/cluster/cluster.conf
    rm -rf /var/lib/pve-cluster/*
    6. /etc/init.d/pve-cluster start
    7. pvecm create newcluster

    Proses restore/pengembalian host/guest pada masing-masing master/nodes cluster :
    8. cp /root/pve_backup/*.cfg /etc/pve/
    cp /root/pve_backup/qemu-server/*.conf /etc/pve/qemu-server/
    cp /root/pve_backup/openvz/* /etc/pve/openvz/

    catatan tambahan :

    9. untuk proxmox v5.2 diperlukan juga :

    cp /root/pve_backup/lxc/* /etc/pve/lxc/

    Bila masih ada nodes yang sudah dihapus pada proxmox nodes tree, dapat dihapus dengan perintah :
    10. rm -rf /etc/pve/nodes/HOSTNAME

    Langkah diatas sudah diujicobakan dan sukses pada proxmox v3.2/v3.4, selamat mencoba & yakinkan anda tahu apa yang sedang dilakukan D.W.Y.O.R !

    (sumber : https://elkano.org/blog/how-to-reset-cluster-configuration-in-proxmox-2/)

  • Memperbaiki GRUB Problem Upgrade Proxmox 3.2 ke 3.4

    Melakukan upgrading system adalah hal biasa bagi sysadmin, tapi hari ini luar biasa ketika melakukan upgrade salah satu server proxmox dari versi 3.2 ke 3.4, karena setelah langkah ‘apt-get update && apt-get dist-upgrade’ lancar, langkah selanjut adalah ‘reboot’ dan tadaaaa!…muncul pesan :

    Welcome to GRUB!
    error: unknown filesystem
    grub rescue>

    alamak!..ternyata GRUB nya gagal mencari posisi boot partition, google kesana-sini…lalu mencoba beberapa petunjuk, akhirnya bisa disusun langkah fix nya sebagai berikut :

    1. persiapkan live-usb (saya menggunakan ubuntu 14.04 desktop x64 yang diburn menggunakan rufus ke dalam flashdisk sony 8gb, architecture pakai x64 biar sama dengan proxmox x64)
    2. boot server ke usb tsb, jalankan live ubuntu tanpa melakukan instalasi, buka terminal
    3. langkah berikut (disadur dari http://blog.michaelboman.org/2013/08/proxmox-ve-upgrade-fails-solution.html) :

    $ sudo -s
    # mkdir /mnt/pve
    # mount /dev/pve/root /mnt/pve
    then we mount the supporting devices so we get a complete system
    # mount /dev/pve/data /mnt/pve/var/lib/vz
    # mount /dev/sda1 /mnt/pve/boot
    # mount –bind /dev /mnt/pve/dev
    # mount –bind /proc /mnt/pve/proc
    # mount –bind /sys /mnt/pve/sys
    Then we go into the environment using chroot (change root)
    # chroot /mnt/pve
    # source /etc/profile
    Ok, time to fix things. First I updated /etc/default/grub set

    GRUB_DISABLE_LINUX_UUID=true

    then I made a backup and re-generated the grub configuration file
    # cp /boot/grub/grub.cfg /root/grub.cfg.bak
    # grub-mkconfig -o /boot/grub/grub.cfg
    and finally I installed the grub boot loader:
    # grub-install ‘(hd0)’
    Exit out of the chroot’ed environment (^D or # exit ) and reboot the system.

    catatan : sesuaikan posisi hdd, contoh ini menggunakan /dev/sda1 dan hd0.

    Demikian pelajaran setelah 12 jam dikerjai proxmox upgrade, D.W.Y.O.R !

  • Memperbaiki Error Slideshow dan Banner pada SPSE4

    Request rekan Fredy LPSE HSS agar dibuatkan tuts untuk mengatasi error seperti ini ketika ingin menampilkan banner dan slideshow :

    Ah6KrfsRTPfdWOZYQEu0-0nwiooXIER9rJ7lw1AnUEex

    Step perbaikan error sebagai berikut (langkah-langkah dibawah ini dikerjakan pada terminal/console) :

    1. su – postgres
    2. psql -l (pada contoh ini database yang digunakan adalah : epns_latihan)
    3. psql
    4. kopi-paste perintah berikut :

    \connect epns_latihan;
    CREATE SEQUENCE seq_konten_multimedia
    START WITH 100
    INCREMENT BY 1
    NO MAXVALUE
    NO MINVALUE
    CACHE 1;
    ALTER TABLE public.seq_konten_multimedia OWNER TO epns;

    5. \q
    6. exit
    7. service postgresql restart

    Silakan mencoba kembali upload file banner dan slideshow pada SPSE4 anda… D.W.Y.O.R !

  • Crontab List Semua User

    Menampilkan crontab list semua user :

    for user in $(cut -f1 -d: /etc/passwd); do echo $user; crontab -u $user -l; done

  • How To Install Zimbra 8.6 on CentOS 6

    Memenuhi pesanan Om Narno, bahwa saya harus segera membagikan cara menginstall zimbra mail server, berikut caranya :
    1. https://imanudin.net/2015/03/13/how-to-install-zimbra-8-6-on-centos-6-part-1/
    2. https://imanudin.net/2015/03/14/how-to-install-zimbra-8-6-on-centos-6-part-2/

    video link nya disini :
    1. https://youtu.be/WkYdxucvzUY

  • Koneksi SSH Dengan Port Knocking

    Melanjutkan tulisan sebelumnya tentang Mengatur Firewall Centos 6, menarik untuk lebih meningkatkan lagi keamanan service yang dibuka pada server.

    Port Knocking adalah teknik yang digunakan untuk mengamankan koneksi atau akses port dari pengguna yang tidak diinginkan. Dengan menggunakan teknik ini kita memelihara satu atau beberapa port yang dikonfigurasi sebelumnya ditutup dan ini hanya akan dibuka menggunakan urutan pengetukan (knocking) terhadap port-port komunikasi yang sudah ditetapkan, sebagai contoh : port 22 (default ssh) hanya akan dibuka jika sudah dilakukan ‘knocking’ pada port 1000, 2000 dan 3000 secara berurutan. Perintah knocking dari sisi client dapat menggunakan Nmap, Telnet atau aplikasi yang memang diperuntukan sebagai knocking client.

    Let’s start!

    Saya menggunakan Linux Centos 6.5 x64 (untuk distro lainnya silakan command disesuaikan)

    1. yum install libpcap*
    2. cd /usr/local/src
    3. wget -c http://pkgs.repoforge.org/knock/knock-0.5-3.el6.rf.x86_64.rpm
    4. rpm -ivh knock-0.5-3.el6.rf.x86_64.rpm
    5. konfigurasi :

    baris ini, pada tulisan saya sebelumnya silakan di ‘#’, karena nantinya akan dihandle oleh knockd :

    ## iptables -A INPUT -p tcp –dport 22 -j ACCEPT
    iptables -A INPUT -p tcp –dport 80 -j ACCEPT

    nano /etc/knockd.conf :

    [options]
    logfile = /var/log/knockd.log

    [openSSH]
    sequence = 1000,2000,3000
    seq_timeout = 30
    tcpflags = syn
    Start_command = /sbin/iptables -I INPUT -s %IP% -p tcp –dport 22 -j ACCEPT

    [closeSSH]
    sequence = 1001,2002,3003
    seq_timeout = 30
    command = /sbin/iptables -D INPUT -s %IP% -p tcp –dport 22 -j ACCEPT
    tcpflags = syn

    ctrl + x + s

    6. service knockd start
    7. chkconfig knockd on
    8. reboot server

    Cara knocking di client sebagai berikut :

    9. Client Linux
    open connection :
    # nmap -p 1000 SERVER-IP
    # nmap -p 2000 SERVER-IP
    # nmap –p 3000 SERVER-IP

    close connection :
    # nmap -p 1001 SERVER-IP
    # nmap -p 2002 SERVER-IP
    # nmap –p 3003 SERVER-IP

    10. Client Windows dapat mengunduh dari Knocking Client Windows

    11. hasil log knockd
    # tail /var/log/knockd.log

    [2016-02-10 05:20] 10.0.0.99: openSSH: Stage 1
    [2016-02-10 05:21] 10.0.0.99: openSSH: Stage 2
    [2016-02-10 05:21] 10.0.0.99: openSSH: Stage 3
    [2016-02-10 05:21] 10.0.0.99: openSSH: OPEN SESAME
    [2016-02-10 05:21] openSSH:

    Selamat Mencoba! D.W.Y.O.R

    ref :
    1. http://tecadmin.net/secure-ssh-connections-with-port-knocking-linux/#
    2. http://gregsowell.com/?p=2020
    3. https://en.wikipedia.org/wiki/Port_knocking

  • Solusi SPSE4 Logout ‘Forbidden’

    SPSE4-latihan tidak mau logout dan menampilkan tulisan ‘Forbidden’, ketika di tail -f /var/log/error_log hasilnya sebagai berikut :

    [Fri Feb 26 12:02:28 2016] [error] [client 10.0.0.99] ModSecurity: Warning. Match of “rx ^[\\\\x20-\\\\x7f]+$” against “REQUEST_BODY” required. [file “/etc/httpd/conf/httpd.conf”] [line “1125”] [id “1234582”] [hostname “192.168.100.195”] [uri “/eproc4lat/user/logout”] [unique_id “VtCFJH8AAAEAACPYALsAAAAB”]

    berikan saja tanda ‘#’ dibaris ‘1125’ pada file ‘/etc/httpd/conf/httpd.conf’ dan restart layanan httpd dengan ‘service httd restart’.

    ## SecRule REQUEST_BODY “!^[\x20-\x7f]+$””id:1234582”

    D.W.Y.O.R (**Selalu backup file conf asal sebelum dilakukan perubahan, agar tidak ‘nyanyuk’)

    *UPDATE 2016-10-25 :

    setelah mendapat pencerahan dari om guntur, ada solusi lain tanpa ‘##’ untuk ‘logout forbidden’, dengan menambahkan baris sbb untuk mendisable id 1234582 pada saat mengakses /eproc4 :

    <IfModule mod_security2.c>
    <Location /eproc4>
    SecRuleEngine Off
    SecRuleRemoveById 1234582
    </Location>
    </IfModule>

    sehingga baris :

    SecRule REQUEST_BODY “!^[\x20-\x7f]+$””id:1234582”

    tetap aktif/enable ketika mengakses spse v3.6

    solusi ini sebenarnya juga berlaku untuk semua “SecRule..Id” dengan menambahkan “SecRuleRemoveById #nomorid” yang menyebabkan masalah (DENIED) pada /eproc4.

  • Solusi APENDO4 ‘Gagal Kirim’

    Rekan Trainer kesulitan melanjutkan proses simulasi lelang pada SPSE4-latihan dikarenakan setiap dokumen penawaran dikirim menggunakan Apendo (v4.1.1) muncul pesan : “gagal dikirim”.

    Dilakukan penelusuran dan torch terhadap aktifitas Apendo4, tidak ada yang janggal dan port yang digunakan pun masih sesuai dengan yang dipakai oleh server SPSE4-latihan.

    Troubleshooting dilanjutkan dengan mengakses langsung port_java yang menjalankan SPSE4-latihan, ternyata Apendo4 berhasil mengirim dokumen penawaran dengan mulus bila SPS4-latihan diakses dengan cara sebagai berikut :

    http://ip_SPSE4-latihan:port_java/eproc4lat atau http://domain_SPSE4-latihan:port_java/eproc4lat

    (* ini dijadikan solusi sementara untuk bisa melanjutkan simulasi SPSE4-latihan)

    Dari sini diketahui bahwa masalah terjadi ketika httpd mentranslatekan port 80 (web) menjadi port 9090 (spse4_java), yang dihandle oleh ProxyPass dan ProxyPassReverse, hasil dari tail -f /var/log/httpd/error_log :

    [Fri Feb 26 11:56:01 2016] [error] [client 10.0.0.99] ModSecurity: Access denied with code 400 (phase 2). Match of “eq 0” against “REQBODY_ERROR” required. [file “/etc/httpd/conf.d/modsecurity.conf”] [line “60”] [id “200002”] [msg “Failed to parse request body.”] [data “Multipart: Multiple boundary parameters in C-T.”] [severity “CRITICAL”] [hostname “192.168.100.195”] [uri “/eproc4lat/lt17/upload”] [unique_id “VtCDoX8AAAEAAAWzANgAAAAA”]

    [Fri Feb 26 11:58:12 2016] [error] [client 10.0.0.99] ModSecurity: Access denied with code 400 (phase 2). Match of “eq 0” against “MULTIPART_STRICT_ERROR” required. [file “/etc/httpd/conf.d/modsecurity.conf”] [line “81”] [id “200003”] [msg “Multipart request body failed strict validation: PE 1, BQ 0, BW 0, DB 0, DA 0, HF 0, LF 0, SM 0, IQ 0, IP 0, IH 0, FL 0”] [hostname “192.168.100.195”] [uri “/eproc4lat/lt17/upload”] [unique_id “VtCEJH8AAAEAACOoANQAAAAC”]

    “ModSecurity : Access denied with code 400” ternyata Apendo4 tidak bisa konek ke port aplikasi SPSE4-latihan karena Mod_Security memblokir koneksi dan menganggap koneksi tersebut berbahaya dengan warning ‘[severity “CRITICAL”]’.

    Karena ini adalah server latihan dan faktor security masih bisa dikompromikan, langsung menuju baris 60 dan 81 di /etc/httpd/conf.d/modsecurity.conf dan berikan tanda # untuk disable.

    Restart layanan httpd : service httpd restart

    Selamat Mencoba, D.W.Y.O.R

    (**Biasakan mencantumkan kode sumbernya ketika anda mengkopi-paste tulisan dari blog ini**)