Notepad ~Angky R~ » FreeBSD

Block Mailing-list menggunakan header_checks POSTFIX [part two]

FreeBSD No Comments

Sambungan dari……block-mailing-list-menggunakan-header_checks-postfix-part-one

June 2nd, 2006

Waduh, sudah sekian hari rasanya sibuk terus nih kerjaan….jadi terlupakan janji yang satu ini nih. Sebenarnya tadinya mau bikin documentasi dengan topik lain sih, tapi berhubung yang ini belum selesai (tangguh banget sih) ya dengan senang hati kita lanjutkan kembali…..!!!

OK, dari pada banyak cingcong…kita langsung bahas saja….mmm, sampe dimana ya kemaren?

O iya, mau nerangin masalah isi header_checks dan cara testingnya saja kan?..OK

dikarena header_checks yang saya gunakan menggunakan regex_table, maka ada baiknya kita baca-baca dulu mengenai regex_table di postfix…yuuu mang http://www.postfix.org/regexp_table.5.html

Sekarang saya asumsikan sudah sedikit mengerti mengenai regex_tablenya posfix (padahal saya aja kurang paham…hikhikhik)

terlihat pada isi file /etc/postfix/header_checks ada

/^List-Id: /!/< *\.linux\.or\.id|id-freebsd|stibanas-c3\.yahoogroups\.com/ REJECT
yang artinya, jika pada header email mengandung kata List-Id (biasanya pada setiap milis selalu ditambah dengan “List-Id” pada setiap headernya, dimana ini juga menandakan nama dari milis tersebut, tapi ngak dijadikan RFC juga sih ada beberapa yang ngak pake juga, tapi kalo ngomong pada umumnya memang begitu :-D ) berarti email yang diterima merupakan kelompok dari milis dan biasanya ini merupakan id atau nama dari milis tersebut, contoh :

“List-Id:Tanya Jawab umum Seputer Linux (tanya-jawab.linux.or.id)”

Ini berarti id milis untuk tanya-jawab@linux.or.id. Nah agar postfix bisa membacara header dan mencari kata List-Id, maka pada header_check harus di tambah tanda “/^List-Id: /” dan karena saya akan memblok semua Mailing-list yang akan masuk tetapi hanya beberapa yang boleh, maka saya tambahkan tanda “!” yang artinya kecuali kemudian saya sebut nama-nama milist yang boleh lewat. Jika nama milis lebih dari satu, maka harus menambahkan tanda “|” yang artinya “atau” (or) sebagai contoh saya ingin melewatkan milis id-freebsd@yahoogroups.com dan stibanas-c3@yahoogroups.com dimana penulisan lengkapnya adalah :

/^List-Id:/!/

terlihat setelah kata stibanas-c3 ada tanda “\” ini memang aturan jika kita akan menyertakan tanda “.” (dot) sehinnga oleh postfix akan di baca lengkap adalah List-Id: id-freebsd.yahoogroups.com atau Lis-Id: stibanas-c3.yahoogroups.com.

Nah kalo dari penulisan berikut

/^List-Id: /!/< *\.linux\.or\.id|id-freebsd|stibanas-c3\.yahoogroups\.com/ REJECT

dibaca menjadi, semua yang mengandung List-Id akan di reject kecuali yang mengandung List-Id: *.linux.or.id (semua milis linux.or.id) atau List-Id: id-freebsd.yahoogroups.com atau List-Id: stibanas-c3.yahoogroups.com, ya mungkin kira2 berikut karena selama ini saya terapkan seperti itu ok-ok saja, belum menemukan masalah.

Sedangkan untuk mengetest apakah regex_tables yang kita tulis di header berfungsi dengan baik adalah dengan perintah berikut :

buat file yang mengandung List-Id dan memberikan nama sembarang kemudian test dengan perintah postmap

# echo “List-Id: test.yahoogroups.com” > msg_file

# postmap -q – regexp:/etc/postfix/header_checks < msg_file

list-id: REJECT

#

