INSTALL POSTGRESQL PADA PCBSD

PostgreSQL adalah sebuah sistem basis data yang disebarluaskan secara bebas menurut Perjanjian lisensi BSD. Piranti lunak ini merupakan salah satu basis data yang paling banyak digunakan saat ini, selain MySQL dan Oracle. PostgreSQL menyediakan fitur yang berguna untuk replikasi basis data. Fitur-fitur yang disediakan PostgreSQL antara lain DB Mirror, PGPool, Slony, PGCluster, dan lain-lain. (source: wikipedia)

Dan pada kesempatan kali ini, saya akan membahas bagaimana cara untuk menginstall PostgreSQL pada PCBSD


Install Port

Menginstall PostgreSQL pada PCBSD terbilang cukup mudah, pada tutorial kali ini saya menginstallnya menggunakan port. Namun sebelumnya pastikan bahwa kalian sudah memiliki port untuk PostgreSQL, dan untuk mendapatkannya lakukan seperti dibawah ini dan dilanjutkan dengan tahap instalasi.
[devil@bsd-indonesiancoder] /usr/home/devil# portsnap fetch && portsnap extract 
[devil@bsd-indonesiancoder] /usr/home/devil# cd /usr/ports/databases/postgresql90-server && make install clean && rehash 

Konfigurasi

Setelah proses instalasi selesai, sekarang sempatkan waktu kalian untuk melakukan konfigurasi PostgreSQL sampai pada akhirnya dapat digunakan. Hal yang pertama kali di lakukan adalah dimulai dari membuat proses daemon PostgreSQL (dalam artian: membuat proses PostgreSQL berjalan pada saat booting) lalu di lanjutkan dengan yang lainnya.
[devil@bsd-indonesiancoder] /usr/home/devil# echo 'postgresql_enable="YES"' >> /etc/rc.conf 
Perintah dibawah ini akan membuat cluster database awal dalam /usr/local/pgsql/data secara default
[devil@bsd-indonesiancoder] /usr/home/devil# /usr/local/etc/rc.d/postgresql initdb
/usr/local/etc/rc.d/postgresql initdb
The files belonging to this database system will be owned by user "pgsql".
This user must also own the server process.

The database cluster will be initialized with locale C.
The default text search configuration will be set to "english".

fixing permissions on existing directory /usr/local/pgsql/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 40
selecting default shared_buffers ... 28MB
creating configuration files ... ok
creating template1 database in /usr/local/pgsql/data/base/1 ... ok
initializing pg_authid ... ok
initializing dependencies ... ok
creating system views ... ok
loading system objects' descriptions ... ok
creating conversions ... ok
creating dictionaries ... ok
setting privileges on built-in objects ... ok
creating information schema ... ok
vacuuming database template1 ... ok
copying template1 to template0 ... ok
copying template1 to postgres ... ok

WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the -A option the
next time you run initdb.

Success. You can now start the database server using:

    /usr/local/bin/postgres -D /usr/local/pgsql/data
or
    /usr/local/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start
Edit file postgresql.conf yang terdapat pada direktori /usr/local/pgsql/data/ dan untuk mengeditnya kalian bisa menggunakan text editor yang kalian suka. Hilangkan comment '#' pada baris listen_addresses dan mengeditnya menjadi seperti dibawah ini
listen_addresses = '*'
Setelah step yang di atas, lakukan konfigurasi PostgreSQL menggunakan otentikasi hash password untuk semua host dan user dengan cara edit file /usr/local/pgsql/data/pg_hba.conf dan pada baris host tambahkan baris dibawah ini.
NOTE: Pada konfigurasi dibawah ini sesuaikan dengan Network Address kalian
host  all  all  192.168.0.0/24  md5

Set User & Password

