[root@brainwash /]# rpm -qa|grep bind
bind-libs-9.4.0-6.fc7
rpcbind-0.1.4-6.fc7
bind-9.4.0-6.fc7
ypbind-1.19-9.fc7
bind-utils-9.4.0-6.fc7
bind-chroot-9.4.0-6.fc7
[root@brainwash /]# nano /var/named/chroot/etc/named.conf
options {
listen-on port 53 { 127.0.0.1; 192.167.10.1; };
listen-on-v6 port 53 { ::1; };
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 { localhost; 192.167.10.0/24; };
recursion yes;
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
#include "/etc/named.rfc1912.zones";
#### Edit by bafrin ####
zone "tester.net" IN {
type master;
file "tester.net.db";
};
zone "10.167.192.in-addr.arpa" IN {
type master;
file "tester.net.rev";
};
Make shorcut link file to /etc/
[root@brainwash /]# ln -sf /var/named/chroot/etc/named.conf /etc/
[root@brainwash /]# nano /var/named/chroot/var/named/tester.net.db
$TTL 86400
@ IN SOA brainwash.tester.net. test.tester.net.(
2010080200;
86400;
3600;
360000;
86400;
)
IN NS brainwash.tester.net.
brainwash.tester.net. IN A 192.167.10.1
[root@brainwash /]# nano /var/named/chroot/var/named/teseter.net.rev
$TTL 86400
@ IN SOA brainwash.tester.net. pwm.tester.net.(
2010080200;
86400;
3600;
360000;
86400;
)
IN NS brainwash.tester.net.
1 IN PTR brainwash.tester.net.
Make shortcut link file to /var/named/
[root@brainwash /]# ln -sf /var/named/chroot/var/named/tester.net.db /var/named/
[root@brainwash /]# ln -sf /var/named/chroot/var/named/tester.net.rev /var/named/
Edit file resolv.conf
[root@brainwash /]# nano /etc/resolv.conf
search tester.net
nameserver 192.167.10.1
nameserver 208.67.220.220
nameserver 208.67.222.222
Edit and Input file hosts
[root@brainwash /]# nano /etc/hosts
127.0.0.1 brainwash.tester brainwash localhost.localdomain localhost
192.167.10.1 brainwash.tester.net brainwash
Edit and Input file host.conf
[root@brainwash /]# nano /etc/host.conf
#order hosts,bind
order bin,host
multi on
Make your DNS Server automaticaly run after restart your system
[root@brainwash /]# chkconfig named on
Cek Your Service
[root@brainwash /]# netstat -an|grep 53
tcp 0 0 192.167.10.1:53 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN
tcp 0 0 ::1:53 :::* LISTEN
tcp 0 0 ::1:953 :::* LISTEN
udp 0 0 192.167.10.1:53 0.0.0.0:*
udp 0 0 127.0.0.1:53 0.0.0.0:*
udp 0 0 0.0.0.0:5353 0.0.0.0:*
udp 0 0 ::1:53 :::*
udp 0 0 :::5353 :::*
Cek Your DNS Server
[root@brainwash /]# nslookup brainwash.tester.net
Server: 192.167.10.1
Address: 192.167.10.1#53
Name: brainwash.tester.net
Address: 192.168.10.1
If output messages from your server that's above, Your DNS server is complete.
i like this song, you can download from :
http://www.ziddu.com/download/10809188/MichaelWSmith-05-Someday.mp3.html
SOMEDAY
Words & Music:Michael W. Smith and Wayne Kirkpatrick
Sexual harassment - nuclear reactors
Natural disasters from here to L.A.
Drug importers
New World Order
Wars over borders
Murder on the subway
The social classes - high rise of taxes
Diplomats are passive with a promise again
Talk of recession - people in depression
Dow Jones, bank loans, the Japanese yen
Chorus 1:
I wait for Kingdom come
When love will be here to stay
It will change us everyone
Someday, someday
Violence in the movies
Drive-by shootings
Rioting and looting
With the boys in the hood
Cults and religions
Deadly premonitions
Fiery oppositions
Evil battling good
AIDS awareness
Temporary marriage
Pro-life, pro-choice
Roe v Wade
Ethics and the media
Tabloid T.V.
The Kennedy Conspiracy
The Trial of O.J.
Chorus 2:
I wait for Kingdom come
When love will be here to stay
It will change us everyone
Someday, someday
There peace will make a stand
and the anger will fall away
We'll see the lion with the lamb
Someday, someday, someday
Chorus 2
Good Song... i like it.
you can download from :
http://www.ziddu.com/download/10678078/17-AmyGrant-IWillRememberYou.wav.html
and this lyric :
I will remember You
Amy grant/gary chapman/keith thomas
Copyright © 1991 age to age music, inc./riverstone music, inc./edward grant, inc./yellow elephant music, inc.
(ascap), adm. by reunion music group, inc.
I will be walking one day
Down a street far away
And see a face in the crowd and smile
Knowing how you made me laugh
Hearing sweet echoes of you from the past
I will remember you.
Look in my eyes while you’re near
Tell me what’s happening here
See that I don’t want to say good-bye
Our love is frozen in time
I’ll be your champion and you’ll be mine
So please remember
I will remember you.
Later on
When this fire is an ember
Later on
When the night’s not so tender
Given time
Though it’s hard to remember darlin’
I will be holding on
I’ll still be holding to you
I will remember you.
So many years come and gone
And yet the memory is strong
One word we never could learn
Good-bye
True love is frozen in time
I’ll be your champion and you’ll be mine
I will remember you
So please remember
I will remember you
I will remember you
I will remember you
I will remember you.
1. Persiapan
Sebelum mulai, diharapkan pembaca sudah memiliki pengetahuan dasar mengenai TCP/IP karena hal ini merupakan dasar dari penggunaan IPTables. Ada (sangat) banyak resource yang mendokumentasikan konsep dasar tentang TCP/IP, baik itu secara online maupun cetak. Silahkan googling untuk mendapatkannya.
Hal berikutnya yang harus anda persiapkan adalah sebuah komputer yang terinstall Linux. Akan lebih baik jika komputer anda memiliki 2 buah network interface card, sebab bisa menjalankan fungsi packet forwarding. Disarankan anda menggunakan linux dengan kernel 2.4 ke atas, karena (setahu saya) linux dengan kernel 2.4 ke atas sudah memiliki dukungan IPTables secara default, sehingga anda tidak perlu mengkompilasi ulang kernel anda. Bagi anda yang menggunakan kernel 2.2 atau sebelumnya, anda harus melakukan kompilasi kernel untuk memasukkan dukungan IPTables. Silahkan lihat tutorial Kompilasi kernel 2.4.x di Linux oleh mas Asfik.
2. Pendahuluan
IPTables memiliki tiga macam daftar aturan bawaan dalam tabel penyaringan, daftar tersebut dinamakan rantai firewall (firewall chain) atau sering disebut chain saja. Ketiga chain tersebut adalah INPUT, OUTPUT dan FORWARD.

Pada diagram tersebut, lingkaran menggambarkan ketiga rantai atau chain. Pada saat sebuah paket sampai pada sebuah lingkaran, maka disitulah terjadi proses penyaringan. Rantai akan memutuskan nasib paket tersebut. Apabila keputusannnya adalah DROP, maka paket tersebut akan di-drop. Tetapi jika rantai memutuskan untuk ACCEPT, maka paket akan dilewatkan melalui diagram tersebut.
Sebuah rantai adalah aturan-aturan yang telah ditentukan. Setiap aturan menyatakan “jika paket memiliki informasi awal (header) seperti ini, maka inilah yang harus dilakukan terhadap paket”. Jika aturan tersebut tidak sesuai dengan paket, maka aturan berikutnya akan memproses paket tersebut. Apabila sampai aturan terakhir yang ada, paket tersebut belum memenuhi salah satu aturan, maka kernel akan melihat kebijakan bawaan (default) untuk memutuskan apa yang harus dilakukan kepada paket tersebut. Ada dua kebijakan bawaan yaitu default DROP dan default ACCEPT.
Jalannya sebuah paket melalui diagram tersebut bisa dicontohkan sebagai berikut:
Perjalanan paket yang diforward ke host yang lain
1. Paket berada pada jaringan fisik, contoh internet.
2. Paket masuk ke interface jaringan, contoh eth0.
3. Paket masuk ke chain PREROUTING pada table Mangle. Chain ini berfungsi untuk me-mangle (menghaluskan) paket, seperti merubah TOS, TTL dan lain-lain.
4. Paket masuk ke chain PREROUTING pada tabel nat. Chain ini berfungsi utamanya untuk melakukan DNAT (Destination Network Address Translation).
5. Paket mengalami keputusan routing, apakah akan diproses oleh host lokal atau diteruskan ke host lain.
6. Paket masuk ke chain FORWARD pada tabel filter. Disinlah proses pemfilteran yang utama terjadi.
7. Paket masuk ke chain POSTROUTING pada tabel nat. Chain ini berfungsi utamanya untuk melakukan SNAT (Source Network Address Translation).
8. Paket keluar menuju interface jaringan, contoh eth1.
9. Paket kembali berada pada jaringan fisik, contoh LAN.
Perjalanan paket yang ditujukan bagi host lokal
1. Paket berada dalam jaringan fisik, contoh internet.
2. Paket masuk ke interface jaringan, contoh eth0.
3. Paket masuk ke chain PREROUTING pada tabel mangle.
4. Paket masuk ke chain PREROUTING pada tabel nat.
5. Paket mengalami keputusan routing.
6. Paket masuk ke chain INPUT pada tabel filter untuk mengalami proses penyaringan.
7. Paket akan diterima oleh aplikasi lokal.
Perjalanan paket yang berasal dari host lokal
1. Aplikasi lokal menghasilkan paket data yang akan dikirimkan melalui jaringan.
2. Paket memasuki chain OUTPUT pada tabel mangle.
3. Paket memasuki chain OUTPUT pada tabel nat.
4. Paket memasuki chain OUTPUT pada tabel filter.
5. Paket mengalami keputusan routing, seperti ke mana paket harus pergi dan melalui interface mana.
6. Paket masuk ke chain POSTROUTING pada tabel NAT.
7. Paket masuk ke interface jaringan, contoh eth0.
8. Paket berada pada jaringan fisik, contoh internet.
3. Sintaks IPTables
iptables [-t table] command [match] [target/jump]
1. Table
IPTables memiliki 3 buah tabel, yaitu NAT, MANGLE dan FILTER. Penggunannya disesuaikan dengan sifat dan karakteristik masing-masing. Fungsi dari masing-masing tabel tersebut sebagai berikut :
- NAT : Secara umum digunakan untuk melakukan Network Address Translation. NAT adalah penggantian field alamat asal atau alamat tujuan dari sebuah paket.
- MANGLE : Digunakan untuk melakukan penghalusan (mangle) paket, seperti TTL, TOS dan MARK.
- FILTER : Secara umum, inilah pemfilteran paket yang sesungguhnya.. Di sini bisa dintukan apakah paket akan di-DROP, LOG, ACCEPT atau REJECT
2. Command
Command pada baris perintah IPTables akan memberitahu apa yang harus dilakukan terhadap lanjutan sintaks perintah. Umumnya dilakukan penambahan atau penghapusan sesuatu dari tabel atau yang lain.
Command | Keterangan |
-A | Perintah ini menambahkan aturan pada akhir chain. Aturan akan ditambahkan di akhir baris pada chain yang bersangkutan, sehingga akan dieksekusi terakhir |
-D | Perintah ini menghapus suatu aturan pada chain. Dilakukan dengan cara menyebutkan secara lengkap perintah yang ingin dihapus atau dengan menyebutkan nomor baris dimana perintah akan dihapus. |
-R | Penggunaannya sama seperti --delete, tetapi command ini menggantinya dengan entry yang baru. |
-I | Memasukkan aturan pada suatu baris di chain. Aturan akan dimasukkan pada baris yang disebutkan, dan aturan awal yang menempati baris tersebut akan digeser ke bawah. Demikian pula baris-baris selanjutnya. |
-L | Perintah ini menampilkan semua aturan pada sebuah tabel. Apabila tabel tidak disebutkan, maka seluruh aturan pada semua tabel akan ditampilkan, walaupun tidak ada aturan sama sekali pada sebuah tabel. Command ini bisa dikombinasikan dengan option –v (verbose), -n (numeric) dan –x (exact). |
-F | Perintah ini mengosongkan aturan pada sebuah chain. Apabila chain tidak disebutkan, maka semua chain akan di-flush. |
-N | Perintah tersebut akan membuat chain baru. |
-X | Perintah ini akan menghapus chain yang disebutkan. Agar perintah di atas berhasil, tidak boleh ada aturan lain yang mengacu kepada chain tersebut. |
-P | Perintah ini membuat kebijakan default pada sebuah chain. Sehingga jika ada sebuah paket yang tidak memenuhi aturan pada baris-baris yang telah didefinisikan, maka paket akan diperlakukan sesuai dengan kebijakan default ini. |
-E | Perintah ini akan merubah nama suatu chain. |
3. Option
Option digunakan dikombinasikan dengan command tertentu yang akan menghasilkan suatu variasi perintah.
Option | Command Pemakai | Keterangan |
-v | --list | Memberikan output yang lebih detail, utamanya digunakan dengan --list. Jika digunakan dengan |
-x | --list | Memberikan output yang lebih tepat. |
-n | --list | Memberikan output yang berbentuk angka. Alamat IP dan nomor port akan ditampilkan dalam bentuk angka dan bukan hostname ataupun nama aplikasi/servis. |
--line-number | --list | Akan menampilkan nomor dari daftar aturan. Hal ni akan mempermudah bagi kita untuk melakukan modifikasi aturan, jika kita mau meyisipkan atau menghapus aturan dengan nomor tertentu. |
--modprobe | All | Memerintahkan IPTables untuk memanggil modul tertentu. Bisa digunakan bersamaan dengan semua command. |
4. Generic Matches
Generic Matches artinya pendefinisian kriteria yang berlaku secara umum. Dengan kata lain, sintaks generic matches akan sama untuk semua protokol. Setelah protokol didefinisikan, maka baru didefinisikan aturan yang lebih spesifik yang dimiliki oleh protokol tersebut. Hal ini dilakukan karena tiap-tiap protokol memiliki karakteristik yang berbeda, sehingga memerlukan perlakuan khusus.
Match | Keterangan |
-p | Digunakan untuk mengecek tipe protokol tertentu. Contoh protokol yang umum adalah TCP, UDP, ICMP dan ALL. Daftar protokol bisa dilihat pada /etc/protocols. Tanda inversi juga bisa diberlakukan di sini, misal kita menghendaki semua protokol kecuali icmp, maka kita bisa menuliskan --protokol ! icmp yang berarti semua kecuali icmp. |
-s | Kriteria ini digunakan untuk mencocokkan paket berdasarkan alamat IP asal. Alamat di sini bisa berberntuk alamat tunggal seperti 192.168.1.1, atau suatu alamat network menggunakan netmask misal 192.168.1.0/255.255.255.0, atau bisa juga ditulis 192.168.1.0/24 yang artinya semua alamat 192.168.1.x. Kita juga bisa menggunakan inversi. |
-d | Digunakan untuk mecocokkan paket berdasarkan alamat tujuan. Penggunaannya sama dengan match –src |
-i | Match ini berguna untuk mencocokkan paket berdasarkan interface di mana paket datang. Match ini hanya berlaku pada chain INPUT, FORWARD dan PREROUTING |
-o | Berfungsi untuk mencocokkan paket berdasarkan interface di mana paket keluar. Penggunannya sama dengan |
5. Implicit Matches
Implicit Matches adalah match yang spesifik untuk tipe protokol tertentu. Implicit Match merupakan sekumpulan rule yang akan diload setelah tipe protokol disebutkan. Ada 3 Implicit Match berlaku untuk tiga jenis protokol, yaitu TCP matches, UDP matches dan ICMP matches.
a. TCP matches
Match | Keterangan |
--sport | Match ini berguna untuk mecocokkan paket berdasarkan port asal. Dalam hal ini kia bisa mendefinisikan nomor port atau nama service-nya. Daftar nama service dan nomor port yang bersesuaian dapat dilihat di /etc/services. --sport juga bisa dituliskan untuk range port tertentu. Misalkan kita ingin mendefinisikan range antara port 22 sampai dengan 80, maka kita bisa menuliskan --sport 22:80. Jika bagian salah satu bagian pada range tersebut kita hilangkan maka hal itu bisa kita artikan dari port 0, jika bagian kiri yang kita hilangkan, atau 65535 jika bagian kanan yang kita hilangkan. Contohnya --sport :80 artinya paket dengan port asal nol sampai dengan 80, atau --sport 1024: artinya paket dengan port asal 1024 sampai dengan 65535.Match ini juga mengenal inversi. |
--dport --destination-port | Penggunaan match ini sama dengan match --source-port. |
--tcp-flags | Digunakan untuk mencocokkan paket berdasarkan TCP flags yang ada pada paket tersebut. Pertama, pengecekan akan mengambil daftar flag yang akan diperbandingkan, dan kedua, akan memeriksa paket yang di-set 1, atau on. Pada kedua list, masing-masing entry-nya harus dipisahkan oleh koma dan tidak boleh ada spasi antar entry, kecuali spasi antar kedua list. Match ini mengenali SYN,ACK,FIN,RST,URG, PSH. Selain itu kita juga menuliskan ALL dan NONE. Match ini juga bisa menggunakan inversi. |
--syn | Match ini akan memeriksa apakah flag SYN di-set dan ACK dan FIN tidak di-set. Perintah ini sama artinya jika kita menggunakan match --tcp-flags SYN,ACK,FIN SYN Paket dengan match di atas digunakan untuk melakukan request koneksi TCP yang baru terhadap server |
b. UDP Matches
Karena bahwa protokol UDP bersifat connectionless, maka tidak ada flags yang mendeskripsikan status paket untuk untuk membuka atau menutup koneksi. Paket UDP juga tidak memerlukan acknowledgement. Sehingga Implicit Match untuk protokol UDP lebih sedikit daripada TCP.
Ada dua macam match untuk UDP:
--sport atau --source-port
--dport atau --destination-port
c. ICMP Matches
Paket ICMP digunakan untuk mengirimkan pesan-pesan kesalahan dan kondisi-kondisi jaringan yang lain. Hanya ada satu implicit match untuk tipe protokol ICMP, yaitu :
--icmp-type
6. Explicit Matches
a. MAC Address
Match jenis ini berguna untuk melakukan pencocokan paket berdasarkan MAC source address. Perlu diingat bahwa MAC hanya berfungsi untuk jaringan yang menggunakan teknologi ethernet.
iptables –A INPUT –m mac –mac-source 00:00:00:00:00:01
b. Multiport Matches
Ekstensi Multiport Matches digunakan untuk mendefinisikan port atau port range lebih dari satu, yang berfungsi jika ingin didefinisikan aturan yang sama untuk beberapa port. Tapi hal yang perlu diingat bahwa kita tidak bisa menggunakan port matching standard dan multiport matching dalam waktu yang bersamaan.
iptables –A INPUT –p tcp –m multiport --source-port 22,53,80,110
c. Owner Matches
Penggunaan match ini untuk mencocokkan paket berdasarkan pembuat atau pemilik/owner paket tersebut. Match ini bekerja dalam chain OUTPUT, akan tetapi penggunaan match ini tidak terlalu luas, sebab ada beberapa proses tidak memiliki owner (??).
iptables –A OUTPUT –m owner --uid-owner 500
Kita juga bisa memfilter berdasarkan group ID dengan sintaks --gid-owner. Salah satu penggunannya adalah bisa mencegah user selain yang dikehendaki untuk mengakses internet misalnya.
d. State Matches
Match ini mendefinisikan state apa saja yang cocok. Ada 4 state yang berlaku, yaitu NEW, ESTABLISHED, RELATED dan INVALID. NEW digunakan untuk paket yang akan memulai koneksi baru. ESTABLISHED digunakan jika koneksi telah tersambung dan paket-paketnya merupakan bagian dari koneki tersebut. RELATED digunakan untuk paket-paket yang bukan bagian dari koneksi tetapi masih berhubungan dengan koneksi tersebut, contohnya adalah FTP data transfer yang menyertai sebuah koneksi TCP atau UDP. INVALID adalah paket yang tidak bisa diidentifikasi, bukan merupakan bagian dari koneksi yang ada.
iptables –A INPUT –m state --state RELATED,ESTABLISHED
7. Target/Jump
Target atau jump adalah perlakuan yang diberikan terhadap paket-paket yang memenuhi kriteria atau match. Jump memerlukan sebuah chain yang lain dalam tabel yang sama. Chain tersebut nantinya akan dimasuki oleh paket yang memenuhi kriteria. Analoginya ialah chain baru nanti berlaku sebagai prosedur/fungsi dari program utama. Sebagai contoh dibuat sebuah chain yang bernama tcp_packets. Setelah ditambahkan aturan-aturan ke dalam chain tersebut, kemudian chain tersebut akan direferensi dari chain input.
iptables –A INPUT –p tcp –j tcp_packets
Target | Keterangan |
-j ACCEPT | Ketika paket cocok dengan daftar match dan target ini diberlakukan, maka paket tidak akan melalui baris-baris aturan yang lain dalam chain tersebut atau chain yang lain yang mereferensi chain tersebut. Akan tetapi paket masih akan memasuki chain-chain pada tabel yang lain seperti biasa. |
-j DROP | Target ini men-drop paket dan menolak untuk memproses lebih jauh. Dalam beberapa kasus mungkin hal ini kurang baik, karena akan meninggalkan dead socket antara client dan server. Paket yang menerima target DROP benar-benar mati dan target tidak akan mengirim informasi tambahan dalam bentuk apapun kepada client atau server. |
-j RETURN | Target ini akan membuat paket berhenti melintasi aturan-aturan pada chain dimana paket tersebut menemui target RETURN. Jika chain merupakan subchain dari chain yang lain, maka paket akan kembali ke superset chain di atasnya dan masuk ke baris aturan berikutnya. Apabila chain adalah chain utama misalnya INPUT, maka paket akan dikembalikan kepada kebijakan default dari chain tersebut. |
-j MIRROR | Apabila kompuuter A menjalankan target seperti contoh di atas, kemudian komputer B melakukan koneksi http ke komputer A, maka yang akan muncul pada browser adalah website komputer B itu sendiri. Karena fungsi utama target ini adalah membalik source address dan destination address. Target ini bekerja pada chain INPUT, FORWARD dan PREROUTING atau chain buatan yang dipanggil melalui chain tersebut. |
Beberapa target yang lain biasanya memerlukan parameter tambahan:
a. LOG Target
Ada beberapa option yang bisa digunakan bersamaan dengan target ini. Yang pertama adalah yang digunakan untuk menentukan tingkat log. Tingkatan log yang bisa digunakan adalah debug, info, notice, warning, err, crit, alert dan emerg.Yang kedua adalah -j LOG --log-prefix yang digunakan untuk memberikan string yang tertulis pada awalan log, sehingga memudahkan pembacaan log tersebut.
iptables –A FORWARD –p tcp –j LOG --log-level debug
iptables –A INPUT –p tcp –j LOG --log-prefix “INPUT Packets”
b. REJECT Target
Secara umum, REJECT bekerja seperti DROP, yaitu memblok paket dan menolak untuk memproses lebih lanjut paket tersebut. Tetapi, REJECT akan mengirimkan error message ke host pengirim paket tersebut. REJECT bekerja pada chain INPUT, OUTPUT dan FORWARD atau pada chain tambahan yang dipanggil dari ketiga chain tersebut.
iptables –A FORWARD –p tcp –dport 22 –j REJECT --reject-with icmp-host-unreachable
Ada beberapa tipe pesan yang bisa dikirimkan yaitu icmp-net-unreachable, icmp-host-unreachable, icmp-port-unreachable, icmp-proto-unrachable, icmp-net-prohibited dan icmp-host-prohibited.
c. SNAT Target
Target ini berguna untuk melakukan perubahan alamat asal dari paket (Source Network Address Translation). Target ini berlaku untuk tabel nat pada chain POSTROUTING, dan hanya di sinilah SNAT bisa dilakukan. Jika paket pertama dari sebuah koneksi mengalami SNAT, maka paket-paket berikutnya dalam koneksi tersebut juga akan mengalami hal yang sama.
iptables –t nat –A POSTROUTING –o eth0 –j SNAT --to-source 194.236.50.155-194.236.50.160:1024-32000
d. DNAT Target
Berkebalikan dengan SNAT, DNAT digunakan untuk melakukan translasi field alamat tujuan (Destination Network Address Translation) pada header dari paket-paket yang memenuhi kriteria match. DNAT hanya bekerja untuk tabel nat pada chain PREROUTING dan OUTPUT atau chain buatan yang dipanggil oleh kedua chain tersebut.
iptables –t nat –A PREROUTING –p tcp –d 15.45.23.67 --dport 80 –j DNAT --to-destination 192.168.0.2
e. MASQUERADE Target
Secara umum, target MASQUERADE bekerja dengan cara yang hampir sama seperti target SNAT, tetapi target ini tidak memerlukan option --to-source. MASQUERADE memang didesain untuk bekerja pada komputer dengan koneksi yang tidak tetap seperti dial-up atau DHCP yang akan memberi pada kita nomor IP yang berubah-ubah.
Seperti halnya pada SNAT, target ini hanya bekerja untuk tabel nat pada chain POSTROUTING.
iptables –t nat –A POSTROUTING –o ppp0 –j MASQUERADE
f. REDIRECT Target
Target REDIRECT digunakan untuk mengalihkan jurusan (redirect) paket ke mesin itu sendiri. Target ini umumnya digunakan untuk mengarahkan paket yang menuju suatu port tertentu untuk memasuki suatu aplikasi proxy, lebih jauh lagi hal ini sangat berguna untuk membangun sebuah sistem jaringan yang menggunakan transparent proxy. Contohnya kita ingin mengalihkan semua koneksi yang menuju port http untuk memasuki aplikasi http proxy misalnya squid. Target ini hanya bekerja untuk tabel nat pada chain PREROUTING dan OUTPUT atau pada chain buatan yang dipanggil dari kedua chain tersebut.
iptables –t nat –A PREROUTING –i eth1 –p tcp --dport 80 –j REDIRECT --to-port 3128
Referensi :
http://rootbox.or.id/tips/iptables.html
You can learn from this url, in Indonesian language :
http://pemula.linux.or.id/admin/setting-dns-server.html
Setelah melakukan clonning HD via linux, dengan statement :
dd if=/dev/sda of=/dev/sdb
dimana /dev/sda = HD master dan /dev/sdb = HD target,
hasilnya sukses, hanya partisi dari HD master tidak bisa me-resize (menyesuaikan size HD target).
Kalo anda melakukan clonning HD dengan Norton Ghost, maka size HD target akan di sesuaikan secara prosentase thd HD master. Tapi kalo Linux... size di HD master akan sama hasilnya di HD target, jadi kalo anda melakukan clonning dengan HD Target yang lebih besar, maka.... sptnya sia2 untuk membeli HD target dengan kapasitas yang lebih besar.... Tapi ada pemikiran untuk melakukan resize partisinya... setelah selesai di clonning dan jawabannya ada di GParted
Bisa di download di url ini :
http://sourceforge.net/projects/gparted/files/gparted-live-stable/
Dan bisa di pelajari di sini :
http://www.simplehelp.net/2008/11/04/how-to-resize-linux-partitions-using-gparted/
Silahkan dipelajari dan di coba... kalo saya sudah mencobanya dan berhasil....!!!
The less you need to rely on any proprietary protocol to get work done, the better off you are overall. Some of those protocols have been real stumbling blocks -- such as SMB, Microsoft's proprietary protocol for file and printer sharing. Linux implementations of SMB exist, but you're probably better off without it in the long run whenever you can manage it.
I recently set up a Linux workstation that shared out a Hewlett-Packard printer to the rest of my network -- a network that otherwise consisted entirely of Windows machines. I didn't like the idea of setting up SMB support on the Linux box, and instead, explored the possibility of having the Windows machines connect directly to the shared printer as a network printing device.
To my surprise, this turned out to be pretty easy. Here are the steps to connect your Windows machines to the shared printer:
- Set up the printer on your Linux machine and share it using CUPS via port 631. The exact method for doing this varies between distributions, so check with your distro's documentation. The end result should be a working printer, and a running CUPS service which you can access through your Web browser at http://localhost:631 from the Linux system.
- Using the CUPS Web interface, go to the Printers tab and make a note of the printer name, which is typically the Description: line). You can do this from the Windows machine where you plan to set up printer support.
- In Windows, go to Control Panel | Printers and click onAdd a printer.
- When prompted for a printer location, select Network printer, in the Add Printer Wizard.
- When prompted for the network location, select URL and use the following URL format: http://hostname
:631/printers/printername
you can download from this path :
http://www.ziddu.com/download/10121060/pwhe5.exe.html
This aplication can do create, delete and rezise partition and not merge patition. If you need to merge partition, you can buy this software.
Ubuntu 9.10 - the Karmic Koala - release pada october 2009 dan akan di support sampai April 2011. Gambar di bawah ini adalah tampilan awal saat Ubuntu 9.10 reload.Bagi rekan2 yang hendak menggunakan OS ini, segeralah download Repository yang telah di sediakan, mumpung masih di support.
Setelah saya cek, ternyata ada beberapa hal yang perlu anda download reponya, krn di dalam Ubuntu ini aplikasi tsb masih belum ada, yaitu :
1. SSH
2. Xchat
3. Thunderbird
4. Filezilla
5. Samba (kalo perlu)
dll .. terserah anda
Awal sebelum download reponya, setting dulu server repositorynya: System - Administration -Software Source
Pada Tab Ubuntu Software : (Centang semua ini:)
1. Canonical-supported Open Source Sofware (main)
2. Community-maintened OpenSource software (universe)
3. Proprietary drivers for devices (restricted)
4. Software restricted by copyright or legal issues (multiverse)
Pada download from klik Other, dan Select Best Server (pastikan Ubuntu anda sdh terkoneksi dengan internet). Saat ini yang terbaik dan terdekat adalah : http://repo.undip.ac.id/ubuntu
Pada terminal anda, ketik command # apt-get update (hal ini untuk mengirimkan segala informasi repo yang ada di server repository).
Setelah itu download satu2 yang anda butuhkan, semua file repoyang terdownload, disimpan di : var/cache/apt/archives
Saya sarankan setiap kali anda download (perintah di bawah ini sekaligus menginstall) repo, misalnya :
#apt-get install ssh
Simpanlah semua file repo ssh tsb pada folder lain, agar suatu ketika saat file repo tsb sudah tidak di support lagi oleh Server Repo Ubuntu 9.10, anda masih bisa menggunakannya.
Demikian sharing saya, semoga bermanfaat. GBU.
OpenVPN adalah suatu opensource yang memberikan fasilitas VPN yang free dan dapat di gunakan untuk keperluan bisnis atau troubleshooting.
Bagi negara yang maju, seperti Amerika/Canada, OpenVPN bisa di implementasikan dengan baik, hal ini karena bandwith yang di sediakan sangat besar dan kualitasnya baik dan juga harganya sangat murah. Berbeda dengan kualitas bandwith yang ada di Indonesia, masih jauh dari harapan....
Oleh karena itu... implementasi openvpn untuk komunikasi data, replikasi di Indonesia masih jauh untuk bisa di implementasikan. Supaya keinginan untuk bisa mengimplementasikan openvpn, maka saya mengimplementasikan untuk melakukan troubleshooting aja, bila saya dan team MIS sedang dinas luar kantor (luar kota atau luar pulau atau luar negeri...heehehehe..), maka openvpn bisa di pakai untuk remote dan melakukan troubleshooting dari luar kantor.
Sebenarnya saya pernah melakukan riset spt skema di bawah ini:,
Hal diatas (skema diatas) bisa di lakukan bila bandwithnya mendukung, masalahnya kualitas bandwith di wilayah kota2 tsb..beda2.. jadi sulit juga untuk di implementasikan untuk di lalui data2 yang besar.
Bandwith sangatlah penting, harapan saya bandwith di Indonesia bisa lebih baik dan tentunya bisa lebih murah, dengan demikian kemajuan demi kemajuan dan keuntungan yang besar bisa di dapat oleh seluruh warga negara.
I hope so...
Harga bandwith :
Average in Canada (in canadian $ about .75 US)
Home
V 92 dialup = 15 $ a month
3.0 Mbits down, 800kbits up unlimited = 30 $ a month
Corporate
ADSL
3.0 Mbits down, 800kbits up unlimited = 66 $ a month
3.0 Mbits down, 800kbits up unlimited and static IP = 85 $ a month
4.0 Mbits down, 1.2 Mbits up unlimited = 90 $ a month
4.0 Mbits down, 1.2 Mbits up unlimited and static IP = 110 $ a month
4.0 Mbits down, 1.2 Mbits up unlimited DHCP/bridge with static IP = 225 $ a month
Step by Step Install Adempiere Server (ERP OpenSource) on Linux
First, collect some software for support Adempiere running on your linux server.
1. jdk-1_5_0_11-linux-i586-rpm.bin
You can download from :
http://www.filewatcher.com/m/jdk-1_5_0_11-linux-i586-rpm.bin.47746738.0.0.html
2. ADempiere312-PG-linux-java5.jar
You can download from :
http://www.adempiere.com/index.php/Release_312
In this case i'm install at Fedora 12 Unite ( Final Release Rescheduled at 2009-11-17)
1. Testing java version
root@mis-test master]# java -version
java version "1.6.0_0" OpenJDK Runtime Environment (IcedTea6 1.6) (fedora-31.b16.fc12-i386) OpenJDK Client VM (build 14.0-b16, mixed mode)
2. In this case i will use java version 1.5.0_11 for Adempiere,
jdk-1_5_0_11-linux-i586-rpm.bin, change file permissions mode with chmod.
[root@mis-test master]# chmod +x jdk-1_5_0_11-linux-i586-rpm.bin
[root@mis-test master]# ./jdk-1_5_0_11-linux-i586-rpm.bin
bla..bla... more preamble words and agrements, use space bar to forward to next preamble, until you clicking yes.
Extracting... UnZipSFX 5.42 of 14 January 2001, by Info-ZIP (Zip-Bugs@lists.wku.edu). inflating: jdk-1_5_0_11-linux-i586.rpm
Preparing... ################################## [100%]
1:jdk ################################## [100%]
Done.
java installed at folder /usr/java/jdk1.5.0_11
3. Add more statements at profile in etc directory, for java service can running automaticaly when the server restarted.
export JAVA_HOME=/usr/java/jdk1.5.0_11 (path from java installed)
export PATH=$JAVA_HOME/bin:$PATH
and save this file profile and restart your server,
tested server after restarted :
[root@mis-test ~]# java -version
java version "1.5.0_11" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_11-b03) Java HotSpot(TM) Client VM (build 1.5.0_11-b03, mixed mode, sharing)
the server succes installed Java
4. Do this below statement for access control disavled, clients can connect from any host.
[root@mis-test /]# xhost +
access control disabled, clients can connect from any host
5. Create a postgres user as root, log on as postgress and execute the installer.
[root@mis-test /]# useradd -d /home/postgres -m postgres
and copy file cp ADempiere312-PG-linux-java5.jar to folder /home/postgres
[root@mis-test master]# cp ADempiere312-PG-linux-java5.jar /home/postgres/
6. changes the user and/or group ownership of each given file.
[root@mis-test /]# chown -R postgres /home/postgres/
7. create password for user postgres.
[root@mis-test /]# passwd postgres
Changing password for user postgres.
New password: **********
Retype new password: **********
BAD PASSWORD: it is based on a dictionary word BAD PASSWORD: is too simple passwd: all authentication tokens updated successfully.
8. Run ADempiere312-PG-linux-java5.jar, at user postgres.
[root@mis-test /]# su - postgres
[postgres@mis-test ~]$ java -jar ADempiere312-PG-linux-java5.jar
After running that's file, new window will appear, and follow more instruction.
Press OK, appear new window and press Next, and choose radio button " I Accept the terms of this license agrement" and press Next,
This window will appear, and be sure five check box had checked, that is : Base, Postgresql Linux, JDBC, PL java, and Adempiere. press button Next.
Use default path /home/postgres/Adempiere for instalation, and press Next.
New Window appear for Instalation progress. After that appearEdit the values :
Database type = postgresql
SSL = 4443
WebPort = 8088
and press test and Windows key Store Dialog will appear, and press button Green Check.
And the system will check and testing all options in that window. Windows Finish testing will appear.press Save,
Press "Yes, I understand and Accept", OK, Next and Done (Finish)
9. Add statement at pg_hba.conf, in folder /home/postgres/Adempiere/postgresql/8.2.0/pgdata
host all all 192.168.0.0/24 trust
more clients can acces this server Adempiere
10. Test the server, to know service postgres was started.
[root@mis-test /]# ps ax|grep postgres
17594 pts/0 S 0:00 /home/postgres/Adempiere/postgresql/8.2.0/bin/postgres
17597 ? Ss 0:00 postgres: writer process
17598 ? Ss 0:00 postgres: stats collector process
18019 pts/0 S+ 0:00 grep postgres
11. Sevice Postgres can start automatic when server reboot, edit more statements on /etc/init.d/ at postgres file.
## EDIT FROM HERE
## enter in path of adempiere
. /home/postgres/Adempiere/postgresql/8.2.0/PGSQL.env
# Installation prefix
prefix=/home/postgres/Adempiere/postgresql/8.2.0
# Data directory
PGDATA="/home/postgres/Adempiere/postgresql/8.2.0/pgdata"
# Who to run the postmaster as, usually "postgres". (NOT "root")
PGUSER=postgres
# Where to keep a log file
PGLOG="$PGDATA/serverlog"
## STOP EDITING HERE
if you not find file postgres, you can create it, with command
[root@mis-test init.d]#nano postgres
and copy these statements below , and paste in your postgres file:
#! /bin/sh
# chkconfig: 2345 98 02
# description: PostgreSQL RDBMS
# This is an example of a start/stop script for SysV-style init, such
# as is used on Linux systems. You should edit some of the variables
# and maybe the 'echo' commands.
#
# Place this file at /etc/init.d/postgresql (or
# /etc/rc.d/init.d/postgresql) and make symlinks to
# /etc/rc.d/rc0.d/K02postgresql
# /etc/rc.d/rc1.d/K02postgresql
# /etc/rc.d/rc2.d/K02postgresql
# /etc/rc.d/rc3.d/S98postgresql
# /etc/rc.d/rc4.d/S98postgresql
# /etc/rc.d/rc5.d/S98postgresql
# Or, if you have chkconfig, simply:
# chkconfig --add postgresql
#
# Proper init scripts on Linux systems normally require setting lock
# and pid files under /var/run as well as reacting to network
# settings, so you should treat this with care.
# Original author: Ryan Kirkpatrick
# $PostgreSQL: pgsql/contrib/start-scripts/linux,v 1.7 2004/10/01 18:30:21 tgl Exp $
## EDIT FROM HERE
. /home/postgres/Adempiere/postgresql/8.2.0/PGSQL.env
# Installation prefix
prefix=/home/postgres/Adempiere/postgresql/8.2.0
# Data directory
PGDATA="/home/postgres/Adempiere/postgresql/8.2.0/pgdata"
# Who to run the postmaster as, usually "postgres". (NOT "root")
PGUSER=postgres
# Where to keep a log file
PGLOG="$PGDATA/serverlog"
## STOP EDITING HERE
# Check for echo -n vs echo \c
if echo '\c' | grep -s c >/dev/null 2>&1 ; then
ECHO_N="echo -n"
ECHO_C=""
else
ECHO_N="echo"
ECHO_C='\c'
fi
# The path that is to be used for the script
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# What to use to start up the postmaster (we do NOT use pg_ctl for this,
# as it adds no value and can cause the postmaster to misrecognize a stale
# lock file)
DAEMON="$prefix/bin/postmaster"
# What to use to shut down the postmaster
PGCTL="$prefix/bin/pg_ctl"
set -e
# Only start if we can find the postmaster.
test -x $DAEMON || exit 0
# Parse command line parameters.
case $1 in
start)
$ECHO_N "Starting PostgreSQL: "$ECHO_C
su - $PGUSER -c "$DAEMON -D '$PGDATA' &" >>$PGLOG 2>&1
echo "ok"
;;
stop)
echo -n "Stopping PostgreSQL: "
su - $PGUSER -c "$PGCTL stop -D '$PGDATA' -s -m fast"
echo "ok"
;;
restart)
echo -n "Restarting PostgreSQL: "
su - $PGUSER -c "$PGCTL stop -D '$PGDATA' -s -m fast -w"
su - $PGUSER -c "$DAEMON -D '$PGDATA' &" >>$PGLOG 2>&1
echo "ok"
;;
reload)
echo -n "Reload PostgreSQL: "
su - $PGUSER -c "$PGCTL reload -D '$PGDATA' -s"
echo "ok"
;;
status)
su - $PGUSER -c "$PGCTL status -D '$PGDATA'"
;;
*)
# Print help
echo "Usage: $0 {start|stop|restart|reload|status}" 1>&2
exit 1
;;
esac
exit 0
And then change file mode bits execute with command chmod +x postgres
and use this command for updates and queries runlevel information for system ser-
vices :
[root@mis-test init.d]# chkconfig postgres on
Good Luck...