Ini menandakan kita berhasil mereject milis test@yahoogroups.com, dan jika kita test dengan milis dibolehkan, maka

# echo “List-Id: id-freebsd.yahoogroups.com” > msg_file

# postmap -q – regexp:/etc/postfix/header_checks < msg_file

#

Maka hal ini akan meloloskan email yang mengandung kata tersebut, jadi kesimpulannya adalah…..sesuai yang

Sebagai Penutup, saya ucapkan terima kasih dan mohon maaf jika ada kesalahan, jika mau mengkoreksi silahkan saja isi komentarnya atau langsung kirim email ke angky@nr.or.id

Refensi:

http://www.postfix.org

http://www.seaglass.com/postfix/faq.html

Om Asfik :-)

Thanks,

Angky R

Block Mailing-list menggunakan header_checks POSTFIX [part one]

FreeBSD No Comments

Ternyata tulisan ini yang jadul abis, masih bermanfaat bagi gw :-)

May 24th, 2006

Terkadang beberapa perusahaan ingin menghemat bandwidth dengan membatasi koneksi atau trafik lewat email, tetapi karena begitu pentingnya komunikasi via email maka kita sulit memilah dan memilih mana email yang layak diterima dan tidak.

Salah satu cara untuk menekan trafik via bandwidth yaitu dengan memblock semua mailing-list dan hanya beberapa mailing-list yang boleh masuk (karena sebagian besar mailing-list itu menggunakan email kantor, ya walaupun masih bisa diakalin dengan menggunakan email gratisan atau email yang diluar domain kantor tetap masih bisa masuk :-D )

Cara ini memang tidak menjamin 100% akan menekan trafik email, tapi setidaknya dapat menekan hingga 80% dan kita menganalogikan semua user ikut milis dengan menggunakan email kantor.

karena saya sendiri terburu waktu dan belum sempat “oprek-oprek” program yang paten dan bahkan tidak mengganggu kinerja postfik dalam memblock mailing-list ini, maka hematnya saya gunakan header_check dalam memblock milis ini.

Ya ngak recomamded juga sih, tapi dari pada dimarahin bos dan mengejar date line….mmmm akhirnya dengan terpaksa saya gunakan hal ini, dan mungkin hal ini sebaiknya digunakan hanya untuk pertolongan pertama saja :-D (tapi terkadang malah lupa dan tetap dibiarkan terus digunakan karena fungsinya udah berjalan dengan baik walaupun sedikit mengganggu kinerja postfix, ya sedikir kerja rodi lah…hihihihi)

Ok, jangan banyak bacot…mari kita kerjain :

1. aktifkan option header_checks pada postfix

[root@angky ~]# vi /etc/postfix/main.cf

header_checks = regexp:/etc/postfix/header_checks

2. buat file header_checks di /etc/postfix

[root@angky ~]# vi /etc/postfix/header_checks

/^List-Id:/!/< *\.linux\.or\.id|id-freebsd|stibanas-c3\.yahoogroups\.com>/ REJECT Maaf Milis ini tidak diterima
3. generate header_checks untuk jadi database yang dapat di baca postfix dan restart postfix

[root@angky ~]# postmap /etc/postfix/header_checks && postfix reload

Nah, apa sih isi header check? kenapa penulisannya seperti itu? mmm bagaimana cara testingnya bahwa yg kita tulis itu bisa memblock milis? ok..ok akan saya jelaskan pada sesi berikutnya deh soale laper banget nih, mau sarapan dulu…. :-D

Bersambung ke block-mailing-list-menggunakan-header_checks-postfix-part-two

Thanks,

Angky R

HOWTO: Move FreeBSD to a new hard disk

FreeBSD No Comments

Sebenarnya artikel ini dibuat untuk membantu diriku sendiri yang pelupa dan dengan sialnya hari ini, salah satu box BSD ada yang problem lantaran partisinya ngaco….errornya aja sereeeem

the following file system had an unexpected inconsistency :unknown error; help!