Setelah step konfigurasi selesai, sekarang kita memulai untuk membuat user baru untuk PostgreSQL seperti yang saya lakukan dibawah ini
[devil@bsd-indonesiancoder] /usr/home/devil# /usr/local/etc/rc.d/postgresql start
[devil@bsd-indonesiancoder] /usr/home/devil# su pgsql
$ createuser -sdrP username
Enter password for new role: masukan password
Enter it again: masukan password kembali
$ exit
[devil@bsd-indonesiancoder] /usr/home/devil#

Semuanya selesai sampai disini, dan PostgreSQL sudah dapat digunakan. Sekian dari saya, apabila ada kesalahan mohon dimaafkan..

[C++] Subnet Calculator

SUBNETWORK (SUBNET) adalah pembagian secara yang terlihat secara fisik dari IP jaringan. Praktik membagi jaringan menjadi dua atau lebih jaringan disebut subnetting.

Semua komputer yang termasuk dalam sebuah subnet dialamatkan dengan bit-group umum, identik, dan paling signifikan dalam alamat IP mereka. Hal ini menyebabkan pembagian logis dari alamat IP ke dua bidang, jaringan atau routing prefix dan sisa field atau pengenal host. Field sisanya adalah pengidentifikasi untuk host tertentu atau antarmuka jaringan. (source: wikipedia)

 

Source Code

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151#include <stdlib.h>
#include <math.h>
#include <iostream>

using namespace std;
int main ()
{
 
   int prefix, subnet, mask, broad, pangkat;
   unsigned int range,host;
   short int akhir;
   short int x=0;

   cout << "Input Prefix (0-32) : ";
   cin >> prefix;
 
   if (prefix==31 || prefix==32 || prefix==0) { 
     cout << "Maaf, prefix "<< prefix <<" tidak bisa dikategorikan sebagai jaringan." << endl; 

   } else if (prefix <=30 && prefix>=24) {
 
    pangkat = 32 - prefix;
    subnet = pow (2, pangkat);
    mask = 256 - subnet;
 
    cout << endl << "Maka subnet mask dari prefix /" << prefix <<" adalah 255.255.255." << mask << endl;
  cout << "Range networknya adalah " << subnet << " IP" << endl;
    host = subnet - 2;
    cout << "Jumlah host yang bisa digunakan adalah " << host << " IP" << endl << endl;
    system("read");
    cout << "Range networknya adalah : " << endl;
 
    do {
   cout << "192.168.1." << x << "/" << prefix;
   x = x + subnet;
   broad = x - 1;
   cout << " - 192.168.1." << broad << endl;
  } while (x<=255);
    system("read");
 
    cout << endl << "IP yang bisa dipakai adalah : " << endl;
    short int y=1;
    do {
   cout << "192.168.1." << y;
   y = y + subnet;
   akhir = y - 3;
   cout << " - 192.168.1." << akhir << endl;
    } while (y<255);

  } else if (prefix <24 && prefix >=16) {
 
    pangkat = 24 - prefix;
    subnet = pow (2, pangkat);
    mask = 256 - subnet;
 
    cout << "\nMaka subnet mask dari prefix /" << prefix << " adalah 255.255." << mask << ".0" << endl;
    range = pow (2, (32 - prefix));
    cout << "Range networknya adalah " << range << " IP" << endl;
    host = (pow (2, (32 - prefix))) - 2;
    cout << "Jumlah host yang bisa digunakan adalah " << host << " IP" << endl << endl;
    system("read");
    cout << "Range networknya adalah : " << endl;

    do {
   cout << "172.16." << x << ".0/" << prefix;
   x = x + subnet;
   broad = x - 1;
   cout << " - 172.16." << broad << ".255" << endl;
    } while (x<=255);
    system("read");
 
    cout << endl << "IP yang bisa dipakai adalah : " << endl;
    short int y=0;
    do {
   cout << "172.16." << y << ".1";
   y = y + subnet;
   akhir = y - 1;
   cout << " - 172.16." << akhir << ".254" << endl;
    } while (y<255);
 
   } else if (prefix <16 && prefix >=8) {
 
  pangkat = 16 - prefix;
    subnet = pow (2, pangkat);
    mask = 256 - subnet;
 
    cout << "\nMaka subnet mask dari prefix /" << prefix << " adalah 255." << mask << ".0.0" << endl;
    range = pow (2, (32 - prefix));
    cout << "Range networknya adalah " << range << " IP" << endl;
    host = (pow (2, (32 - prefix))) - 2;
    cout << "Jumlah host yang bisa digunakan adalah " << host << " IP" << endl << endl;
    system("read");
    cout << "Range networknya adalah : " << endl;
 
    do {
   cout << "10." << x << ".0.0/" << prefix;
   x = x + subnet;
   broad = x - 1;
   cout << " - 10." << broad << ".255.255" << endl;
    } while (x<=255);
    system("read");
 
    cout << endl << "IP yang bisa dipakai adalah : " << endl; 
    short int y=0;
    do {
   cout << "10." << y << ".0.1";
   y = y + subnet;
   akhir = y - 1;
   cout << " - 10." << akhir << ".255.254" << endl;
    } while (y<255);
 
   } else if (prefix <8 && prefix >=0) {
 
    pangkat = 8 - prefix;
    subnet = pow (2, pangkat);
    mask = 256 - subnet;
 
    cout << "\nMaka subnet mask dari prefix /" << prefix << " adalah " << mask << ".0.0.0" << endl;
    range = pow (2, (32 - prefix));
    cout << "Range networknya adalah " << range << " IP" << endl;
    host = (pow (2, (32 - prefix))) - 2;
    cout << "Jumlah host yang bisa digunakan adalah " << host << " IP" << endl << endl;
    system("read");
    cout << "Range networknya adalah : " << endl;
 
    do {
     cout << x << ".0.0.0/" << prefix;
     x = x + subnet;
     broad = x - 1;
     cout << " - " << broad << ".255.255.255" << endl;
    } while (x<=255);
    system("read");
 
    cout << endl << "IP yang bisa dipakai adalah : " << endl; 
    short int y=0;
    do {
     cout << y << ".0.0.1";
     y = y + subnet;
     akhir = y - 1;
     cout << " - " << akhir << ".255.255.254" << endl;
    } while (y<255);
 
    } else {
 
    cout << endl << "Maaf, kode yang anda masukkan salah. Harus angka antara 0-32." << endl;
 
   }
 
  system("read");
 
} // END OF FILE

