Tampilkan postingan dengan label Linux. Tampilkan semua postingan
Tampilkan postingan dengan label Linux. Tampilkan semua postingan

Kamis, 07 Januari 2010

Penjadwalan tugas dengan cron dan at


Di Linux, kita dapat menentukan kapan suatu tugas atau program di-eksekusi. Pengaturan waktu atau penjadwalan ini dapat berlangsung secara berulang maupun sesaat (hanya sekali eksekusi) di waktu yang akan datang. Contoh jadwal yang berulang, kita memerintahkan komputer untuk mengambil email setiap 30 menit, setiap hari. Contoh penjadwalan sesaat, komputer akan mengambil email besok siang pada jam 13.00. Bagaimana caranya? Dalam artikel ini, saya akan menjelaskan cara penggunaan cron untuk mengatur jadwal berulang dan at untuk jadwal sesaat.

cron

cron dapat diaktifkan agar jalan saat Linux dinyalakan (boot) melalui ntsysv atau manual melalui terminal. Contoh cara mengaktifkan pada RedHat:

# /etc/rc.d/init.d/crond start

cron merupakan program daemon yang setiap menit men-cek apakah ada perintah yang mesti dijalankan. Daftar atau tabel cron (crontab), yaitu file yang berisi jadwal perintah, ada di direktori spool (misalnya /var/spool/cron/). Nama file itu sama dengan nama user pemilik atau pembuat jadwal. Untuk membuat atau mengedit crontab, user dapat menggunakan program yang juga bernama crontab. Secara default, crontab akan menjalankan editor yang dijadikan standar, biasanya vi. Sebagai root, kita dapat mengedit langsung file crontab yang ada di direktori spool cron (/var/spool/cron/nama_user) atau menggunakan program bantu Linuxconf (khusus RedHat dan turunannya).

Ada 3 option dalam menjalankan crontab sebagai user biasa:
$ crontab -e (artinya mengedit atau membuat baru tabel cron atau daftar tugas).
$ crontab -l (artinya menampilkan daftar tugas yang telah ada).
$ crontab -r (artinya menghapus daftar tugas yang ada).
Sebagai root, kita dapat mengedit, melihat atau menghapus crontab user dengan tambahan option -u, misalnya:
# crontab -eu rus (artinya mengedit crontab yang dimilki user rus).

Format crontab
Sebuah crontab merupakan daftar program yang akan dijalankan secara berulang melalui terminal atau command line, lengkap dengan waktu kapan program tersebut dijalankan. Setiap program dijadwalkan dalam satu baris dengan makna sebagai berikut:
menit jam tanggal bulan hari
Contoh crontab di bawah ini akan menjalankan fetchmail setiap menit (*), setiap jam (*), setiap hari/tanggal (*), setiap bulan (*) dan setiap hari dalam seminggu (*).
* * * * * fetchmail
Contoh berikut ini, fetchmail hanya dijalankan setiap (interval) 5 menit (*/5), antara jam 8 pagi hingga jam 5 sore (8-17), setiap hari Senin hingga Jumat (1-5).
*/5 8-17 * * 1-5 fetchmail
Nama (case sensitive) juga dapat digunakan untuk crontab, misalnya sun-sat (artinya Minggu hingga Jumat), jan-dec (Januari – Desember).

Izin Menggunakan crontab
Ada 2 file yang berfungsi mengatur pemberian izin penggunaan crontab, yaitu /etc/cron.allow dan /etc/cron.deny. Yang dicek pertama adalah cron.allow, yaitu daftar user yang diizinkan menggunakan crontab. User selain yang terdaftar di cron.allow tidak boleh menggunakan crontab. Bila cron.allow tidak ada, cron.deny akan dibaca. User selain yang terdaftar di cron.deny diizinkan menggunakan crontab. Jika kedua file tidak ada, semua user dapat menggunakan crontab.

at

Perintah (command) at digunakan untuk membuat jadwal eksekusi sebuah atau lebih program di waktu yang akan datang. Ada 4 perintah yang terkait dengan at, yaitu:
1. at, artinya jalankan perintah atau program pada watu yang ditentukan.
2. atq, artinya list atau tampilkan daftar perintah yang akan dijalankan.
3. atrm, artinya batalkan perintah yang telah dijadwal.
4. batch, artinya jalankan perintah jika tingkat beban sistem memungkinkan.
Sebelum menjalankan at, daemon at (atd) harus dijalankan, misalnya di RedHat dengan perintah sebagai berikut:
# /etc/rc.d/init.d/atd start
Contoh penulisan peintah at:
# at now + 2 minutes
at> fetchmail
at>
Catatan: merupakan hasil penekanan tombol atau ^D. Gambar-1 memperlihatkan tampilan ketika menjalankan perintah at tersebut, yang maksudnya adalah program fetchmail akan dijalankan 2 menit setelah menajalankan at ini.
Bentuk umum perintah at adalah:
at [-V] [-q ] [-f ] [-mld]

Spesifikasi Waktu
Selain now (sekarang), waktu juga dapat dinyatakan dengan today (hari ini), tomorrow (hari esok), 4am (jam 4 pagi), 4pm (jam 4 sore), dll. Penulisan waktu ini dapat secara mutlak atau relatif. Contoh, jika saat ini hari Senin, tanggal 16 April 2001, dan kita ingin menjalankan sebuah program pada pukul 4 sore pada hari Kamis atau 3 hari kemudian, ada 2 cara menuliskan perintah:
at 4pm + 3 days
atau
at 4pm April 19

