Feel banana feel the freedom

October 28, 2007

Mata Kedutan

Filed under: Apaan ya ? — yoner @ 1:53 am

Sudah beberapa hari ini mataku kedutan mulu nich disisi kanan.

Kenapa ya ?

Mudah-mudahan itu pertanda baik ya :D :) . Karena sebentar lagi hari bahagia itukan datang :)

Just counting a few more days.

Rasanya deg2an nih nunggu saat-saat bahagia.

Doakan kami agar menjadi keluarga sakinah ma waddah wa rahmah

Sekilas tentang squid

Filed under: Linux Server — yoner @ 1:11 am

Salah satu contoh aplikasi proxy/cache server adalah Squid. Squid dikenal sebagai aplikasi proxy dan cache server yang handal. Pada pihak klien bekerja aplikasi browser yang meminta request http pada port 80. Browser ini setelah dikonfigurasi akan meminta content, yang selanjutnya disebut object, kepada cache server, dengan nomor port yang telah disesuaikan dengan milik server, nomor yang dipakai bukan port 80 melainkan port 8080 3130 (kebanyakan cache server menggunakan port itu sebagai standarnya).

Pada saat browser mengirimkan header permintaan, sinyal http request dikirimkan ke server. Header tersebut diterima squid dan dibaca. Dari hasil pembacaan, squid akan memparsing URL yang dibutuhkan, lali URL ini dicocokkan dengan database cache yang ada.

Database ini berupa kumpulan metadata (semacam header) dari object yang sudah ada didalam hardisk. Jika ada, object akan dikirimkan ke klien dan tercatat dalam logging bahwa klien telah mendapatkan object yang diminta. Dalam log kejadian tersebut akan dicatat sebagai TCP_HIT. Sebaliknya, jika object yang diminta ternyata tidak ada, squid akan mencarinya dari peer atau langsung ke server tujuan. Setelah mendapatkan objectnya, squid akan menyimpan object tersebut ke dalam hardisk. Selama dalam proses download object ini dinamakan “object in transit” yang sementara akan menghuni ruang memori. Dalam masa download tadi, object mulai dikirimkan ke klien dan setelah selesai, kejadian ini tercatat dalam log sebagai TCP_MISS.

ICP sebagai protokol cache berperan dalam menanyakan ketersediaan object dalam cache. Dalam sebuah jaringan sebuah cache yang mempunyai sibling, akan mencoba mencari yang dibutuhkan ke peer sibling lainnya, bukan kepada parent, cache akan mengirimkan sinyal icp kepada sibling dan sibling membalasnya dengan informasi ketersediaan ada atau tidak. Bila ada, cache akan mencatatkan ICP_HIT dalam lognya. Setelah kepastian object bias diambil dari sibling, lalu cache akan mengirimkan sinyal http ke sibling untuk mengambil object yang dimaksud. Dan setelah mendapatkannya, cache akan mencatat log SIBLING_HIT.

Jika ternyata sibling tidak menyediakan object yang dicari, cache akan memintanya kepada parent. Sebagai parent, ia wajib mencarikan object yang diminta tersebut walaupun ia sendiri tidak memilikinya (TCP_MISS). Setelah object didapatkan dari server origin, object akan dikirimkan ke cache child tadi, setelah mendapatkannya cache child akan mencatatnya sebagai PARENT_HIT.

II.1 Konfigurasi, penggunaan dan metode Squid

Konfigurasi-konfigurasi mendasar squid antara lain :

1. http_port nomor port.
Ini akan menunjukkan nomor port yang akan dipakai untuk menjalankan squid. Nomor port ini akan dipakai untuk berhubungan dengan klien dan peer.

2. icp_port nomor port.
Ini akan menunjukkan nomor port yang akan dipakai untuk menjalankan squid. Nomor port ini akan dipakai untuk berhubungan dengan klien dan peer.

3. cache_peer nama_peer tipe_peer nomor_port_http nomor_port_icp option.
Sintask dari cache peer ini digunakan untuk berhubungan dengan peer lain, dan peer lain yang dikoneksikan ini tipenya bergantung dari tipe peer yang telah dideklarasikan ini, bias bertipe sibling maupun bertipe parent,dan port yang digunakan untuk hubungan ICP maupun HTTP juga dideklarasikan disini, sedangakan untuk parameter option disini ada bermacam-macam salah satunya adalah default yang berarti dia adalah satu-satunya parent yang harus dihubungi (jika bertipe parent) dan proxy-only yang berarti bahwa object yang dipata dari peer tersebut tidak perlu disimpan dalam hardisk local.

4. Dead_peer_timeout jumlah_detik seconds.
Masing-masing peer yang telah didefinisikan sebelumnya mempunyai waktu timeout sebesar yang ditentukan dalam konfigurasi ini, Jika peer tidak menjawab kiriman sinyal ICP dalam batas waktu yang telah ditentukan, peer akan dianggap tidak akan dapat dijangkau, dan cache server tidak akan mengambil object dari server yang bersangkutan dalam interval waktu tertentu.

5. Hierarcy_stoplist pola1 pola2
Sintaks ini digunakan untuk menyatakan apa yang harus tidak diminta dari peer, melainkan harus langsung dari web server origin, jika pola1 dan pola 2 adalah parameter cgi-bin, ?, dan lain-lain maka jika ada request URL yang mengandung karakter tersebut maka akan diambilkan langsung ke server origin.

