• Technology Consultant.
  • Software Developer.
  • Musician.
  • Burner.
  • Game Master.
  • Non-theistic Pagan.
  • Cishet White Male Feminist.
  • Father.
  • Fountain Maker.
  • Aquarium Builder.
  • Hamster Daddy.
  • Resident of Colorado.
  • Anti-Capitalist.
  • Hackerspace Regular.
  • Traveler of the American West.
  • 2 Posts
  • 7 Comments
Joined 2 years ago
cake
Cake day: June 7th, 2023

help-circle


  • This is extremely possible and I have done a lot of stuff like it (I set up my first home built Linux firewall over 20 years ago). You do want to get some kind of multiport network card (or multiple network cards… usb -> ethernet adapters can do OK filling in in a pinch). It also gives you a lot of power if you want to do specific stuff with specific connections (sub netting, isolation of specific hosts, etc).

    There’s a lot of ways to do it, but the one I’m most familiar with is just to use IP tables.

    The very first thing you want to do is open up /proc/sys/net/ipv4/ip_forward and change the 0 to a 1 to turn on network forwarding.

    You want to install bridge-utils and isc-dhcp-server (or some other DHCP server). Google or get help from an LLM to configure them, because they’re powerful and there’s a lot of configs. Ditto if you want it to handle DNS. But basically what you’re going to do (why you need bridge-utils) is you’re going to set up a virtual bridge interface and then add all the various NICs you want on your LAN side into it (or you can make multiple bridges or whatever… lots of possibilities).

    Your basic iptables rule is going to be something like

    iptables -t nat -A POSTROUTING -o enp1s0 -j MASQUERADE, but again there’s lots of possible IP tables rules so read up on those.