Izin Menjalankan at
Seperti cron, at juga dikontrol oleh 2 file, /etc/at.deny dan /etc/at.allow. /etc/at.allow akan dicek lebih dulu. Jika ada, hanya user yang tercatat di at.allow yang diizinkan menggunakan at. Jika /etc/at.allow tidak ada, /etc/at.deny akan dicek. Semua user yang tidak tercantum di dalam at.deny dapat menjalankan at. Kebalikan dari cron, jika kedua file tidak ada, hanya superuser (root) yang diizinkan menggunakan at.

Tutorial Iptables dasar 2


Pada tulisan terdahulu kita telah membahas tentang membuat firewall sederhana yaitu memblok semua koneksi masuk dan mengizinkan koneksi keluar. Sekarang kita akan membahas cara aman membuka beberapa hole di firewall kita untuk memungkinkan beberapa koneksi masuk. Untuk melakukan ini terdapat 4 parameter utama dalam penyaringan yaitu :

- Interface – eth0, eth1, ppp0 dll
- IP Address – Single IP Address atau range IP Address
- Protocol – tcp, udp, icmp, semua
- Ports – single port atau range dari port

Interface

Dalam contoh kita terdahulu, kita melihat bagaimana, untuk menerima semua paket masuk pada interface tertentu, dalam hal ini interface lo:

Iptables –A INPUT –i lo –j ACCEPT

Misalkan kita memiliki 2 interfce terpisah, eth0 menyambung ke LAN internal dan eth1 yang merupakan koneksi internet/ekternal kita. Kita mungkin akan mengizinkan semua paket masuk pada LAN tapi memfilter paket masuk pada ekternal, kita bisa melakukan hal ini dengan perintah :

 iptables -A INPUT -i lo -j ACCEPT
 iptables -A INPUT -i eth0 -j ACCEPT

Hati-hati, jika kita ingin mengizinkan semua paket masuk pada exkternal

 iptables -A INPUT -i lo -j ACCEPT
 iptables -A INPUT -i eth1 -j ACCEPT

Tapi lebih baik jangan lakukan ini.

IP Address

Membuka seluruh interface untuk jalan masuk paket tidak dianjurkan, kita mungkin ingin lebih banyak kontrol, apa yang dibolehkan dan apa yang harus ditolak. Kita misalkan, memiliki jaringan kecil komputer yang menggunakan private subnet 192.168.0.x. kita akan membuka firewaal untuk masuk paket dari satu alamat IP terpecaya (misalnya 192.168.0.5)

# Menerima paket-paket dari alamat IP terpercaya
iptables -A INPUT -s 192.168.0.5 -j ACCEPT
# Ubah alamat IP yang sesuai

Pada command diatas menambah (-A) aturan ke chain INPUT untuk sumber (-s) IP Address 192.168.0.5 untuk menerima (ACCEPT) semua paket

Jika kita ingin mengizinkan paket masuk dari suatu network dapat dilakukan dengan perintah

# Menerima paket-paket dari alamat network IP terpercaya
 iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT

Jika kita ingin menyandingkannya dengan mac address, bisa kita lakukan. Untuk melakukan ini, kita perlu meload modul mac, yang memungkinkan penyariangna terhadap mac address. Disini kita akan menggunakan modul mac untuk memeriksa mac address sumber selain IP address.

Iptables –A INPUT –s 192.168.0.5 –m mac --mac-source 00:19:7E:3F:3B:CF –j ACCEPT

Pertama kita gunakan –m mac untuk meload modul mac dan kemudia kita gunakan –mac-source untuk menentukan mac address sumber IP Address (192.168.0.5).

Hal ini dapat berguna untuk mencegah pemalsuan alamat IP.

Port dan Protocol

Sekarang kita melihat pemfilteran terhadap port dan protokol untuk memungkinkan service tertentu sebagai target ACCEPT. Sebelum kita mulai, kita harus benar-benar tahu protokol dan nomor port yang digunakan pada service yang diberikan. Sebagai contoh sederhana, Bittorrent menggunakan tcp pada port 6881, jadi kita perlu untuk membolehkan semua paket tcp pada port 6881.

iptables -A INPUT -p tcp --dport 6881 -j ACCEPT

Ini adalah aturan sederhana untuk menerima semua paket tcp yang masuk ke komputer kita pada port 6881.

Note : Untuk menggunakan penyesuaian destination atau source port (–dport atau –sport), kita harus terlebih dulu menetapkan protokol (tcp, udp, icmp atau all).

Kita juga dapat memasukkan range port, misalnya memungkinkan semua paket tcp pada range 6881-6890

iptables -A INPUT -p tcp --dport 6881:6890 -j ACCEPT

Setelah kita mempelajari dasar2 diatas, untuk pengembangan lebih lanjut, kita dapat menggabungkannya, contoh :

iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 22 -j ACCEPT

Ini akan lebih mengamankan komputer kita.

Selamat Mencoba.

http://www.tirta-fajri.net

Tutorial Iptables dasar 1


Pendahuluan

Linux memiliki firewall yang sangat kuat di dalamnya, biasanya disebut sebagai iptables, lebih tepatnya iptables / Netfilter. Iptables adalah modul userspace, dengan demikian kita dapat , berinteraksi dengannya pada commandline untuk memasukkan aturan firewall ke tabel standar. Netfilter adalah modul kernel, yang dibangun dalam kernel, yang benar-benar menyaring. Kita akan mempelajari iptables di command line.
Sebelum kita dapat benar-benar bisa menguasai iptables, kita perlu memiliki setidaknya pemahaman dasar dari cara kerjanya. Iptables menggunakan konsep alamat ip, protokol (tcp, udp icmp) dan port. Kita tidak perlu menjadi ahli dalam hal ini untuk memulai, tetapi hal ini membantu untuk memiliki pemahaman umum.

