Archive for the ‘ Linux ’ Category

Reset password user ‘root’ di MySQL Server maupun MariaDB Server

Lupa adalah hal yg wajar sebagai manusia, lupa bisa menjadi berkah dan sebaliknya bisa jadi bencana lho, apalagi yg menyandang status sysadmin… hehehe. đŸ˜€

Ok, hari ini saya akan menuliskan catatan dan berbagi pengalaman. Cara mereset password root database MySQL maupun MariaDB.

Langsung saja:

1. Langkah pertama, stop service daemon ‘mysqld’ untuk MySQL server dan ‘mysql’ untuk MariaDB.

[root@server ~]# service mysqld stop
Stopping mysqld:  [  OK  ]

2. Jalankan lagi service mysql daemon secara ‘safe mode’, kemudian tkan tombol ctrl+c untuk kembali ke shell (dengan menekan tombol ctrl+c, secara harfiah kita telah menggagalkan suatu proses, tapi dalam kasus ini, service mysql masih berjalan kok).

[root@server ~]# mysqld_safe --skip-grant-tables --skip-networking &
[1] 12731
[root@server ~]# 130204 20:00:06 mysqld_safe Logging to '/var/log/mysqld.log'.
130204 20:00:06 mysqld_safe A mysqld process already exists
^C
[1]+  Exit 1

# note: dengan opsi --skip-grant-tables, berarti telah memperbolehkan login ke shell sql tanpa pengecekan password. Dan ini tidak aman, sehingga kita perlu menambahkan opsi --skip-networking, untuk mencegah query dari jaringan.

3. Dan kitapun berhasil masuk ke shell MySQL/ MariaDB tanpa password :).

[root@server ~]# mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.67 Source distribution

Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

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

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| test               |
+--------------------+
3 rows in set (0.00 sec)
mysql>

4. Setelah berhasil masuk ke shell MySQL/ MariaDB, kita bisa melakukan update password ke user yg kita inginkan, terutama user ‘root’.

mysql> update mysql.user set password = password('satudua3') where user='root';
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3  Changed: 3  Warnings: 0

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select user,password,host from user;
+------+-------------------------------------------+-----------+
| user | password                                  | host      |
+------+-------------------------------------------+-----------+
| root | *200CFA46F92231BE79458247DEA35133DFFA3608 | localhost |
| root | *200CFA46F92231BE79458247DEA35133DFFA3608 | server    |
| root | *200CFA46F92231BE79458247DEA35133DFFA3608 | 127.0.0.1 |
+------+-------------------------------------------+-----------+
5 rows in set (0.00 sec)

mysql> \q
Bye

5. Selanjutnya, lakukan restart kepada service ‘mysqld’ untuk MySQL server atau ‘mysql’ untuk MariaDB server daemon.

[root@server ~]# service mysqld restart
Stopping mysqld:  [  OK  ]
Starting mysqld:  [  OK  ]

6. Pastikan mysql daemon sudah bekerja dengan benar.

[root@server ~]# mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) ## Akses dilarang karena tidak menyertakan password

[root@server ~]# mysql -u root -p
Enter password: ******* ## password mysql, dan kita pun bisa login.

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.1.67 Source distribution

Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

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

mysql>
S.E.K.I.A.N

sumber: disini

Installasi MariaDB di Centos 6.3

Ok, langsung saja, kita akan melakukan instalasi MariaDB, sebagai pengganti dari MySQL server yg sudah terinstall di Distro Centos 6.3, atau bisa juga dimulai dari fresh install. Jika pembaca ingin mengetahui lebih lanjut tentang MariaDB, silahkan kunjungi disini atau disini.

1. Pertama, cek terlebih dahulu apakah pembaca memiliki MySQL-Server yg sudah terinstall? Jika masih terinstall, remove MySQL-Server berserta dependencinya. Namun, jika pembaca memulai dari fresh install, bisa langsung ke langkah no 2.

[root@dbs ~]# rpm -qa mysql*
mysql-connector-odbc-5.1.5r1144-7.el6.i686
mysql-5.1.67-1.el6_3.i686
mysql-libs-5.1.67-1.el6_3.i686
mysql-server-5.1.67-1.el6_3.i686
[root@dbs ~]#
[root@dbs ~]# yum remove mysql mysql-server -y

2. Tambahkan repository MariaDB, dengan membuat file “mariadb.repo”.

[root@dbs ~]# vim /etc/yum.repos.d/mariadb.repo
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/5.5/centos6-x86
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
enabled=1

3. Install MariaDB-server dan MariaDB-client.

[root@dbs ~]# yum install MariaDB-server MariaDB-client -y

