iptables for IPv4
ip6tables for IPv6. You need both if you have both IPv4 and IPv6 running.
Those are stateful port-and-address based firewalls, not smart content-aware SSL-decoding ones.
They are both a loadable kernel module and a command-line program with some glue (start/stop/save/panic). In RedHat the module is installed by default and some default rules are created at install time. When you add programs with the installer (yum/rpm), e.g. a webserver (httpd), it punches holes in the default ruleset for you
By default anything started on your computer is trusted, and anything started remotely is not, except for the afore-mentioned holes. So all it's protecting you against is a rogue server installed by someone who hasn't got root access, like an extra webserver listening on port 9000.
It won't protect you against password-guessing on SSH, since sshd is an installed service (you should block password root logins in sshd.conf), and it won't protect you against SQL injection on a webserver since it's not smart. if you want smart, consider an IDS like Snort.
Of course you can add extra rules, like restricting services to trusted subnets or dropping annoying scanner addresses.