Iptables menempat aturan ke dalam tabel (INPUT, OUTPUT dan FORWARD) yang memeriksa lalu lintas jaringan (paket IP) yang relevan table dan membuat sebuah keputusan mengenai apa yang harus dilakukan pada setiap paket berdasarkan hasil dari aturan-aturan tersebut, yaitu menerima atau menjatuhkan paket. Tindakan-tindakan ini disebut sebagai target, ada dua kemungkinan yang akan ditetapkan DROP untuk menjatuhkan paket atau ACCEPT menerima paket.

chain
Ada 3 chain standar yang digunakan oleh iptables yang kita dapat menambahkan aturan untuk memproses paket IP melewati tabel, yaitu :
INPUT – Semua paket yang ditujukan untuk host komputer.

OUTPUT – Semua paket yang berasal dari host komputer.

FORWARD – Semua paket yang bukan dari atau untuk komputer host, tetapi melalui komputer host. Tabel ini digunakan jika komputer sebagai router.
Sebagian besar, kita akan berurusan dengan tabel INPUT untuk menyaring paket yang memasuki komputer kita.

Aturan ditambahkan dalam daftar untuk setiap tabel. Sebuah paket diperiksa terhadap setiap aturan secara bergiliran, dimulai di bagian atas, dan jika sesuai dengan aturan itu, maka diambil tindakan seperti menerima (ACCEPT) atau jatuh (DROP) paket. Sekali aturan tersebut sesuai, dan tindakan diambil, maka paket akan diproses sesuai dengan hasil dan tidak diproses oleh aturan lebih lanjut dalam tabel. Jika sebuah paket lewat turun melalui semua aturan dalam tabel dan mencapai bagian bawah dicocokkan tanpa aturan apa pun, maka diambil tindakan standar untuk tabel itu. Hal ini disebut sebagai kebijakan default.

Konsep kebijakan standar dalam tabel menimbulkan dua kemungkinan mendasar bahwa kita harus terlebih dahulu mempertimbangkannya sebelum kita memutuskan bagaimana kita akan mengatur firewall kita.
1. Kita dapat menetapkan kebijakan default DROP semua paket dan kemudian tambahkan aturan untuk secara khusus membiarkan (ACCEPT) paket yang dipercaya mungkin dari alamat IP, atau untuk port tertentu pada layanan yang telah kita jalankan seperti bittorrent, server FTP, Web Server, Samba file server dll
atau sebaliknya,

2. Kita dapat menetapkan kebijakan default ACCEPT semua paket dan kemudian tambahkan aturan untuk secara khusus blok (DROP) paket yang mungkin dari alamat IP tertentu, atau untuk port tertentu di mana kita tidak menjalankan servicenya.
Umumnya, pilihan 1 di atas adalah untuk tabel INPUT, digunakan untuk mengontrol apa yang diperbolehkan untuk mengakses komputer kita dan opsi 2 akan digunakan untuk tabel OUTPUT .

Persiapan :

Bekerja dengan iptables di command line membutuhkan hak istimewa root, jadi kita perlu menjadi untuk root untuk hal hal yang akan kita lakukan.

Catatan : Sebelum mulai, kita perlu mereset iptables dan aturan-aturan firewall yang ada

Sayangnya, berbagai distro Linux menggunakan berbagai comands untuk memulai, menghentikan dan menyimpan aturan-aturan firewall, sehingga kita mungkin perlu memeriksa dokumentasi untuk mengetahui cara untuk melakukan ini pada distro Linux kita. Coba ketik iptables –help di command line

# iptables --help
iptables v1.2.9
Usage: iptables -[AD] chain rule-specification [options]
       iptables -[RI] chain rulenum rule-specification [options]
       iptables -D chain rulenum [options]
       iptables -[LFZ] [chain] [options]
       iptables -[NX] chain
       iptables -E old-chain-name new-chain-name
       iptables -P chain target [options]
       iptables -h (print this help information)

Dan untuk melihat apakah iptables sudah benar benar berjalan di komputer kita, kita dapat menggunakan option –L, untuk meload running iptables

# iptables -L
Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     all  --  barney               anywhere            MAC 00:50:8D:6D:EF:23
DROP       all  --  wilma                anywhere
ACCEPT     all  --  bart                 anywhere            MAC 00:50:8D:FD:D6:32
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ftp
ACCEPT     tcp  --  ict                  anywhere            state NEW tcp dpt:ssh
Chain FORWARD (policy DROP)
target     prot opt source               destination
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Jika iptables berjalan, kita akan melihat beberapa aturan umum seperti diatas, jika tidak, kita coba mengecek modul iptables dengan lsmod

# lsmod |grep ip
ipt_mac                 2113  2
ipt_state               2113  2
ip_conntrack           40949  1 ipt_state
iptable_filter          3777  1
ip_tables              16577  3 ipt_mac,ipt_state,iptable_filter

Baik, kita asumsikan iptables berjalan baik, mari kita mulai dengan aturan yang sangat simple untuk mengeset firewall yaitu mengizinkan semua koneksi keluar tetapi memblok semua koneksi yang tidak diinginkan. Pada command line kta akan mengetikkan perintah berikut :

iptables -F
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -L -v

yang akan memberikan output sebagai berikut :

Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     all  --  lo     any     anywhere             anywhere
    0     0 ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED
Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Kita sekarang memiliki firewall yang memungkinkan semua koneksi keluar tapi memblokir semua koneksi masuk yang tidak diinginkan dan juga semua paket forwarder. Baik kita akan melihat setiap perintah diatas.

  1. (iptables –F), Pertama tama kita menggunakan –F (flush), tujuannya untuk membersihkan semua aturan yang ada.
  2. (iptables –P INPUT DROP). Option –P ini menetapkan kebijakan default, disini kita menerapkan kebijakan default untuk tabel input adalah DROP, yang maksudnya bahwa jika sebuah paket masuk tidak sesuai dengna salah satu dari aturan-aturan berikutnya akan dihapus.
  3. (iptables –P FORWARD DROP), Demikian pula, default untuk tabel FORWARD adalah DROP, karena kita tidak memfungsikan komputer kita sebagai router.
  4. (iptables –P OUTPUT ACCEPT), Terakhir untuk kebijakan default yaitu pada tabel OUTPUT yaitu ACCEPT, yaitu membolehkan semua lalu lintas keluar.
  5. (iptables –A INPUT –i lo –j ACCEPT), sekarang kita menambah beberapa aturan lain. Kita menggunakan –A untuk menambah sebuah aturan ke chain tertentu, INPUT pada contoh ini, kemudian kita menggunakan –i untuk interface, -j (jump), yaitu tindakan yang akan diambil. Jadi aturan ini akan mengizinkan semua paket masuk localhost. Ini umumbnya diperlukan oleh berbagai software aplikasi untuk bisa berkomunikasi dengan adaptor localhost.
  6. (iptables –A INPUT –m state –state ESTABLISHED,RELATED –j ACCEPT), Ini adalah aturan yang melakukan sebagian besat pekerjaan, dan sekali lagi kita menambahkan (-A) ke chain INPUT. Disini kita menggunakan opsi –m untuk meload sebuah modul (state). Modul stat mampu memeriksa keadaan dari sbuah paket dan menentukan apakah NEW, ESTABLISHE atau RELATED, NEW mengacu kepada paket-paket baru yang masuk koneksi yang tidak diprakarsai oleh host. ESTABLISHED dan RELATED mengacu kepada paket paket masuk yang merupakan bagikan dari koneksi yang telah mapan atau terkait dengan koneksi tersebut.
  7. (iptables –L –v), Terakhir, kita bisa daptarkan aturan aturan yang baru saja kita tambahkan, dan menampilkannya untuk memeriksa apakan sudah terisi dengan benar.

Hal terkahir yang perlu kita lakukan adalah menyimpan aturan tersebut, sehingga saat kita reboot, secara otomatis aturan tadi akan terload. Sayangnya, perintah untuk melakukan ini, biasanya berbeda untuk distro yang berbeda.

Pada Redhat/Fedora lakukan :

/sbin/service iptables save

Namun, cara termudah bekerja dengan iptables ada memasukkan script nya kedalam sebuah file dan membuatnya menjadi file executable, misalkan kita beri nama firewallku.

#!/bin/bash
# file konfigurasi iptables
# ChoenKill
# Flush semua aturan dari iptables
 iptables -F
# Set default untuk chain INPUT, FORWARD dan OUTPUT
 iptables -P INPUT DROP
 iptables -P FORWARD DROP
 iptables -P OUTPUT ACCEPT
# Set access untuk localhost
 iptables -A INPUT -i lo -j ACCEPT
# Accept packets established dan related connections
 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Save settings dengan /sbin/service iptables save
# List iptables chains with 'iptables -L -v'
/sbin/service iptables save
iptables -L –v

Manajemen Bandwith di Squid Menggunakan Delay Pools


Dokumen ini hanya menjelaskan bagaimana cara mengkonfigurasikan proxy server anda untuk membatasi bandwidth download atau incoming traffic.

A. Konfigurasi Manajemen Bandwidth di Squid

Berikut langkah-langkah pengkonfigurasian manajemen bandwidth di squid:

  1. Pertama-tama periksa apakah squid telah berjalan di server dan telah dikonfiguraisi sebagai mesin proxy server.
  2. Sebelum memulai memanajemen bandwidth di squid, kita jelaskan dulu komponen-komponen manajement bandwidth di squid

delay_pools

Opsi ini untuk menspesifikasi berapa jumlah pool yang digunakan untuk membatasi jumlah bandwidth dari ACL. Opsi ini akan dirangkaikan bersama opsi delay_class dan delay_parameters yang akan dibahas di bawah ini.

delay_class

Opsi ini menspesifikasikan kelompok dari masing-masing pool yang telah didefinisikan pada opsi delay-pools. Ada tiga class yang didukung Squid, antara lain:

  • class 1: Semua akses dibatasi dengan single bucket, artinya hanya bisa mendefinisikan overall bandwidth untuk suatu ACL saja, tidak bisa mendefinisikan bandwidth dengan lebih mendetail
  • class 2: Semua akses dibatasi dengan single agregate dengan dua parameter bandwidth. Parameter pertama mendefinisikan berapa bandwidth maksimal yang didapatkan ACL, parameter kedua mendefinisikan berapa bandwidth overall untuk ACL yang spesifik yang ada pada network tersebut.
  • class 3: Kelompok yang definisi bandwidth-nya paling mendetail. Parameter pertama mendefinisikan berapa bandwidth maksimal yang didapatkan ACL, parameter kedua mendefinisikan berapa bandwidth normal yang didapatkan ACL secara umum, dan parameter yang ketiga adalah mendefinisikan bandwidth yang didapatkan ACL jika mengakses ACL-ACL tertentu yang spesifik, misalnya file mp3.

