Do I need a firewall for my fedora 38?

I’m new to Linux, previously been on Windows where I used defender + Windows firewall. Now I’m on fedora which also have its firewall called firewalld. Are those sufficient, or do I need any other solutions for my security?

  •  thayer   ( @thayer@lemmy.ca ) 
    link
    fedilink
    English
    9
    edit-2
    1 year ago

    I treat all guests on the network as potentially hostile, so I enable firewalls on all of my hosts.

    I believe that Fedora’s firewall is enabled by default, but it leaves open ports 1025-65535/tcp and 1025-65535/udp.

    To lock down some sane defaults:

    sudo firewall-cmd --permanent --remove-port=1025-65535/tcp
    sudo firewall-cmd --permanent --remove-port=1025-65535/udp
    sudo firewall-cmd --reload
    

    Verify allowed ports with:

    sudo firewall-cmd --list-ports
    

    See also:

    PS: if you have a Steam Link, you’ll want to open these ports for connectivity:

    sudo firewall-cmd --permanent --add-port=27031/udp  # steam remote play
    sudo firewall-cmd --permanent --add-port=27036/udp  # steam remote play
    sudo firewall-cmd --permanent --add-port=27036/tcp  # steam remote play
    sudo firewall-cmd --permanent --add-port=27037/tcp  # steam remote play
    
  • Unless your computer is exposed directly to the internet, your router’s firewall should be enough. Fedora typically has SELinux and AppArmor enabled by default which should protect from something nasty executing on your machine.

    Don’t execute things as root if you don’t know what it is and you should be fine.

  • Its best to have some defence in depth. Ideally you would have a firewall on your network AND your local machine. If you are running a laptop definitely have a local firewall on that as you cannot trust random networks you connect to when out and about in the world.

    firewalld is sufficient, i suggest learning its CLI as it is not super complicated. ufw is ok if you are allergic to command line.

  • Even without any firewall you should be fine by default. Access to ports with no services listening do nothing. Firewalls are just defense-in-depth in case a service that you didn’t want to accidentally listens on a port. It may also slightly reduce kernel attack surface.

    So I would say that you don’t need it. You will be fine. But if you want to be sure about what is listening on your machine then feel free to apply one.

  • Uncomplicated Firewall is easy to setup and understand. It blocks traffic and allows it. Install UFW

    sudo apt install ufw

    My recommended(Chris Titus)

    `sudo ufw limit 22/tcp

    sudo ufw allow 80/tcp

    sudo ufw allow 443/tcp

    sudo ufw default deny incoming

    sudo ufw default allow outgoing

    sudo ufw enable`

    Is this enough?

    • Yes, it is enough. Generally, the default handling of connections on Linux is enough but having ufw can’t hurt. Certain developer or server software may not work unless you add UFW exceptions for them. They don’t know how to do this on their own.

      By default, without a firewall, any program can communicate through any port it wants as long as it can bind that port. Ports that are special or low-numbered (e.g. TCP port 21 is reserved for FTP) require root to be bound. Otherwise, a program can bind any port that isn’t already in use by something else. All incoming connections to a port that isn’t bound will be refused and the information discarded.

      Edit: Your router also usually has a firewall that is strong enough for most everyday purposes.