File integrity monitoring open source project in Rust.
FIM is a File Integrity Monitoring tool that tracks any event performed over your files. It is capable of keeping historical data of your files. It checks the filesystem changes in the background. FIM is the fastest alternative to other software like Ossec to perform file integrity monitoring. It can be integrated with other security tools like Ossec or Wazuh. The produced data can be ingested and analyzed with tools like ElasticSearch/OpenSearch. Developed with Rust, the next generation of programming language.
To set up FIM perform the following steps:
yum install fim-*.rpm
dpkg -i fim*.deb
sudo nohup fim
in your terminalFIM software will start monitoring any activity on the default folders configured in /etc/fim/config.yml
file.
touch /tmp/file.txt
in your terminal then, take a look at /var/lib/fim/events.json
file. It will store each produced event in JSON format.To customize your installation and monitor custom folders, you may want to edit the config.yml
file. Such file is pretty straightforward below you have its structure:
monitor:
# Windows version
- path: C:\tmp\test.txt
ignore: [.log, .test]
# Linux version
- path: /tmp/dir
ignore: [.txt]
log:
output:
file: fim.log
level: info
events:
file: events.log
format: json
The monitor
section keeps a list of files/directories. Add to it as many lines as you require.
The ignore
option inside path specification allows you to ignore files that match the given string inside its name. You can use the following formats:
- path: /tmp/dir
ignore: [.txt, .tmp]
Or
- path: /tmp/dir
ignore:
- .txt
- .tmp
The log
section keeps all configuration of software output there are two sections here:
output
Handle application output logging:
file
path to writing the output logs.level
the level of verbosity of the FIM app, currently supported debug/info/error/warning.events
Section to handle file system events output:
file
path to writing the output events.format
the output format, currently supported json
or syslog
Feel free to open us an issue in this repository or send your feedback to our developers through support@achiefs.com We will be glad to hear from you and your thoughs about the software.
We suggest using the Cargo
tool to get dependencies automatically downloaded
Steps:
cargo build --release
Then take a look at the target/release
folder
Linux
curl https://sh.rustup.rs -sSf | sh
to install rust (install at default location).git clone https://github.com/Achiefs/fim.git
cd fim
to go inside cloned folder.config.yml
to adjust your needs, add paths or ignore files.cargo run
to download crates, build and run FIM software.Any kind of contribution will be invested into the project advertising, development or improvement. If you want to contribute with this matter you could send us your contribution through:
addr1qxuu48cln7ch3p4ncf393z6axza764ltkqfnr5t5hrayfqyevgzmdqwrctf8tmtgentkd0sr9wuya5rzkk8twwt3tfgqy26zdd