Instalasi dan Konfigurasi VSFTPD pada Slackware

VSFTPD (Very Secure File Transfer Protocol Daemon) adalah sebuah aplikasi FTP Server yang berjalan pada sistem operasi Linux, Unix, Solaris, HP-UX and IRIX. Mendukung banyak fitur yang sangat banyak pada FTP server lain. Beberapa di antaranya adalah :

1234Requirement keamanan yang sangat tinggi
Batas bandwitdh
Skalabilitas yang baik
Support IPnG 

Dan pada kesempatan kali ini, izinkan saya untuk memberikan pengenalan dasar yang berkaitan dengan "FTP (File Transfer Protocol)".

FTP (File Transfer Protocol) adalah platform independen transfer data dari internet, itu didasarkan pada arsitektur server / klien. RFC 959 [1] determins FTP untuk dibagi dalam dua saluran yang berbeda, satu berfungsi untuk data (TCP-port 20) dan yang lainnya untuk kontrol (TCP-port 21).

FTP menggunakan protokol Transmission Control Protocol (TCP) untuk komunikasi data antara klien dan server, sehingga di antara kedua komponen tersebut akan dibuatlah sebuah sesi komunikasi sebelum pengiriman data dimulai. Sebelum membuat koneksi, port TCP nomor 21 di sisi server akan "mendengarkan" percobaan koneksi dari sebuah klien FTP dan kemudian akan digunakan sebagai port pengatur (control port) untuk membuat sebuah koneksi antara klien dan server, untuk mengizinkan klien untuk mengirimkan sebuah perintah FTP kepada server dan juga mengembalikan respons server ke perintah tersebut. Sekali koneksi kontrol telah dibuat, maka server akan mulai membuka port TCP nomor 20 untuk membentuk sebuah koneksi baru dengan klien untuk mengirim data aktual yang sedang dipertukarkan saat melakukan pengunduhan dan penggugahan. (source: wikipedia)

 

