CS 5410 - Computer and Network Security: Firewalls › class › cnt5410fa15 › slides › ... ·...

23
Southeastern Security for Enterprise and Infrastructure (SENSEI) Center CS 5410 - Computer and Network Security: Firewalls Professor Kevin Butler Fall 2015

Transcript of CS 5410 - Computer and Network Security: Firewalls › class › cnt5410fa15 › slides › ... ·...

Page 1: CS 5410 - Computer and Network Security: Firewalls › class › cnt5410fa15 › slides › ... · Southeastern Security for Enterprise and Infrastructure (SENSEI) Center Practical

Southeastern Security for Enterprise and Infrastructure (SENSEI) Center

CS 5410 - Computer and Network Security:

Firewalls

Professor Kevin ButlerFall 2015

Page 2: CS 5410 - Computer and Network Security: Firewalls › class › cnt5410fa15 › slides › ... · Southeastern Security for Enterprise and Infrastructure (SENSEI) Center Practical

Southeastern Security for Enterprise and Infrastructure (SENSEI) Center

Firewalls• A firewall ... is a physical barrier inside a

building or vehicle, designed to limit the spread of fire, heat and structural collapse.

2

Page 3: CS 5410 - Computer and Network Security: Firewalls › class › cnt5410fa15 › slides › ... · Southeastern Security for Enterprise and Infrastructure (SENSEI) Center Practical

Southeastern Security for Enterprise and Infrastructure (SENSEI) Center

Filtering: Firewalls• Filtering traffic based on policy

‣ Policy determines what is acceptable traffic

‣ Access control over traffic

‣ Accept or deny

• May perform other duties

‣ Logging (forensics, SLA)

‣ Flagging (intrusion detection)

‣ QoS (differentiated services)

Application

Network

Link

3

Page 4: CS 5410 - Computer and Network Security: Firewalls › class › cnt5410fa15 › slides › ... · Southeastern Security for Enterprise and Infrastructure (SENSEI) Center Practical

Southeastern Security for Enterprise and Infrastructure (SENSEI) Center

IP Firewall Policy• Specifies what traffic is (not) allowed

• Maps attributes to address and ports

• Example: HTTP should be allowed to any external host, but inbound only to web-server

4

Page 5: CS 5410 - Computer and Network Security: Firewalls › class › cnt5410fa15 › slides › ... · Southeastern Security for Enterprise and Infrastructure (SENSEI) Center Practical

Southeastern Security for Enterprise and Infrastructure (SENSEI) Center

X-Listing• Blacklisting - specifying specific connectivity that is

explicitly disallowed

‣ E.g., prevent connections from badguys.com• Whitelisting - specifying specific connectivity that

is explicitly allowed

‣ E.g., allow connections from goodguys.com

• These is useful for IP filtering, SPAM mitigation, …

5

Page 6: CS 5410 - Computer and Network Security: Firewalls › class › cnt5410fa15 › slides › ... · Southeastern Security for Enterprise and Infrastructure (SENSEI) Center Practical

Southeastern Security for Enterprise and Infrastructure (SENSEI) Center

Stateful, Proxy, and Transparent

•Single packet contains insufficient data to make access control decision

‣Stateful: allows historical context consideration

‣Firewall collects data over time

•e.g., TCP packet is part of established session

•Firewalls can affect network traffic

‣Transparent: appear as a single router (network)

‣Proxy: receives, interprets, and reinitiates communication (application)

‣Transparent good for speed (routers), proxies good for complex state (applications)

6

Page 7: CS 5410 - Computer and Network Security: Firewalls › class › cnt5410fa15 › slides › ... · Southeastern Security for Enterprise and Infrastructure (SENSEI) Center Practical

Southeastern Security for Enterprise and Infrastructure (SENSEI) Center

DMZ (De-militarized Zone)• Zone between LAN and Internet (public facing)

7

LANInternet LAN

Mail Server

Web Server