[root@dbs ~]# rpm -qa MariaDB*
MariaDB-client-5.5.29-1.i686
MariaDB-server-5.5.29-1.i686
MariaDB-compat-5.5.29-1.i686
MariaDB-common-5.5.29-1.i686
[root@dbs ~]#

4. Nah, jika kita memakai MySQL-Server, daemonnya bernama ‘mysqld’, tapi untuk MariaDB nama service daemonnya adalah ‘mysql’. Sekarang jalankan service MariaDB.

# Memulai service MariaDB
[root@dbs ~]# service mysql start
Starting MySQL....[ OK ]

# MariaDB juga masih menggunakan port yg sama dengan MySQL
[root@dbs ~]# netstat -tunpl | grep mysql
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1987/mysqld

5. Setelah itu, kita perlu memberikan password kepada user ‘root’.

# Set password user 'root'
[root@dbs ~]# mysqladmin -u root password 'MariadbRootpass'

# Login ke shell MariaDB
[root@dbs ~]# mysql -u root -p
Enter password:

Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.29-MariaDB MariaDB Server

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

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

# Syntax perintah MariaDB pun sama persis dengan MySQL.
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

MariaDB [(none)]>

6. Kita akan coba membuat database ‘mariaDB’ dengan user ‘mariaDBuser’.

# Membuat database "mariaDB".
MariaDB [(none)]> create database mariaDB;
Query OK, 1 row affected (0.00 sec)</code>

# Membuat user "mariaDBuser" dengan password "mariaDBpass".
MariaDB [(none)]> create user 'mariaDBuser'@'localhost' identified by 'mariaDBpass';
Query OK, 0 rows affected (0.00 sec)

# Memberikan semua hak akses di database "mariaDB" kepada user "mariaDBuser".
MariaDB [(none)]> grant all privileges on mariaDB.* to 'mariaDBuser'@'localhost';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

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

MariaDB [(none)]>

7. Yang saya suka adalah, di shell prompt MariaDB terdapat info nama database yg sedang kita pakai, jika kita tidak menggunakan database, maka akan di tampilkan “[none]”.

# Menggunakan database mysql.
MariaDB [(none)]> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A</code>

Database changed

# dan nama database pun tampil di prompt shell. đŸ™‚
MariaDB [mysql]&gt; select user,password,host from user;
+--------+-------------------------------------------+-----------+
| user   |                    password               |    host   |
+--------+-------------------------------------------+-----------+
| root   | *1F97D2C878F0792D26BB3FEA50B832499A1A0302 | localhost |
| root   |                                           |    dbs    |
| root   |                                           | 127.0.0.1 |
| root   |                                           |    ::1    |
|        |                                           |    dbs    |
| mariaDBuser | *3CE8BC87B8482D802ADF1761069593644   | localhost |
+-------------+--------------------------------------+-----------+
7 rows in set (0.00 sec)

MariaDB [mysql]> \q
Bye
[root@dbs ~]#

Ternyata, setelah kita tahu caranya, tidak sulit amat bukan? :). Selesai.

Konfigurasi DHCP server dengan Dynamic Update pada Bind9 di CentOS 6.3

DHCP Server dan Dynamic Update Bind9 DNS Server

Disini saya hanya akan membahas instalasi dan konfigurasi saja, untuk deskripsi dan penjelasan tentang apa itu dynamic update pada BIND9, silahkan mencari referensi di internet dan dokumentasi resmi dari isc.org. Konfigurasi yg saya tuliskan disini, sudah saya uji coba dan diterapkan di lingkungan kerja saya. Jika ada pertanyaan, silahkan tinggalkan komentar.

1. install dhcp server.

[root@dns ~]# [root@dns ~]# rpm -qa | grep dhcp
dhcp-common-4.1.1-31.P1.el6.i686
[root@dns ~]# yum install dhcp -y

2. Lakukan konfigurasi sesuai dengan keperluan anda.

[root@dns ~]# cd /etc/dhcp/
[root@dns dhcp]# ls -l
total 12
drwxr-xr-x. 2 root root 4096 Aug 15 22:29 dhclient.d
-rw-r--r--. 1 root root  193 Aug 15 22:29 dhcpd6.conf
-rw-r--r--. 1 root root  112 Aug 15 22:29 dhcpd.conf

[root@dns dhcp]# cat dhcpd.conf
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.sample
#   see 'man 5 dhcpd.conf'
#

3. Backup file lama, dan copy contoh konfigurasi untuk memudahkan kita meng-editnya kemudian.

[root@dns dhcp]# mv dhcpd.conf dhcpd.conf.ori
[root@dns dhcp]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample .

4. Konfigurasi file dhcpd.conf

[root@dns dhcp]# cat dhcp.d.conf.sample | grep -Ev "[#]" > dhcpd.conf
[root@dns dhcp]# nano dhcpd.conf

## Isi file dhcpd.conf
option domain-name "intranet.virtual";
option domain-name-servers dns.intranet.virtual;
default-lease-time 600;

max-lease-time 7200;
ddns-update-style interim;
include "/etc/rndc.key"; // key nya harus sama dengan key yg ada di dns server.

zone intranet.virtual {
	primary 192.168.8.2; // IP Address DNS Server.
	key rndc-key; // key samakan dengan di dns server.
}

zone 8.168.192.in-addr.arpa {
	primary 192.168.8.2; // IP Address DNS Server.
	key rndc-key; // key samakan dengan di dns server.
}

authoritative;
log-facility local6; // DHCPD log saya rubah menjadi local6

subnet 192.168.8.0 netmask 255.255.255.0 {  // dhcp range
	range 192.168.8.100 192.168.8.200;
        option routers 192.168.8.1;
}
## end of dhcpd.conf ##

5. Edit file named.conf dan tambahkan acl berikut:

acl "dhcpd" { key rndc-key; };

6. Edit file named.rfc1912.zones, dan tambahkan opsi allow-update { dhcpd; }; di zona domain yg kita buat, :

allow-update { dhcpd; };

7. Edit rsyslog.conf, tambahkan baris berikut, agar log dari ‘daemon dhcpd’ terpisah dari ‘messages’.

# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none;local6.none		/var/log/messages
# DHCPD Logging
local6.*	/var/log/dhcpd.log

8. restart service rsyslog, dhcpd dan named.

[root@dns named]# service rsyslog restart && service dhcpd restart && service named restart
Shutting down system logger:                               [  OK  ]
Starting system logger:                                    [  OK  ]
Shutting down dhcpd:                                       [  OK  ]
Starting dhcpd:                                            [  OK  ]
Stopping named: .                                          [  OK  ]
Starting named:                                            [  OK  ]
[root@dns named]#

9. Aktifkan dhcpd daemon sejak startup.

[root@dns named]# chkcondifig dhcpd on
[root@dns named]# chkconfig dhcpd on| grep named dhcp
dhcpd          0:off1:off2:on3:on4:on5:on6:off
dhcpd6         0:off1:off2:off3:off4:off5:off6:off

10. Set SELinux polivy boolean menjadi true.

[root@dns named]# getsebool -a | grep named
named_write_master_zones --> off
[root@dns named]# setsebool -P named_write_master_zones true
[root@dns named]# getsebool -a | grep named
named_write_master_zones --> on

11. Lakukan uji coba menggunakan perintah nsupdate:

[root@dns named]# nsupdate -k /etc/rndc.key
> server 127.0.0.1
> update add tes.intranet.virtual 86400 A 192.168.8.200
> send
> quit
[root@dns named]#

12. Log dari perintah nsupdate:

[root@dns named]# tail -f /var/log/messages
Nov 27 17:37:15 dns named[2072]: client 127.0.0.1#11830: signer "rndc-key" approved
Nov 27 17:37:15 dns named[2072]: client 127.0.0.1#11830: updating zone 'intranet.virtual/IN': adding an RR at 'tes.intranet.virtual' A
Nov 27 17:37:15 dns named[2072]: zone intranet.virtual/IN: sending notifies (serial 3)
Nov 27 17:37:35 dns named[2072]: client 127.0.0.1#48488: transfer of 'intranet.virtual/IN': AXFR started
Nov 27 17:37:35 dns named[2072]: client 127.0.0.1#48488: transfer of 'intranet.virtual/IN': AXFR ended
Nov 27 17:38:01 dns named[2072]: client 127.0.0.1#28490: signer "rndc-key" approved
Nov 27 17:38:01 dns named[2072]: client 127.0.0.1#28490: updating zone 'intranet.virtual/IN': delete all rrsets from name 'tes.intranet.virtual'
Nov 27 17:38:01 dns named[2072]: zone intranet.virtual/IN: sending notifies (serial 4)
Nov 27 17:38:10 dns named[2072]: client 127.0.0.1#55302: transfer of 'intranet.virtual/IN': AXFR started
Nov 27 17:38:10 dns named[2072]: client 127.0.0.1#55302: transfer of 'intranet.virtual/IN': AXFR ended
^C
[root@dns named]#

jangan lupa untuk menghapus record tes.intranet.virtual yg tadi ditambahkan, karena jika tidak akan menimbulkan masalah di kemudian hari.