Install VSFTPD

Instalasi daemon vsftpd pada Slackware cukup mudah karena paket tarball bisa kalian dapatkan disini atau kalian bisa menginstall vsftpd menggunakan paket yang sudah di sediakan dalam slackbuild. Setelah mendownload paket tarball, jalankan perintah seperti dibawah ini :

[root@indonesiancoder ~]# tar -xzvf vsftpd-x.x.x.tar.gz
[root@indonesiancoder ~]# cd vsftpd-x.x.x
[root@indonesiancoder ~]# make
[root@indonesiancoder ~]# mkdir /var/ftp
[root@indonesiancoder ~]# useradd -d /var/ftp ftp

Karena alasan keamanan direktori "/var/ftp" tidak harus berasal dari user "ftp", maka kita dapat mengubah owner dan mengurangi permission write dari user lain :

[root@indonesiancoder ~]# chown root.root /var/ftp
[root@indonesiancoder ~]# chmod go-w /var/ftp

Dan sekarang lanjutkan tahap instalasi vsftpd :

[root@indonesiancoder ~]# make install

Setelah proses instalasi selesai, maka lanjut ke step berikutnya seperti dibawah ini :

[root@indonesiancoder ~]# cp vsftpd /usr/sbin/vsftpd
[root@indonesiancoder ~]# cp vsftpd.conf /etc
[root@indonesiancoder ~]# cp vsftpd.conf.5 /usr/share/man/man5
[root@indonesiancoder ~]# cp vsftpd.8 /usr/share/man/man8
 

Konfigurasi VSFTPD

Edit file vsftpd.conf yang terdapat di direktori /etc dengan menggunakan text editor yang kalian suka, dan menghapus comment '#' yang di perlukan pada line yang ditemukan seperti dibawah ini :

# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=NO

# Uncomment this to allow local users to log in.
local_enable=YES

# Uncomment this to enable any form of FTP write command.
write_enable=YES

# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=022

# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
anon_upload_enable=NO

# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
anon_mkdir_write_enable=NO

# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES

# Activate logging of uploads/downloads.
xferlog_enable=YES

# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES

# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
# (Warning! chroot'ing can be very dangerous. If using chroot, make sure that
# the user does not have write access to the top level directory within the
# chroot)
chroot_local_user=YES

# You may fully customise the login banner string:
ftpd_banner=Welcome to My FTP service.

# When "listen" directive is enabled, vsftpd runs in standalone mode (rather
# than from inetd) and listens on IPv4 sockets. To use vsftpd in standalone
# mode rather than with inetd, change the line below to 'listen=YES'
# This directive cannot be used in conjunction with the listen_ipv6 directive.
listen=NO
 

Start FTP Service

Sebelum kita dapat menjalankan servie FTP, kita perlu menghapus comment '#' dari baris di bawah VSFTPD (Very Secure File Transfer Protocol) server yang terdapat pada /etc/inetd.conf seperti dibawah ini :

# Very Secure File Transfer Protocol (FTP) server.
ftp     stream  tcp     nowait  root    /usr/sbin/tcpd  vsftpd

Setelah melakukan step di atas, sekarang kalian bisa menjalankan service FTP server melalui terminal seperti dibawah ini :

[root@indonesiancoder ~]# /etc/rc.d/rc.inetd restart
 

Test

Setelah semuanya siap, kalian sudah dapat mengakses server FTP yang baru saja di buat seperti yang saya lakukan dibawah ini.