Nah tuh BSD nya bilang aja help, nah gw mo minta tolong sapa ya? eh mbah google kasih jawaban…nemu deh nih artikel….langsung deh kopi pasteu :D

Mari Gan….mudah-mudahan ini bisa menyelesaikan masalahnya, simak baik-baik ya :D

#!/begin/sh

This article will explain how you can move your FreeBSD installation from one hard disk drive to another. I have done this many times using the dump/restore utility. Before you begin, be sure you have read this document carefully.

Let’s assume that our FreeBSD installation is on a 4 gigabyte drive (ide master ad0) and we would like to move it to a new 20 gig drive.

What you need to do is remove the old hard disk, install the new [20G] drive as an ide master and perform a minimal clean install of FreeBSD, setting up the partitions exactly how you want them. Be se sure to set the drive as bootable and boot from it one time as a test.

Next, put your old [4G] drive back in the system as an ide master and the new [20G] drive in as an ide slave. Boot the system on your old installation in single user mode.

To boot in single user mode:

Press the [spacebar] at the 10 second countdown.

type:
boot -s
Press [enter] for the default shell.

At the (#) prompt type:
fsck -p
mount -u /
mount -a
swapon -a
adjkerntz -i

Next, make sure you have the device files made so you can mount the partitions on the slave drive.

Type:
cd /dev
./MAKEDEV ad1s1a
./MAKEDEV ad1s1e
./MAKEDEV ad1s1f

Now make mount points for the new drive’s partitions:

Type:
mkdir /backup
mkdir /backup/root
mkdir /backup/usr
mkdir /backup/var

Lastly, I use a shell script to do the following:

1 – create new filesystems (newfs the drive)
2 – mount the partitions
3 – dump the data from my old drive, and restore it to my new one
4 – unmount the new drives partitions
5 – enable softupdates on the new drive (optional)

Here is the script I use:

#!/bin/sh
newfs /dev/ad1s1a
newfs /dev/ad1s1e
newfs /dev/ad1s1f

mount /dev/ad1s1a /backup/root
mount /dev/ad1s1e /backup/var
mount /dev/ad1s1f /backup/usr

( dump -0f – / ) | ( cd /backup/root ; restore -rf – )
( dump -0f – /var ) | ( cd /backup/var ; restore -rf – )
( dump -0f – /usr ) | ( cd /backup/usr ; restore -rf – )

umount /backup/root
umount /backup/var
umount /backup/usr

tunefs -n enable /dev/ad1s1a
tunefs -n enable /dev/ad1s1e
tunefs -n enable /dev/ad1s1f

#end

It will probably take several hours to perform the dump/restore, so be patient. Once the data has been dumped and restored to the new drive, all you have to do is remove your old drive and put it in a safe place, set the new drive to a master and reboot. Your system will now boot your old FreeBSD installation on your new hard disk.

Note: You can download the drivecopy shell script by clicking on the drivecopy.tar filename located on the right sidebar of this page. Issue the command tar xvf drivecopy.tar to untar the drivecopy.sh file.

You may need to modify the drivecopy shell script if you are using custom partitions. If you had selected the standard FreeBSD partitions at install, this file will work without modification.

To learn more about dump, restore and other unix commands, please read the man pages:

man dump
man restore
man tar
man mount
man adjkerntz

#—EOF

Thanks,
~Angky R~

dnscache use djbdns on FreeBSD

FreeBSD No Comments

long time no write blog…..au sepertinya disibukan dgn kegiatan yg ngak jelas ditambah penyakit malesnya kambuh lagi :-)

Ok…seperti yg kita ketahui, manfaat dnscache itu banyak sekali membantu dalam penghematan bandwidth yang cukup paspasan, karena dengan adanya dnscache kita sedikit menghemat waktu pencarian domain yang memang sudah pernah kita kunjungi/cari, jadinya ngak selalu nanya ke authoritative dns.

Sebelumnya, kenapa musti djbdns kan banyak dnscache yg lain? named misal?

