Live Journal

All About Log

ClamAV dan Sendmail

  • Sendmail 8.13.4 atau yang terbaru, silahkan cek dan download di http://sendmail.org (diasumsikan sudah memahami setting konfigurasi Sendmail).
  • ClamAV 0.83 atau yang terbaru, silahkan cek dan download di http://clamav.net

Langkah-langkahnya adalah sebagai berikut :

  1. Periksa apakah MILTER support sudah dijalankan pada Sendmail :

    # sendmail -d0 < /dev/null | grep MILTER

    Jika milter support sudah dijalankan, pesan yang muncul adalah :

    Compiled with: DNSMAP LOG MATCHGECOS MILTER MIME7TO8 MIME8TO7

    Biasanya milter support sudah dijalankan secara otomatis oleh Sendmail, namun jika ternyata belum, maka kita perlu menginstall ulang Sendmail yang mendukung milter, dari binary source-nya.

  2. Periksa apakah milter library libmilter sudah terinstall.

    # whereis libmilter

    Jika libmilter sudah terinstall, pesan yang muncul adalah :

    libmilter: /usr/lib/libmilter.a /usr/lib/libmilter /usr/include/libmilter

    Biasanya libmilter tidak diinstall secara otomatis, maka kita perlu menginstallnya dari binary source Sendmail seperti berikut ini :

    # tar zxvf sendmail.8.13.4.tar.gz
    # cd sendmail.8.13.4
    # cd libmilter
    # sh Build install

    Jangan lupa memastikan dengan menjalankan lagi perintah # whereis libmilter. Jika libmilter sudah terinstall, maka Sendmail sudah siap diintegrasikan dengan ClamAV.

  3. Download dan install ClamAV versi stabil yang terakhir, silahkan cek dan download di http://clamav.net

    Pada saat pertamakali menginstall ClamAV, kita perlu membuat user dan group baru pada sistem :

    # groupadd clamav
    # useradd -g clamav -s /bin/false -c "Clam AntiVirus" clamav

    Lalu dilanjutkan dengan proses instalasi :

    # tar zxvf clamav-0.83.tar.gz
    # cd clamav-0.83
    # ./configure --enable-milter
    # make
    # make install

    Setelah proses instalasi selesai, periksa apakah file clamd dan clamav-milter sudah terdapat pada direktori /usr/local/sbin/ .

  4. Set konfigurasi clamd (baca # man clamd.conf).

    Edit file :

    # vi /usr/local/etc/clamd.conf

    Setting konfigurasi dilakukan dengan menambah atau menghilangkan tanda #. Langkah pertama adalah menambahkan tanda # di depan tulisan Example, selanjutnya adalah menghilangkan tanda # di depan baris-baris berikut ini :

    LogFile /var/log/clamav/clamd.log
    LogFileUnlock
    LogClean
    LogVerbose
    LocalSocket /var/run/clamav/clamd.sock
    FixStaleSocket
    StreamMaxLength 10M
    User clamav
    ScanPE
    ScanOLE2
    ScanMail
    ScanHTML
    ScanArchive
    ScanRAR
    ArchiveMaxFileSize 10M
    ArchiveMaxCompressionRatio 300
    ArchiveBlockEncrypted
    ArchiveBlockMax

  5. Set konfigurasi freshclam (baca # man freshclam.conf).

    Edit file :

    # vi /usr/local/etc/freshclam.conf

    Setting konfigurasi dilakukan dengan menambah atau menghilangkan tanda #. Langkah pertama adalah menambahkan tanda # di depan tulisan Example, selanjutnya adalah menghilangkan tanda # di depan baris-baris berikut ini :

    UpdateLogFile /var/log/clamav/clam-update.log
    LogVerbose
    DatabaseOwner clamav
    DNSDatabaseInfo current.cvd.clamav.net
    DatabaseMirror database.clamav.net
    MaxAttempts 5
    Checks 1
    NotifyClamd /usr/local/etc/clamd.conf

    Perhatikan setting Checks 1 merupakan instruksi untuk menjalankan update (virus database) secara otomatis sekali setiap hari.

    Setelah setting konfigurasi ClamAV selesai, kita perlu membuat direktori dan file yang akan berisikan ClamAV log dan socket :

    # mkdir /var/log/clamav
    # mkdir /var/run/clamav
    # touch /var/log/clamav/clamd.log
    # touch /var/log/clamav/clam-update.log
    # chown -R clamav.clamav /var/log/clamav
    # chown -R clamav.clamav /var/run/clamav

  6. Menguji apakah instalasi ClamAV sudah berhasil.

    Jalankan clamd dengan perintah (sebagai root) :

    # clamd

    Periksa proses clamd dengan mengetikkan :

    # ps ax |grep clamd

    Perhatikan log-nya dengan mengetikkan :

    # tail -f /var/log/clamav/clamd.log

    Jalankan freshclam daemon dengan perintah (sebagai root) :

    # freshclam -d

    Periksa proses freshclam daemon dengan mengetikkan :

    # ps ax |grep freshclam

    Perhatikan log-nya dengan mengetikkan :

    # tail -f /var/log/clamav/clam-update.log

    Jalankan clamav-milter dengan perintah (sebagai root) :

    # sudo clamav-milter --max-children=2 -Nol local:/var/run/clamav/clmilter.sock

    Periksa proses clamav-milter dengan mengetikkan :

    # ps ax |grep clamav-milter

    Baca # man clamav-milter untuk keterangan lebih lanjut.

    Jika semuanya berjalan dengan baik, maka sampai di sini instalasi ClamAV pada sistem sudah berhasil.

  7. Untuk mengintegrasikan ClamAV dengan Sendmail, kita perlu set konfigurasi Sendmail agar menggunakan clamav-milter socket.

    Edit file :

    # vi /etc/sendmail.mc

    Tambahkan baris berikut ini :

    INPUT_MAIL_FILTER(`clmilter',`S=local:/var/run/clamav/clmilter.sock,F=,T=S:4m;R:4m')dnl
    define(`confINPUT_MAIL_FILTERS',`clmilter')dnl

    Kemudian jalankan perintah :

    # m4 sendmail.mc > sendmail.cf
    # /etc/init.d/sendmail restart

  8. Membuat startup script pada /etc/init.d untuk menjalankan clamd, clamav-milter, dan freshclam secara otomatis.

    Edit file :

    # vi /etc/init.d/clamd

    #!/bin/sh
    # startup script for the Clam AntiVirus Daemon
    # chkconfig: 2345 80 30
    # processname: clamd
    # config: /usr/local/etc/clamd.conf
    TMPDIR=/tmp
    export TMPDIR
    # Source function library.
    . /etc/rc.d/init.d/functions
    # Source networking configuration.
    . /etc/sysconfig/network
    [ -x /usr/local/sbin/clamd ] || exit 0
    case "$1" in
    start)
    echo -n "Starting Clam AntiVirus Daemon: "
    daemon /usr/local/sbin/clamd
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/clamd
    echo -n "Starting Clam AntiVirus Milter Daemon: "
    daemon /usr/local/sbin/clamav-milter --max-children=2 -Nol local:/var/run/clamav/clmilter.sock
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/clmilter
    echo -n "Starting FreshClam Daemon: "
    daemon /usr/local/bin/freshclam -d
    RETVAL1=$?
    echo
    [ $RETVAL1 -eq 0 ] && touch /var/lock/subsys/freshclam

    stop)
    echo -n "Stopping Clam AntiVirus Daemon: "
    killproc clamd
    rm -f /var/run/clamav/clamd.sock>br /> rm -f /var/run/clamav/clamd.pid
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/clamd
    echo -n "Stopping Clam AntiVirus Milter Daemon: "
    killproc clamav-milter
    rm -f /var/run/clamav/clmilter.sock
    rm -f /var/run/clamav/clmilter.pid
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/clmilter
    echo -n "Stopping FreshClam Daemon: "
    killproc freshclam
    rm -f /var/run/clamav/freshclam.pid
    RETVAL1=$?
    echo
    [ $RETVAL1 -eq 0 ] && rm -f /var/lock/subsys/freshclam

    status)
    status clamd
    RETVAL=$?
    status clamav-milte
    r RETVAL=$?
    status freshclam
    RETVAL1=$?

    restart|reload)
    $0 stop
    $0 start
    RETVAL=$?

    *)
    echo "Usage: clamd {start|stop|status|restart|reload}"
    exit 1
    esac
    exit $RETVAL

    Simpan file di atas lalu jalankan perintah :

    # chmod u+x clamd
    # /etc/init.d/clamd start
    # /etc/init.d/sendmail start

    Periksa sekali lagi dengan jalankan perintah :

    # /etc/init.d/clamd restart
    # /etc/init.d/sendmail restart

.:: selesai ::.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: