+ All Categories
Home > Documents > Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections...

Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections...

Date post: 07-Nov-2018
Category:
Upload: trancong
View: 218 times
Download: 0 times
Share this document with a friend
40
Titolo presentazione sottotitolo Milano, XX mese 20XX Piattaforme Software per la Rete Firewall and NAT A.A. 2016/17 Federico Reghenzani, Alessandro Barenghi
Transcript
Page 1: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

Titolo presentazionesottotitolo

Milano, XX mese 20XX

Piattaforme Software per la Rete

Firewall and NAT

A.A. 2016/17Federico Reghenzani, Alessandro Barenghi

Page 2: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

Federico Reghenzani 2/40

Dipartimento di Elettronica, Informazione e Bioingegneria

Outline

1) Packet Filtering

2) Firewall management

3) NAT review

4) NAT management

5) The netcat tool

Page 3: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

Packet Filtering

Page 4: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

Federico Reghenzani 4/40

Dipartimento di Elettronica, Informazione e Bioingegneria

Packet Filtering – Introduction

● A firewall (or packet filter) is a toolkit deciding whether packets passing from an host are to be kept or discarded

● The (main) firewall should be the single point of contact between the secure and insecure zone

Page 5: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

Federico Reghenzani 5/40

Dipartimento di Elettronica, Informazione e Bioingegneria

Packet Filtering – Why?

● Why Firewall?

– Avoiding unauthorized connections in both directions

– Packet sanitization: packets integrity checks are performed during filtering

– NAT and NAPT strategies can be employed by a packet-mangling firewall

– It can provide several other network services (e.g. VPN, DHCP, ...)

Page 6: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

Federico Reghenzani 6/40

Dipartimento di Elettronica, Informazione e Bioingegneria

Stateful packet filtering

● A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions

● It inspects also protocols of OSI level > 3

● It discards any packet not involved from an active connection

– e.g. TCP packets without a previous SYN, SYN-ACK, ACK

● Useful with some high-level protocols, such as FTP, that require ports to be opened on-the-fly

Page 7: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

Federico Reghenzani 7/40

Dipartimento di Elettronica, Informazione e Bioingegneria

Packet Filtering in Linux

● In Linux:

– It’s in kernel-space due to performance reasons and integration with network stack

– Tools are in user-space

● We will see Netfilter (kernel-space) / IPTables (user-space)

Page 8: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

Federico Reghenzani 8/40

Dipartimento di Elettronica, Informazione e Bioingegneria

Netfilter – Structure

● NetFilter is a set of kernel modules implementing filtering functions

● The communication with the userspace management tools happens via Netlink sockets

● The NetFilter structure is based on five hooks, placed on the path of incoming/outgoing packets

● Each of the five hooks executes a set of rules each time a packet passes through it

Page 9: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

Federico Reghenzani 9/40

Dipartimento di Elettronica, Informazione e Bioingegneria

Netfilter – Hooks

Network Network

FromLevel 2

ToLevel 2

Pre-Routing Post-RoutingForwardIngoingRouting

OutgoingRouting

Input Output

NetFilter Hooks

Lower layers

Routing

Page 10: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

Federico Reghenzani 10/40

Dipartimento di Elettronica, Informazione e Bioingegneria

Netfilter chains (1/2)

● A Netfilter chain is characterised by an ordered list of rules which are triggered on a certain condition on the packet

● If no rule matches the packet, the default action, i.e. the chain policy is adopted

● Chains are organized in tables:

– Filter: accept/reject packet rules

– NAT: network address translation rules

– Mangle: alter IP headers (e.g. change the TTL)

– RAW: general purpose (e.g. stateful actions)

Page 11: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

Federico Reghenzani 11/40

Dipartimento di Elettronica, Informazione e Bioingegneria

Netfilter chains (2/2)

● Every builtin chain has a default policy, i.e. a default action to be performed on the packet:

– ACCEPT: the packet flows through the hook, towards its destination

– QUEUE: the packet is sent to the userspace via Netlink for examination

– DROP: the packeet is discarded and treated as it never existed

– ...

● The default policy is ACCEPT for all the chains

Page 12: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

Federico Reghenzani 12/40

Dipartimento di Elettronica, Informazione e Bioingegneria

Reasonable default policies

Network Network

FromLevel 2

ToLevel 2

Pre-Routing Post-RoutingForwardIngoingRouting

OutgoingRouting

Input Output

NetFilter Hooks

Lower layers

Routing

ACCEPT ACCEPT

ACCEPT

DROP

DROP

Page 13: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

Firewall management

Page 14: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

Federico Reghenzani 14/40

Dipartimento di Elettronica, Informazione e Bioingegneria

IPTables

● The Netfilter behaviour is modified via the command

● A rule is composed of two parts: the match and the target

– The match specifies the conditions regarding the packet which will trigger the rule

– The target specifies the fate of the packet

iptables

Page 15: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

Federico Reghenzani 15/40

