SMKN 1 TUBAN blog

Information Technologi Based

Dasar-Dasar IPtables

I. Pendahuluan

Firewall adalah sebuah bagian dari sistem komputer atau jaringan yang didesain untuk memblok atau mengijinkan sebuah jaringan lain untuk mengakses jaringan kita. Firewall bisa berbentuk hardware atau software atau pun kombinasi dari keduanya. Firewall digunakan untuk melindungi jaringan kita dari jaringan-jaringan yang berpotensi menimbulkan bahaya ke dalam sistem kita. Seluruh pesan yang masuk atau meninggalkan jaringan kita melalui firewall akan dicek setiap pesan dan memblok setiap pesan yang tidak memenuhi kriteria yang telah kita tetapkan di dalam firewall. Gambar dibawah merupakan ilustrasi tentang bagaimana firewall bekerja.


Firewall merupakan perangkat jaringan yang berada di dalam kategori perangkat Layer 3 (Network layer) dan Layer 4 (Transport layer) dari protocol 7 OSI layer. Seperti diketahui, layer 3 adalah layer yang mengurus masalah pengalamatan IP, dan layer 4 adalah menangani permasalahan port-port komunikasi (TCP/UDP). Pada kebanyakan firewall, filtering belum bisa dilakukan pada level data link layer atau layer 2 pada 7 OSI layer. Jadi dengan demikian, sistem pengalamatan MAC dan frame-frame data belum bisa difilter. Maka dari itu, kebanyakan firewall pada umumnya melakukan filtering dan pembatasan berdasarkan pada alamat IP dan nomor port komunikasi yang ingin dituju atau diterimanya.

Firewall yang sederhana biasanya tidak memiliki kemampuan melakukan filtering terhadap paket berdasarkan isi dari paket tersebut. Sebagai contoh, firewall tidak memiliki kemampuan melakukan filtering terhadap e-mail bervirus yang kita download atau terhadap halaman web yang tidak pantas untuk dibuka. Yang bisa dilakukan firewall adalah melakukan blokir terhadap alamat IP dari mail server yang mengirimkan virus atau alamat halaman web yang dilarang untuk dibuka. Dengan kata lain, firewall merupakan sistem pertahanan yang paling depan untuk jaringan Anda.

II. Iptables

Di artikel ini akan dijelaskan tentang iptables, sebuah aplikasi firewall terbaik yang biasa digunakan oleh para administrator linux. Iptables merupakan aplikasi yang dibuat oleh proyek the netfilter.org. Sebelum membuat iptables yang berjalan mulai dari linux kernel 2.4.x sampai sekarang, proyek tersebut sudah membuat aplikasi ipchains untuk kernel 2.2.x dan aplikasi ipfwadm untuk kernel 2.0.x. Saat ini, banyak distro-distro besar sudah memaketkan firewall di dalam distro mereka sehingga memudahkan kita untuk menginstal iptables ke dalam sistem kita. Pada tutorial kali ini kita akan menggunakan distro Centos 5.4. Tutorial iptables pada artikel ini hanya menjelaskan tentang dasar-dasar iptables saja dan aplikasi iptables pada jaringan lokal saja.

III. Perintah-Perintah Iptables

Untuk melihat apakah di dalam sistem kita sudah terinstal paket-paket iptables, ketikkan perintah berikut:
# rpm -qa | grep iptables
Jika memang belum terinstal, ketikkan perintah berikut:
# yum -y install iptables*
Agar iptables dapat berjalan otomatis setelah restart, gunakan perintah:
# chkconfig iptables on
Untuk melihat status iptables, gunakan perintah:
# service iptables status
Untuk menyalakan iptables, gunakan perintah:
# /etc/init.d/iptables start
Untuk mematikan iptables, gunakan perintah:
# /etc/init.d/iptables stop
Untuk merestart iptables, gunakan perintah:
# /etc/init.d/iptables restart

Sebelum melangkah lebih lanjut, pastikan firewall di sistem kita di enable yaitu dengan cara ketik setup lalu pilih Firewall configuration. Setelah itu, pada bagian Security Level beri tanda bintang pada item Enabled lalu pilih tombol OK.


IV. Sintaks Iptables

Secara umum, sintaks iptables dapat dituliskan seperti berikut:
# iptables [-t table] command [match] [target/jump]
Penjelasan dari sintaks di atas dapat dijelaskan di bawah ini:

1. Table
IPTables memiliki beberapa buah tabel yaitu NAT, MANGLE, dan FILTER. Penjelasannya adalah:
a. Table Mangle: tabel yang bertanggung jawab untuk melakukan penghalusan (mangle) paket seperti merubah quality of service (QOS), TTL, dan MARK di header TCP. Biasanya tabel ini jarang digunakan di lingkungan SOHO.

b. Table Filter: yaitu tabel yang bertanggung jawab untuk pemfilteran paket. Tabel ini mempunyai 3 rantai (chain) yaitu:
1. Rantai Forward yaitu rantai yang memfilter paket-paket yang akan ke server yang dilindungi oleh firewall. Rantai ini digunakan ketika paket-paket datang dari IP Publik dan bukan dari IP lokal.
2. Rantai Input: yaitu rantai yang memfilter paket-paket yang ditujukan ke firewall.
3. Rantai Output: yaitu rantai yang memfilter paket-paket yang berasal dari firewall.

c. Tabel NAT: yaitu rantai yang bertanggung jawab untuk melakukan Network Address Translation (NAT). NAT yaitu mengganti field asal atau alamat tujuan dari sebuah paket. Pada tabel ini terdapat 2 rantai, yaitu:
1. Rantai Pre-Routing: Merubah paket-paket NAT dimana alamat tujuan dari paket-paket tersebut terjadi perubahan. Biasanya dikenal dengan destination NAT atau DNAT.
2. Rantai Post-Routing: Merubah paket-paket NAT dimana alamat sumber dari paket-paket tersebut terjadi perubahan. Biasanya dikenal dengan source NAT atau SNAT.