[root@indonesiancoder ~]# ftp indonesiancoder
Connected to indonesiancoder..
220 (vsFTPd 3.0.2)
Name (indonesiancoder:uncl): profesorlinux
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls -l
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxr-xr-x    3 1000     100          4096 Mar 12 21:22 Build
drwxr-xr-x   17 1000     100          4096 Mar 11 15:13 Dev
drwxr-xr-x    2 1000     100          4096 Apr 02 20:50 Docs
drwxr-xr-x   10 1000     100          4096 Apr 11 15:13 Repo
drwxr-xr-x   10 1000     100          4096 Apr 12 17:12 Source
226 Directory send OK.
ftp> exit
221 Goodbye.
[root@indonesiancoder ~]#

Cukup sekian tutorial sederhana dari saya, semoga bermanfaat untuk kalian yang membaca bila ada kesalahan mohon di maafkan.

Konfigurasi MariaDB di Ubuntu 12.04

Apabila di postingan sebelumnya saya membahas bagaimana caranya konfigurasi MariaDB di Slackware 14.1. Di postingan kali ini saya akan membahas bagaimana caranya konfigurasi MariaDB pada Ubuntu 12.04.

Timbul pertanyaan, mengapa saya lebih memilih MariaDB? Seperti yang sudah kita ketahui sebelumnya, tidak banyak perbedaan antara MariaDB dan MySQL. Hanya saja MariaDB memiliki fitur baru yang cukup bagus. Dan beberapa keunggulan MariaDB diantaranya memiliki performa lebih baik, dan stabilitas lebih baik.

Saya rasa, cukup sekian penjelasan dari saya dan sekarang kita akan mulai membahas bagaimana caranya mengkonfigurasi MariaDB di Ubuntu 12.04. Dan semoga saja apa yang saya berikan pada kali ini bisa menjadi suatu manfaat bagi kalian yang tengah membaca.

1.  Tambahkan repository MariaDB pada file sources.list dengan cara sudo nano /etc/apt/source.list

12deb http://ftp.osuosl.org/pub/mariadb/repo/5.5/ubuntu precise main
deb-src http://ftp.osuosl.org/pub/mariadb/repo/5.5/ubuntu precise main

2.  Tambahkan repository key MariaDB

stuxnet@indonesiancoder:~$ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 1BB943DB
[sudo] password for stuxnet:
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /tmp/tmp.OpXQyTby1I --trustdb-name /etc/apt/trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 1BB943DB
gpg: requesting key 1BB943DB from hkp server keyserver.ubuntu.com
gpgkeys: HTTP fetch error 7: couldn't connect: eof
gpg: no valid OpenPGP data found.
gpg: Total number processed: 0
stuxnet@indonesiancoder:~$

3.  Update Chache Repository

$ sudo apt-get update

4.  Install MariaDB

$ sudo apt-get install libmariadbclient-dev libmariadbclient18 libmariadbd-dev libmysqlclient18 mariadb-client mariadb-client-5.5 mariadb-client-core-5.5 mariadb-common mariadb-server mariadb-server-5.5 mariadb-server-core-5.5 mariadb-test mariadb-test-5.5 mysql-common
Catatan: Disaat proses instalasi berjalan, nanti akan muncul dialog pada console yang meminta kalian untuk memberikan "root" password MariaDB. Masukan Password kemudian Enter lalu retype password yang sama seperti sebelumnya kemudian Enter. Lalu biarkan proses konfigurasi berjalan pada console kalian sampai proses konfigurasi selesai.

5.  Jalankan service

stuxnet@indonesiancoder:~$ sudo /etc/init.d/mysql start
[sudo] password for stuxnet:
  * Starting MariaDB database server mysqld [ OK ] 
stuxnet@indonesiancoder:~$

5.  Setelah menjalankan service, MariaDB siap digunakan.

stuxnet@indonesiancoder:~$ mysql -u root -p
Enter password: Masukan Password yang sudah dibuat sebelumnya
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 39
Server version: 5.5.36-MariaDB-1~precise-log mariadb.org binary distribution

Copyright (c) 2000, 2014, Oracle, Monty Program Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create database db_profesorlinux;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| db_profesorlinux   |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)

MariaDB [(none)]> \q;
Bye
stuxnet@indonesiancoder:~$