Dipartimento di Elettronica, Informazione e Bioingegneria

IPTables – Target

● Possible targets for a rule are:

– ACCEPT/DROP (behave exactly as the policies)

– REJECT: drop the packet but the sender is notified of the rejection (e.g. ICMP destination unreachable)

– LOG: write a line in the kernel log

– MIRROR: swap source and destination addresses and immediately sends the packets without passing via other chains

– RATEEST: add the packets to the statistic of a rate estimator

Page 16: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

Federico Reghenzani 16/40

Dipartimento di Elettronica, Informazione e Bioingegneria

IPTables – Syntax (1/2)

● The generic command is structured as:

● Possible actions are:

– : append a rule at the end of the chain

– : delete the specific rule

– : insert the rule as the n-th

– : replace the n-th rule

– : list all the rules ( for additional information)

– : flush a chain (but do not reset the policy)

iptables

iptables [-t table] <action> <rule>

-A <chain>

-D <chain>

-I <chain> <num>-I <chain> <num>

-R <chain> <num>

-L

-F <chain>

-v

Page 17: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

Federico Reghenzani 17/40

Dipartimento di Elettronica, Informazione e Bioingegneria

IPTables – Syntax (2/2)

● Set target:

● Change the default policy:

– Policy can be ACCEPT, QUEUE, DROP

iptables -P <chain> <policy>

-j <target>

Page 18: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

Federico Reghenzani 18/40

Dipartimento di Elettronica, Informazione e Bioingegneria

IPTables – Matching (1/6)

● The first and simplest match for a packet is to decide an action depending on the interface it was received on

● The inbound/outbound interface matches are specified via the / option

– can only be used in INPUT, FORWARD and PREROUTING

– can only be used in OUTPUT, FORWARD and POSTROUTING

– Usually used to differentiate the trust zone (e.g. LAN) from the untrust one (e.g. WAN)

-i <iface> -o <iface>

-i <iface>

-o <iface>

Page 19: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

Federico Reghenzani 19/40

Dipartimento di Elettronica, Informazione e Bioingegneria

IPTables – Matching (2/6)

● Another common match is the source or destination IP address

● The source/destination interface matches are specified via the / option

– It is possible to specify the CIDR notation with /n bits or /a.b.c.d netmask

– It is also possible to use non-contiguos netmask, e.g. 255.255.255.249 (that matches all the odd hosts > .7)

-s <source> -d <destination>

Page 20: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

Federico Reghenzani 20/40

Dipartimento di Elettronica, Informazione e Bioingegneria

IPTables – Matching (3/6)

● Matching the L4 protocol used

● Option:

● Pay attention when filtering ICMP messages

-p [tcp|udp|udplite|icmp|esp|ah|sctp|all]

Page 21: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

Federico Reghenzani 21/40

Dipartimento di Elettronica, Informazione e Bioingegneria

IPTables – Matching (4/6)

● Port matching (only for TCP and UDP matching)

● Options:

● If you want to match multiple ports you have to add:

● Both options allow to match a set of comma-separated ports

– e.g.

● If the ports to be matched are contiguous a range can be specified:

– e.g.

--sport[s] --dport[s]

--dports 22,80

--dports 6881:6890

-m multiport

Page 22: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

Federico Reghenzani 22/40

Dipartimento di Elettronica, Informazione e Bioingegneria

IPTables – Matching (5/6)

● Connection state matching

● Options:

● Possible statuses:

– NEW: the beginning of a connection

– ESTABLISHED: the packet is part of a connection flow

– RELATED: the packet belongs to a related connection (e.g. FTP)

– INVALID: the packet cannot be part of valid connection

– UNTRACKED: the packet is not being tracked

-m state --state <conn_state>

Page 23: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

Federico Reghenzani 23/40

Dipartimento di Elettronica, Informazione e Bioingegneria

IPTables – Matching (6/6)

● Matching the connections rate

● Limiting the action of the rule:

– Often used for LOG rules

– Can be exploited for simple DOS protection

● Recent connections matching:

– Useful to avoid brute-force attacks

-m limit --limit <times/s>

-m recent --set

-m recent --update --seconds <n> --hitcount <k>

Page 24: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

Federico Reghenzani 24/40

Dipartimento di Elettronica, Informazione e Bioingegneria

IPTables – Saving configuration

● IPTables does not keep configuration across reboots

● You can use the and commands to respectively dump and restore the configuration

● Usually, each Linux distribution has a method to change the boot iptables configuration

– e.g. in Ubuntu you can use the command

iptables-save iptables-restore

netfilter-persistent

Page 25: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

NAT Review

Page 26: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

Federico Reghenzani 26/40

Dipartimento di Elettronica, Informazione e Bioingegneria

(S|D)NA[P]T

● NAT: Network Address Translation

– Translating IP addresses of IP packets

● NAPT: Network Address Port Translation

– It involves the L4 (typically TCP, UDP)

– Translate IP address based on L4 used port

● SNAT: Source NAT

● DNAT: Destination NAT

