Automated Firewalls with Mason William Stearns SANS Instructor, proctor, and network administrator
Getting underway Room monitors Evaluation forms Questions at any point Goals Basics of Linux firewalling Learning process Live demo
Firewalls One small piece of your network security Only affects traffic going in, out, or through your firewall Can be circumvented TCP/IP tunneling in ssh, , DNS, http Using allowed ports for blocked traffic types Additional exit points from network Firewall system needs to be locked down tightly!
Firewall types Packet filtering Stateful Stateless Proxy Better yet, both!
Firewall types, proxies.
Choice of firewall platform Stability Network card support Security and Updates Network performance Ability to audit and strip down Cost Ease of setup
Linux Packet Filtering Separation of Jobs Kernel Command line tools
Linux Packet Filtering types Ipfw (Linux 1.2 kernels) Ipfwadm (Linux 2.0 kernels) Ipchains (Linux 2.2 kernels) Iptables (Linux 2.4 kernels)
ipfw First Linux packet filtering support Linux 1.2 kernels Stateless Very limited Only filtered on one port Never integrated into distributions Not supported by Mason Ported from one of the BSD's by Alan Cox
ipfwadm Linux 2.0 kernels Stateless Filters on source and destination addresses and ports Only TCP, UDP, and ICMP Masquerading (many-to-one NAT) Jos Vos
ipchains Linux 2.2 kernels Stateless Support for ICMP subtypes, protocols other than TCP, UDP and ICMP, and inverse options. Rusty Russell
iptables Linux 2.4, 2.5, and upcoming 2.6 kernels Stateful IPV6 support Backwards compatibility modules for ipfwadm and ipchains Extensible tests and actions Fully modular design
Setting up firewalls Triple threat; limited background in: Security policies TCP/IP (normal and attack patterns) Connecting the two with packet filtering and other security tools. Risk in getting it wrong. Default allow - easy to get going Default deny - orders of magnitude harder
Approaches for creating firewalls Prewritten list of rules Menu interface with small set of choices Menu interface with extensive options Automatic construction of rules based on current network setup. Letting the firewall build itself
Prewritten list of rules +Good if your network matches the assumptions 1.May need a lot of editing if not 2.They tend to be too permissive
Menu interface with small set of choices +Good for simple networks 1.Poor for complex networks or non-standard networks 2.Poor for non-standard protocols
Menu interface with extensive options +Flexible, good for complex networks 1.Requires a lot of expertise from the administrator
Letting the firewall build itself +Flexible +Doesn't require in-depth knowledge of firewall construction +Handles simple and complex networks 1.May take some time to cover all traffic types.
The world's most efficient and literal bouncer New bouncer Needs to be taught who can go in or out of the bar Told to note individual's age, whether they're part of the owner's family, which direction they want to go and whether they're carrying firearms, and then ask bar owner.
Initial bouncer rules => Write down characteristics, ask owner => block (default policy)
Bouncer rules, part II Carrying firearms => block and call police => Write down characteristics, ask owner => block (default policy)
Bouncer rules, part III Carrying firearms => block and call police Leaving bar => allow to pass => Write down characteristics, ask owner => block (default policy)
Bouncer rules, part IV Carrying firearms => block and call police Leaving bar => allow to pass Entering bar, over 21 => allow to pass => Write down characteristics, ask owner => block (default policy)
Bouncer rules, part V Carrying firearms => block and call police Leaving bar => allow to pass Entering bar, over 21 => allow to pass Part of owner's family => allow to pass => Write down characteristics, ask owner => block (default policy)
Bouncer rules, part VI Carrying firearms => block and call police Leaving bar => allow to pass Entering bar, over 21 => allow to pass Part of owner's family => allow to pass Entering bar, under 21 => block => Write down characteristics, ask owner => block (default policy)
Bouncer rules, part VII Carrying firearms => block and call police Leaving bar => allow to pass Entering bar, over 21 => allow to pass Part of owner's family => allow to pass Entering bar, under 21 => block => block (default policy)
Mason and iterative creation Start off with empty firewall Log all unmatched packets Watch logs for new packets Add rule that would have matched that traffic Keep adding rules until all traffic types encountered
Iptables log format Apr 30 21:04:10 sparrow kernel: IN= OUT=lo SRC= DST= LEN=73 TOS=0x00 PREC=0x00 TTL=64 ID=11339 DF PROTO=UDP SPT=33272 DPT=53 LEN=53
Iptables rule format /sbin/iptables -A OUTPUT -o lo -p udp -s localhost/32 - -sport 1024: d localhost/32 - -dport domain -j ACCEPT #domain/udp (O)
Live demonstration We'll switch over to a Linux laptop for the demo and rejoin here afterwards.
Customization Existing firewall rules Allows administrator to make modifications
Starting firewall at boot ntsysv, tksysv, or linuxconf Manually link /etc/rc.d/init.d/firewall
Troubleshooting Turn off the firewall, see if the problem persists. Restart the firewall, try test, then run: iptables -L -n -x -v | grep -v '^ *0 *0 ' | less -S to see which rules have matched any packets.
Opening packet rules Iptables' stateful nature; use for ESTABLISHED,RELATED. Let Mason build the rules for NEW packets.
Potential projects Cisco IOS FreeBSD, OpenBSD and NetBSD - ipfilter Other routers and firewalls.
Thanks! Linux developers, esp. Rusty Russell Chris Brenton (SANS, Altenet) Steven Northcutt (SANS) ISTS Mason contributors - see the Credits section in the HOWTO.
Where to get it Part of some Linux Distributions Debian Krud Redhat Powertools up to Many other sources
References Questions?