Alur kerja IPTables dapat dilihat pada gambar di bawah ini:


Jalannya sebuah paket melalui gambar diatas bisa dicontohkan sebagai berikut:
1. Perjalanan Paket yang diforward ke host yang lain
a. Paket berada pada jaringan fisik (Network) dan masuk ke interface jaringan
b. Paket masuk ke rantai PREROUTING pada tabel MANGLE dan tabel NAT
c. Paket mengalami Routing apakah akan diproses oleh host lokal atau diteruskan ke host lain
d. Paket masuk ke rantai FORWARD pada tabel MANGLE dan tabel FILTER
e. Paket masuk ke rantai POSTROUTING pada tabel MANGLE dan tabel NAT
f. Paket keluar menuju ke interface jaringan
g. Paket kembali pada jaringan fisik (Network)

2. Perjalanan paket yang ditujukan bagi host lokal
a. Paket berada pada jaringan fisik (Network) dan masuk ke interface jaringan
b. Paket masuk ke rantai PREROUTING pada tabel MANGLE dan tabel NAT
c. Paket mengalami Routing
d. Paket masuk ke rantai INPUT pada tabel MANGLE dan tabel FILTER untuk mengalami proses penyaringan
e. Paket akan masuk ke proses lokal (Local Process)

3. Perjalanan paket yang berasal dari host lokal
a. Aplikasi lokal menghasilkan paket data yang akan dikirimkan melalui jaringan
b. Paket masuk ke rantai OUTPUT pada tabel MANGLE, lalu ke tabel NAT, kemudian ke tabel FILTER
c. Paket mengalami Routing
d. Paket masuk ke rantai POSTROUTING pada tabel MANGLE dan tabel NAT
e. Paket keluar menuju ke interface jaringan
f. Paket kembali pada jaringan fisik (Network)

2. command
command pada baris perintah iptables yang akan memberitahu apa yang harus dilakukan terhadap lanjutan sintaks perintah. Berikut adalah beberapa command pada iptables:

command Deskripsi
-A (–append) Menambah aturan pada akhir rantai sehingga akan dieksekusi terakhir
-D (–delete) Menghapus sebuah aturan pada rantai yang dilakukan dengan cara menyebutkan secara lengkap perintah yang ingin dihapus atau dengan menyebutkan nomor baris dimana perintah akan dihapus
-I (–insert) Memasukkan aturan pada sebuah baris rantai. Berbeda dengan perintah append, perintah insert akan menempati baris yang dimaksud dan aturan awal yang menempati baris tersebut akan digeser ke bawah
-L (–list) Menampilkan semua aturan pada sebuah tabel. Perintah ini akan dikombinasikan dengan opsi -v (verbose), -n (numeric), -x (exact), dan  –line-number

-F (–flush) Mengosongkan aturan pada sebuah chain
-N (–new-chain) Membuat rantai baru
-X (–delete-chain) Menghapus rantai yang disebutkan
-E (–rename-chain) Merubah suatu nama rantai
-P (–policy) Membuat kebijakan default pada sebuah rantai
-p (–protocol) Mengecek tipe protokol tertentu. Tanda inverse(!) berarti kecuali. Misalnya protocol ! tcp berarti kecuali tcp
-s (–source) Mencocokkan paket berdasarkan alamat IP asal. Bisa berbentuk alamat tunggal (mis:192.168.0.1) atau alamat network (mis:192.168.0.0/255.255.255.0 atau 192.168.0.0/24)
-d (–destination) Mencocokkan paket berdasarkan alamat tujuan
-i (–in-interface) Mencocokkan paket berdasarkan interface dimana paket datang dan berlaku pada rantai INPUT, FORWARD, dan PREROUTING
-o (–out-interface) Mencocokkan paket berdasarkan interface dimana paket keluar dan berlaku pada rantai OUTPUT, FORWARD, dan POSTROUTING
–sport (–source-port) Mencocokkan paket berdasarkan port asal(bisa dilihat di /etc/services). Perintah ini bisa digunakan untuk range port tertentu. Misal range antara port 22 sampai 80 bisa ditulis –sport 22-80. Jika –sport :80 berarti paket dengan port 0-80. Jika –sport 1024: berarti paket dengan port asal 1024-65535
–dport (–destination-port) Mencocokkan paket berdasarkan port tujuan. Penggunaannya sama dengan –sport
–syn Memeriksa apakah flag SYN di set dan ACK dan FIN tidak di set. Perintah ini sama dengan kita menggunakan match –tcp-flags SYN,ACK,FIN SYN. Paket dengan perintah tersebut digunakan untuk melakukan request koneksi TCP yang baru terhadap server
-m mac -mac-source Melakukan pencocokan paket berdasarkan MAC source address
-m multiport –source-port Mendefinisikan port atau port range lebih dari satu
-j (–jump)
Perlakuan yang diberikan terhadap paket-paket yang memenuhi kriteria. Setelah perintah ini ada beberapa opsi yaitu:
ACCEPT: akan mengijinkan paket
DROP: akan menolak paket
REJECT: akan menolak paket. Berbeda dengan DROP, REJECT akan memberitahukan error kesalahan kepada user pengirim sedangkan DROP tidak memberitahukan error kesalahan. Opsi untuk REJECT adalah icmp-net-unreachable, icmp-host-unreachable, icmp-port-unreachable, icmp-proto-unreachable, icmp-net-prohibited, dan icmp-host-prohibited. Namun untuk menggunakan opsi-opsi tersebut harus diawali dengan –reject-with
RETURN: akan membuat paket berhenti melintasi aturan-aturan pada rantai dimana paket tersebut menemui target RETURN
MIRROR: fungsi utamanya adalah membalik source address dan destination address. Misalnya PC A menjalankan target RETURN kemudian komputer B melakukan koneksi http ke komputer A, maka yang muncul adalah pada browser adalah website komputer B itu sendiri
LOG: digunakan untuk menentukan tingkat log. Tingkatan log yang bisa digunakan adalah debug, info, notice,warning, err, crit, alert dan emerg. perintah -j LOG –log-prefix digunakan untuk memberikan string yang tertulis pada awalan log, sehingga memudahkan pembacaan log tersebut.
SNAT Target: Berguna untuk melakukan perubahan alamat asal dari paket (Source Network Address Translation). Target ini berlaku untuk tabel NAT pada rantai POSTROUTING, dan hanya disinilah rantai POSTROUTING. Jika paket pertama dari sebuah koneksi mengalami SNAT, maka paket-paket berikutnya dalam koneksi tersebut juga akan mengalami hal yang sama

