To expand on @heper: Yes, pfSense will do this.