460 likes | 576 Views
Penggunaan Sendmail. Akhmad Daniel Rudi Nursasono IUC on Microelectronics ITB. Pokok Bahasan. Menjalankan Sendmail Sebagai Daemon Sendmail aliases File sendmail.cf Konfigurasi sendmail.cf Rewriting mail address. Objektif. Mampu mengkonfigurasi sendmail pada UNIX
E N D
Penggunaan Sendmail Akhmad DanielRudi Nursasono IUC on Microelectronics ITB
Pokok Bahasan • Menjalankan Sendmail Sebagai Daemon • Sendmail aliases • File sendmail.cf • Konfigurasi sendmail.cf • Rewriting mail address
Objektif • Mampu mengkonfigurasi sendmail pada UNIX • Mampu menggunakan sendmail
Overview Sendmail dibuat untuk mengatasi masalah dalam konfigurasi bermacam-macam program dan protocol yang digunakan untuk e-mail yang memiliki delivery program dan addressing scheme yang berbeda
Fungsi sendmail • Mengirim mail ke seorang user dengan program delivery yang cocok yang berdasarkan kepada alamat e-mail. • Menerima dan mengirim internet (SMTP) mail • Menyediakan system-wide mail aliases, sehingga memungkinkan mailing lists
Menjalankan sendmailsebagai Daemon if [ -f /usr/lib/sendmail ]; then (cd /usr/spool/mqueue; rm -f lf*) /usr/lib/sendmail -bd -q1h; echo -n ' sendmail' > /dev/console fi
Sendmail aliases • Gunanya: • alternate name untuk setiap user • forwarding mail ke host lain • mailing list • Basic Format file /etc/aliases: • alias_name: recipient1[ ,recipient2, ...]
Sendmail aliases Contoh file /etc/aliases #special name postmaster: adnan root: arman #accept first-initial_last-name@itb.ac.id rudi: rudi@system.paume daniel: daniel@cnrg #a mailing list admin: adnan, ismail, arman, yeni@hme.ee, tetih@biotek owner-admin: arman
Personal mail forwarding • Dilakukan dengan membuat file .forward yang berisi alamat tujuan pada home directory • Contoh file .forward tetih@cnrg.itb.ac.id
File sendmail.cf Fungsi utama: • definisi sendmail environment • rewrite address kedalam bentuk yang tepat bagi mailer penerima • map address ke instruksi yang diperlukan untuk mengirim mail
Mendapatkan sample file sendmail.cf ftp.uu.net mail/sendmail/sendmail.5.65.tar.Z Berisi beberapa prototype file: • tcpuucpproto.cf • tcpproto.cf • uucpproto.cf
General sendmail.cf structure Local Information General Macro Classes Version Number Special Macro Option Message Precedence Trusted User Format of Header Rewriting Rules Mailers Rule Set Zero Machine-dependent Part of Rule Set Zero
Konfigurasi sendmail Define Macro Dxvalue Set Macro x to value Define Class Ccword1[ word2]... Set class c to word1 word2 ... Define Class Fcfile Load class c from file Set Option Oovalue Set option o to value Trusted Users Tuser1[ user2...] Trusted users are user1,user2, ... Set Precedence Pname=number Set name to precedence number Define Mailer Mname,{field=value} Define mailer name Define Header H[?mflag?]name:format Set header format Set Ruleset Sn Start ruleset number n Define Rule Rlhs rhs comment Rewrite lhs pattern to rhs format
Konfigurasi sendmail • Define Macro Command • Name of the Macro being defined • Value assigned to the Macro DDcnrg.itb.ac.id
Define Macro Command (D) • Mendefinisikan macro dan mengisikan nilai padanya. • Beberapa macro internal harus didefinisikan, yaitu:
Define Macro Command (D) Internal Macro e SMTP entry mesages De$j Sendmail $v ready at $b j site's official ddomain name Dj$w.$D l format of the UNIX from line DlFrom $g $d n name used in error message DnMAILER-DAEMON o set of operators in addresses Do.:%\@!^=/ q default sender address format Dq$g$?x ($x)$.
Define Macro Command (D) • Internal macro menggunakan huruf kecil, User-defined macro menggunakan huruf besar. • Untuk melihat isi dari macro digunakan tanda $ • Contoh Dwalmond DDnuts.com Dj$w.$D
Conditional • Macro q mengandung conditional Dq$g$?x ($x)$. • Jika g berisi yeni@cnrg.itb.ac.id dan x berisi Yeni Marlina maka q akan berisi yeni@cnrg.itb.ac.id (Yeni Marlina)
Conditional • Conditional dapat berupa konstruksi "else", dilambangkan dengan $| • Sintaksnya $?x text1 $| text2 $.
Define Class Macro (C atau F) • Class adalah array of value • Digunakan untuk segala sesuatu yang memiliki bermacam-macam harga tapi ditangani dengan cara yang sama
Define Class Macro (C atau F) • Contoh CVbronson ora CVbronson CVora Fw/etc/sendmail.cw
Set Option Command (O) • Assign values to sendmail options • Tidak ada user-created option
Set Option Command (O) Afile define the name of alias file aN wait N minutes for @:@; the rebuild the alias file Bc define the blank subtitution file c queue mail for expensive mailers D rebuild the alias database db deliver in background mode ..
Set Option Command (O) • Contoh OA/usr/lib/aliases OF0600 OT3d
Defining Trusted Users (T) • Mendefinisikan user yang dapat dipercaya untuk mengganti alamat pengirim dengan menggunakan flag -f dari mailer. • Paling umum Troot Tdaemon Tuucp
Defining Mail Predence (P) • Untuk menentukan prioritas messasge dalam antriannya • Contoh Pfirst-class=0 Pspecial-delivery=100 Pbulk=-60 Pjunk=-100
Defining Mail Header (H) • Mendefinisikan format header yang disertakan dalam message. • Header flag terdapat beberapa tanda tanya, menentukan apakah header itu disertakan atau tidak untuk suatu mailer tertentu.
Defining Mail Header (H) • Contoh H?P?Return-Path: <$g> HReceived:$?sfrom $s $.by $j ($v/$Z) H?D?Recent-Date: $a H?D?Date: $a H?F?Resent-From: $q H?F?From: $q H?x?Full-Name: $x HSubject: H?M?Resent-Message-Id: <$t.$i@$j> H?M?Message-Id: <$t.$i@$j>
Defining Mailer (M) • Mendefinisikan program mailer yang dipakai sendmail • Sintaks: Mname, {field=value}
Defining Mailer (M) Mailer Definition Fields P Path Path of the mailer P=/bin/mail F Flags sendmail flags for this mailer F=lsDFMe S Sender Ruleset for sender addresses S=10 R Recipient Ruleset for recipient addresses R=20 A Argv The mailer argument vector A=sh -c $u E Eol End-of-line string for the mailer E=\r\n M Maxsize Maximum message length M=100000
Defining Mailer (M) • Contoh: Mlocal, P=/bin/mail, F=rlsDFMmn, S=10, R=20, A=mail -d $u Mprog, P=/bin/sh, F=lsDFMe, S=10, R=20, A=sh -c $u Mtcp, P=[IPC], F=mDFMueXLC, S=14, R=24, A=IPC $h, E=\r\n
Rewriting Mail Address • Sintaks: Rpattern transformation comment • Pattern Matching: $* Match zero or more tokens $+ Match one or more tokens $- Match exactly one token $=x Match any token in class x $~x Match any token not in class x $x Match all token in macro x $%x Match any token in NIS map named in macro x $!X Match any token not in NIS map named in macro x $%y Match any token in the NIS hosts.byname map
Rewriting Mail Address • Token adalah string dalam e-mail address yang dipisahkan oleh operator • Contoh : alamat tetih@cnrg.itb.ac.id mengandung token: tetih, @, cnrg, . , itb, . , ac, . , id. • Alamat itu akan match dengan pattern: $-@$+
Rewriting Mail Address • Indefinite token adalah string yang match, dan dinomori berurutan • Contoh: address tetih@cnrg.itb.ac.id • Pattern $-@$+ • Ada dua indefinite token yaitu $1 yang berisi tetih dan $2 yang berisi cnrg,.,itb,.,ac,.,id • Indefinite token dapat direfer dengan $1, $2, $3 , dan seterusnya.
Transforming the address • Mendefinisikan format yang digunakan untuk me-rewrite address • Transformation metasimbol $n Substitute indefinite token n $[name$] Substitute canonical name $>n Call ruleset n $@ Terminate ruleset $: Terminate rewrite rule
Transforming the address Contoh trasformasi address Address: hunt<@nbsenh.bitnet> Rewrite rule: R$+<@$+.bitnet> $1%$2@<@SB> Use the Bitnet relay Hasil transformasi: hunt%nbsenh<@cunyum.cuny.edu>
Transforming the address address tokenshunt < @ nbsenh . bitnet > | | | | | | | pattrern$+ < @ $+ . bitnet > | | indefinite tokenshunt nbsenh | | transformation$1 % $2 < @ $B > | | | | | | | rewritten addresshunt % nbsenh < @ cunyum.cuny.edu >
Transforming the address • Symbol $[name$] mengkonversi host's nickname atau IP addressnya kedalam canonical namenya dengan memberikan harga name ke nameserver • Symbol $>n memanggil ruleset n. • Contoh $>9$1%$2 akan memanggil rulset 9 dan memberikan harga $1, %, $2 kepadanya untuk diproses
Transforming the address • Symbol $@ dan $: untuk control processing • Jika transformasi diawali dengan $@, ruleset berhenti, dan hasilnya adalah hasil akhir proses transformasi. • Jika trasformasi diawali dengan $: ruleset hanya dieksekusi sekali, dapat menghindari loops saat memanggil ruleset lain
Special Rewrite Rule • Special rewrite rule syntax yang hanya ada pada ruleset 0 untuk menuliskan $#mailer$@host$:user • Rewrite rule: #resolveSMTP traffic R$*<@$+>$* $#tcpld$@$2$:$1<@$2>$3 user@host.domain • Address: tetih<@cnrg.itb.ac.id> • Hasil transformasi: $#tcpld$@cnrg.itb.ac.id$:tetih<@cnrg.itb.ac.id>
Set ruleset Command (S) • Set adalah kumpulan dari ruleset yang dapat di-refer dengan angka. • Sintaks: Sn
Set ruleset Command (S) • Rulset yang punya fungsi khusus dalam sendmail: • Rulset 3, yang pertama kali dikenakan pada address. Mengkonversi address kedalam bentuk canonical-nya local-part@host.domain • Ruleset 0, dikenakan pada recipient address. Menghasilkan triple mailer,host,user. • Ruleset 1, dikenakan paad seluruh alamat pengirim • Ruleset 2, dikenakan pada seluruh alamat penerima • Ruleset 4, dikenakan pada seluruh address. Menterjemahkan internal address format ke dalam external address format
More Information • Referensi “TCP/IP Network Administrator”, Craig Hunt, O’Reilly & Associates, Inc. • ftp://... sendmail.8.6.12