6. Cache_mem jumlah_memori (dalam bytes)
Sintaks ini akan menentukan batas atas jumlah memori yang digunakan untuk menyimpan antara lain : intransit object yaitu object yang dalam masa transisi antara waktu cache mendownload sampai object disampaikan ke klien, dan hot object, yaitu object yang sering diakses.

7. Cache_swap_low/high jumlah (dalam persen)
Squid akan menghapus object yang ada didalam hardisknya jika media tersebut mulai penuh. Ukuran penuh ini yang diset pada cache_swap_low dan cache_swap_high. Bila batas swap_low telah tercapai maka squid mulai menghapus dan jika batas swap_high tercapai maka squid akan semakin sering menghapus.

8. Cache_dir jenis_file_sistem direktori kapasitas_cache dir_1 jumlah dir_2
Sintaks ini akan menjelaskan direktori cache yang dipakai, pertama adalah jenis file sistemnya, lalu didirektori mana cache tersebut akan disimpan, selanjutnya ukuran cache tersebut dalam MegaBytes lalu jumlah direktori level 1 dan direktori level 2 yang akan digunakan squid untuk menyimpan objectnya.

II.1.1 ACL (Access Control List)

Berikut ini adalah control list yang akan digunakan untuk mengatur control dari ACL, control list tersebut antara lain :
- http_access
memperbolehkan acess http
- icp_access
memperbolehkan peer untuk mengirimkan icp untuk menquery object
- miss_access
memperbolehkan klien meminta object yang belum ada (miss) didalam cache
- no_cache
object yang diminta klien tidak perlu disimpan ke hardisk
- always_direct
permintaan yang ditangani langsung ke server origin
- never direct
permintaan yang ditangani secara tidak langsung ke server origin.

Sebagai contoh diberikan sintaks konfigurasi ACL seperti dibawah ini :
#bagian ACL
ACL localnet src 192.168.100.0/24
ACL localkomp 127.0.0.1/255.255.255.255
ACL isp dst 202.59.206.65/30
ACL allsrc src 0.0.0.0/0.0.0.0
ACL alldst dst 0.0.0.0/0
ACL other src 10.10.11.11/32
ACL domainku srcdomain .jatara.net
#bagian control list
http_access deny other
http_access allow localnet
http_access allow lokalkomp
http_access allow domainku
http_access deny allsrc
always_direct allow isp
always_direct deny alldst

Pada konsep sintaks konfigurasi squid adalah bahwa sesuatu yang telah dieksekusi pada baris yang lebih atas maka dia tidak dieksekusi lagi dibaris yang paling bawah, walaupun dalam parameter ACL yang dibawah tersebut dia juga termasuk, untuk lebih jelasnya, jika ada IP Address 192.168.100.0/24 maka IP Address yang berkisar dari 192.168.100.1 – 192.168.100.254 (ACL localnet) telah diijinkan untuk mengakses http yang ditunjukkan oleh http_access allow localnet, dan dibawahnya ada ACL allsrc yang itu adalah mencakup semua daftar IP Address dan ACL itu tidak diperbolehkan mengakses http, yaitu http_access_deny allsrc, tapi karena pada ACL localnet dia telah dieksekusi untuk sebagai IP Address yang boleh mengakses, maka walaupun dibaris bwahnya di dieksekusi lagi, itu tidak akan berpengaruh,hal-hal seperti itu digunakan untuk seorang administrator cache server untuk melakukan pengontrolan agar tidak akan terlalu detail melakukan pengaturan jika baris atas dan bawah sama-sama saling mempengaruhi.

II.1.2 Object Cache

Pengaturan object sebuah cache server merupakan salah satu hal yang perlu diperhatikan disini. Telah diketahui sebelumnya bahwa object disimpan pada dua level cache_dir yang besar levelnya didefinisikan pada konfigurasi utama squid. Object itu sendiri berisikan content URL yang diminta klien dan disimpan dalam bentuk file binary, masing-masing object mempunyai metadata yang sebagian dari isinya disimpan didalam memori untuk memudahkan melacak dimana letak object dan apa isi dari object tersebut. Banyak sifat-sifat yang perlu diamati untuk optimasi squid ini, antara lain :

Umur object
Umur obect merupakan sebuah ukuran waktu yang dihabiskan sebuah object untuk tinggal didalam hardisk cache. Umur object dibatasi oleh beberapa factor, yaitu :

metode penghapusan object
object dihapus bisa melalui beberap algoritma penghapusan :
a. Logistic Regression :
yaitu menghapus object dengan kemungkinan logistic regression terkecil. Kemungkinan logistic regression bisa diartikan sebagai besarnya kemungkinan object tersebut akan diakses diwaktu yang akan dating.

b. Least Recently Used :
yaitu metode penghapusan object berdasarkan waktu kapan object tersebut terakhir diakses. Semakin lama (besar) waktunya, kemungkin dihapus juga akan semakin besar.

c. Least Frequently Used :
Metode penghapusan object yang paling jarang diakses.

d. First In First Out :
Penghapusan yang merunut metode berdasarkan waktu masuk ke dalam cache_dir, yaitu object yang paling awal masuk, berarti itu adalah object yang akan dihapus terlebih dahulu.

e. Random :
Menghapus object secara random.

Kapasitas hardisk cache
Semakin besar kapasitas cache, berarti semakin lama umur object tersebut bisa disimpan, jika pemakaian hardisk sudah mendekati batas atas (cache_swap_high) penghapusan akan semakin sering dilakukan.