delay_parameters

Opsi ini menspesifikasikan rumus bandwidth yang akan didapatkan oleh ACL yang akan memasuki delay_pool. Misalnya ada entry berikut ini pada delay_parameters:

delay_parameters 1 -1/-1 2100/4000

Angka 1 berarti rumus ini berlaku untuk pool 1. Angka -1/-1 berarti bandwidth maksimal yang diberikan Squid adalah tidak terbatas untuk pool ini.

Angka 2100/4000 berarti bandwidth yang didapatkan oleh ACL setelah masuk ke pool ini. Angka ini berada dalam kelipatan 8 b, sehingga untuk mendapatkan nilai bandwidth yang sebenarnya harus dikalikan delapan. Angka 2100 adalah bandwidth yang didapatkan ACL pada masa-masa normal. Jika dikalikan 8, maka bandwidth normal yang akan didapatkan ACL sekitar 18 Kbps. Angka 4000 adalah bandwidth maksimal yang didapatkan ACL pada masa-masa jalur sedang kosong. Jika dikalikan 8, maka bandwidth yang didapatkan sekitar 32 Kbps.

delay_access

Opsi ini mendefinisikan siapa-siapa ACL yang akan dimasukkan ke pool tertentu untuk mendapatkan “perlambatan” bandwidth. Bentuk umumnya adalah seperti ini:

delay_access 1 allow labprog

Opsi di atas berarti kita memasukkan ACL labprog ke dalam pool 1.

  1. Jika sudah mengerti komponen-komponen delay pool, kita mulai konfigurasi delay pool .

B. Contoh Kasus

Di umpamakan kita mempunyai bandwidth dari ISP sebesar 512kb, dan kita membuat rule seperti berikut ini:

- Maksimum download dibatasi 2 MB

- Batas kecepatan koneksi overall adalah 256 Kbps. per-network adalah 64 kbps. Sedangkan per-user/host dibatasi 2 Kbps jika digunakan untuk download file bertipe exe, mp3, vqf, tar.gz, gz, rpm, zip, rar, avi, mpeg, mpe, mpg, qt, ram, rm, iso, raw, dan wav. Jika tidak, maka koneksi perhost HANYA mengikuti aturan per-Network saja.

Penyelesaian:

Edit file /etc/squid/squid.conf

#vi /etc/squid/squid.conf

Lalu tambahkan contoh konfigurasi ini:

# Maksimum download dibatasi 2 MB

# Sebelum kita melakukan pembatasan, kita perlu mendefinisikan ACL network # # yang kita perlukan terlebih dahulu. ACL yang didefinisikan pada host bridge

# seperti di bawah ini:

acl lokal src 192.168.1.0/24

# Kemudian kita membatasi maksimum download dengan tag di bawah ini:

# Batas kecepatan koneksi overall adalah 256 Kbps. per-network adalah

# 64 kbps. Sedangkan per-user/host dibatasi 2 Kbps jika digunakan untuk

# download file bertipe exe, mp3, vqf, tar.gz, gz, rpm, zip, rar, avi,

# mpeg, mpe, mpg, qt, ram, rm, iso, raw, dan wav. Jika tidak, maka

# koneksi perhost HANYA mengikuti aturan per-Network saja.

acl filegede url_regex -i \.exe

acl filegede url_regex -i \.mp3

acl filegede url_regex -i \.vqf

acl filegede url_regex -i \.gz

acl filegede url_regex -i \.rpm

acl filegede url_regex -i \.zip

acl filegede url_regex -i \.rar

acl filegede url_regex -i \.avi

acl filegede url_regex -i \.mpeg

acl filegede url_regex -i \.mpe

acl filegede url_regex -i \.mpg

acl filegede url_regex -i \.qt

acl filegede url_regex -i \.ram

acl filegede url_regex -i \.rm

acl filegede url_regex -i \.iso

acl filegede url_regex -i \.raw

acl filegede url_regex -i \.wav

# Kita buat dulu ACL untuk mendefinisikan file-file di atas dengan menggunakan # regularexpression. Kemudian kita mendefinisikan 2 delay pool untuk

# menampung bandwidth.

# Satu pool masuk dalam kategori class 2 untuk mendefinisikan aturan overall

# 256 Kbps dan per-network 64 Kbps. Satu pool lainnya masuk kategori class 3

# untuk mendefinisikan aturan tambahan jika user mendownload file-file yang

#didefinisikan dalam ACL url_regex dengan bandwidth maksimal 2 Kbps.

delay_pools 2

delay_class 1 3

delay_parameters 1 32000/32000 8000/8000 250/250

delay_access 1 allow lokal filegede

delay_access 1 deny all

delay_class 2 2

delay_parameters 2 32000/32000 8000/8000

delay_access 2 allow lokal

delay_access 2 deny all

Jika sudah selesai, simpan hasil konfigurasi dan restart squid

#/etc/init.d/squid restart

Jumat, 16 Oktober 2009

PERINTAH DASAR LINUX


Sekilas Tentang Command Line

