Share : script untuk proses file berulang-ulang

Pernah nemuin pekerjaan dimana kita harus memproses banyak file dengan perintah yang sama ?

Misal merename file dengan tambahan nama tertentu atau melakukan kompress file2.

Bila 1 atau 2 file tentu masih tidak masalah, bagaimana bila sudah mencapai ratusan atau ribuan file yang harus diproses dengan perintah berulang ?. Bisa pengel tangan untuk kopi paste dan gerakin mouse.

Solusinya, pakai bash script untuk mempermudah pekerjaan. Dgn syntax “for in done” maka pekerjaan berulang jadi mudah.

Contoh mau melakukan kompress file log, maka perintahnya sebagai berikut.

Read more »

DTC: mabok SASLDB

Kasus yang dialami user yang sudah di delete masih bisa mengirimkan email mempergunakan authentifikasi sasl.

Di hapus usernya, tidak ngefek, di hapus domainnya tetap tidak ngefek juga. Mumet nda tuh
Tetap saja tembus

Oct 19 01:07:59 mail postfix/smtpd[8166]: BEE3ECDDA: client=unknown[61.17.45.48], sasl_method=CRAM-MD5, sasl_username=tri@xxxxcargo.co.id
Oct 19 01:09:08 mail postfix/smtpd[8166]: 75B1FCDE7: client=unknown[177.43.210.162], sasl_method=CRAM-MD5, sasl_username=tri@xxxxcargo.co.id
Oct 19 01:10:45 mail postfix/smtpd[9486]: D891ACD76: client=unknown[201.243.41.145], sasl_method=CRAM-MD5, sasl_username=tri@xxxxcargo.co.id
Oct 19 01:17:13 mail postfix/smtpd[9486]: D9B73CD76: client=unknown[77.73.55.250], sasl_method=CRAM-MD5, sasl_username=tri@xxxxcargo.co.id
Oct 19 01:17:42 mail postfix/smtpd[9486]: EE8CBCD76: client=unknown[217.218.43.130], sasl_method=CRAM-MD5, sasl_username=tri@xxxxcargo.co.id

Pakai dtc versi lawas (kalau tdk salah v0.15), mau update ke versi baru takut nanti malah ndak jalan.
Pakau yang sekarang kena bug :C

Lebih ngeri lagi, di script develop-nya sendiri juga ngaku kalo masih bermasalah, hu hu hu hu
Read more »

Postfix: Internal Routing Delivery

Ini adalah versi perbaikan dari thread yang ada dimilist postfix.or.id.
Kesalahan fatal pada penggunaan syntax canonical_maps adalah proses penukaran alamat email yang tidak terkendali, baik pada posisi sender dan recipient.
Untuk mengatasinya maka akan dipakai opsi recipient_canonical_maps, dan sender_canonical_maps dimana alamat yang akan ditukar pada saat receive atau sending dapat diatur.

Internal Routing Delivery, bisa dikatakan _salah satu_ solusi untuk membuat banyak server beda regional dengan 1 domain, dimana beberapa user pada domain tersebut ada dibeberapa server.

Software bantu dan kondisi

  • Distro (wajib) Trustix Secure Linux 2.2 Cloud
  • Postfix 2.1.5 (default instalasi rpm)
  • Tpop3 atau sejenisnya
  • Fetchmail

Kondisi yang berlaku disini adalah memakai local user, belum diaplikasikan pada virtual-user.

Bayangkanlah…

Suatu perusahaan berpusat diJakarta, mempunyai 100 karyawan.
Semua aktivitas email (smtp dan pop3) dilakukan diserver jakarta. Dengan domain abc.com
Karyawan dijakarta diantara-nya ani,agnes,ayu,anto,ari,abu dan lain-lain