II.2 KONFIGURASI DAN IMPLEMENTASI

Diasumsikan instalasi telah selesai dan tidak terdapat kesalahan, langkah berikutnya adalah mengatur konfigurasi squid, bukalah file /etc/squid.conf dengan editor teks favorit anda (vi, pico, dll), file ini merupakan file konfigurasi squid.

Carilah baris yang berisi perintah berikut :

# http_port 3128

Perintah ini akan membuat proxy HTTP menggunakan port 3128 yang merupakan port default untuk squid. Aktifkan dengan menghilangkan tanda #. Anda dapat membuat nilai port HTTP proxy ini sesuai dengan selera anda, tetapi jangan arahkan ke port 80, terutama jika anda juga menjalankan Web Server, karena Web Server juga memakai port tersebut.
#cache_mem 8 MB

Perintah tersebut digunakan untuk membatasi banyaknya memori komputer yang akan digunakan squid untuk menyimpan sementara obyek-obyek yang di cache. Batasan ini tidak ketat, suatu waktu jika squid membutuhkan memori lebih, dia dapat menggandakan memori yang dipakainya. Aktifkan baris ini dan ubahlah ukuran cache ini menjadi sebanyak yang anda inginkan, yang harus anda pertimbangkan adalah banyaknya memori yang dimiliki oleh komputer anda.
Kemudian:
# cache_access_log /var/log/squid/access.log
# cache_log /var/log/squid/cache.log
# cache_store_log /var/log/squid/store.log
Berikutnya, carilah baris yang berisi perintah berikut :

# LOGFILE PATHNAMES & CACHE DIRECTORIES
# ————————————-
Setting berikut ini digunakan untuk mendefinisikan alokasi penyimpanan web cache kita. Setting yang pertama adalah :

#cache_dir /var/squid/cache 100 16 256

Nilai yang ada diatas adalah nilai default squid, jika anda ingin merubahnya maka aktifkan perintah ini.

Parameter pertama /var/squid/cache adalah nama direktori tempat kita akan menyimpan file-file cache. Anda dapat mengubah parameter ini ke direktori manapun, tetapi yang harus diperhatikan squid tidak akan menciptakan direktori baru, jadi bila parameter ini akan diubah, pastikan direktori tujuannya sudah ada dan squid mempunyai hak akses untukmenulis pada direktori tersebut.

Parameter selanjutnya, yang bernilai 100 adalah banyaknya ruang pada hard disk (dengan satuan Mega Byte) yang akan digunakan squid untuk menyimpan file-file cache nya. Ubahlah sesuai dengan kebutuhan anda.

Parameter selanjutnya, disebut dengan Level-1, adalah banyaknya direktori yang akan dibuat oleh squid dalam direktori cache nya. Sebaiknya penulis menyarankan untuk tidak mengubah parameter ini.

Parameter terakhir, yang disebut dengan Level-2, adalah banyaknya direktori level kedua, yaitu direktori yang dibuat di dalam tiap direktori level pertama diatas.

Langkah berikutnya, carilah perintah berikut :

# ACCESS CONTROLS
# ——————–
Baris perintah berikut ini digunakan untuk mendefinisikan daftar hak akses dalam jaringan anda, squid menyebutnya dengan Access Control Lists (ACL). Anda dapat mendefinisikan beberapa ACL disini. Dalam bagian access controls ini, carilah baris perintah berikut :

#Recommended minimum configuration:
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp

acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
dibawah acl localhost src 127.0.0.1/255.255.255.255, tambahkan network yang akan di allowed
acl jar1 src 172.17.3.0/255.255.255.0
setelah itu supaya net1 dan net2 td bisa mengakses squid maka tambahkan http_access allow
cari baris :
# And finally deny all other access to this proxy
http_access allow localhost
http_access deny all
diantara http_access allow localhost dan http_access deny all tambahkan :
http_access allow jar1
baris ini bisa diletakkan di atas http_access allow localhost atau dibawah http_access allow localhost yang penting diatas http_access deny all
setelah itu simpan. lalu start squid nya
[root@b301 ~]#squid –z ( hanya sekali pada saat pertama kali seting )
[root@b301 ~]#/etc/init.d/squid start ( setiap kali akan menjalankan squid )
setelah itu gunakan testing squidnya menggunakan browser sambil di lihat acess log nya
[root@b301 ~]#tail -f /home/cache/squid/acces

sumber : MALING (Malang Linux User Groups)

site : http://malang.linux.or.id

October 27, 2007

Tutorial IPTables

Filed under: Linux Server — yoner @ 8:07 am

Source : Maling (Malang Linux User Group)

written : eko

Sebelum mulai, diharapkan  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.

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 :

  1. NAT : Secara umum digunakan untuk melakukan Network Address Translation. NAT adalah penggantian field alamat asal atau alamat tujuan dari sebuah paket.
  2. MANGLE : Digunakan untuk melakukan penghalusan (mangle) paket, seperti TTL, TOS dan MARK.
  3. 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  –append

Perintah ini menambahkan aturan pada akhir chain. Aturan akan ditambahkan di akhir baris pada chain yang bersangkutan, sehingga akan dieksekusi terakhir

-D           –delete

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           –replace

Penggunaannya sama seperti –delete, tetapi command ini menggantinya dengan entry yang baru.