DNAT Target: 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 rantai PREROUTING dan OUTPUT atau rantai buatan yang dipanggil oleh kedua rantai tersebut
MASQUARADE Target: Target ini bekerja dengan cara yang hampir sama seperti target SNAT, tetapi target ini tidak memerlukan option –to-source. Target ini memang ini 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. Target ini hanya bekerja untuk tabel NAT pada rantai POSTROUTING
REDIRECT Target: 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 rantai PREROUTING dan OUTPUT atau pada rantai buatan yang dipanggil dari kedua rantai tersebut.


Memang banyak sekali dan bisa menjadi sangat sangat kompleks teknik konfigurasi iptables. Pada kesempatan ini kita hanya mencoba melakukan konfigurasi firewall / iptables yang sederhana saja.


V. Connection Tracking

iptables mengandung sebuah modul yang mengijinkan para administrator untuk memeriksa dan membatasi service-service yang tersedia pada sebuah jaringan internal menggunakan sebuah metode yang disebut connection tracking. Fitur ini merupakan fitur baru di dalam firewall yang ditambahkan sejak kernel 2.4.x. Kemampuan dari connection tracking adalah untuk menyimpan dan menjaga informasi koneksi seperti koneksi baru atau koneksi yang sudah ada yang disertai dengan jenis protokol, alamat IP asal dan alamat IP tujuan. Dengan menggunakan fitur ini, para administrator dapat menolak atau mengijinkan berbagai macam koneksi.  Connection tracking mempunyai beberapa keadaan:

- NEW –> Sebuah klien mereques koneksi melalui firewall. Maksudnya server1 menghubungi server2 dengan mengirimkan paket SYN (Synchronize)
- RELATED –> Sebuah koneksi yang mereques sebuah reques baru tetapi masih merupakan bagian dari koneksi yang sudah ada. Maksudnya server2 menerima paket SYN dari server 1 dan kemudian merespon dengan sebuah paket SYN-ACK (Synchronize-Acknowledgment)
- ESTABLISHED –> Sebuah koneksi yang merupakan bagian dari koneksi yang sudah ada. Maksudnya server 1 menerima paket SYN-ACK dan kemudian merespon dengan paket ACK (Acknowledgment).
- INVALID –> Sebuah keadaan dimana tidak ada keadaan seperti 3 keadaan di atas

Untuk lebih jelasnya perhatikan contoh dibawah ini:
Misalnya kita ingin menggunakan service ftp pada IP=132.456.78.9, maka pada saat kita mengetikkan

# ftp 132.456.78.9
perintah tersebut akan membuka koneksi baru (NEW)
Lalu pada saat kita ingin mengambil sebuah file dari IP tersebut, misalnya paket yang bernama file.tar.gz, maka pada saat kita mengetikkan:
ftp> get file.tar.gz
itu berarti kita telah membuat keadaan koneksi ESTABLISHED.
Jika kita menggunakan sebuah koneksi ftp pasif, dimana port koneksi clien adalah 20 tetapi port transfer menggunakan port 1024 atau yang lebih besar, maka pada saat kita mengetikkan
ftp> pass
Passive mode on
kita harus menggunakan keadaan koneksi RELATED pada firewall jika kita mengijinkan akses ftp secara pasif.
Fungsi lain dari connection tracking yaitu ketika kita sudah mendefinisikan sebuah rule di chain tertentu, maka trafik network yang terkait dengan rule tersebut tidak perlu disebutkan lagi. Misalnya kita ingin menolak ssh dari sebuah IP, maka kita cukup mendefinisikan rule tersebut di chain INPUT saja, yang di outputnya tidak perlu lagi. Caranya adalah:
# iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# iptables -I OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

Di bawah ini adalah contoh iptables untuk mengijinkan service ssh dengan IP 132.456.78.9 masuk dan keluar serta hanya mengijinkan koneksi baru dan establlished untuk service ssh tersebut.
# iptables -A INPUT -p tcp -s 0/0 --sport 513:65535 -d 64.67.33.76 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
# iptables -A OUTPUT -p tcp -s 132.456.78.9--sport 22 -d 0/0 --dport 513:65535 -m state --state ESTABLISHED -j ACCEPT

VI. Contoh-Contoh

Ada dua pendekatan di dalam Iptables yaitu pendekatan positif dan pendekatan negatif. Pendekatan positif yaitu dimana seluruh port ditutup sedangkan pendekatan negatif yaitu dimana seluruh port dibuka. Untuk melihat apakah sistem iptables kita menggunakan pendekatan positif atau negatif (namun, pada umumnya linux secara default menggunakan pendekatan negatif) ketikkan iptables -L dan lihat kata setelah kata POLICY. Jika ada kata ACCEPT maka berarti pendekatan yang digunakan adalah negatif. Di tutorial ini kita akan menggunakan pendekatan negatif. Berikut adalah contoh-contohnya:

1. Memblok paket yang datang dari sebuah IP

# iptables -I INPUT -s 192.168.0.149 -j REJECT
Peritah di atas digunakan untuk memblok paket dari IP 192.168.0.149. Ada 2 opsi yang digunakan sebenarnya yaitu DROP dan REJECT. Perbedaan dari keduanya adalah kalau REJECT, perintah ini akan memblok paket namun akan memberitahukan bahwa paket tersebut ditolak. Sedangkan kalau DROP, perintah ini akan memblok paket namun tidak diberitahu apakah paket tersebut ditolak atau tidak.