13. ini adalah log ketika dhcpd melayani request IP Address dari klien dan bind9 melakukan dynamic update.

[root@dns named]# tail -f /var/log/messages
Nov 27 16:08:15 dns dbus: [system] Reloaded configuration
Nov 27 16:08:19 dns setsebool: The named_write_master_zones policy boolean was changed to true by root
Nov 27 16:11:13 dns named[1823]: client 192.168.8.2#60260: signer "rndc-key" approved
Nov 27 16:11:13 dns named[1823]: client 192.168.8.2#60260: updating zone 'intranet.virtual/IN': adding an RR at 'MikroTik.intranet.virtual' A
Nov 27 16:11:13 dns named[1823]: client 192.168.8.2#60260: updating zone 'intranet.virtual/IN': adding an RR at 'MikroTik.intranet.virtual' TXT
Nov 27 16:11:13 dns named[1823]: zone intranet.virtual/IN: sending notifies (serial 2)
Nov 27 16:11:13 dns named[1823]: client 192.168.8.2#32924: signer "rndc-key" approved
Nov 27 16:11:13 dns named[1823]: client 192.168.8.2#32924: updating zone '8.168.192.in-addr.arpa/IN': deleting rrset at '100.8.168.192.in-addr.arpa' PTR
Nov 27 16:11:13 dns named[1823]: client 192.168.8.2#32924: updating zone '8.168.192.in-addr.arpa/IN': adding an RR at '100.8.168.192.in-addr.arpa' PTR
Nov 27 16:11:13 dns named[1823]: zone 8.168.192.in-addr.arpa/IN: sending notifies (serial 2)
^C
[root@dns named]#

12. Ternyata Bind tidak menyimpan record dari dynamic update nya secara langsung di file dns recordnya, melainkan akan menyimpannya di dalam file journal yg berekstensi “.jnl”. Untuk melihat record hasil dari dynamic update, kita bisa menggunakan perintah berikut:

[root@dns named]# host -l intranet.virtual
intranet.virtual name server dns.intranet.virtual.
dns.intranet.virtual has address 192.168.8.2
MikroTik.intranet.virtual has address 192.168.8.100
router.intranet.virtual has address 192.168.8.1
tes.intranet.virtual has address 192.168.8.200
[root@dns named]#

13. Dan ini adalah contoh isi dari file record dns yg telah di update via dynamic update.

[root@dns named]# cat /var/named/intranet.conf
$ORIGIN .
$TTL 86400      ; 1 day
intranet.virtual            IN SOA  dns.intranet.virtual. root.intranet.virtual. (
                                3          ; serial
                                86400      ; refresh (1 day)
                                3600       ; retry (1 hour)
                                604800     ; expire (1 week)
                                10800      ; minimum (3 hours)
                                )
                        NS      dns.intranet.virtual.
$ORIGIN intranet.virtual.
www                     CNAME   dns
dns                     A       192.168.7.2
$TTL 300        ; 5 minutes
klien1                  A       192.168.7.10 // #Ini adalah record yg dihasilkan dari dynamic update via dhcp service.
                        TXT     "31153f9ec49b2a056a068ef02b7dfbefa2" // #Sama.
klien2                  A       192.168.7.11 // #Ini adalah record yg dihasilkan dari dynamic update via dhcp service.
                        TXT     "312f96b04a3df6d3adf7f81a374559c9e2" // #Sama.
$TTL 86400      ; 1 day
router                  A       192.168.7.1
[root@dns named]#

Tips:

# Jika anda ingin menambahkan record statik ke dalam file dns record, gunakan perintah 'rndc freeze' untuk mencegah terjadinya problem. Setelah itu, jalankan perintah 'rndc unfreeze' atau bisa juga 'rndc thaw'.
S.E.L.E.S.A.I

Install dan konfigurasi DNS Server Bind9 di CentOS 6.3

Di tutorial ini saya asumsikan CentOS dalam keadaan fresh install.

asumsi
hostname: dns
domain: intranet.virtual
ip address: 192.168.8.2/24
gateway: 192.168.8.1
dns1: 127.0.0.1

1. Periksa apakah paket bind sudah terinstall beserta dependency nya.

[root@dns ~]# rpm -qa | grep bind
rpcbind-0.2.0-9.el6.i686
ypbind-1.20.4-29.el6.i686
bind-utils-9.8.2-0.10.rc1.el6.i686
bind-libs-9.8.2-0.10.rc1.el6.i686
samba-winbind-clients-3.5.10-125.el6.i686

2. Jika belum, install paket bind dan bind-chroot.

[root@dns ~]# yum install bind bind-chroot -y
Dependencies Resolved