-I           –insert

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           –list

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           –flush

Perintah ini mengosongkan aturan pada sebuah chain. Apabila chain tidak disebutkan, maka semua chain akan di-flush.

-N           –new-chain

Perintah tersebut akan membuat chain baru.

-X           –delete-chain

Perintah ini akan menghapus chain yang disebutkan. Agar perintah di atas berhasil, tidak boleh ada aturan lain yang mengacu kepada chain tersebut.

-P           –policy

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           –rename-chain

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           –verbose
–list           –append  –insert  –delete –replace

Memberikan output yang lebih detail, utamanya digunakan dengan –list. Jika digunakan dengan
–list, akan menampilkam K (x1.000),
M (1.000.000) dan G (1.000.000.000).

-x           –exact
–list

Memberikan output yang lebih tepat.

-n           –numeric
–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           –protocol

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           –src  –source

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           –dst –destination

Digunakan untuk mecocokkan paket berdasarkan alamat tujuan. Penggunaannya sama dengan match –src

-i           –in-interface

Match ini berguna untuk mencocokkan paket berdasarkan interface di mana paket datang. Match ini hanya berlaku pada chain INPUT, FORWARD dan PREROUTING

-o           –out-interface

Berfungsi untuk mencocokkan paket berdasarkan interface di mana paket keluar. Penggunannya sama dengan
–in-interface. Berlaku untuk chain OUTPUT, FORWARD dan POSTROUTING

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           –source-port

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  –jump 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  –jump 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  –jump 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
  1. http://www.netfilter.org/
  2. Manual page iptables
  3. Beberapa sumber yang lain, tapi saya lupa )

Internet down

Filed under: Uncategorized — yoner @ 6:07 am

Bener-bener kejadian naas nich, pas lagi banyak user di warnet tiba-tiba koneksi internet putus :( . Jadi kecewa deh pelanggan-pelangganku.

Akhirnya gwe coba xcek status dengan hasil sbb :

  • Ping to gateway OK
  • Ping to modem OK
  • Ping to DNS OK
  • Ping to salah satu situs OK juga

Waduh jadi bingung nich aya naon, ahirnya gwe coba ssh ke kompi gateway sambil chating dengan bro kave.

cek punya cek ternyata pas # df  -h —> waduh harddisk kompi gateway sudah full 100% jadi squidnya gak running.

Ya udah deh coba cari file-file  yg bisa di delete buat temporary solution saja. Nanti rencananya sih mau install ulang kompi gateway dgn harddisk yang kapasitasnya lebih besar.

Dari kejadian ini gwe coba ambil hikmahnya aja :)

Gundah gulana

Filed under: Apaan ya ? — yoner @ 4:19 am

Beberapa hari ini perasaan gwe gak enak banget bawaanya BT aja gak tau kayaknya kepala ini diteken beban yg berat banget

Jadinya begini deh serba gak tenang dan gak fokus pas ngelakuin sesuatu. Ya Allah please help me out of this situation. I think i have enough for that.

Tetapi gwe coba flashback ke belakang setelah merenungi beberarpa lama ternyata yg buat keadaan ini ternyata ulah gwe juga. Gwe yg semakin kosong rohani dan semakin jauh dari Tuhan.

but after i read this article :

Abu Yazid Al Busthami, pelopor sufi, pada suatu hari pernah didatangi
seorang lelaki yang wajahnya kusam dan keningnya selalu berkerut. Dengan
murung lelaki itu mengadu,”Tuan Guru, sepanjang hidup saya, rasanya tak
pernah lepas saya beribadah kepada Allah. Orang lain sudah lelap, saya masih
bermunajat. Isteri saya belum bangun, saya sudah mengaji. Saya juga bukan
pemalas yang enggan mencari rezeki ,

Tetapi mengapa saya selalu malang dan kehidupan saya penuh kesulitan?”Sang
Guru menjawab sederhana, “Perbaiki penampilanmu dan ubahlah roman mukamu.
Kau tahu, Rasulullah adalah penduduk dunia yang miskin namun wajahnya tak
pernah keruh dan selalu ceria. Sebab menurut Rasulullah, salah satu tanda
penghuni neraka ialah muka masam yang membuat orang curiga kepadanya.”

Lelaki itu tertunduk. Ia pun berjanji akan memperbaiki penampilannya.
Wajahnya senantiasa berseri. Setiap kesedihan diterima dengan sabar, tanpa
mengeluh. Alhamdullilah sesudah itu ia tak pernah datang lagi untuk berkeluh
kesah.Sebagaimana kata Rasulullah,” Sesungguhnya Allah itu indah dan
mencintai keindahan.”Namun demikian tidak berarti Islam mengajarkan
kemewahan.

Islam justeru menganjurkan kesederhanaan. Baik dalam berpakaian, merias
tubuh maupun dalam sikap hidup sehari-hari. Nabi sendiri jubahnya seringkali
sudah luntur warnanya tapi senantiasa bersih. Umar bin Khattab walaupun
jawatannya kalifah, pakaiannya sangat sederhana dan bertambal-tambal. Tetapi
keserasian selalu dijaga. Sikapnya ramah, wajahnya senantiasa mengulum
senyum bersahabat. Roman mukanya berseri.Tak heran jika Imam Hasan Al Basri
berpendapat, awal keberhasilan suatu pekerjaan adalah roman muka yang ramah
dan penuh senyum. Bahkan Rasulullah menegaskan, senyum adalah sedekah paling
murah tetapi paling besar pahalanya. Demikian pula seorang suami atau
seorang isteri. Alangkah celakanya rumah tangga jika suami isteri selalu
berwajah tegang. Sebab tak ada persoalan yang diselesaikan dengan mudah
melalui kekeruhan dan ketegangan. Dalam hati yang tenang, pikiran yang
dingin dan wajah cerah, Insya Allah, apapun persoalannya nescaya dapat
diatasi. Inilah yang dinamakan keluarga sakinah, yang didalamnya penuh
dengan cinta dan kasih sayang.”Anda ingin beramal soleh…?