● SNAPT, DNAPT

Page 27: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

Federico Reghenzani 27/40

Dipartimento di Elettronica, Informazione e Bioingegneria

Source NAT

● It concentrates a number of hosts behind a single IP

● Common when a LAN needs to access a public network but only one public IP address is available

192.168.0.2

192.168.0.1 131.175.121.15

178.56.33.120

Source

Destination

Page 28: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

Federico Reghenzani 28/40

Dipartimento di Elettronica, Informazione e Bioingegneria

Destination NAT

● Symmetrically, it translates a public IP to a private one

192.168.0.2

192.168.0.1 131.175.121.15

178.56.33.120

Destination

Source

Page 29: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

Federico Reghenzani 29/40

Dipartimento di Elettronica, Informazione e Bioingegneria

NAT features/issues

● Once a NAT strategy is actuated, the IP domains on the two sides of the NAT are effectively split

● It is possible to mitigate the IPv4 address exhaustion

● The hosts behind a NAT are (perfectly) opaque

● The host performing NAT must actively alter the packets, no end-to-end trasparency

Page 30: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

Federico Reghenzani 30/40

Dipartimento di Elettronica, Informazione e Bioingegneria

NAT table

● In order to perform a correct NAT, a table containing all the connections must be kept

● Every time a new connection is required, a line is added to the table

● The address translation mechanism will consistently map back the returning packets to the correct host

● Once a connection is torn down, the line in the mapping is removed

Page 31: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

Federico Reghenzani 31/40

Dipartimento di Elettronica, Informazione e Bioingegneria

NAT vs NAPT

● Network Address Translation

● It works at L3

● It works with any IP traffic

● It allows1-to-1 mapping

● Network Address Port Translation

● It works at L3 and L4

● It works with TCP, UDP, ICMP traffic (other extensions exist)

● It allowsmany-to-1 mapping

Page 32: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

Federico Reghenzani 32/40

Dipartimento di Elettronica, Informazione e Bioingegneria

Source NAPT

● It concentrates a number of hosts behind a single IP

192.168.0.2:10001

192.168.0.1 131.175.121.15:19001

178.56.33.120:80

Source

Destination192.168.0.3:10002

131.175.121.15:19002

Page 33: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

Federico Reghenzani 33/40

Dipartimento di Elettronica, Informazione e Bioingegneria

Destination NAPT

● It enables the mapping of one single IP public address to multiple private servers

192.168.0.2:80

192.168.0.1 131.175.121.15:80HTTP Server

Sources192.168.0.3:21

131.175.121.15:21

FTP Server

Page 34: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

NAT Management

Page 35: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

Federico Reghenzani 35/40

Dipartimento di Elettronica, Informazione e Bioingegneria

Netfilter – NAT Hooks

Network Network

FromLevel 2

ToLevel 2

Pre-Routing Post-RoutingForwardIngoingRouting

OutgoingRouting

Input Output

NetFilter Hooks

Lower layers

Routing

NAT NAT

NAT(rare)

Page 36: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

Federico Reghenzani 36/40

Dipartimento di Elettronica, Informazione e Bioingegneria

Source NAT – IPTables

● Source NAT is performed in the POSTROUTING hook, when the packet is about to leave

● The corresponding translation for the returning packet is automatically managed

● A simple rule to match all traffic:

● If the output address is not known (e.g. dynamic public IP)

-t nat -A POSTROUTING -j SNAT --to <address>

-t nat -A POSTROUTING -j MASQUERADE -o <dev>

Page 37: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

Federico Reghenzani 37/40

Dipartimento di Elettronica, Informazione e Bioingegneria

Destination NAT – IPTables

● Destination NAT is performed in the PREROUTING hook, before anything is done to the packets

● The bi-directional communication of an established connection is also automatically managed

● A simple rule to match all traffic:

● Obviously, no automatic destination selection can be performed here

-t nat -A PREROUTING -j DNAT --to-destination <address>

Page 38: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

Federico Reghenzani 38/40

Dipartimento di Elettronica, Informazione e Bioingegneria

[S|D]NAPT – IPTables

● Both the Source and Destination NAT in NetFilter can be performed taking also into account ports

● The destination port of a NAT retargeted packet can simply be specified adding :port to the translated address

● A port range for both destination and source can be specified as :port-port

– By default the ports are mapped 1:1 on the range

Page 39: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

The netcat tool

Page 40: Packet Filtering - Intranet DEIB · A stateful firewall is a firewall able to track the connections status and to decide accordingly the packet filtering actions ... IPTables does

Federico Reghenzani 40/40

Dipartimento di Elettronica, Informazione e Bioingegneria

Netcat

● The tool (or ) allows the user to easily send UDP or TCP packets

● It can work as server or client

● TCP Server:

● TCP Client:

● UDP Server:

● UDP Client:

netcat nc

netcat -l -p <port>

netcat <ip> <port>

netcat -u -l -p <port>

netcat -u <ip> <port>


Recommended