=====================================================================
Package          Arch      Version                Repository    Size
=====================================================================
Installing:
 bind           i686   32:9.8.2-0.10.rc1.el6_3.5   updates      4.0 M
 bind-chroot    i686   32:9.8.2-0.10.rc1.el6_3.5   updates       70 k
Updating for dependencies:
 bind-libs      i686   32:9.8.2-0.10.rc1.el6_3.5   updates      882 k
 bind-utils     i686   32:9.8.2-0.10.rc1.el6_3.5   updates      180 k

Transaction Summary
=====================================================================
Install       2 Package(s)
Upgrade       2 Package(s)

3. Generate key menggunakan perintah ‘rndc-confgen’ (sebenarnya fungsi ini belum diperlukan di tutorial ini. Tapi sengaja saya sertakan untuk tutorial lanjutan yg akan saya buat nanti.)

[root@dns ~]# rndc-confgen -a
wrote key file "/etc/rndc.key"

4. Untuk memastikan bahwa Bind memang bekerja di lingkungan ‘chroot’, kita dapat melihatnya dengan perintah berikut:

[root@dns named]# grep ROOTDIR /etc/sysconfig/named
# ROOTDIR="/var/named/chroot"  --  will run named in a chroot environment.
#empty in the ROOTDIR directory. It will simplify maintenance of your
#at startup. Don't add -t here, use ROOTDIR instead.
ROOTDIR=/var/named/chroot
[root@dns named]#

5. Tanggal dan jam adalah faktor yg sangat penting, meskipun terlihat hal yg sepele :). Sesuaikan tanggal dan jam system operasi anda dengan waktu saat ini.

[root@dns ~]# date
Tue Nov 27 12:40:36 BNT 2012

6. Jalankan service named.

[root@dns ~]# service named start
Starting named: [ OK ]
[root@dns ~]#

7. Lakukan sedikit testing, untuk memastikan Bind dapat melakukan resolving domain ke internet, sehingga nanti memudahkan untuk troubleshooting.

[root@dns ~]# nslookup google.com
Server:		127.0.0.1
Address:	127.0.0.1#53

Non-authoritative answer:
Name:	google.com
Address: 74.125.128.138
Name:	google.com
Address: 74.125.128.113
Name:	google.com
Address: 74.125.128.101
Name:	google.com
Address: 74.125.128.102
Name:	google.com
Address: 74.125.128.100
Name:	google.com
Address: 74.125.128.139

[root@dns ~]#
[root@dns ~]# ping google.com -c3
PING google.com (74.125.128.113) 56(84) bytes of data.
64 bytes from hg-in-f113.1e100.net (74.125.128.113): icmp_seq=1 ttl=48 time=59.1 ms
64 bytes from hg-in-f113.1e100.net (74.125.128.113): icmp_seq=2 ttl=48 time=61.2 ms
64 bytes from hg-in-f113.1e100.net (74.125.128.113): icmp_seq=3 ttl=48 time=61.1 ms
--- google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 5333ms
rtt min/avg/max/mdev = 58.192/59.920/61.249/1.305 ms
[root@dns ~]#

8. OK, tampaknya bind sudah berjalan dan berfungsi, sekarang kita akan membuat domain zone. Edit file named.conf.

[root@dns ~]# nano /etc/named.conf
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

acl "server" { 127.0.0.1; 192.168.8.2; }; // Ini adalah ACL IP Address server CentOS
acl "intranet" { 192.168.8.0/24; }; // Ini adalah ACL LAN

controls {
	inet * port 953	
	allow { server; } keys { "rndc-key"; };
};

include "/etc/rndc.key"; // Sertakan file rndc.key

options {
	listen-on port 53 { server; }; // Sesuaikan dengan ACL yg kita buat diatas.

//	listen-on-v6 port 53 { ::1; }; // Komen jika tidak diperlukan
	directory 	"/var/named";
   	dump-file 	"/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
	allow-query     { server; intranet; };
	recursion yes;

 	dnssec-enable yes;
	dnssec-validation yes;
	dnssec-lookaside auto;

	/* Path to ISC DLV key */
	bindkeys-file "/etc/named.iscdlv.key";
	managed-keys-directory "/var/named/dynamic";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;};
};