I finally realize the little think can’t make a big different

October 24, 2007

Konfigurasi Printer

Filed under: Linux Dasar — yoner @ 5:31 pm

Written by : sirius black

Konfigurasi printer yang paling umum di Linux adalah menggunakan CUPS. Untuk itu pastikan CUPS telah diinstall dan dijalankan.

Jika CUPS belum diinstall, Anda harus menginstall paket CUPS ini. Yang harus diinstall, adalah CUPS dan CUPS-drivers. Untuk mengetahui apakah CUPS ini sudah diinstall atau belum, Anda dapat mengetikan perintah # rpm -qa | grep cups.

Untuk memeriksa apakah CUPS telah dijalankan atau tidak, gunakan perintah service cups status. Jika ternyata belum dijalankan, gunakan perintah berikut untuk menjalankannya service cups start.

Ada 2 macam cara untuk melakukan konfigurasi printer, yaitu melalui Control Center (di Mandriva di namakan PrinterDrake) dan melalui Browser.

Konfigurasi printer melalui control center, sangat mudah sekali, seperti kita melakukan installasi printer di Windows, dan cara ini memang yang paling umum. Tetapi dalam pembahasan kali ini, Kita akan melakukan installasi printer melalui browser.

Untuk memulai konfigurasi, jalankan browser Anda dan ketikan localhost:631 pada alamat browser Anda. Bila muncul menu login, isikan username root dan passwordnya.

Berikut langkah-langkah installasi printernya:

  1. Pilih Add Printer
  2. Isikan Name, Location dan Description. Pengisian bebas, tetapi diusahakan pengisiannya sejelas mungkin agar orang lain yang membacanya dapat mengetahui tipe printer, lokasi printer tersebut.
  3. Pilih jenis koneksi dengan printer (paralel port, USB, serial port atau printer windows).
  4. Pilih merk printer
  5. Pilih tipe printer

Setelah langka-langkah tersebut dilakukan, maka installasi printer telah selesai dilakukan.

Saya memang tidak menjelaskan secara terperinci untuk masalah installasi printer ini, karena hal itu dapat dengan mudah dilakukan via GUI. Di sini, Saya akan lebih banyak menjelaskan tentang konfigurasi dari CUPS itu sendiri.

File konfigurasi printer berada di

 

Quote:

/etc/cups/printer.conf

Sedangkan file konfigurasi CUPS berada di

 

Quote:

/etc/cups/cupsd.conf

Bila printer Anda tidak berada dalam database driver CUPS, Anda dapat men-download versi terbaru dari CUPS di alamat http://cups.org.

Untuk printer HP (Hewlet Packard) yag mengalmi masalah berupa tidak bisa nge-print, dapat menggunakan driver foomatic.

Untuk melihat file log dari CUPS (bisa CUPS dirasakan ada masalah), ketikan perintah berikut:

 

Quote:

# tail -f /var/log/cups/error_log

Perlu diketahui bahwa perintah tersebut bersifat realtime, artinya proses penampilan log akan terus diupdate. Untuk kembali ke sheel, tekan Ctrl+C.

Bila printer Anda mengalami masalah dengan sharing ke Windows (tidak bisa nge-print), maka Anda harus:

  • Cek file /etc/cups/mime.convs
    Perhatikan di baris bawah, dan pastikan baris application/octet-stream tidak di comment.
  • Cek juga file /etc/cups/mime.types
    Perhatikan juga untuk baris yang sama. Dan pastikan juga diberikan comment.

Masalah ini yang harus Anda lihat terlebih dahulu, karena error inilah yang menyebabkan kesalahn terjadi. Setelah file konfigurasi di ganti, dan jalankan ulang service-nya dengan perintah service cups restart

 


Harddisk dan Mounting

Filed under: Linux Dasar — yoner @ 5:30 pm

Written by : Sirius black

source : forum.chip.co.id

Kita tahu bahwa saat ini, berdasarkan interface-nya HDD dapat dibagi menjadi 2 macam, yaitu yang menggunakan IDE dan menggunakan SATA.

Di Linux untuk pembagian HDD sebenarnya gampang. Untuk lebih mempermudah, Kita akan mulai membahas dari HDD yang berinterface IDE terlebih dahulu.

Umumnya, IDE terbagi menjadi 2, yaitu Primary dan Secondary. Nah, dari masing-masing IDE tersebut, dibagi lagi menjadi 2, yaitu master dan slave. Jadi urutannya akan menjadi seperti ini:

  1. Primary Master (hda)
  2. Primary Slave (hdb)
  3. Secondary Master (hdc)
  4. Secondary Slave (hdb)

Terlihat kalau urutannya di Linux dilambangkan dengan huruf a, b, c dan d.