Seperti halnya bila kita mengetikkan perintah di DOS, command line atau baris perintah di Linux juga diketikkan di prompt dan diakhiri dengan menekan tombol Enter pada keyboard untuk mengeksekusi perintah tersebut.

Baris perintah merupakan cara yang lebih efisien untuk melakukan sesuatu pekerjaan. Oleh karena itu pemakai Linux tetap mengandalkan cara ini untuk bekerja. Sebaiknya pemula juga harus mengetahui dan sedikitnya pernah menggunanakan perintah baris ini karena suatu saat pengetahuan akan perintah-perintah ini bisa sangat diperlukan.



Berikut akan dijelaskan beberapa perintah dasar yang mungkin kelak akan sering digunakan terutama oleh para pemula. Perhatian: pengetahuan akan perintah-perintah yang lain akan segera bertambah seiring dengan kemajuan Anda menguasai sistem operasi Linux ini.

Penjelasan masing-masing perintah akan dipersingkat saja dan untuk mengetahui lebih detail lagi fungsi-fungsi suatu perintah, Anda dapat melihat manualnya, misalnya dengan mengetikkan perintah man:

man adalah perintah untuk menampilkan manual dari suatu perintah. Cara untuk menggunakannya adalah dengan mengetikkan man diikuti dengan perintah yang ingin kita ketahui manual pemakaiannya.

Contoh:

$ man ls

Perintah di atas digunakan untuk menampilkan bagaimana cara penggunaan perintah ls secara lengkap.

Perintah-Perintah Dasar Linux

Sebagai panduan Anda, berikut adalah daftar perintah secara alfabet. Sebenarnya, Anda dapat saja menekan tab dua kali untuk melihat semua kemungkinan perintah yang dapat digunakan. Misalnya Anda ingin mengetahui perintah apa saja yang dimulai dengan huruf a, maka Anda cukup mengetikkan a lalu tekan tab dua kali!

Daftar Perintah Menurut Alfabet

& adduser alias bg cat cd chgrp chmod chown cp fg find grep gzip halt hostname kill less login logout ls man mesg mkdir more mount mv passwd pwd rm rmdir shutdown su tail talk tar umount unalias unzip wall who xhost + xset zip

&

Perintah & digunakan untuk menjalan perintah di belakang (background) Contoh:

wget http://id.wikibooks.org &

Perintah & dipakai dibelakang perintah lain untuk menjalankannya di background. Apa itu jalan di background? Jalan dibackground maksudnya adalah kita membiarkan sistem untuk menjalankan perintah sendiri tanpa partisipasi kita, dan membebaskan shell/command prompt agar bisa dipergunakan menjalankan perintah yang lain.

Lihat juga:

Silahkan lihat juga perintah bg dan fg.

adduser

Perintah adduser digunakan untuk menambahkan user.

Biasanya hanya dilakukan oleh root untuk menambahkan user atau account yg baru. Setelah perintah ini bisa dilanjutkan dengan perintah passwd, yaitu perintah untuk membuat password bagi user tersebut. Contoh:

# adduser udin

# passwd udin

Perhatikan bahwa semua perintah yang membutuhkan akses root, di sini saya tulis dengan dengan menggunakan tanda #, untuk memudahkan Anda membedakannya dengan perintah yang tidak perlu akses root.

Jika Anda menjalankan perintah adduser, Anda akan diminta memasukkan password untuk user yang Anda buat. Isikan password untuk user baru tersebut dua kali dengan kata yang sama.

alias

Digunakan untuk memberi nama lain dari sebuah perintah. Misalnya bila Anda ingin perintah ls dapat juga dijalankandengan mengetikkan perintah dir, maka buatlah aliasnya sbb:

$ alias dir=ls

Kalau Anda suka dengan tampilan berwarna-warni, cobalah bereksperimen dengan perintah berikut:

$ alias dir=ls -ar –color:always

Untuk melihat perintah-perintah apa saja yang mempunyai nama lain saat itu, cukup ketikkan alias saja (tanpa argumen). Lihat juga perintah unalias.

bg

Untuk memaksa sebuah proses yang dihentikan sementara(suspend) agar berjalan di background. Misalnya Anda sedang menjalankan sebuah perintah di foreground (tanpa diakhiri perintah &) dan suatu saat Anda membutuhkan shell tersebut maka Anda dapat memberhentikan sementara perintah tersebut dengan Ctrl-Z kemudian ketikan perintah bg untuk menjalakannya di background. Dengan cara ini Anda telah membebaskan shell tapi tetap mempertahankan perintah lama berjalan di background.

Lihat juga perintah fg.

cat

Menampilkan isi dari sebuah file di layar. Contoh:

$ cat /nama/suatu/file

cd

Change Directory atau untuk berpindah direktori dan saya kira Anda tidak akan menemui kesulitan menggunakan perintah ini karena cara penggunaanya mirip dengan perintah cd di DOS.

chgrp

Perintah ini digunakan untuk merubah kepemilikan kelompok file atau direktori. Misalnya untuk memberi ijin pada kelompok atau grup agar dapat mengakses suatu file. Sintaks penulisannya adalah sbb:

# chgrp

chmod

Digunakan untuk menambah dan mengurangi ijin pemakai untuk mengakses file atau direktori. Anda dapat menggunakan sistem numeric coding atau sistem letter coding. Ada tiga jenis permission/perijinan yang dapat dirubah yaitu:



1. r untuk read,

2. w untuk write, dan

3. x untuk execute.