zone "." IN {
	type hint;
	file "named.ca";
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

Tambahkan dns zone berikut:

zone "intranet.virtual" IN {
	type master;
	file "intranet.conf";
	allow-update { none; };
};

zone "8.168.192.in-addr.arpa" IN {
	type master;
	file "intranet-rev.conf";
	allow-update { none; };
};

9. Copy template dns menjadi file intranet.conf dan intranet-rev.conf sesuai dengan yg kita definisikan di file zona.

[root@dns named]# cd /var/named
[root@dns named]# cat named.localhost > intranet.conf
[root@dns named]# cat named.loopback > intranet-rev.conf
[root@dns named]# nano intranet.conf
[root@dns named]# nano intranet-rev.conf

10. Edit file dns record seperti berikut:

## intranet.conf
$TTL 1D
@IN	SOA	dns.intranet.virtual.	root.intranet.virtual. (
					1	; serial
					1D	; refresh
					1H	; retry
					1W	; expire
					3H )	; minimum

		NS	dns.intranet.virtual.

router		A	192.168.8.1
dns		A	192.168.8.2

 

NOTE: Jangan lupa! Nama domain harus di akhiri dengan '.' (titik).

 

## intranet-rev.conf
$TTL 1D
@IN	SOA	dns.intranet.virtual.	root.intranet.virtual. (
						1	; serial
						1D	; refresh
						1H	; retry
						1W	; expire
						3H )	; minimum

		NS	dns.intranet.virtual.

dns		A	192.168.8.2

1		PTR	router.intranet.virtual.
2		PTR	dns.intranet.virtual.

11. Lakukan update permission pada file2 yg berkaitan.

[root@dns named]# chmod 640 /etc/rndc.key
-rw-r-----. 1 root root 77 Nov 27 12:38 /etc/rndc.key
[root@dns named]# chown root.named /etc/rndc.key
[root@dns named]# chown root.named intranet*

12. restart service bind

[root@dns named]# service named restart
Stopping named: .                                          [  OK  ]
Starting named:                                            [  OK  ]

[root@dns named]# rndc status
version: 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.5
CPUs found: 1
worker threads: 1
number of zones: 21
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running

13. Lakukan uji coba.

[root@dns named]# nslookup router
Server:		127.0.0.1
Address:	127.0.0.1#53

Name:	router.intranet.virtual
Address: 192.168.8.1

[root@dns named]# nslookup dns
Server:		127.0.0.1
Address:	127.0.0.1#53

Name:	dns.intranet.virtual
Address: 192.168.8.2
[root@dns named]# ping google.com
PING google.com (74.125.128.101) 56(84) bytes of data.
64 bytes from hg-in-f101.1e100.net (74.125.128.101): icmp_seq=1 ttl=48 time=60.0 ms
64 bytes from hg-in-f101.1e100.net (74.125.128.101): icmp_seq=2 ttl=48 time=58.5 ms

--- google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 5394ms
rtt min/avg/max/mdev = 57.703/58.773/60.097/0.993 ms
[root@dns named]#

14. Aktifkan bind pada saat startup, agar tiap kali system di reboot, service bind otomatis dijalankan.

[root@dns named]# chkconfig named on

15. Terakhir, pastikan port 53 tidak ter block oleh firewall.

[root@dns named]# iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT
[root@dns named]# iptables -I INPUT -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT

## Selesai ##

Mengatasi GPG Error Keys di distro Ubuntu

GNU Privacy Guard (GnuPG, atau GPG) adalah GPL Licensed alternatif dari PGP suite kriptografi perangkat lunak yang digunakan untuk mengenkripsi jalur data dan sebagai kunci untuk masuk ke sebuah situs, atau web penyedia aplikasi. Aplikasi ini dikembangkan oleh Free Software Foundation’s GNU (untuk lebih detailnya silahkan baca disini).

Jadi, kenapa GPG bisa error? Karena aplikasi yang memerlukan kunci tersebut secara tiba-tiba tidak menemukan lubang kunci yang dimaksudkan. Ilustrasi paling mudah, yaitu ketika kita diberikan sebuah kunci untuk masuk ke sebuah ruangan, namun jika ternyata ruangan tersebut ternyata bermasalah pada lubang kuncinya dan telah diperbaiki, berarti kita harus meminta kunci gantinya yang baru.

W: GPG error: http://ppa.launchpad.net lucid Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY A42227CB8D0DC64F

Jika di antara pembaca ada yg mengalami hal seperti diatas sewaktu melakukan perintah “apt-get update” di distro Ubuntu, lakukan beberapa langkah di bawah ini untuk memecahkan masalah tsb.

Langkah pertama,

root@ubuntu:/# gpg --keyserver keyserver.ubuntu.com --recv 8D0DC64F
gpg: requesting key 8D0DC64F from hkp server keyserver.ubuntu.com
gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key 8D0DC64F: public key "Launchpad Brian's PPA" imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
root@ubuntu:/#

Langkah kedua,

root@ubuntu:/# gpg --export --armor 8D0DC64F | apt-key add -
OK
root@ubuntu:/#

Selanjutnya lakukan perintah update seperti biasa,

root@ubuntu:/home/sysadmin# apt-get update

Yang perlu di perhatikan disini adalah, dari mana kita mendapat angka ajaib ‘8D0DC64F‘? Mengingat angka ini tidak selalu sama? Ya, jawabannya adalah, angka tersebut di ambil 8 (delapan) digit dari belakang dari angka yang error di atas, yaitu ‘A42227CB8D0DC64F‘. Mudah bukan? kalau tahu… hehehe đŸ™‚

Tips:

Jika pembaca tidak dapat mengakses keyserver.ubuntu.com di komputer pembaca, pembaca bisa mendapatkan ‘key’ tsb menggunakan komputer lain.

root@ubuntu:/# gpg --keyserver keyserver.ubuntu.com --recv 8D0DC64F
gpg: requesting key 8D0DC64F from hkp server keyserver.ubuntu.com
gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key 8D0DC64F: public key "Launchpad Brian's PPA" imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
root@ubuntu:/#

kemudian langkah berikutnya, ekspor ‘key’ yg telah di dapat tadi,

root@ubuntu:/# gpg --export --armor 8D0DC64F > key.asc

Lalu transfer file key.asc ke komputer pembaca dan tambahkan ke dalam system.

root@ubuntu:/# cat key.asc | apt-key add -

referensi: disini

=======S+e+l+e+s+a+i=======

How to: Joining Ubuntu ke LDAP Server – Bag. I

Secara default, ubuntu desktop tidak disertakan paket modul autentikasi ldap klien pada saat instalasi. Jadi, kita diharuskan menginstall modul ‘ldap-auth-client’ dan ‘nslcd’ dari repository agar dapat melakukan join ke LDAP Server.

Install modul ldap-auth-client dan nslcd:

sysadmin@ubuntu:~$ sudo apt-get install ldap-auth-client nslcd -y
[sudo] password for sysadmin:

Pada saat proses instalasi berlangsung, nanti akan disuruh mengisi informasi untuk LDAP Server, ikuti petunjuk di gambar.

# Isikan IP Address LDAP Server:

 

 

 

 

 

 

# Isikan informasi distinguished name

 

 

 

 

 

 

# Pilih LDAP versi 3

Continue reading

File sharing di Ubuntu dengan NFS Server.

Asumsi, punya 2 pc yg saling terhubung dengan jaringan, Jika tidak, kita bisa memanfaatkan Virtual machine, Mengerti basic networking dan familiar dengan linux tentunya. đŸ™‚

  • Install NFS Server
sysadmin@ubuntu:~$ sudo apt-get install nfs-kernel-server
  • Edit file /etc/exports
sysadmin@ubuntu:~$ sudo nano /etc/exports
<pre>## tambahkan direktori yg akan di share ##

/share/mp3 *(rw,sync,no_subtree_check,no_root_squash)
/share/wallpaper 192.168.4.0/24(rw,sync,no_subtree_check,no_root_squash)
/share/datareport 192.168.4.7(rw,sync,no_subtree_check,no_root_squash)
  • restart service NFS,
sysadmin@ubuntu:~$ sudo service nfs-kernel-server restart

Seting di komputer klien.

  • Install nfs-common,
sysadmin@klien01:~$ sudo apt-get install nfs-common -y
  • jika ingin share dapat diakses secara permanen, simpan konfigurasi nya di file /etc/fstab, dan tambahkan share yg akan di mount.
sysadmin@klien01:~$ sudo nano /etc/fstab
<pre>## contoh format penulisannya ##

ip-address-nfs-server:/share/mp3 /media/mp3 defaults 0 0

## begitu juga dengan klien yg lainnya ##

Note:
Kita bisa memanfaatkan utiliti autofs untuk melakukan automount, jika tidak ingin susah-susah merubah konfigurasi file fstab.

referensi: Ubuntu help

Membuat PC Bridge di Ubuntu Linux

Sekilas tentang ‘Network bridge’.

Bridge disini di maksudkan untuk menjembatani 2 buah network yg sama. Loh? lha trus buat apa kok pake jembatan segala??? Maksudnya begini, hal ini akan sangat berguna jika kita memiliki area atau lokasi suatu network tsb saling berjauhan atau berbeda gedung/lokasi misalnya. Nah, di karenakan keterbatasan daya/power kabel utp yg maksimal 100m, ‘network bridge’ inilah yg akan menolong kita. Karena selain sebagai jembatan, bridge akan berfungsi sebagai repeater/penguat daya, sehingga data masih dapat di transmisikan ke ‘address’ tujuan.

Sejauh yg saya tahu, selain sebagai repeater, bridge di Linux dapat juga di manfaatkan untuk mengaplikasikan transparant proxy dan transparant firewall. Namun, kali ini saya hanya membahas cara mengkonfigurasi interface bridge di ubuntu server khususnya dan debian based pada umumnya.

Ok, pertama kita memerlukan utiliti yg bernama ‘bridge-utils’, bisa langsung di install dari repository Ubuntu, untuk selengkapnya ikuti langkah di bawah ini:).

  • Install bridge-utils:
sysadmin@vserv:~$ sudo apt-get install bridge-utils
  • Buat interface bridge dengan nama ‘br0’:
sysadmin@vserv:~$ sudo brctl addbr br0
  • Setelah membuat interface bridge br0, maka ip address untuk interface ‘eth0’ harus di nonaktifkan, dan berfungsi sbg promisc mode, agar dapat “mendengar” semua frame yg akan masuk melalui interface ‘eth0’ maupun ‘eth1’.
sysadmin@vserv:~$ sudo ifconfig eth0 0.0.0.0 promisc up
sysadmin@vserv:~$ sudo ifconfig eth1 0.0.0.0 promisc up
  • Daftarkan interface ‘eth0’ dan ‘eth1’ sebagai member ke interface bridge ‘br0’
sysadmin@vserv:~$ sudo brctl addif br0 eth0
sysadmin@vserv:~$ sudo brctl addif br0 eth1
  • Secara default interface br0 belum aktif, Aktifkan interface ‘br0’.
sysadmin@vserv:~$ sudo ifconfig br0 up

Nah, sampai dari sini pc bridge sudah dapat di fungsikan, akan tetapi script, jika system di restart, konfigurasi yg kita lakukan di atas akan sia-sia, untuk mencegah hal itu terjadi, simpan perintah di atas di file ‘/etc/rc.local‘ di atas baris ‘exit 0‘.