Tetapi, perlu diingat juga, bahwa masing-masing HDD dapat juga dipartisi lebih dari 1. Nah, partisi sendiri bisa terdiri dari Primary Partition dan Extended Partition, yang terdiri dari beberapa logikal partisi.

Di Linux, setiap partisi dilambangkan dengan angka. Contoh, hda1 artinya Primary Partition pertama pada Primary Master HDD. Untuk lebih jelasnya, perhatikan penjelasan di bawah ini:

  • Primary Master
    • Primary Partition #1 (hda1)
    • Primary Partition #2 (hda2)
    • Extended Partition (hda5)
      • Logical Partition #1 (hda6)
      • Logical Partition #2 (hda7)
  • Secondary Slave
    • Primary Parttion #1 / CD-ROM (hdd1)

Anda lihat contoh di atas, ternyata untuk extended partition dimulai dari 5, dan logical partition juga dimulai dari 6. Dari mana angka tersebut? Kita tahu bahwa primary partition itu berjumlah maksimal 4 buah. Nah, di Linux, hda1 sampai dengan hda4 itu melambangkan primary partition di Primary Master HDD.

Untuk HDD yang bertipe SCSI dan USB-HDD ataupun USB Flash Disk, maka kode mountingnya adalah sda, sdb, dsb. Jadi perbedaannya hanyalah di huruf pertama saja yang diawali dengan huruf s, dimana untuk IDE diawali dengan huruf h.

Untuk membaca HDD, USB Flash Disk, CD-ROM, dsb (Selanjutnya disebut sebagai storage media), harus di lakukan mounting terlebih dahulu. Untuk distro-distro Linux terbaru, mounting storage media tersebut akan dilakukan secara otomatis. Tetapi bila ternyata belum dilakukan secara otomatis atau misalnya kita ingin melakukan mounting manual, Kita dapat menggunakan perintah mount.

Contoh:

  • Melakukan mounting terhadap HDD yang terletak di Primary Slave, pada partisi ke-2 yang mempunyai file system FAT32, perintahnya:
    mount -t vfat /dev/hdb2 /mnt/hdd2Perintah di atas akan melakukan mounting HDD tersebut ke direktori /mnt/hdd2, karena itu direktori hdd2 harus sudah ada sebelum melakukan mounting.
  • Melakukan mounting terhadap CD-ROM yang terletak di Secondary Slave, perintahnya:
    mount /dev/hdd /mnt/cdrom atau bisa juga dengan perintah berikut mount /dev/cdrom /mnt/cdrom.
  • Melakukan mounting terhadap USB Flash Disk, perintahnya:
    mount /dev/sda1 /mnt/usbfdSeringkali, USB Flash Disk tidak selalu di sda1. Untuk mengetahui USB Flash disk berada di mana, saat memasang USB Flash Disk, ketikan perintah berikut dmesg | tail . Nanti dari perintah tersebut akan muncul USB Flash disk tersebut berada di sda1, sdb1 atau yang lainnya.
  • Mounting ke jaringan linux yang beralamat IP 192.168.0.4 pada direktori /home/dokumen, perintahnya:
    mount -t nfs 192.168.0.4:/home/dokumen /mnt/nfs
  • Mounting ke jaringan windows yang beralamat IP 192.168.0.2 pada direktori sharing /home/dokumen, perintahnya:
    mount -t smbfs //192.168.0.2/home/dokumen /mnt/samba
    bila membutuhkan user name dan password, maka perintahnya menjadi:
    mount -t smbfs -o username=NamaUser,password=rahasia //192.168.0.2/home/dokumen /mnt/sambaPerintah di atas, hanya bisa dilakukan bila samba client telah diaktifkan.

    Bagi yang menggunakan Windows 2003 Server, biasanya tidak bisa menggunakan smbfs, karena ada service dari Windows 2003 Server yang menghalangi. Untuk itu, coba gunakan file type cifs, perintahnya menjadi:
    mount -t cifs -o username=NamaUser,password=rahasia //192.168.0.2/home/dokumen /mnt/samba

    Perhatikan, karena menggunakan cifs, maka pastikan juga kalau cifs telah terinstall.

Terkadang setelah melakukan mounting, kita juga perlu untuk melakukan unmounting. Kegunaan dari perintah ini adalah untuk melepaskan file-file yang sedang digunakan, sehingga file tersebut tidak rusak. Contoh paling nyata adalah USB Flash disk, jika filenya dibuka dan USB Flash disk dicabut, maka ada kemungkinan file tersebut akan rusak. Jadi untuk amannya adalah menggunakan unmounting. Perintah unmounting adalah:
umount MountPoint.

Contoh berdasarkan contoh di atas, maka unmounting-nya adalah

  • umount /mnt/hdd2
  • umount /mnt/cdrom
  • umount /mnt/usbfd

Menggunakan VI Teks Editor

Filed under: Linux Dasar — yoner @ 5:28 pm

Written by : sirius black

Ada banyak teks editor yang tersedia di Linux, mulai dari yang berbasis CLI hingga yang berbasis GUI. Beberapa teks editor tersebut adalah

  1. vi
  2. emacs
  3. joe (bagi Anda yang ingin bernostalgia dengan wordstar/ws, joe ini mirip sekali dengannya)
  4. pico
  5. dll

Vi teks editor ini terdiri dari 2 macam mode, yaitu editing dan command. Saat berada dalam mode editing, Kita bisa mengedit file yang kita buat, seperti menambah, menghapus atau mengedit teks.