Accounting

Customer Database

Page 8: CS 5410 - Computer and Network Security: Firewalls › class › cnt5410fa15 › slides › ... · Southeastern Security for Enterprise and Infrastructure (SENSEI) Center Practical

Southeastern Security for Enterprise and Infrastructure (SENSEI) Center

Practical Issues and Limitations• Network layer firewalls are dominant

• DMZs allow multi-tiered fire-walling

• Tools are widely available and mature

• Personal firewalls gaining popularity

• Issues

• Network perimeters not quite as clear as before

• E.g., telecommuters, VPNs, wireless, …

• Every access point must be protected

• E.g., this is why war-dialing/war-driving is effective

• Hard to debug, maintain consistency and correctness

• Often seen by non-security personnel as impediment

• E.g., Just open port X so I can use my wonder widget …

• SOAP - why is this protocol an issue?

8

Page 9: CS 5410 - Computer and Network Security: Firewalls › class › cnt5410fa15 › slides › ... · Southeastern Security for Enterprise and Infrastructure (SENSEI) Center Practical

Southeastern Security for Enterprise and Infrastructure (SENSEI) Center

The Wool firewall study ..

• 12 error classes• No default policy, automatic broad tools• NetBIOS (the very use of the Win protocol deemed error)• Portmapper protocols• Use of “any wildcards”• Lack of egress rules

• Interesting questions:• Is the violation of Wool’s errors really a problem?• ICMP comments?• Why do you think more expensive firewalls had a higher

occurrence of errors?

• Take away: configurations are bad

9

Page 10: CS 5410 - Computer and Network Security: Firewalls › class › cnt5410fa15 › slides › ... · Southeastern Security for Enterprise and Infrastructure (SENSEI) Center Practical

Southeastern Security for Enterprise and Infrastructure (SENSEI) Center

Practical Firewall Implementations

• Primary task is to filter packets

‣ But systems and requirements are complex

• Consider

‣ All the protocols and services

‣ Stateless vs. stateful firewalls

‣ Network function: NAT, forwarding, etc.

• Practical implementation: Linux iptables

‣ http://www.netfilter.org/documentation/HOWTO/packet-filtering-HOWTO.html

‣ http://linux.web.cern.ch/linux/scientific3/docs/rhel-rg-en-3/ch-iptables.html

10

Page 11: CS 5410 - Computer and Network Security: Firewalls › class › cnt5410fa15 › slides › ... · Southeastern Security for Enterprise and Infrastructure (SENSEI) Center Practical

Southeastern Security for Enterprise and Infrastructure (SENSEI) Center

Netfilter hook• Series of hooks in Linux network protocol stack • An iptable rule set is evaluated at each‣ “PREROUTING”: before routing ‣ “INPUT”: inbound to local destination‣ “FORWARD”: inbound but routed off host‣ “OUTPUT”: outbound to remote destination‣ “POSTROUTING”: after routing

11

Preroute

Input

Forward PostrouteRouting

Output

Page 12: CS 5410 - Computer and Network Security: Firewalls › class › cnt5410fa15 › slides › ... · Southeastern Security for Enterprise and Infrastructure (SENSEI) Center Practical

Southeastern Security for Enterprise and Infrastructure (SENSEI) Center

iptables Concepts

• Table: allows policies to be cleanly separated by purpose (default: “-t filter”, also: “-t nat”, “-t mangle” and “-t raw”)Each table as a set of default chains.

• Chain: list of rules associated with the chain identifier, e.g., hook name (INPUT, OUTPUT, etc)

• Match: when all a rule’s field match the packet• Target: operation to execute on a packet given a match

12

The iptables firewall looks in the firewall table to seek if the chain associated with the current hook matches a packet, and executes the target if it does.

Page 13: CS 5410 - Computer and Network Security: Firewalls › class › cnt5410fa15 › slides › ... · Southeastern Security for Enterprise and Infrastructure (SENSEI) Center Practical

Southeastern Security for Enterprise and Infrastructure (SENSEI) Center

Table/Chain Traversal

13

http://www.linuxtopia.org/Linux_Firewall_iptables/c951.html

Page 14: CS 5410 - Computer and Network Security: Firewalls › class › cnt5410fa15 › slides › ... · Southeastern Security for Enterprise and Infrastructure (SENSEI) Center Practical

Southeastern Security for Enterprise and Infrastructure (SENSEI) Center

iptables Commands

• Commands

• Append rule to end or specific location in chain (-A)

• Delete a specific rule in a chain (-D)

• Replace a rule (-R)

• Flush a chain (-F)

• List a chain (-L)

• Set a default chain policy (-P)

• Create a new user-specified chain (-N)

• Remove an empty (user-specified) chain (-X)

14

iptables [-t <table_name>] <cmd> <chain> <plist>

Page 15: CS 5410 - Computer and Network Security: Firewalls › class › cnt5410fa15 › slides › ... · Southeastern Security for Enterprise and Infrastructure (SENSEI) Center Practical

Southeastern Security for Enterprise and Infrastructure (SENSEI) Center

iptables Rule Parameters• Things you can match on

• Destination/Source

• IP address range and netmask

• Protocol of packet

• ICMP, TCP, etc

• Fragmented only

• Incoming/outgoing interface

• Target on rule match

15

Page 16: CS 5410 - Computer and Network Security: Firewalls › class › cnt5410fa15 › slides › ... · Southeastern Security for Enterprise and Infrastructure (SENSEI) Center Practical

Southeastern Security for Enterprise and Infrastructure (SENSEI) Center

Test it out• PING on localhost

‣ ping -c 1 127.0.0.1

• Add iptables rule to block

‣ iptables -A INPUT -s 127.0.0.1 -p icmp -j DROP

• Try ping

• Delete the rule

‣ iptables -D INPUT 1

‣ iptables -D INPUT -s 127.0.0.1 -p icmp -j DROP

‣ iptables -F INPUT

16

Page 17: CS 5410 - Computer and Network Security: Firewalls › class › cnt5410fa15 › slides › ... · Southeastern Security for Enterprise and Infrastructure (SENSEI) Center Practical

Southeastern Security for Enterprise and Infrastructure (SENSEI) Center

Testing• Use loopback to test the rules locally on your machine• IP address 127.0.0.1

• ICMP• submit ping requests to 127.0.0.1 as above

• TCP• submit requests to 127.0.0.1 at specific port• server • nc -l 3750• listen at port 3750

• client • nc -p 3000 localhost 3750• send from port 3000 to localhost at port 3750

17

Page 18: CS 5410 - Computer and Network Security: Firewalls › class › cnt5410fa15 › slides › ... · Southeastern Security for Enterprise and Infrastructure (SENSEI) Center Practical

Southeastern Security for Enterprise and Infrastructure (SENSEI) Center

Per Protocol Options• Specialized matching options for rules

‣ Specific to protocol

• TCP

‣ Source/destination ports

‣ SYN

‣ TCP flags

18

Page 19: CS 5410 - Computer and Network Security: Firewalls › class › cnt5410fa15 › slides › ... · Southeastern Security for Enterprise and Infrastructure (SENSEI) Center Practical

Southeastern Security for Enterprise and Infrastructure (SENSEI) Center

Targets• Define what to do with the packet at this time

• ACCEPT/DROP

• QUEUE for user-space application

• LOG any packet that matches

• REJECT drops and returns error packet

• RETURN enables packet to return to previous chain

• <user-specified> passes packet to that chain

19

## Create chain which blocks new connections, except if coming from inside.# iptables -N block# iptables -A block -m state --state ESTABLISHED,RELATED -j ACCEPT# iptables -A block -m state --state NEW -i ! ppp0 -j ACCEPT# iptables -A block -j DROP