2. Menghapus iptables

#  iptables -D INPUT 3
Menghapus iptables pada tabel input di baris ke 3

# iptables -F
Menghapus seluruh iptables

# iptables -F FORWARD
Menghapus seluruh iptables yang hanya berada di tabel forward

3. Menutup Port

# iptables -A INPUT -p tcp  --dport 22 -j REJECT
Perintah di atas memblok port 22 yang biasa digunakan untuk ssh

# iptables -A INPUT -p tcp -i eth0 --dport 23 -j REJECT
Perintah di atas memblok port 22 yang biasa digunakan untuk telnet
# iptables -I INPUT -s 192.168.0.250 -p tcp --dport 23 -j REJECT
Perintah di atas untuk memblok service telnet dari IP 192.168.0.250
4. Melihat tabel iptables
# iptables -L 
Perintah di atas digunakan untuk melihat daftar (list) iptables

#  iptables -L --line-number
Perintah di atas digunakan untuk melihat daftar (list) iptables dan disertai dengan nomor baris

# iptables -L -v --line-number
Perintah di atas digunakan untuk melihat daftar (list) iptables dan disertai dengan nomor baris serta dengan mode verbose
 # iptables -L -v --line-number -t nat
Perintah di atas digunakan untuk melihat daftar (list) iptables dan disertai dengan nomor baris dengan mode verbose serta menampilkan tabel NAT

5. Mengubah Policy
# iptables -P INPUT DROP 
Mengubah chain INPUT menjadi DROP
# iptables -P OUTPUT DROP
Mengubah chain OUTPUT menjadi DROP
# iptables -P FORWARD DROP

Mengubah chain FORWARD menjadi DROP

6. Lain-Lain
# iptables -A INPUT -m mac -mac-source 00-14-85-47-85-E5

Memblok komputer yang mempunyai mac address 00-14-85-47-85-E5

# iptables -A INPUT -p tcp -m multiport --source-port 22,53,80 

Memblok port-port 22,53, dan 80

7. Menggunakan Log
Untuk menggunakan log di dalam iptables, maka kita harus menambahkan skrip di file file syslog.conf pada folder /etc. Di dalam skrip tersebut, tambahkan skrip sebagai berikut:
kern.*                                                  /var/log/firewall.log
Setelah itu, simpan file tersebut dan restart syslog dengan cara:
# service syslog restart
Dengan demikian, segala hal yang terjadi pada iptables akan dicatat di /var/log/firewall.log

Penentuan posisi log juga berpengaruh terhadap pencatatan log itu sendiri. Sebaiknya posisi log ditempatkan di baris paling atas karena akan mencatat segala yang terjadi pada paket-paket sebelum paket-paket tersebut diperlakukan sesuai dengan rule yang ada di dalam iptables. Untuk lebih jelasnya, perhatikan contoh berikut. Kita akan membuat server linux di vmware dengan 2 ethernet. eth0 dengan IP 192.168.0.248 dan eth1 dengan IP 192.168.2.2. Lalu di iptables kita buat aturan sebagai berikut:

# iptables -P INPUT DROP
# iptables -I INPUT -s 192.168.0.1 -d 192.168.0.248 -j ACCEPT
# iptables -A INPUT -p ALL -m state --state NEW -j LOG --log-prefix "IPTABLES: (INPUT-REJECT)"
# iptables -A INPUT -i eth1 -j REJECT

Perintah pertama dapat dijelaskan bahwa policy default untuk rantai INPUT adalah DROP yang berarti akan memblok seluruh inputan. Perintah iptables kedua akan menerima inputan dari IP 192.168.0.1 dengan tujuan IP 192.168.0.248. Perintah iptables ketiga akan mencatat seluruh inputan yang mencoba masuk ke server selain yang sudah ditentukan.  Perintah iptables keempat akan memblok seluruh inputan yang menuju eth1 atau yang ber- IP 192.168.2.2.  Sekarang coba ping 192.168.0.248 dari komputer yang ber-IP 192.168.0.1, dan akan terlihat hasil sebagai berikut:


Dan kalau kita lihat di log firewall di /var/log/firewall akan terlihat tidak ada aktivitas apa-apa di dalam file tersebut. Tetapi pada saat kita menge-ping 192.168.2.2, maka akan terlihat gambar seperti di bawah ini:

Itu berarti IP tersebut di blok. Sekarang lihat di log firewall, seharusnya akan terlihat gambar berikut ini:

Contoh yang lain lagi misalnya kita mempunyai IP publik yang ada di eth1 dan kita ingin memblok seluruh IP publik yang ada untuk mengakses IP publik kita, namun kita juga ingin mengetahui IP-IP mana saja yang mengakses IP Publik kita maka sintaksnya seperti berikut:

# iptables -I INPUT -p All -i eth1 -s ! 192.168.0.0/24 -m state --state NEW -j LOG --log-prefix "IPTABLES: (INPUT-REJECT) "
# iptables -A INPUT -i eth1 -s ! 192.168.0.0/24 -j REJECT

Sintaks di atas dapat dijelaskan bahwa seluruh IP akan ditolak namun hanya IP-IP publik saja yang akan di catat dalam log.

8. Membackup dan merestore iptables

Jika kita sudah mengatur konfigurasi iptables, maka sebaiknya kita langsung menyimpan iptables tersebut. Karena jika tidak, konfigurasi iptables kita akan hilang jika server kita restart atau kita menggunakan perintah restart iptables dan kita harus menyusunnya kembali. Berikut adalah langkah-langkah untuk menyimpan iptables:
 # service iptables save
Maka perintah-perintah iptables akan disimpan di file iptables pada folder /etc/sysconfig. Jika misalnya kita sudah menyimpan iptables yang sudah kita konfigurasi sebelumnya, maka jika server kita restart atau iptables kita restart maka iptables kita bisa terestore secara otomatis. Untuk merestore iptables yang sudah kita simpan sebelumnya, maka ketikkan perintah:
 # service iptables restart
