ufwprofile

Crates.ioufwprofile
lib.rsufwprofile
version1.4.7
sourcesrc
created_at2023-01-16 05:24:49.982464
updated_at2023-12-30 13:42:14.524623
descriptionUFW app profile written in pure rust
homepagehttps://www.ssdd.dev/rustufwapp-profile
repositoryhttps://github.com/ssddOnTop/rust-ufw-app-profile
max_upload_size
id759875
size17,760
Sandipsinh Dilipsinh Rathod (ssddOnTop)

documentation

README

Visitor Badge Crates Badge Crates Downloads

About Project

UFW app profile written in pure rust.

Implementation:

ufwprofile = "" #check latest version above

Or

cargo add ufwprofile

Example

fn main() -> anyhow::Result<()> {
    if ufwprofile::UFWConf::check_write_permission() {
        //checks if ufw exists and the path /etc/ufw/applications.d is writable
        let conf = ufwprofile::UFWConf::init("AppName", "Title", "Description")?
            .append_ports("80", "")?
            .append_ports("81:82", "tcp")?
            .append_ports("84", "udp")?
            .append_ports("83", "")?
            .append_ports("8000", "tcp")?;

        if ufwprofile::UFWConf::is_root() {
            // check if the app has root permission.
            println!("{}", conf.try_adding_to_ufw(true).unwrap());
        } else {
            println!("{}", conf.try_write_with_sudo(true).unwrap());
        }
    } else {
        println!("Unable to write");
    }
    Ok(())
}

Drawbacks

This is hardcoded dependency

  1. The config file is hardcoded.
  2. The path is assumed to be /etc/ufw/applications.d

Changelog

check CHANGELOG.md

Commit count: 27

cargo fmt