## Jump to that chain from INPUT and FORWARD chains.# iptables -A INPUT -j block# iptables -A FORWARD -j block

Page 20: CS 5410 - Computer and Network Security: Firewalls › class › cnt5410fa15 › slides › ... · Southeastern Security for Enterprise and Infrastructure (SENSEI) Center Practical

Southeastern Security for Enterprise and Infrastructure (SENSEI) Center

Examples iptables -A INPUT -s 200.200.200.2 -j ACCEPT

iptables -A INPUT -s 200.200.200.1 -j DROP

iptables -A INPUT -s 200.200.200.1 -p tcp -j DROP

iptables -A INPUT -s 200.200.200.1 -p tcp --dport telnet -j DROP

iptables -A INPUT -p tcp --destination-port telnet -i ppp0 -j DROP

20

Page 21: CS 5410 - Computer and Network Security: Firewalls › class › cnt5410fa15 › slides › ... · Southeastern Security for Enterprise and Infrastructure (SENSEI) Center Practical

Southeastern Security for Enterprise and Infrastructure (SENSEI) Center

Example: Host Firewall• Assume you have a host with one network

interface (eth0). You are running SSH (port 22) and want to allow access by external hosts. You are also running Apache for Web development, and only want it to be accessed by other hosts on the LAN (10.0.2.0/24)

21

# iptables -F INPUT# iptables -F OUTPUT# iptables -F FORWARD# iptables -P INPUT DROP# iptables -P OUTPUT ACCEPT# iptables -P FORWARD DROP

# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT# iptables -A INPUT -i eth0 -m state --state NEW --dport 22 -j ACCEPT# iptables -A INPUT -i eth0 -m state --state NEW -s 10.0.2.0/24 --dport 80 -j ACCEPT

Page 22: CS 5410 - Computer and Network Security: Firewalls › class › cnt5410fa15 › slides › ... · Southeastern Security for Enterprise and Infrastructure (SENSEI) Center Practical

Southeastern Security for Enterprise and Infrastructure (SENSEI) Center

FW1 FW2

eth0 eth1eth0 eth1

Example: Gateway/DMZ Firewalls• Assume you have two firewalls

(FW1 and FW2), each with two ethernet interfaces(eth0 and eth1).

• FW1 protects the DMZ, and FW2 protects the LAN

• Define an iptables policy for FW1 that:

• Allows new Internet traffic to reach port 80 on 10.0.1.13

• Does not allow traffic to reach the LAN (10.0.2.0/24)

• Define an iptables policy for FW2 that

• Allows internal hosts to reach the webserver, but nothing else in the DMZ (10.0.1.0/24), and can reach the larger Internet

• Prevents DMZ hosts from initiating connections to LAN

22

Page 23: CS 5410 - Computer and Network Security: Firewalls › class › cnt5410fa15 › slides › ... · Southeastern Security for Enterprise and Infrastructure (SENSEI) Center Practical

Southeastern Security for Enterprise and Infrastructure (SENSEI) Center

Example: Gateway/DMZ Firewalls

• FW1 Policy

• FW2 Policy

23

# iptables -F INPUT# iptables -F OUTPUT# iptables -F FORWARD# iptables -P INPUT DROP# iptables -P OUTPUT DROP# iptables -P FORWARD DROP

# iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT# iptables -A FORWARD -i eth0 -o eth1 -m state --state NEW -d 10.0.1.13 --dport 80 -j ACCEPT# iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

# iptables -F INPUT# iptables -F OUTPUT# iptables -F FORWARD# iptables -P INPUT DROP# iptables -P OUTPUT DROP# iptables -P FORWARD DROP

# iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT# iptables -A FORWARD -i eth1 -o eth0 -m state --state NEW -d 10.0.1.13 --dport 80 -j ACCEPT# iptables -A FORWARD -i eth1 -o eth0 -d ! 10.0.1.0/24 -j ACCEPT