Nah, pertanyaan itu ngak bisa ku jawab secara teoritis, tapi yg jelas untuk urusan security, performace dan stabilitas djb lebih unggul dari named (karena gw termasuk pemakan named yang pindah ke djbdns :D ) itu pun kata para pakar dan ahli DNS sih, tapi bener….kerasa banget!

Terlalu banyak cuap-cuap nih kayanya….lama, langsuuuung

1. Install djbdns via port

# cd /usr/ports/dns/djbdns
# make install clean

2. config

# pw groupadd nofiles -g 800
# pw useradd dnslog -g nofiles -u 810 -d /nonexistent -s /sbin/nologin
# pw useradd dnscache -g nofiles -u 811 -d /nonexistent -s /sbin/nologin
# dnscache-conf dnscache dnslog /etc/dnscache 127.0.0.1
# ln -s /etc/dnscache /var/service
# echo "nameserver 127.0.0.1" > /etc/resolv.conf

Perintah di atas hanya membuat dns cache untuk localhost saja agar bisa di pakai oleh network tambahkan perintah berikut :

 # dnscache-conf dnscache dnslog /etc/dnscache 192.168.0.222
# touch /etc/dnscache/root/ip/192.168.0
# ln -s /etc/dnscache /var/service

Sekarang setiap pc di LAN dengan network 192.168.1.0/24 bisa menggunakan dns cache server ini
Tambahkan baris berikut di file /etc/rc.conf:

svscan_enable=”YES”

Untuk menjalankan secara manual, dengan perintah :

 # /usr/local/etc/rc.d/svscan.sh start

Cek apakah service dnscahe sudah jalan atau belum :

 # svstat /etc/dnscache
/etc/dnscache: up (pid 16562) 89652 seconds

Cek juga apakah query dari client bisa di terima dan di teruskan :

# tail -f /etc/dnscache/log/main/current

000000048d8ef9a2512b70c tx 0 1 www.download.windowsupdate.com. . cb8e52de
@4000000048d8ef9a2875141c rr cb8e52de 20 1 a26.ms.akamai.net. caa92e36
@4000000048d8ef9a287769c4 rr cb8e52de 20 1 a26.ms.akamai.net. caa92e37
@4000000048d8ef9a28777964 rr cb8e52de 61 cname intl.dl.wu.akadns.net. dl.wu.ms.geo.akadns.net.
@4000000048d8ef9a2877851c rr cb8e52de 61 cname main.dl.wu.akadns.net. intl.dl.wu.akadns.net.
@4000000048d8ef9a287794bc rr cb8e52de 3361 cname dl.wu.ms.geo.akadns.net. a26.ms.akamai.net.
@4000000048d8ef9a2877a45c rr cb8e52de 2579 cname www.download.windowsupdate.com. www.download.windowsupdate.nsatc.net.
@4000000048d8ef9a2877b014 rr cb8e52de 80 cname www.download.windowsupdate.nsatc.net. main.dl.wu.akadns.net.
@4000000048d8ef9a287834e4 cached cname www.download.windowsupdate.nsatc.net. main.dl.wu.akadns.net.
@4000000048d8ef9a2878409c cached cname main.dl.wu.akadns.net. intl.dl.wu.akadns.net.
@4000000048d8ef9a2878503c cached cname intl.dl.wu.akadns.net. dl.wu.ms.geo.akadns.net.
@4000000048d8ef9a2878580c cached cname dl.wu.ms.geo.akadns.net. a26.ms.akamai.net.
@4000000048d8ef9a287863c4 cached 1 a26.ms.akamai.net.
@4000000048d8ef9a2879714c sent 2697 236

Set Forward Only

Jika kita mau buat dnscache kita forward only, maka ada beberapa config yg harus dirubah dan stepnya adalah sebagai berikut

# echo "203.142.82.222\n203.142.84.222" > /etc/dnscache/root/servers/@
# echo 1 > /etc/dnscache/env/FORWARDONLY
# svc -t /etc/dnscache

kita asumsikan dnscache forwarder adalah 203.142.82.222 dan 203.142.84.222