Tips: Jika kita ingin dapat melakukan akses via remote maupun update system di pc bridge ini, beri Ip Address pada interface ‘br0’ dan simpan konfigurasi di file ‘/etc/network/interfaces‘, sehingga isinya menjadi seperti ini. đŸ™‚

## Isi file /etc/rc.local ##
brctl addbr br0

ifconfig eth0 0.0.0.0 promisc up
ifconfig eth1 0.0.0.0 promisc up

brctl addif br0 eth0
brctl addif br0 eth1

ifconfig br0 up

exit 0
############################
  • Contoh Isi konfigurasi IP Address interface br0
## Contoh konfigurasi statik ip address interface 'br0' ##
auto br0
iface br0 inet static
address 192.168.1.2
netmask 255.255.255.0
gateway 192.168.1.1
network 192.168.1.0
broadcast 192.168.1.255
dns-server 8.8.8.8
##########################################################
# SELESAI #

Perintah dasar networking distro Linux Ubuntu dalam modus CLI (command-line)

# Mengaktifkan dan menonaktifkan interface ethernet secara manual
## Untuk mengaktifkan interface eth0

sysadmin@dserv:~$ sudo ifup eth0

## Untuk menonaktifkan interface eth0

sysadmin@dserv:~$ sudo ifdown eth0

# Untuk menampilkan interface yg terdeteksi oleh system:

sysadmin@dserv:~$ sudo ifconfig -a | grep eth
eth0      Link encap:Ethernet  HWaddr 24:b6:fd:f5:78:68
eth1      Link encap:Ethernet  HWaddr 24:b6:fd:f5:78:69
eth2      Link encap:Ethernet  HWaddr 24:b6:fd:f5:78:6a
eth3      Link encap:Ethernet  HWaddr 24:b6:fd:f5:78:6b
sysadmin@dserv:~$

# Bisa juga dengan cara:

sysadmin@dserv:~$ sudo lshw -class network
*-network:0
description: Ethernet interface
product: NetXtreme BCM5720 Gigabit Ethernet PCIe
vendor: Broadcom Corporation
physical id: 0
bus info: pci@0000:01:00.0
logical name: eth0
version: 00
serial: 24:b6:fd:f5:78:68
size: 1Gbit/s
capacity: 1Gbit/s
width: 64 bits
clock: 33MHz
.........................
sysadmin@dserv:~$

# ‘ethtool‘, sebuah program untuk menampilkan dan merubah konfigurasi interface ethernet, seperti ‘auto-negotiation’, ‘port-speed’, ‘duplex mode’, dan ‘wake-on’lan’, tapi secara default belum terinstall, tapi program tsb dapat di install dari repositori. Continue reading