]> git.donarmstrong.com Git - dsa-puppet.git/blob - modules/ferm/manifests/per-host.pp
pg firewall on grieg
[dsa-puppet.git] / modules / ferm / manifests / per-host.pp
1 class ferm::per-host {
2         if $::hostname in [ancina,zandonai,zelenka] {
3                 include ferm::zivit
4         }
5
6         if $::hostname in [klecker,merikanto,powell,ravel,rietz,senfl,sibelius,stabile] {
7                 ferm::rule { 'dsa-rsync':
8                         domain      => '(ip ip6)',
9                         description => 'Allow rsync access',
10                         rule        => '&SERVICE(tcp, 873)'
11                 }
12         }
13
14         case $::hostname {
15                 piatti,samosa: {
16                         @ferm::rule { 'dsa-udd-stunnel':
17                                 description  => 'port 8080 for udd stunnel',
18                                 rule         => '&SERVICE_RANGE(tcp, http-alt, ( 192.25.206.16 70.103.162.29 217.196.43.134 ))'
19                         }
20                 }
21                 grieg: {
22                         @ferm::rule { 'dsa-postgres-ullmann':
23                                 description     => 'Allow postgress access',
24                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 206.12.19.141/32 ))'
25                         }
26                         @ferm::rule { 'dsa-postgres-ullmann6':
27                                 domain          => '(ip6)',
28                                 description     => 'Allow postgress access',
29                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 2607:f8f0:610:4000:6564:a62:ce0c:138d/128 ))'
30                         }
31                 }
32                 danzi: {
33                         @ferm::rule { 'dsa-postgres-danzi':
34                                 description     => 'Allow postgress access',
35                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 206.12.19.0/24 ))'
36                         }
37                         @ferm::rule { 'dsa-postgres2-danzi':
38                                 description     => 'Allow postgress access2',
39                                 rule            => '&SERVICE_RANGE(tcp, 5437, ( 206.12.19.0/24 ))'
40                         }
41                         @ferm::rule { 'dsa-postgres3-danzi':
42                                 description     => 'Allow postgress access3',
43                                 rule            => '&SERVICE_RANGE(tcp, 5436, ( 206.12.19.0/24 ))'
44                         }
45                         @ferm::rule { 'dsa-postgres4-danzi':
46                                 description     => 'Allow postgress access4',
47                                 rule            => '&SERVICE_RANGE(tcp, 5438, ( 206.12.19.0/24 ))'
48                         }
49                 }
50                 abel,alwyn,rietz: {
51                         @ferm::rule { 'dsa-tftp':
52                                 description     => 'Allow tftp access',
53                                 rule            => '&SERVICE(udp, 69)'
54                         }
55                 }
56                 paganini: {
57                         @ferm::rule { 'dsa-dhcp':
58                                 description     => 'Allow dhcp access',
59                                 rule            => '&SERVICE(udp, 67)'
60                         }
61                         @ferm::rule { 'dsa-tftp':
62                                 description     => 'Allow tftp access',
63                                 rule            => '&SERVICE(udp, 69)'
64                         }
65                 }
66                 powell: {
67                         @ferm::rule { 'dsa-powell-v6-tunnel':
68                                 description     => 'Allow powell to use V6 tunnel broker',
69                                 rule            => 'proto ipv6 saddr 212.227.117.6 jump ACCEPT'
70                         }
71                         @ferm::rule { 'dsa-powell-btseed':
72                                 domain          => '(ip ip6)',
73                                 description     => 'Allow powell to seed BT',
74                                 rule            => 'proto tcp dport 8000:8100 jump ACCEPT'
75                         }
76                 }
77                 lotti,lully: {
78                         @ferm::rule { 'dsa-syslog':
79                                 description     => 'Allow syslog access',
80                                 rule            => '&SERVICE_RANGE(tcp, 5140, $HOST_DEBIAN_V4)'
81                         }
82                         @ferm::rule { 'dsa-syslog-v6':
83                                 domain          => 'ip6',
84                                 description     => 'Allow syslog access',
85                                 rule            => '&SERVICE_RANGE(tcp, 5140, $HOST_DEBIAN_V6)'
86                         }
87                 }
88                 kaufmann: {
89                         @ferm::rule { 'dsa-hkp':
90                                 domain          => '(ip ip6)',
91                                 description     => 'Allow hkp access',
92                                 rule            => '&SERVICE(tcp, 11371)'
93                         }
94                 }
95                 gombert: {
96                         @ferm::rule { 'dsa-infinoted':
97                                 domain          => '(ip ip6)',
98                                 description     => 'Allow infinoted access',
99                                 rule            => '&SERVICE(tcp, 6523)'
100                         }
101                 }
102                 draghi: {
103                         #@ferm::rule { 'dsa-bind':
104                         #    domain          => '(ip ip6)',
105                         #    description     => 'Allow nameserver access',
106                         #    rule            => '&TCP_UDP_SERVICE(53)'
107                         #}
108                         @ferm::rule { 'dsa-finger':
109                                 domain          => '(ip ip6)',
110                                 description     => 'Allow finger access',
111                                 rule            => '&SERVICE(tcp, 79)'
112                         }
113                         @ferm::rule { 'dsa-ldap':
114                                 domain          => '(ip ip6)',
115                                 description     => 'Allow ldap access',
116                                 rule            => '&SERVICE(tcp, 389)'
117                         }
118                         @ferm::rule { 'dsa-ldaps':
119                                 domain          => '(ip ip6)',
120                                 description     => 'Allow ldaps access',
121                                 rule            => '&SERVICE(tcp, 636)'
122                         }
123                 }
124                 cilea: {
125                         ferm::module { 'nf_conntrack_sip': }
126                         ferm::module { 'nf_conntrack_h323': }
127
128                         @ferm::rule { 'dsa-sip':
129                                 domain          => '(ip ip6)',
130                                 description     => 'Allow sip access',
131                                 rule            => '&TCP_UDP_SERVICE(5060)'
132                         }
133                         @ferm::rule { 'dsa-sipx':
134                                 domain          => '(ip ip6)',
135                                 description     => 'Allow sipx access',
136                                 rule            => '&TCP_UDP_SERVICE(5080)'
137                         }
138                 }
139                 scelsi: {
140                         @ferm::rule { 'dc11-icecast':
141                                 domain          => '(ip ip6)',
142                                 description     => 'Allow icecast access',
143                                 rule            => '&SERVICE(tcp, 8000)'
144                         }
145                 }
146                 default: {}
147         }
148
149         if $::hostname in [rautavaara,luchesi] {
150                 @ferm::rule { 'dsa-to-kfreebsd':
151                         description     => 'Traffic routed to kfreebsd hosts',
152                         chain           => 'to-kfreebsd',
153                         rule            => 'proto icmp ACCEPT;
154 source ($FREEBSD_SSH_ACCESS $HOST_NAGIOS_V4) proto tcp dport 22 ACCEPT;
155 source ($HOST_MAILRELAY_V4 $HOST_NAGIOS_V4) proto tcp dport 25 ACCEPT;
156 source ($HOST_MUNIN_V4 $HOST_NAGIOS_V4) proto tcp dport 4949 ACCEPT;
157 source ($HOST_NAGIOS_V4) proto tcp dport 5666 ACCEPT;
158 source ($HOST_NAGIOS_V4) proto udp dport ntp ACCEPT
159 '
160                 }
161                 @ferm::rule { 'dsa-from-kfreebsd':
162                         description     => 'Traffic routed from kfreebsd vlan/bridge',
163                         chain           => 'from-kfreebsd',
164                         rule            => 'proto icmp ACCEPT;
165 proto tcp dport (21 22 80 53 443) ACCEPT;
166 proto udp dport (53 123) ACCEPT;
167 proto tcp dport 8140 daddr 82.195.75.104 ACCEPT; # puppethost
168 proto tcp dport 5140 daddr (82.195.75.99 206.12.19.121) ACCEPT; # loghost
169 proto tcp dport 11371 daddr 82.195.75.107 ACCEPT; # keyring host
170 proto tcp dport (25 submission) daddr ($HOST_MAILRELAY_V4) ACCEPT
171 '
172                 }
173         }
174         case $::hostname {
175                 rautavaara: {
176                         @ferm::rule { 'dsa-routing':
177                                 description     => 'forward chain',
178                                 chain           => 'FORWARD',
179                                 rule            => 'def $ADDRESS_FASCH=194.177.211.201;
180 def $ADDRESS_FIELD=194.177.211.210;
181 def $FREEBSD_HOSTS=($ADDRESS_FASCH $ADDRESS_FIELD);
182
183 policy ACCEPT;
184 mod state state (ESTABLISHED RELATED) ACCEPT;
185 interface vlan11 outerface eth0 jump from-kfreebsd;
186 interface eth0 destination ($FREEBSD_HOSTS) jump to-kfreebsd;
187 ULOG ulog-prefix "REJECT FORWARD: ";
188 REJECT reject-with icmp-admin-prohibited
189 '
190                         }
191                 }
192                 luchesi: {
193                         @ferm::rule { 'dsa-routing':
194                                 description     => 'forward chain',
195                                 chain           => 'FORWARD',
196                                 rule            => 'def $ADDRESS_FANO=206.12.19.110;
197 def $ADDRESS_FINZI=206.12.19.111;
198 def $ADDRESS_FISCHER=206.12.19.112;
199 def $ADDRESS_FALLA=206.12.19.117;
200 def $FREEBSD_HOSTS=($ADDRESS_FANO $ADDRESS_FINZI $ADDRESS_FISCHER $ADDRESS_FALLA);
201
202 policy ACCEPT;
203 mod state state (ESTABLISHED RELATED) ACCEPT;
204 interface br0 outerface br0 ACCEPT;
205 interface br1 outerface br1 ACCEPT;
206
207 interface br2 outerface br0 jump from-kfreebsd;
208 interface br0 destination ($ADDRESS_FISCHER $ADDRESS_FALLA) proto tcp dport 22 ACCEPT;
209 interface br0 destination ($FREEBSD_HOSTS) jump to-kfreebsd;
210 ULOG ulog-prefix "REJECT FORWARD: ";
211 REJECT reject-with icmp-admin-prohibited
212 '
213                         }
214                 }
215                 default: {}
216         }
217
218         # redirect snapshot into varnish
219         case $::hostname {
220                 sibelius: {
221                         @ferm::rule { 'dsa-snapshot-varnish':
222                                 rule            => '&SERVICE(tcp, 6081)',
223                         }
224                         @ferm::rule { 'dsa-nat-snapshot-varnish':
225                                 table           => 'nat',
226                                 chain           => 'PREROUTING',
227                                 rule            => 'proto tcp daddr 193.62.202.30 dport 80 REDIRECT to-ports 6081',
228                         }
229                 }
230                 stabile: {
231                         @ferm::rule { 'dsa-snapshot-varnish':
232                                 rule            => '&SERVICE(tcp, 6081)',
233                         }
234                         @ferm::rule { 'dsa-nat-snapshot-varnish':
235                                 table           => 'nat',
236                                 chain           => 'PREROUTING',
237                                 rule            => 'proto tcp daddr 206.12.19.150 dport 80 REDIRECT to-ports 6081',
238                         }
239                 }
240                 default: {}
241         }
242 }