Set Forward zone

Set forward zone adalah memforward beberapa zone yang dianggap berbeda dengan yang lain, ini biasanya khusus dns local yang memang tidak terdaftar di internet sehingga domain tsb hanya di kenal di dns authoritative nya saja, atau mungkin ada beberapa kasus zone tsb memang harus di fordward ke dns authoritative yang lain.

Kita asumsikan dns yang akan di forward itu hanya domain nr.or.id dan yang lainnya di set ke root server, dan domain nr.or.id authoritative nya ada di 202.169.33.220

# echo "202.169.33.220" > /etc/dnscache/root/servers/nr.or.id
# svc -t /etc/dnscache

Ok…sementara segitu dulu, karena baru sampe sini ilmunye :-) semoga bermanfaat……..

NB: Sebaiknya dnscahe ini tidak banyak perubahan config ataupun restart service, karena jika koneksi sudah banyak yang access ke server tsb, maka cache akan lebih banyak dan traffic akan lebih hemat, jadi kalo kita restart service maka cache akan hilang dan akan query ke luar dengan traffic yang cukup besar. Oh ya, katanya djbdns ini bisa sanggup lebih dari 5000 query/second dan “bebas” dari dnscache poisoning attack :-)

“bebas” terbebas jika di attack dengan traffic yang kurang dari 1G, kalo lebih? :-) katanya sih jebol juga….hehehehe

Command:
Kadang command ini suka lupa, tapi sangat bermanfaat :-)
# svc -t /service/dns < restart service, service akan down jika semua permintaan sudah di penuhi jadi ada kemungkinan tidak langsung down and up
# svc -d /service/dns < mematikan service jika semua permintaan sudah selesai, maka service down
# svc -u /service/dns < menghidupkan service
# svc -k /service/dns < membunuh service, memaksa service down
# svstat /service/dns < check status running

Referensi:
1. P.Y Adi P
2. http://tunggul.staff.uns.ac.id/2008/08/23/cara-mudah-install-dns-cache-dengan-djbdns/
3. http://www.net.cmu.edu/docs/services/ip/local-dns.html

Thanks,

ɹ ʎʞƃuɐ

FreeBSD Update Software and Apply Security Patches

FreeBSD No Comments

=====================================================================
Tulisan ini hanya untuk kalangan sendiri dan sangat bermanfaat bagi penulis atau mungkin (juga) berguna juga bagi pembaca
=====================================================================

Ada kalanya kita butuh untuk update software mengingat akan bugs dan patch security, atau seditaknya kita mengikuti perkembangan software yang kita pakai. Kalo keluarga RH aka FC kan punya yum, debian base punya apt-get, dan mungkin masih2 distro Linux punya sendiri2 untuk update software aka aplikasi, nah gimana dengan FreeBSD? Nah inilah caranya………:

Required tools aka software

Ada beberapa tools yang diperlukan, antara lain
(a) portmanager – utility untuk update ports.
(b) portsnap -  fetch and extract compressed snapshots of the ports tree (sudah ada di versi > 6.0, jadi ngak usah di install lagi).
(c) pkg_version – utility untuk melihat versi software aka aplikasi yang sudah terinstall.

FreeBSD install portmanager

# pkg_add -r portmanager

Upgrade FreeBSD ports collection

# portsnap fetch extract

Display outdated ports list

# pkg_version -vIL=

Update FreeBSD packages / software

# portmanager -u

Jika ingin meng-upgrade langsung semua software, command nya berikut

# portmanager -u -l

How do I upgrade a single software only?

# portmanager www/apache22 -l -u -f

How do I apply binary security updates for FreeBSD?


Fetch updates

# freebsd-update fetch

Install updates

# freebsd-update install

Rollback update

# freebsd-update rollback

Reboot system

Selesai sudah deh…silahken check systemnya, apa sudah semuanya terupdate…..Semoga tulisan ini berguna….Amiiin

Referensi:

Thanks,

Angky R

« Previous Entries