How to Enable Directory Watching in CSF

Directory Watching di CSF memungkinkan lfd memeriksa direktori /tmp dan /dev/shm untuk mencari file-file yang mencurigakan, seperti skrip eksploitasi.

Jika ditemukan file yang mencurigakan, sistem akan mengirimkan email peringatan menggunakan template yang ada di /usr/local/csf/tpl/filealert.txt. Anda juga dapat memantau aktivitas ini melalui log file yang tersimpan di /var/log/lfd.log.

Enable Dirwatch

Untuk mengaktifkan Directory Watching, Anda perlu mengedit file konfigurasi csf yang tersimpan di /etc/csf/csf.conf kemudian edit seperti berikut.

LF_DIRWATCH = "300"
LF_INTEGRITY = "3600"
LF_DIRWATCH_FILE = "30"

Untuk menambahkan direktori lain yang ingin dipantau, Anda dapat mengedit file csf.dirwatch.

/home/*/public_html

Atau untuk menghindari false positive, Anda bisa menentukan direktori yang ingin diabaikan oleh dirwatch dengan mengedit file csf.fignore.

/home/Maildir

Selanjutnya restart CSF dan LFD untuk menerapkan perubahan.

csf -ra

Testing

Untuk pengetesan, Anda dapat membuat file dengan ektensi .pl,.py,.cgi,.sh di path /dev/shm atau /tmp. Setelah itu, ubah izin aksesnya ke level user.

touch /dev/shm/beta.pl
chown web1:web1 /dev/shm/beta.pl
File dengan izin akses root akan diabaikan oleh dirwatch.

Tunggu beberapa saat, maka alert akan muncul lalu dikirimkan melalui email dan tercatat juga di log file seperti berikut.

Jul 15 13:41:40 p2 lfd[5047]: *Suspicious File* /dev/shm/beta.pl [web1:web1 (1000:1000)] - Script, file extension

Pengetesan lain bisa dengan cara copy file binary linux seperti contoh berikut.

cp /usr/bin/env /dev/shm/env
chown web1:web1 /dev/shm/env

Maka dari log file akan tercatat seperti berikut.

Jul 15 13:47:02 p2 lfd[5285]: *Suspicious File* /dev/shm/env [web1:web1 (1000:1000)] - Linux Binary

Custom Log

Anda dapat mengkustom log file untuk memantau direktori yang telah Anda tentukan sebelumnya, misalnya direktori /home/*/public_html.

Edit file /etc/csf/lfd.pl. Backup file terlebih dahulu jika diperlukan.

cp -p /etc/csf/lfd.pl /etc/csf/lfd.pl.ori
nano /etc/csf/lfd.pl

Kemudian tambahkan baris berikut.

if ($dirwatchfile{$file} ne "1") {
    if ($md5sum ne $dirwatchfile{$file}) {
        $0 = "lfd - (child) suspicious file alert for $file";
        logfile("Directory *File Watching* has detected a change in $file");

        # Simpan $output ke file tertentu
        my $output_file = '/var/log/dirwatch.log';  # Ganti dengan nama file yang diinginkan
        open(my $fh, '>>', $output_file) or die "Tidak bisa membuka file '$output_file': $!";
        print $fh "Directory *File Watching* has detected a change in $output\n";
        close($fh);

        $dirwatchfile{$file} = $md5sum;
    }
}

Simpan file dan restart csf+lfd untuk menerapkan perubahan.

csf -ra