Dengan menggunakan letter coding, Anda dapat merubah permission diatas untuk masing-masing u (user), g (group), o (other) dan a (all) dengan hanya memberi tanda plus (+) untuk menambah ijin dan tanda minus (-) untuk mencabut ijin.

Misalnya untuk memberikan ijin baca dan eksekusi file coba1 kepada owner dan group, perintahnya adalah:

$ chmod ug+rx coba1

Untuk mencabut ijin-ijin tersebut:

$ chmod ug-rx coba1

Dengan menggunakan sitem numeric coding, permission untuk user, group dan other ditentukan dengan menggunakan kombinasi angka-angka, 4, 2 dan 1 dimana 4 (read), 2 (write) dan 1 (execute).

Misalnya untuk memberikan ijin baca(4), tulis(2) dan eksekusi(1) file coba2 kepada owner, perintahnya adalah:

$ chmod 700 coba2

Contoh lain, untuk memberi ijin baca(4) dan tulis(2) file coba3 kepada user, baca(4) saja kepada group dan other, perintahnya adalah:

$ chmod 644 coba3

Perhatian: Jika Anda hosting di server berbasis Linux, perintah ini sangat penting sekali bagi keamanan data Anda. Saya sarankan semua direktori yang tidak perlu Anda tulis di chmod 100 (jika Apache jalan sebagai current user (Anda)) atau di chmod 501 jika Apache jalan sebagai www-data atau nobody (user lain).

chown

Merubah user ID (owner) sebuah file atau direktori

$ chown

cp

Untuk menyalin file atau copy. Misalnya untuk menyalin file1 menjadi file2:

$ cp

fg

Mengembalikan suatu proses yang dihentikan sementar(suspend) agar berjalan kembali di foreground. Lihat juga perintah bg diatas.

find

Untuk menemukan dimana letak sebuah file. Perintah ini akan mencari file sesuai dengan kriteria yang Anda tentukan. Sintaksnya adalah perintah itu sendiri diikuti dengan nama direktori awal pencarian, kemudian nama file (bisa menggunakan wildcard, metacharacters) dan terakhir menentukan bagaimana hasil pencarian itu akan ditampilkan. Misalnya akan dicari semua file yang berakhiran .doc di current direktori serta tampilkan hasilnya di layar:

$ find . -name *.doc -print

Contoh hasil:

. /public/docs/account.doc

. /public/docs/balance.doc

. /public/docs/statistik/prospek.doc

./public/docs/statistik/presconf.doc

grep

Global regular expresion parse atau grep adalah perintah untuk mencari file-file yang mengandung teks dengan kriteria yang telah Anda tentukan.

Format perintah:

$ grep

Misalnya akan dicari file-file yang mengandung teks marginal di current direktori:

$ grep marginal

diferent.doc: Catatan: perkataan marginal luas dipergunakan di dalam ilmu ekonomi prob.rtf: oleh fungsi hasil marginal dan fungsi biaya marginal jika fungsi prob.rtf: jika biaya marginal dan hasil marginal diketahui maka biaya total

gzip

ini adalah software kompresi zip versi GNU, fungsinya untuk mengkompresi sebuah file. Sintaksnya sangat sederhana:

$ gzip

Walaupun demikian Anda bisa memberikan parameter tertentu bila memerlukan kompresi file yang lebih baik, silakan melihat manual page-nya. Lihat juga file tar, unzip dan zip.

halt

Perintah ini hanya bisa dijalankan oleh super useratau Anda harus login sebagai root. Perintah ini untuk memberitahu kernel supaya mematikan sistem atau shutdown.

hostname

Untuk menampilkan host atau domain name sistem dan bisa pula digunakan untuk mengesset nama host sistem.

Contoh pemakaian:

[user@localhost mydirectoryname] $ hostname

localhost.localdomain

kill

Perintah ini akan mengirimkan sinyal ke sebuah proses yang kita tentukan. Tujuannya adalah menghentikan proses. Format penulisan:

$ kill

PID adalah nomor proses yang akan di hentikan. Tidak tahu PID proses mana yang mau dibunuh? Cobalah bereksperimen dengan perintah:

ps aux | grep

less

Fungsinya seperti perintah more.

login

Untuk masuk ke sistem dengan memasukkan login ID atau dapat juga digunakan untuk berpindah dari user satu ke user lainnya.

logout

Untuk keluar dari sistem.

ls

Menampilkan isi dari sebuah direktori seperti perintah dir di DOS. Anda dapat menggunakan beberapa option yang disediakan untuk mengatur tampilannya di layar. Bila Anda menjalankan perintah ini tanpa option maka akan ditampilkan seluruh file nonhidden(file tanpa awalan tanda titik) secara alfabet dan secara melebar mengisi kolom layar. Option -la artinya menampilkan seluruh file/all termasuk file hidden(file dengan awalan tanda titik) dengan format panjang.

man

Untuk menampilkan manual page atau teks yang menjelaskan secara detail bagaimana cara penggunaan sebuah perintah. Perintah ini berguna sekali bila sewaktu-waktu Anda lupa atau tidak mengetahui fungsi dan cara menggunakan sebuah perintah.

$ man

mesg

Perintah ini digunakan oleh user untuk memberikan ijin user lain menampilkan pesan dilayar terminal. Misalnya mesg Anda dalam posisi y maka user lain bisa menampilkan pesan di layar Anda dengan write atau talk.

$ mesg y atau mesg n

Gunakan mesg n bila Anda tidak ingin diganggu dengan tampilan pesan-pesan dari user lain.

mkdir

Membuat direktori baru, sama dengan perintah md di DOS. a

more

Mempaging halaman, seperti halnya less

mount

Perintah ini akan me-mount filesystem ke suatu direktori atau mount-point yang telah ditentukan. Hanya superuser yang bisa menjalankan perintah ini. Untuk melihat filesystem apa saja beserta mount-pointnya saat itu, ketikkan perintah mount. Perintah ini dapat Anda pelajari di bab mengenai filesystem. Lihat juga perintah umount.

$ mount

/dev/hda3 on / type ext2 (rw)

none on /proc type proc (rw)

/dev/hda1 on /dos type vfat (rw)

/dev/hda4 on /usr type ext2 (rw)

none on /dev/pts type devpts (rw,mode=0622)

mv

Untuk memindahkan file dari satu lokasi ke lokasi yang lain. Bila argumen yang kedua berupa sebuah direktori maka mv akan memindahkan file ke direktori tersebut. Bila kedua argumen berupa file maka nama file pertama akan menimpa file kedua. Akan terjadi kesalahan bila Anda memasukkan lebih dari dua argumen kecuali argumen terakhir berupa sebuah direktori.

passwd

Digunakan untuk mengganti password. Anda akan selalu diminta mengisikan password lama dan selanjutnya akan diminta mengisikan password baru sebanyak dua kali. Password sedikitnya terdiri dari enam karakter dan sedikitnya mengandung sebuah karakter.

pwd

Print working directory, atau untuk menampilkan nama direktori dimana Anda saat itu sedang berada.

rm

Untuk menghapus file dan secara default rm tidak menghapus direktori. Gunakan secara hati-hati perintah ini terutama dengan option -r yang secara rekursif dapat mengapus seluruh file.

Sekali lagi: Hati-hati dengan perintah ini!

rmdir

Untuk menghapus direktori kosong.

shutdown

Perintah ini untuk mematikan sistem, seperti perintah halt. Pada beberapa sistem anda bisa menghentikan komputer dengan perintah shutdown -h now dan merestart sistem dengan perintah shutdown -r now atau dengan kombinasi tombol Ctr-Alt-Del.

su

Untuk login sementara sebagai user lain. Bila user ID tidak disertakan maka komputer menganggap Anda ingin login sementara sebagai super user atau root. Bila Anda bukan root dan user lain itu memiliki password maka Anda harus memasukkan passwordnya dengan benar. Tapi bila Anda adalah root maka Anda dapat login sebagai user lain tanpa perlu mengetahui password user tersebut.

tail

Menampilkan 10 baris terakhir dari suatu file. Default baris yang ditampilkan adalah 10 tapi Anda bisa menentukan sendiri berapa baris yang ingin ditampilkan:

$ tail

talk

Untuk mengadakan percakapan melalui terminal. Input dari terminal Anda akan disalin di terminal user lain, begitu sebaliknya.

tar

Menyimpan dan mengekstrak file dari media seperti tape drive atau hard disk. File arsip tersebut sering disebut sebagai file tar. Sintaknya sebagai berikut:

$ tar

Contoh:

$ tar -czvf namaFile.tar.gz /nama/direktori/*

Perintah di atas digunakan untuk memasukkan semua isi direktori, lalu dikompres dengan format tar lalu di zip dengan gzip, sehingga menghasilkan sebuah file bernama namaFile.tar.gz

$ tar -xzvf namaFile.tar.gz

Perintah di atas untuk mengekstrak file namaFile.tar.gz

umount

Adalah kebalikan dari perintah mount, yaitu untuk meng-unmount filesystem dari mount-pointnya. Setelah perintah ini dijalankan direktori yang menjadi mount-point tidak lagi bisa digunakan.

# umount

unalias

Kebalikan dari perintah alias, perintah ini akan membatalkan sebuah alias. Jadi untuk membatalkan alias dir seperti telah dicontohkan diatas, gunakan perintah:

$ unalias dir

unzip

Digunakan untuk mengekstrak atau menguraikan file yang dikompres dengan zip. Sintaknya sederhana dan akan mengekstrak file yang anda tentukan:



$ unzip

Lihat juga perintah-perintah gzip dan unzip.

wall

Mengirimkan pesan dan menampilkannya di terminal tiap user yang sedang login. Perintah ini berguna bagi superuser atau root untuk memberikan peringatan ke seluruh user, misalnya pemberitahuan bahwa server sesaat lagi akan dimatikan.

# wall Dear, everyone….. segera simpan pekerjaan kalian, server akan saya matikan 10 menit lagi.

who

Untuk menampilkan siapa saja yang sedang login. Perintah ini akan menampilkan informasi mengenai login name, jenis terminal, waktu login dan remote hostname untuk setiap user yang saat itu sedang login. Misalnya:

$ who

root ttyp0 May 22 11:44

flory ttyp2 May 22 11:59

pooh ttyp3 May 22 12:08

xhost +

Perintah ini digunakan untuk memberi akses atau menghapus akses(xhost -) host atau user ke sebuah server X.

xset

Perintah ini untuk mengeset beberapa option di X Window seperti bunyi bel, kecepatan mouse, font, parameter screen saver dan sebagainya. Misalnya bunyi bel dan kecepatan mouse dapat Anda set menggunakan perintah ini:

$ xset b

$ xset m

zip

Perintah ini akan membuat dan menambahkan file ke dalam file arsip zip. Lihat juga perintah gzip dan unzip.

Diperoleh dari “http://id.wikibooks.org/wiki/Perintah-perintah_dasar”