Saat berada dalam mode command, artinya kita bisa memberikan perintah-perintah kepada vi. Perintah-perintah yang dimaksud itu seperti perintah keluar, simpan, copy, delete, dsb. Command ini juga bisa dalam bentuk visual. Saat berada dalam mode visual, kita bisa melakukan blok terhadap baris-baris tertentu dan melakukan copy terhadap baris tersebut dan sebagainya.

Untuk masuk ke dalam mode editing, kita dapat menekan tombol i. Untuk berpindah mode, dari mode editing ke mode command, Kita dapat menekan tombol ESC.

  • Membuat dan membuka file
    Untuk membuat atau membuka file, dapat dilakukan dengan perintah:
    $ vi nama_file
    Jika nama file yang diberikan adalah nama file baru (filenya belum ada), maka artinya kita akan membuat file baru. Tetapi jika nama filenya sudah ada, artinya kita akan membuka file tersebut.Berikut beberapa perintah lainnya dalam membuka file:

    • $ vi +n nama_file
      Untuk membuka file langsung pada nomor baris n
    • $ vi + nama_file
      Untuk membuka file langsung pada baris terakhir
    • $ vi +/kata nama_file
      Untuk membuka file langsung pada kata pertama yang ditemukan
    • $ vi -R nama_file
      Membuka file dalam modus baca, dan tidak untuk diedit. Perintahnya juga bisa dilakukan dengan perintah $ view nama_file
  • Keluar dan menyimpan
    • Untuk keluar dari vi, tekan tombol ESC kemudian dilanjutkan dengan menekan tombol :q dan diakhiri dengan ENTER
    • Bila file telah sempat diedit, dan Kita ingin keluar tanpa menyimpannya, maka yang perlu Anda lakukan adalah tekan ESC, dilanjutkan dengan tombol :q! dan diakhiri dengan ENTER
    • Untuk menyimpan dan keluar dari vi, tekan tombol ESC dan dilanjutkan dengan menekan tombol :wq
    • Untuk menyimpan tanpa keluar, tekan tombol ESC dan dilanjutkan dengan menekan tombol :x
  • Perintah-perintah pengeditan
    1. Menggerakkan kursor
      • 0 = Pindah ke awal baris
      • $ = Pindah ke akhir baris
      • w = Pindah ke kata selanjutnya
      • b = Pindah kembali ke kata sebelumnya
      • a = Untuk menyisipkan karakter
      • c = untuk memotong kata atau baris
      • p = Untuk menyalin kata atau kalimat yang terpotong (paste)
      • yy = Untuk menyalin 1 baris.
      • 2yy = Untuk menyalin 2 baris.
      • dd = Untuk menghapus baris.
      • 2dd = Untuk menghapus 2 baris

      Untuk melakukan copy+paste secara visual, dapat dilakukan dengan cara menekan tombol v, blok baris yang akan dicopy, kemudian tekan y. Letakkan kursor ke tempat tujuan dan tekan p.

    2. Mengedit teks
      • cw = Menghapus satu kata di depan kursor
      • c2b = menghapus 2 kata sebelumnya
      • c$ = menghapus satu baris di depan kursor
      • c0 = menghapus satu kata di belakang kursor
      • ~ = mengubah huruf kecil menjadi huruf besar
      • u = Undo, melakukan pembatalan terhadap editing terakhir.
      • A = menyisipkan karakter di akhir baris
      • I = menyisipkan karakter di awal baris
      • o = membuka baris kosong di bawah kursor
      • O = membuka baris kosong di atas kursor
      • s = menghapus karakter pada kursor dan menukar teks
      • S = menghapus baris dan menukar teks
      • R = menempati karakter, kata, kalimat ke dalam baris yang telah dibuat.
      • J = menggabungkan dua baris.
    3. Menukar teks
      Format umum perintah menukar teks ini adalah:
      :<jangkauan>s/<kata yang akan diganti>/<kata pengganti>/optionOption yang dapat diberikan adalah
      g = mencari kata secara global
      i = mengabaikan huruf besar/huruf kecil

      Contoh:
      Kita akan mengganti kata “baris” menjadi kata “line”, maka perintahnya:

       

      Quote:

      :1,$s/baris/line/g
    4. Mencari kata
      • /cari = mencari kata pertama di depan kursor yang sama dengan cari
      • ?cari = mencari kata pertama di belakang yang sama dengan cari
      • n = untuk mencari kata cari berikutnya tetapi ke arah sebelumnya
      • N = untuk mencari kata cari berikutnya tetapi ke arah setelahnya.

Contoh kasus User Permission

Filed under: Linux Dasar — yoner @ 5:26 pm

Written by : sirius black