maka iptables yang sudah kita simpan akan terestore kembali.

VII. Catatan Untuk membuat IPtables

Jika kita ingin membuat sebuah rule di iptables, maka kita harus mengerti tujuan dari rule yang kita buat sendiri. Setelah itu, kita baru membuat rule-rule tersebut menurut sintaks yang sudah ditetapkan iptables. Jika sudah, kita harus melakukan beberapa pengujian. Uji apakah port-port yang ditutup masih dapat diakses atau tidak. Jika port yang sudah ditutup sudah tidak dapat diakses, berarti aturan yang kita terapkan sudah berjalan dengan baik. Begitu juga dengan port atau service yang dibuka oleh iptables. Jika semua berjalan sesuai dengan apa yang kita inginkan maka sebaiknya segera disimpan iptables tersebut.

Iptables sendiri merupakan tools yang sangat kompleks dan memiliki banyak kemampuan. Pada intinya, sesuaikan saja kebutuhan yang ingin kita terapkan dalam jaringan kita, kemudian gunakan option IPtables yang sesuai dengan kebutuhan kita.

8 February 2010 at 05:20 - Comments

Perintah Dasar Linux Debian

Ini beberapa perintah Dasara linuk debian

any_command –help : Menampilkan keterangan bantu tentang pemakaian perintah। “–help” sama dengan perintah pada DOS “/h”

ls : Melihat isi file dari direktori aktif. Pada linux perintah dir hanya berupa alias dari perintah ls. Untuk perintah ls sendiri sering dibuatkan alias ls –color, agar pada waktu di ls ditampilkan warna-warna sesuai dengan file-filenya, biasanya hijau untuk execute, dsb

ls -al : Melihat seluruh isi file pada direktori aktif beserta file hidden, lalu ditampilkan layar per layar.

cd directory : Change directory. Menggunakan cd tanpa nama direktori akan menghantarkan anda ke home direktori. Dan cd – akan menghantarkan anda ke direktori sebelumnya.

cp source destination : Mengopi suatu file

mcopy source destination : Mengcopy suatu file dari/ke dos filesystem. Contoh mcopy a:autoexec.bat ~/junk . Gunakan man mtools untuk command yang sejenis : mdir, mcd, mren, mmove, mdel, mmd, mrd, mformat….

mv source destination :Memindahkan atau mengganti nama file

ln -s source destination : Membuat Simbolic Links, contoh ln -sf /usr/X11R6/bin/XF86_SVGA /etc/X11/X, membuat Simbolic link dari file XF86_SVGA ke X

rm files : Menghapus file

mkdir directory : Membuat direktori baru

rmdir directory : Menghapus direktori yang telah kosong

rm -r files : (recursive remove) Menghapus file, direktori dan subdirektorinya. Hati-hati menggunakan perintah ini apabila anda login sebagai root, karena root dengan mudah dapat menghapus seluruh file pada sistem dengan perintah di atas, tidak ada perintah untuk undelete di Linux

more : Untuk melihat isi suatu file, dengan tambahan perintah more, maka isi file tersebut ditampilkan layar per layar.

less filename : Melihat suatu file layar per layar, dan tekan tombol “q” apabila ingin keluar,

pico filename : Edit suatu text file.

pico -w filename : Edit suatu text file, dengan menonaktifkan fungsi word wrap, sangat berguna untuk mengedit file seperti /etc/fstab.

lynx file.html : Melihat file html atau browse ke net dengan text mode, dimana gambar/image tidak dapat ditampilkan, tapi lynx adalah suatu browser yang sangat cepat, sangat berguna bila anda hanya menginginkan suatu artikel tanpa image.