Karena kondisi bisnis yang bagus, perusahaan ini-pun membuka cabang di berbagai daerah. Anggap Bandung.
Dengan jumlah karyawan 30 orang, diantaranya, budi,badu,beni,beno,bejo.
Koneksi internet hanya memakai dial-up (melaske-tenan).
Karena berada pada 1 induk perusahaan maka format email karyawan diBandung-pun sama yaitu nama@abc.com
misal budi@abc.com,badu@abc.com, bejo@abc.com dan seterusnya.
Maka jumlah email user di server jakarta menjadi 130 user.
Diputuskan aktivitas smtp ikut pada smtp server dial-up isp, sedangkan pop3 tetap ikut pada server jakarta.

Setelah berjalan beberapa saat dirasakan ada satu kelemahan,yaitu :
Pada saat user dicabang ingin mengirim email kepada sesama user cabang 1 wilayah (misal budi@abc.com ke badu@abc.com),
maka harus menunggu hingga modem hidup.
Hal ini terjadi karena pada saat budi melakukan perintah send, MUA akan berusaha mengirimkan-nya ke server jakarta.
Dan badu-pun baru akan bisa mendonlot/menarik email tersebut bila sudah diterima server jakarta.
Dapat dibayangkan proses yang seharusnya bisa cepat menjadi lambat karena harus berputar di internet.
Atau mudah-nya disebut sebagai eksternal routing delivery, karena harus konek dulu ke server jakarta.

Anda sebagai Mailserver administrator diberi tugas untuk menyelesaikan masalah ini.

Solusi

  1. Membangun 1 buah mail server di cabang. Dengan nama bandung.abc.com.
    Ini jelas bisa dibangun, tetapi sekarang bila budi ingin mengirimkan email ke badu maka akan ditulis badu@bandung.abc.com.
    User komplain karena tidak sepraktis dulu, karena harus menambahkan bandung.
    Pihak manajemen-pun tidak ingin penambahan cost untuk membuat kartu nama baru, karena perubahan ini.
    Sedangkan bila ditulis badu@abc.com, maka email akan kembali diroutingkan ke internet.
    Dan karena mempergunakan sistem dial-up maka domain bandung.abc.com tidak akan dikenali di internet.
  2. Membangun 1 buah mail server di cabang. Dengan nama domain sama dengan domain induk abc.com.
    Dengan cara begini, pada saat budi akan mengirimkan email ke badu cukup ditulis badu@abc.com.
    User dan manajemen senang.
    Tapi pada saat akan mengirimkan email ke user jakarta, misal ani@abc.com, permasalahan baru timbul.
    Dari sisi server muncul pesan error bahwa user ani tidak ada.
    Hal ini wajar karena user ani hanya dikenali diserver jakarta.
  3. Membangun 1 buah mail server di cabang. Dari pengalaman #2 maka dapat dipastikan nama domain harus beda dengan domain pusat.
    Maka dipilih kembali bandung.abc.com.
    Hanya saja kali ini mulai dimasukkan user domain user locak ke dalam file aliases. Dengan harapan bisa membelokkan delivery email. misal:

    root@quad root# echo "badu@abc.com: badu" >> /etc/postfix/aliases
    root@quad root# newaliases
    postalias: warning: /etc/postfix/aliases, line 209: name must be local

    Ups, ternyata aliases menolak jika di-isi dengan full dengan nama domain.

  4. Membangun 1 buah mail server di cabang. Dari pengalaman #2 maka dapat dipastikan nama domain harus beda dengan domain pusat.
    Maka dipilih kembali bandung.abc.com.
    topo

    Dari pengalaman #3 maka diketahui opsi aliases tidak dapat dipergunakan.
    Untungnya postfix masih menyediakan opsi lain yang masih dapat dipergunakan. Yaitu canonical.

    root@quad root# postconf -d | grep canonical
    canonical_maps =
    recipient_canonical_maps =
    sender_canonical_maps =
    
    root@quad root# man canonical
    ....
    The optional canonical table specifies an address mapping for local and
    non-local addresses. The mapping is used by the cleanup(8) daemon.  The
    address mapping is recursive.
    ....

    Intinya canonical akan manipulasi alamat local dan non-local.
    Proses mapping ini akan merubah fisik header dari email yang bersangkutan.

    Misal, dibuat mapping badu@abc.com badu@bandung.abc.com
    Dapat dibaca, bila ada email dengan tujuan badu@abc.com maka akan dirubah menjadi badu@bandung.abc.com.
    Hal ini dapat dibuktikan pada MUA user, misal Lookout Express�, Eudora atau Kmail.
    Untuk keperluan kasus perusahaan abc.com maka yang dilakukan adalah, tambahkan opsi berikut pada main.cf

    root@quad root# cd /etc/postfix
    root@quad postfix# echo "recipient_canonical_maps = hash:/etc/postfix/recipient_canonical" >> main.cf
    root@quad postfix# echo "sender_canonical_maps = hash:/etc/postfix/sender_canonical" >> main.cf

    recipient_canonical_maps dipergunakan untuk membelok-kan email bila sesama user local berkirim email.
    sender_canonical_maps dipergunakan untuk mengembalikan alamat email ke alamat asli pada saat melakukan replay.
    Pada /etc/postfix/recipient_canonical di-isikan sebagian/seluruh user local yang ada.

    budi@abc.com budi@bandung.abc.com
    badu@abc.com badu@bandung.abc.com
    beni@abc.com beni@bandung.abc.com
    beno@abc.com beno@bandung.abc.com
    bejo@abc.com bejo@bandung.abc.com

    Pada /etc/postfix/sender_canonical di-isikan.

    @bandung.abc.com @abc.com

    Lalu ubah menjadi file db dan reload postfix.

    root@quad postfix# postmap recipient_canonical
    root@quad postfix# postmap sender_canonical
    
    root@quad postfix# postfix reload
    
    root@quad postfix# postconf -n | grep canonical
    recipient_canonical_maps = hash:/etc/postfix/recipient_canonical
    sender_canonical_maps = hash:/etc/postfix/sender_canonical

    Sekarang user local bisa saling berkirim email dengan domain tetap abc.com.
    Agar user tidak perlu konek ke-dua pop3 (local dan pusat), maka alamat pop3 server-pun sebaiknya dipindah kan server local.
    Dan dengan aplikasi fetchmail, secara periodic, akan mendolot email dari server pusat ke server local.

    Karena pada sender_canonical_maps akan mengganti seluruh alamat sender, maka ada kemungkinan pada saat sistem akan mengirimkan email ke root/postmaster, email akan terkirim ke root/postmaster domain pusat.
    Untuk menghindari hal ini maka set alias untuk postmaster dan/atau root pada file /etc/postfix/aliases.

    root@quad postfix# echo "postmaster: root" >> /etc/postfix/aliases
    root@quad postfix# echo "root: badu" >> /etc/postfix/aliases
    root@quad postfix# newaliases

    penutup

    Mohon maaf beli judul artikelnya ndak pas, masalahnya bingung mau dinamai apa.
    Terimakasih untuk thexxxxx.net yang sudah memberikan ide untuk tulisan ini.

Squid Delaypools

(migrasi dari geocities.com/adilinux)

Another useful squid feature is delay pools. Conceptually, delay pools are bandwidth limitations – “pools” of bandwidth that drain out as people browse the Web, and fill up at a rate you specify – this can be thought of as a leaky bucket that is continually being filled.
This is useful when bandwidth charges are expensive like in indonesia.
Delay pools provide a way to limit the bandwidth of certain requests based on any list of criteria. The idea came from a Western Australian university who wanted to restrict student traffic costs (without affecting staff traffic, and still getting cache and local peering hits at full speed).

To enable this, configure squid with the –enable-delay-pools option. There are 3 classes of delay pools – class 1 is a single aggregate bucket, class 2 is an aggregate bucket with an individual bucket for each host in the class C, and class 3 is an aggregate bucket, with a network bucket (for each class B) and an individual bucket for each host. Read more »