summaryrefslogtreecommitdiff
path: root/fw/lib/example.ndb
blob: 60f51199dc693866934d9b2b229fcac12f34724c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#
# every attribute fw understands.  an attribute that is absent does
# not constrain, so there is never a "*" to write; it is accepted, but
# leaving the attribute out says the same thing more quietly.
#
#	allow=<dir>	the rule permits.  dir is in, out or *
#	deny=<dir>	the rule refuses
#	proto=<name>	a protocol: tcp, udp, icmp, ...
#	port=<n>	the port at the far end
#	lport=<n>	the port at this end
#	ip=<addr>	the address at the far end, optionally with a /mask
#	ipmask=<mask>	the mask, if you would rather write it separately
#
# in and out are directions, not layers: the same rule means the same
# thing whether fw is matching it against a packet on a wire or against
# a connection a program asked for.  connect and announce are accepted
# as older spellings of out and in.
#
# rules are matched top to bottom and the first one that matches wins.
# nothing matching means deny, so a file with no rules permits nothing.
#

# deny before allow, since the first match wins
deny=out	ip=1.1.1.1
deny=out	ip=8.8.8.8

# the two spellings of a masked address are the same rule
allow=out	ip=10.0.2.0/24
allow=out	ip=192.168.0.0	ipmask=/16

# v6 needs no distinguishing: it is the same attribute
allow=out	ip=2001:db8::/32

# an entry may also be spread over indented continuation lines
allow=out
	proto=tcp
	port=443

# answer on one port, but never call out on it.  lport is our end, so
# this is the port we serve; port would be the caller's, which we do not
# get to know until they call.
allow=in	proto=tcp	lport=17019