tar -zxvf filename.tar.gz : Meng-untar sebuah file tar sekaligus meng-uncompress file tersebut (*.tar.gz atau *.tgz), untuk meletakkannya direktori yg diinginkan tambahkan option -C direktori, contoh tar -zxvf filename.tar.gz -C /opt (meletakkan file tersebut di direktori /opt

tar -xvf filename.tar : Meng-untar sebuah file tar yang tidak terkompress (*.tar).

gunzip filename.gz : Meng-uncompress sebuah file zip (*.gz” or *.z). dengan menggunakan gzip (juga zip atau compress) jika anda menginginkan mengompress file.

bunzip2 filename.bz2 : Meng-uncompress file dengan format (*.bz2) dengan utiliti “bzip2″, digunakan pada file yang besar.

unzip filename.zip : Meng-uncompress file dengan format (*.zip) dengan utiliti “unzip” yang kompatibel dengan pkzip for DOS.

find / -name “filename” : Mencari “namafile” pada komputer anda dimulai dengan direktori /. Namafile tersebut mungkin saja berisi wildcard (*,?).

locate filename : Mencari file dengan string “filename”. Sangat mudah dan cepat dari perintah di atas.

pine : Email reader yang sangat mudah digunakan, dan menjadi favorit banyak pemakai mesin Unix. Atau anda bisa pakai email yang sangat customize, yaitu mutt ,

talk username1 : Berbicara dengan keyboard dengan user lain yg sedang login pada mesin kita (atau gunakan talk username1@machinename untuk berbicara dengan komputer lain). Untuk menerima undangan percakapan, ketikkan talk username2. Jika seseorang mencoba untuk berbicara dengan anda dan itu dirasakan mengganggu, anda bisa menggunakan perintah mesg n untuk menolak pesan tersebut. Dan gunakan perintah who atau rwho untuk melihat siapa user yang mengganggu tersebut.

mc : Menjalankan “Morton Commander” … eh… salah maksudnya “Midnight Commander” sebagai file manager, cepat dan bagus.

telnet server : Untuk menghubungkan komputer kita ke komputer lain dengan menggunakan protokol TELNET. Gunakan nama mesin atau Nomor IP mesin, dan anda akan mendapatkan prompt login name dari mesin tersebut, masukkan passwordnya, oh ya .. anda juga harus punya account di mesin remote tersebut. Telnet akan menghubungkan anda dengan komputer lain dan membiarkan anda untuk mengoperasikan mesin tersebut. Telnet sangat tidak aman, setiap yang anda ketik menjadi “open text”, juga dengan password anda! Gunakan ssh alih-alih telnet untuk mengakses mesin secara remote.

rlogin server : (remote login) Menghubungkan anda kekomputer lain. Loginname dan password, tetapi apabila account anda tersebut telah dipakai, maka anda akan mendapatkan pesan kesalahan pada password anda. Sangat tidak aman juga, gunakan ssh sebagai gantinya.

rsh server : (remote shell) Jalan lain untuk menghubungkan anda ke remote machine. Apabila login name/password anda sedang dipakai di remote mesin tsb, maka password anda tidak akan berlaku. Idem dengan rlogin, gantikan dengan ssh.

ftp server : Ftp ke mesin lain, ini sangat berguna untuk mengopy file ke/dari remote mesin. Juga tidak aman, gunakan scp dari keluarga ssh sebagai gantinya.

minicom : Program Minicom (dapat dikatakan seperti “Procomm/Hyperterminal for Linux”).

./program_name : Menjalankan program pada direktori aktif, yang mana tidak terdapat pada PATH anda

xinit : Menjalankan X-window server (tanpa windows manager).

startx : Menjalankan X-window server dan meload default windows manager. Sama seperti perintah “win” under DOS dengan Win3.1

startx — :1 : Menjalankan sesi X-windows berikutnya pada display 1 (default menggunakan display 0). Anda dapat menjalankan banyak GUI terminal secara bersamaan, untuk pindah antar GUI gunakan , , etc, tapi ini akan lebih banyak memakan memori.

xterm : (pada X terminal) ,menjalankan X-windows terminal. Untuk keluar ketikkan exit

xboing : (pada X terminal). Sangat lucu deh …., seperti games-games lama …..

gimp : (pada X terminal) Program image editor yang sangat bagus, bisa disamakan dengan Adobe Photoshop, yang membedakan adalah program ini gratis.

netscape : (pada X terminal) menjalankan netscape, versi pada waktu tulisan ini dibuat telah mencapai versi 4.7

netscape -display host:0.0 : (pada X terminal) menjalankan netscape pada mesin yang aktif dan menampilkan outputnya pada mesin yang bernama host display 0 screen 0. Anda harus memberikan akses untuk mesin aktif untuk menampilkannya pada mesin host dengan perintah xhost

shutdown -h now : (sebagai root) Shut down sistem. Umumnya digunakan untuk remote shutdown. Gunakan untuk shutdown pada konsol (dapat dijalankan oleh user).

halt reboot : (sebagai root) Halt atau reboot mesin. Lebih simple dari perintah di atas.

man topic : Menampilkan daftar dari sistem manual pages (help) sesuai dengan topic. Coba man man. lalu tekan q untuk keluar dari viewer. Perintah info topic Manual pages dapat dibaca dilhat dengan cara any_command –help.

apropos topic : Menampilkan bantuan manual berdasarkan topik..

pwd : Melihat direktori kerja saat ini

hostname : Menampilkan nama local host (mesin dimana anda sedang bekerja). Gunakan perintah netconf (sebagai root) untuk merubah nama host dari mesin tersebut, atau edit file /etc/hosts

whoami : Mencetak login name anda

id username : Mencetak user id (uid) atau group id (gid)

date : Mencetak atau merubah tanggal dan waktu pada komputer, contoh merubah tanggal dan waktu ke 2000-12-31 23:57 dengan perintah; date 123123572000

time : Melihat jumlah waktu yg ditangani untuk penyelesaian suatu proses + info lainnya. Jangan dibingungkan dengan perintah date

who : Melihat user yang login pada komputer kita.

rwho -a : Melihat semua user yg login pada network anda. Layanan perintah rwho ini harus diaktifkan, jalankan setup sebagai root untuk mengaktifkannya.

finger username : Melihat informasi user, coba jalankan; finger root

last : Melihat user sebelumnya yang telah login di komputer.

uptime : Melihat jumlah waktu pemakaian komputer oleh seseorang, terhitung proses reboot terakhir.

ps : (=print status) Melihat proses-proses yang dijalankan oleh user

ps axu : Melihat seluruh proses yang dijalankan, walaupun tanpa terminal control, juga ditampilkan nama dari user untuk setiap proses.

top : Melihat proses yang berjalan, dengan urutan penggunaan cpu.

uname -a : Informasi system kernel anda

free : Informasi memory (dalam kilobytes).

df -h : (=disk free) Melihat informasi pemakaian disk pada seluruh system (in human-readable form)

du / -bh : (=disk usage) Melihat secara detil pemakaian disk untuk setiap direktori, dimulai dari root (in human legible form).

cat /proc/cpuinfo : Cpu info. Melihat file pada /proc directori yang bukan merupakan file nyata (not real files).

cat /proc/interrupts : Melihat alamat interrupt yang dipakai.

cat /proc/version : Versi dari Linux dan informasi lainnya.

cat /proc/filesystems : Melihat filesystem yang digunakan.

cat /etc/printcap : Melihat printer yang telah disetup

lsmod : (as root) Melihat module-module kernel yang telah di load.

set : Melihat environment dari user yang aktif

echo $PATH : Melihat isi dari variabel PATH. Perintah ini dapat digunakan untuk menampilkan variabel environmen lain dengan baik. Gunakan set untuk melihat environmen secara penuh.

dmesg : Mencetak pesan-pesan pada waktu proses boot. (menampilkan file: /var/log/dmesg).

clear : Membersihkan layar.

adduser : Menambah pengguna.

product by naruto@smkn1-tuban.sch.id

28 December 2009 at 09:43 - Comments

Instalasi Modem 3G HSDPA ZTE MF622 di Linux Debian and Ubuntu

artikel from http://www.indosatm2.com/

  1. Pada saat pertama kali dihubungkan ke port USB di PC atau Notebook maka Modem ZTE ini akan dikenali sebagai USB Storage, untuk itu kita terlebih dahulu harus membuat agar modem ZTE MF622 ini dikenali sebagai modem 3G. Download packet ini dari : http://www.draisberghof.de/usb_modeswitch/usb_modeswitch-0.9.4.tar.bz2
  2. Extract file tersebut dengan perintah :
    $ tar -jxvf usb_modeswitch-0.9.4.tar.bz2

    $ ls
    usb_modeswitch-0.9.4.tar.bz2

    $ tar -xvjf usb_modeswitch-0.9.4.tar.bz2
    usb_modeswitch-0.9.4/
    usb_modeswitch-0.9.4/compile.sh
    usb_modeswitch-0.9.4/usb_modeswitch
    usb_modeswitch-0.9.4/usb_modeswitch.conf
    usb_modeswitch-0.9.4/usb_modeswitch.c
    usb_modeswitch-0.9.4/usb_modeswitch.h
    usb_modeswitch-0.9.4/COPYING
    usb_modeswitch-0.9.4/README

    $ ls
    usb_modeswitch-0.9.4 usb_modeswitch-0.9.4.tar.bz2

    $ cd usb_modeswitch-0.9.4/

    ~/usb_modeswitch-0.9.4$ ls
    compile.sh
    README
    usb_modeswitch.c
    usb_modeswitch.h
    COPYING
    usb_modeswitch
    usb_modeswitch.conf

  3. Login sebagai root

    $ su atau
    $ sudo su

  4. Copy file executable “usb_modeswitch” pada directory “/sbin” dan “/usr/sbin”

    ~/usb_modeswitch-0.9.4# cp usb_modeswitch /sbin/usb_modeswitch
    ~/usb_modeswitch-0.9.4# cp usb_modeswitch /usr/sbin/usb_modeswitch

    Perhatian!: Untuk Linux basis debian seperti Ubuntu, dll, default ada di /usr/sbin/. Namun untuk basis Redhat sperti fedora, opensuse ada di /sbin.

  5. Copy file “usb_modeswitch.conf” ke directory “/etc”

    ~/usb_modeswitch-0.9.4# cp usb_modeswitch.conf /etc/usb_modeswitch.conf

  6. Buat file rules di /etc/udev/rules.d/15-zte-mf620.rules yang berisikan :

    #————————————————–
    ACTION!=”add”, GOTO=”ZTE_End”

    # Is this the ZeroCD device?
    SUBSYSTEM==”usb”, SYSFS{idProduct}==”2000″,
    SYSFS{idVendor}==”19d2″, GOTO=”ZTE_ZeroCD”

    # Is this the actual modem?
    SUBSYSTEM==”usb”, SYSFS{idProduct}==”0001″,
    SYSFS{idVendor}==”19d2″, GOTO=”ZTE_Modem”

    LABEL=”ZTE_ZeroCD”
    # This is the ZeroCD part of the card, remove
    # the usb_storage kernel module so
    # it does not get treated like a storage device
    #RUN+=”/sbin/rmmod usb_storage”
    RUN+=”/usr/sbin/usb_modeswitch -d 1 -v 0×19d2 -p 0×2000 -V 0×19d2 -P 0×0001″

    LABEL=”ZTE_Modem”
    # This is the Modem part of the card, let’s
    # load usbserial with the correct vendor
    # and product ID’s so we get our usb serial devices
    RUN+=”/sbin/modprobe usbserial vendor=0×19d2 product=0×0001″,
    # Make users belonging to the dialout group
    # able to use the usb serial devices.
    MODE=”660″, GROUP=”dialout”

    LABEL=”ZTE_End”
    #——————– eof —————

    Pastikan permision filenya sama dengan rule yang lain.
    # chmod 644 15-zte-mf622.rules

    Dan arah kan RUN+ pada script diatas sesuai dengan distro yang dipakai :
    RUN+=”/usr/sbin/usb_modeswitch -d 1 -v 0×19d2 -p 0×2000 -V 0×19d2 -P 0×0001″ ==>> Perhatian Untuk Linux basis debian seperti Ubuntu, dll, default ada di /usr/sbin/. Namun untuk basis Redhat sperti fedora, opensuse ada di /sbin/.

  7. Pastikan Anda telah menginstall wvdial di Linux, (di Debian atau Ubuntu tinggal install melalui apt-get atau melalui Synaptic).

    # apt-get install wvdial

  8. Buat script di /etc/wvdial.conf berisikan :

    [Dialer Defaults]
    Modem = /dev/ttyUSB0
    Baud = 3600000
    Init1 = ATZ
    Init2 = ATQ0 V1 E1 S0=0 &C1 &D2
    Init3 = AT+CGDCONT=1,”IP”,”indosatm2″
    Area Code =
    Phone = *99#
    Username =
    Password =
    Ask Password = 0
    Dial Command = ATDT
    Stupid Mode = 1
    Compuserve = 0
    Force Address =
    Idle Seconds = 0
    DialMessage1 =
    DialMessage2 =
    ISDN = 0
    Auto DNS = 1

  9. Restart Linux anda sekarang
  10. Setelah selesai restart coba tancapkan modem ZTE MF622 pada slot USB yang ada, tunggu sampai indikator led berwarna hijau (tunggu kira-kira 30 detik) sebab ini memrlukan waktu untuk pengenalan modem ZTE itu sendiri.
  11. Jalankan program wvdial nya :

    # wvdial
    WvDial<*1>: WvDial: Internet dialer version 1.56
    WvModem<*1>: Cannot get information for serial port.
    WvDial<*1>: Initializing modem.
    WvDial<*1>: Sending: ATZ
    WvDial Modem<*1>: ATZ
    WvDial Modem<*1>: OK
    WvDial<*1>: Sending: ATQ0 V1 E1 S0=0 &C1 &D2
    WvDial Modem<*1>: ATQ0 V1 E1 S0=0 &C1 &D2
    WvDial Modem<*1>: OK
    WvDial<*1>: Sending: AT+CGDCONT=1,”IP”,”indosatm2″
    WvDial Modem<*1>: AT+CGDCONT=1,”IP”,”indosatm2″
    WvDial Modem<*1>: OK
    WvDial<*1>: Modem initialized.
    WvDial<*1>: Sending: ATDT*99#
    WvDial<*1>: Waiting for carrier.
    WvDial Modem<*1>: ATDT*99#
    WvDial Modem<*1>: CONNECT
    WvDial<*1>: Carrier detected. Starting PPP immediately.
    WvDial: Starting pppd at Mon Feb 11 01:06:45 2008
    WvDial: Pid of pppd: 14291
    WvDial<*1>: pppd: H�
    WvDial<*1>: Using interface ppp0
    WvDial<*1>: pppd: H�
    WvDial<*1>: pppd: H�
    WvDial<*1>: pppd: H�
    WvDial<*1>: pppd: H�
    WvDial<*1>: pppd: H�
    WvDial<*1>: pppd: H�
    WvDial<*1>: pppd: H�
    WvDial<*1>: local IP address 124.81.144.28
    WvDial<*1>: pppd: H�
    WvDial<*1>: remote IP address 10.64.64.64
    WvDial<*1>: pppd: H�
    WvDial<*1>: primary DNS address 202.155.0.10
    WvDial<*1>: pppd: H�
    WvDial<*1>: secondary DNS address 202.155.0.15
    WvDial<*1>: pppd: H�

    Jika muncul seperti diatas berarti kita sudah terkoneksi dengan 3G HSDPA dan sudah mendapatkan IP maupun DNS. kita tinggal mencoba ping ke www.yahoo.com untuk memastikan bahwa kita sudah bisa browsing.

  12. Selamat ber Internet ria dengan layanan 3,5G HSDPA dari IM2!
27 August 2009 at 23:43 - Comments
Miato at 18:06 on 13 February 2010
Hello, , Thank you Miato

Install Packet Tracet 5.1 di LINUX

beberapa hari disibukan dengan rapel tugas, trus ditanya tentang install packet tracer di linux ama pak imron, dulu dah nyoba packet tracer yang tar.gz, tapi mesti error, trus browsing2 di google akhirnya dapat sofware packet tracer di http://195.148.217.80/Public/Cisco/Programs/PacketTracer/ gak tau punya n\cpa yang penting download dulu wis trus di upload di ftp://ftp.smkn1-tuban.sch.id/download/ biar anak2 smkn 1 tuban bisa download

trus installnya adalah

1. download dulu ftp://ftp.smkn1-tuban.sch.id/download/PacketTracer51_i386_installer-deb.bin

2. rubah dulu permission filenya

chmod 755 PacketTracer51_i386_installer-deb.bin

3. lakukan installasi

./PacketTracer51_i386_installer-deb.bin

Self extracting archive…

Welcome to Packet Tracer 5 Installation
Read the following End User License Agreement “EULA” carefully. You must accept the terms of this EULA to install and use Packet Tracer 5.1.
Press the Enter key to read the EULA.

4. baca EULANYA enter2 aja ampe tekan Yes/No

5. tekan Y terus enter tunggu hingga proses instalasi selesai.

6. jika dah selesai jalankan packet tracertnya masuk di Applications -> Internet -> Packet Tracert 5.1

ok deh dah selesai.

selamat menikmati bermain Packet Tracer

naruto@smkn1-tuban.sch.id

4 August 2009 at 07:08 - Comments

MTRC

MTRC (Motor Triathlon Race Car)

Adalah desain kendaraan sport yang akan digunakan oleh pengendara masa. Kendaraan ini memiliki design dan konsep yang sangat sporty. Kelak, akan menjadi bintang dari Gran Turismo 4, video game yang terkenal.

Fungsi berkendara yang dinamis disiapkan oleh Fuel Cell Toyota tanpa gas buang, dan sistem by-wire yang menggunaan ke-4 roda motor elekrik dengan memberikan kontrol ke seluruh roda secara paralel. Penyesuain suspensi yang tinggi dan kemampuan ban untuk beradaptasii terhadap kondisi jalan menambah kenikmatan.

In-Wheel Motor
MTRC dilengkapi oleh empat motor listrik di setiap roda, digerakkan oleh fuel cell higrogen yang hanya mengeluarkan air H2O atau zero emission. Sehingga MTRC adalah mobil sport yang ramah lingkungan.

Fuel Cell Hybrid
MTRC membuktikan bahwa mobil balap pun bisa menggunakan mesin hybrid yang ramah lingkungan tapi tetap menampilkan performa mesin balap yang baik. Fuel Cell Hybrid atau FC Stack ini menggunakan hidrogen dan hanya mengeluarkan air sebagai hasil sampingannya.

Mixed Reality
Teknologi inovatif ini memungkinkan pengendara dan penumpang memantau beragam informasi melalui media Head Up Display (HUD). Misalnya memantau temperatur jalan, kondisi ban, kecepatan atau berinteraksi dengan piranti mobil lainnya dalam mengoptimalisasi performa.

Aerodynamic efficiency
Spoiler belakang yang melengkung memberikan efisiensi aerodinamis sebaik yang diberikan oleh hidung depan mobil ini.
Seluruh desain bodi MTRC dimaksudkan untuk mengatur aliran udara secara optimal untuk memberikan peningkatan kecepatan dan stabilitas mobil secara keseluruhan.

Specification
2004 Toyota MTRC

Year

2004

Make

Toyota

Model

MTRC

Engine Location

Rear

Drive Type

4WD

in-wheel motors

Engine

Aspiration/Induction

Normal

Fuel-cell type

Fuel-cell type: Toyota FC stack

Drive system

Four-wheel drive (Each tire has its own in-wheel motor.)

Dimensions

Seating Capacity

2

Body Type

2-door roadster

Exterior

Length

4058.9 mm.

Width

1930.4 mm.

Height

1331 mm.

Wheelbase

2949 mm.

Front Track

1607.8 mm.

12 July 2009 at 15:02 - Comments