Firehol is awesome, too bad it doesn't seem to be actively maintained anymore. Does it even work with IPv6?
But if you don't need IPv6 at the moment, that's OK.
Some observations:
- You will want to allow outgoing HTTP(s) connections, at least to some destinations. Most apt-get updates are done through HTTP. Your web apps might need to access remote APIs.
- You can safely enable "server ident reject with tcp-reset" without affecting anything -- unless you're running IRC clients. According to
Wikipedia, "The ident protocol is considered dangerous because it allows crackers to gain a list of usernames on a computer system which can later be used for attacks." (But this probably won't matter unless you're actually running identd.)
- I can't tell exactly what "server any nolog drop" is supposed to accomplish, but it seems redundant because you're already dropping everything that isn't specifically allowed. I'd suggest that you keep it commented out.
- Why both icmp and ICMP?
- Update /etc/firehol/RESERVED_IPS with the
latest data. Any IP range in this file is included in ${UNROUTABLE_IPS}, but Linux distributions often ship an outdated version of this file. Lots of ranges that were previously reserved (such as 1.0.0.0/8 and 5.0.0.0/8 ) were recently reclaimed and allocated to RIRs due to IPv4 address shortage. Using an outdated list could make your server inaccessible to legitimate users with recently allocated IPs.
- If Firehol throws messages about loadable kernel modules when you start it, just add "FIREHOL_LOAD_KERNEL_MODULES=0" (without quotes) at the beginning of your config file. This often happens in virtual machines.