Untuk lebih jelasnya, Kita akan langsung masuk ke contoh kasus saja.

  1. Kita akan membuat 1 group dengan nama IT Dan juga membuatkan user dengan nama-nama: Benny, Budi, dan Iwan. Dan ingat jangan lupa untuk memberikan password. Perintahnya:
    1. # groupadd it
    2. # useradd benny
    3. # passwd benny
    4. # useradd budi
    5. # passwd budi
    6. # useradd iwan
    7. # passwd iwan
  2. Kecuali Iwan, user-user tersebut adalah anggota dari group IT. Perintahnya:
    1. # usermod -G it benny
    2. # usermod -G it budi
  3. Selanjutnya adalah membuatkan direktori untuk group dimana setiap anggota group it dapat membaca, menulis dan mengeksekusi direktori tersebut, tetapi tidak untuk user atau group lainnya. Dan setiap file atau direktori yang berada di dalamnya harus mempunyai hak akses yang sama dengan direktori tersebut, yaitu dapat membaca, menulis dan mengeksekusi direktori tersebut.
    Perintahnya:

    • # mkdir /home/it
    • # chgrp it /home/it
    • # chmod g+rwxs, o-rwx /home/it (atau ditulis # chmod 2770 /home/it)
      Perhatikan ternyata untuk permissionnya ada tambahan hurus ’s’ dan dalam symbol angka menjadi 4 digit. Huruf ’s’ (atau angka 4 di symbol angka) berarti special permission. Efek dari special permission ini adalah, bila direktori tersebut sudah kita set groupnya menjadi it, maka setiap file atau direktori yang berada di dalamnya yang dibuat setelah permission dibuat, maka groupnya pun akan mengikuti direktori utamanya.Jika menggunakan symbol angka, maka special permission ini diletakan pada digit pertama. Berarti digit kedua adalah untuk permission owner, digit ketiga untuk permission group dan digit keempat untuk permission others. Bila tidak ada special permission, maka Kita dapat menuliskan dalam format 3 digit. Untuk symbol angka, berikut adalah artinya:

      • 4 = u+s
      • 2 = g+s
      • 1 = sticky bit (artinya yang bisa menghapusnya hanya owner, untuk symbol huruf ditandai dengan huruf ‘t’).
    • Sekarang cobalah untuk login dengan user benny, dan cobalah untuk membuat file apa saja di direktori /home/it.
    • Lalu cobalah login dengan user budi, editlah file tersebut. Ternyata user budi dapat mengedit file tersebut. Hal ini karena group file tersebut adalah it, dimana akses group tersebut adalah read, write dan execute.
    • Sekarang coba login dengan user iwan, dan coba edit file yang dibuat oleh user benny tadi. Ternyata tidak bisa. Bahkan user iwan tidak bisa masuk ke direktori /home/it sama sekali. Hal ini terjadi, karena user iwan bukan merupakan anggota group it.

Memberikan permission kepada file dan direktori

Filed under: Linux Dasar — yoner @ 5:26 pm

Written by : sirius black

Kita sudah mengetahui permission apa saja yang ada di file dan direktori di Linux. Tetapi Kita belum mengetahui bagaimana cara memberikan permission kepada file atau direktori tersebut. Di Linux, untuk memberikan permission dapat dilakukan dengan perintah chmod permission FileAtauDirektori.

Option untuk perintah chmod ini dapat dilakukan dengan 2 cara, yaitu menggunakan symbol huruf dan menggunakan symbol angka. Untuk menggunakan symbol huruf, maka huruf yang digunakan terdiri dari:

  • u = owner
  • g = group
  • o = others
  • a = all
  • + = menambahkan permission
  • - = mengurangi permission
  • r = permission untuk membaca (read)
  • w = permission untuk menulis (write)
  • x = permission untuk menjalankan atau masuk ke direktori (execute)

Untuk memberikan akses tulis kepada group, maka option yang harus kita berikan adalah g+w.
Untuk menghilangkan akses baca kepada user atau group lainnya, maka option yang harus kita berikan adalah o-r.

Selain dengan symbol huruf, Kita juga dapat menggunakan symbol angka. Symbol angka ini harus diberikan sekaligus untuk owner, group dan others. Jadi, kalau di symbol huruf kita bisa memberikan permission untuk owner, group atau others saja, maka di symbol angka ini harus diberikan sekaligus. Karena itu, symbol angka ini selalu berisi 3 digit, dimana digit pertama akan berisi mengenai permission owner, digit kedua untuk permission group dan digit ketiga untuk permission others. Symbol angkanya adalah:

  • 4 = untuk permission baca (read)
  • 2 = untuk permission tulis (write)
  • 1 = untuk permission menjalankan (execute)

Jadi, jika kita ingin memberikan permission seperti ini kepada user

  • drw-r-xr—maka perintahnya bila menggunakan symbol huruf adalah:

     

    Quote:

    $ chmod u+rw,u-x,g+r,g-wx,o+r,o-wx file

    bila menggunakan symbol angka, maka perintahnya:

     

    Quote:

    $ chmod 654 file

    Angka 6 berarti akses baca dan tulis, karena akses baca adalah 4 dan tulis adalah 2, maka jumlahnya adalah 6. Demikian juga untuk permission group, angka 5 berasal dari permission baca yang bernilai 4 dan permission menjalankan yang bernilai 1. Karena user atau group lainnya hanya boleh membaca saja, maka diberikan nilai 4.

  • Contoh lain lagi, misalkan permission awalnya adalah seperti ini drwxrw—- dan kita ingin menggantinya menjadi seperti ini drw-r-x—, maka perintahnya:

     

    Quote:

    $ chmod u-x, g-w,g+x file

    atau

     

    Quote:

    $ chmod 654 file

Untuk mengganti pemilik dari suatu file atau direktori, gunakan perintah berikut: chown PemilikBaru NamaFileAtauDirektori

Untuk mengganti group dari suatu file atau direktori, gunakan perintah beikut: chgrp GroupBaru NamaFileAtauDirektori

Older Posts »

Blog at WordPress.com.