for DC17, permit another IPv4 address to access vittoria:5432
[mirror/dsa-puppet.git] / modules / ferm / manifests / per_host.pp
1 class ferm::per_host {
2         if $::hostname in [zandonai,zelenka] {
3                 include ferm::zivit
4         }
5
6         if (getfromhash($site::nodeinfo, 'hoster', 'name') == "aql") {
7                 include ferm::aql
8         }
9
10         case $::hostname {
11                 vittoria: {
12                         @ferm::rule { 'debconf17':
13                                 description     => 'temporarily allow DC17 access',
14                                 rule            => '&SERVICE_RANGE(tcp, 5432, ( 206.167.44.99/32 206.167.36.195/32 ))'
15                         }
16                 }
17                 czerny,clementi: {
18                         @ferm::rule { 'dsa-upsmon':
19                                 description     => 'Allow upsmon access',
20                                 rule            => '&SERVICE_RANGE(tcp, 3493, ( 82.195.75.64/26 192.168.43.0/24 ))'
21                         }
22                 }
23                 bendel: {
24                         @ferm::rule { 'listmaster-ontp-in':
25                                 description => 'ONTP has a broken mail setup',
26                                 table       => 'filter',
27                                 chain       => 'INPUT',
28                                 rule        => 'source 188.165.23.89/32 proto tcp dport 25 jump DROP',
29                         }
30                         @ferm::rule { 'listmaster-ontp-out':
31                                 description => 'ONTP has a broken mail setup',
32                                 table       => 'filter',
33                                 chain       => 'OUTPUT',
34                                 rule        => 'destination 78.8.208.246/32 proto tcp dport 25 jump DROP',
35                         }
36                 }
37                 lotti,lully,loghost-grnet-01: {
38                         @ferm::rule { 'dsa-syslog':
39                                 description     => 'Allow syslog access',
40                                 rule            => '&SERVICE_RANGE(tcp, 5140, $HOST_DEBIAN_V4)'
41                         }
42                         @ferm::rule { 'dsa-syslog-v6':
43                                 domain          => 'ip6',
44                                 description     => 'Allow syslog access',
45                                 rule            => '&SERVICE_RANGE(tcp, 5140, $HOST_DEBIAN_V6)'
46                         }
47                 }
48                 kaufmann: {
49                         @ferm::rule { 'dsa-hkp':
50                                 domain          => '(ip ip6)',
51                                 description     => 'Allow hkp access',
52                                 rule            => '&SERVICE(tcp, 11371)'
53                         }
54                 }
55                 gombert: {
56                         @ferm::rule { 'dsa-infinoted':
57                                 domain          => '(ip ip6)',
58                                 description     => 'Allow infinoted access',
59                                 rule            => '&SERVICE(tcp, 6523)'
60                         }
61                 }
62                 draghi: {
63                         @ferm::rule { 'dsa-finger':
64                                 domain          => '(ip ip6)',
65                                 description     => 'Allow finger access',
66                                 rule            => '&SERVICE(tcp, 79)'
67                         }
68                         @ferm::rule { 'dsa-ldap':
69                                 domain          => '(ip ip6)',
70                                 description     => 'Allow ldap access',
71                                 rule            => '&SERVICE(tcp, 389)'
72                         }
73                         @ferm::rule { 'dsa-ldaps':
74                                 domain          => '(ip ip6)',
75                                 description     => 'Allow ldaps access',
76                                 rule            => '&SERVICE(tcp, 636)'
77                         }
78                 }
79                 sonntag: {
80                         @ferm::rule { 'dsa-bugs-search':
81                                 description  => 'port 1978 for bugs-search from bug web frontends',
82                                 rule         => '&SERVICE_RANGE(tcp, 1978, ( 140.211.166.26 209.87.16.39 ))'
83                         }
84                 }
85                 default: {}
86         }
87
88         # redirect snapshot into varnish
89         case $::hostname {
90                 sibelius: {
91                         @ferm::rule { 'dsa-snapshot-varnish':
92                                 rule            => '&SERVICE(tcp, 6081)',
93                         }
94                         @ferm::rule { 'dsa-nat-snapshot-varnish':
95                                 table           => 'nat',
96                                 chain           => 'PREROUTING',
97                                 rule            => 'proto tcp daddr 193.62.202.30 dport 80 REDIRECT to-ports 6081',
98                         }
99                 }
100                 lw07: {
101                         @ferm::rule { 'dsa-snapshot-varnish':
102                                 rule            => '&SERVICE(tcp, 6081)',
103                         }
104                         @ferm::rule { 'dsa-nat-snapshot-varnish':
105                                 table           => 'nat',
106                                 chain           => 'PREROUTING',
107                                 rule            => 'proto tcp daddr 185.17.185.185 dport 80 REDIRECT to-ports 6081',
108                         }
109                 }
110                 default: {}
111         }
112         case $::hostname {
113                 bm-bl1,bm-bl2: {
114                         @ferm::rule { 'dsa-vrrp':
115                                 rule            => 'proto vrrp daddr 224.0.0.18 jump ACCEPT',
116                         }
117                         @ferm::rule { 'dsa-conntrackd':
118                                 rule            => 'interface vlan2 daddr 225.0.0.50 jump ACCEPT',
119                         }
120                         @ferm::rule { 'dsa-bind-notrack-in':
121                                 domain      => 'ip',
122                                 description => 'NOTRACK for nameserver traffic',
123                                 table       => 'raw',
124                                 chain       => 'PREROUTING',
125                                 rule        => 'proto (tcp udp) daddr 5.153.231.24 dport 53 jump NOTRACK'
126                         }
127
128                         @ferm::rule { 'dsa-bind-notrack-out':
129                                 domain      => 'ip',
130                                 description => 'NOTRACK for nameserver traffic',
131                                 table       => 'raw',
132                                 chain       => 'OUTPUT',
133                                 rule        => 'proto (tcp udp) saddr 5.153.231.24 sport 53 jump NOTRACK'
134                         }
135
136                         @ferm::rule { 'dsa-bind-notrack-in6':
137                                 domain      => 'ip6',
138                                 description => 'NOTRACK for nameserver traffic',
139                                 table       => 'raw',
140                                 chain       => 'PREROUTING',
141                                 rule        => 'proto (tcp udp) daddr 2001:41c8:1000:21::21:24 dport 53 jump NOTRACK'
142                         }
143
144                         @ferm::rule { 'dsa-bind-notrack-out6':
145                                 domain      => 'ip6',
146                                 description => 'NOTRACK for nameserver traffic',
147                                 table       => 'raw',
148                                 chain       => 'OUTPUT',
149                                 rule        => 'proto (tcp udp) saddr 2001:41c8:1000:21::21:24 sport 53 jump NOTRACK'
150                         }
151                 }
152                 default: {}
153         }
154
155         # elasticsearch stuff
156         case $::hostname {
157                 stockhausen: {
158                         @ferm::rule { 'dsa-elasticsearch-bendel':
159                                 domain          => '(ip)',
160                                 description     => 'Allow elasticsearch access from bendel',
161                                 rule            => '&SERVICE_RANGE(tcp, 9200:9300, ( 82.195.75.100/32 ))'
162                         }
163                         @ferm::rule { 'dsa-elasticsearch-bendel6':
164                                 domain          => '(ip6)',
165                                 description     => 'Allow elasticsearch access from bendel',
166                                 rule            => '&SERVICE_RANGE(tcp, 9200:9300, ( 2001:41b8:202:deb:216:36ff:fe40:4002/128 ))'
167                         }
168                 }
169         }
170
171         # postgres stuff
172         case $::hostname {
173                 ullmann: {
174                         @ferm::rule { 'dsa-postgres-udd':
175                                 description     => 'Allow postgress access',
176                                 # quantz, moszumanska, master, coccia
177                                 rule            => '&SERVICE_RANGE(tcp, 5452, ( 5.153.231.28/32 5.153.231.21/32 82.195.75.110/32 5.153.231.11/32 ))'
178                         }
179                         @ferm::rule { 'dsa-postgres-udd6':
180                                 domain          => '(ip6)',
181                                 description     => 'Allow postgress access',
182                                 rule            => '&SERVICE_RANGE(tcp, 5452, ( 2001:41c8:1000:21::21:28/128 2001:41b8:202:deb:216:36ff:fe40:4001/128 2001:41c8:1000:21::21:11/32 2001:41c8:1000:21::21:21/128 ))'
183                         }
184                 }
185                 fasolo: {
186                         @ferm::rule { 'dsa-postgres-fasolo':
187                                 description     => 'Allow postgress access',
188                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 5.153.231.10/32 ))'
189                         }
190                         @ferm::rule { 'dsa-postgres-fasolo6':
191                                 domain          => 'ip6',
192                                 description     => 'Allow postgress access',
193                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 2001:41c8:1000:21::21:10/128 ))'
194                         }
195
196                         @ferm::rule { 'dsa-postgres-backup':
197                                 description     => 'Allow postgress access',
198                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( $HOST_PGBACKUPHOST_V4 ))'
199                         }
200                         @ferm::rule { 'dsa-postgres-backup6':
201                                 domain          => 'ip6',
202                                 description     => 'Allow postgress access',
203                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( $HOST_PGBACKUPHOST_V6 ))'
204                         }
205                 }
206                 bmdb1: {
207                         @ferm::rule { 'dsa-postgres-main':
208                                 description     => 'Allow postgress access',
209                                 rule            => '&SERVICE_RANGE(tcp, 5435, ( 5.153.231.23/32 5.153.231.25/32 209.87.16.38/32 5.153.231.26/32 5.153.231.18/32 5.153.231.28/32 5.153.231.249/32 5.153.231.29/32 5.153.231.43/32 5.153.231.33/32 ))'
210                         }
211                         @ferm::rule { 'dsa-postgres-main6':
212                                 domain          => 'ip6',
213                                 description     => 'Allow postgress access',
214                                 rule            => '&SERVICE_RANGE(tcp, 5435, ( 2001:41c8:1000:21::21:23/128 2001:41c8:1000:21::21:25/128 2607:f8f0:614:1::1274:38/128 2001:41c8:1000:21::21:26/128 2001:41c8:1000:21::21:18/128 2001:41c8:1000:21::21:28/128 2001:41c8:1000:20::20:249/128 2001:41c8:1000:21::21:29/128 2001:41c8:1000:21::21:43/128 2001:41c8:1000:21::21:33/128 ))'
215                         }
216                         @ferm::rule { 'dsa-postgres-dak':
217                                 description     => 'Allow postgress access',
218                                 rule            => '&SERVICE_RANGE(tcp, 5434, ( 5.153.231.11/32 5.153.231.28/32 209.87.16.26/32 5.153.231.21/32 5.153.231.18/32 5.153.231.29/32 128.31.0.69/32 ))'
219                         }
220                         @ferm::rule { 'dsa-postgres-dak6':
221                                 domain          => 'ip6',
222                                 description     => 'Allow postgress access',
223                                 rule            => '&SERVICE_RANGE(tcp, 5434, ( 2001:41c8:1000:21::21:11/128 2001:41c8:1000:21::21:28/128 2607:f8f0:614:1::1274:26/128 2001:41c8:1000:21::21:21/128 2001:41c8:1000:21::21:18/128 2001:41c8:1000:21::21:29/128 ))'
224                         }
225                         @ferm::rule { 'dsa-postgres-wannabuild':
226                                 # wuiet, ullmann
227                                 description     => 'Allow postgress access',
228                                 rule            => '&SERVICE_RANGE(tcp, 5436, ( 5.153.231.18/32 209.87.16.38/32 ))'
229                         }
230                         @ferm::rule { 'dsa-postgres-wannabuild6':
231                                 domain          => 'ip6',
232                                 description     => 'Allow postgress access',
233                                 rule            => '&SERVICE_RANGE(tcp, 5436, ( 2001:41c8:1000:21::21:18/128 2607:f8f0:614:1::1274:38/128 ))'
234                         }
235                         @ferm::rule { 'dsa-postgres-bacula':
236                                 # dinis
237                                 description     => 'Allow postgress access1',
238                                 rule            => '&SERVICE_RANGE(tcp, 5437, ( 5.153.231.19/32 93.94.130.161/32 ))'
239                         }
240                         @ferm::rule { 'dsa-postgres-bacula6':
241                                 domain          => 'ip6',
242                                 description     => 'Allow postgress access1',
243                                 rule            => '&SERVICE_RANGE(tcp, 5437, ( 2001:41c8:1000:21::21:19/128 2a02:158:380:280::161/128 ))'
244                         }
245
246                         @ferm::rule { 'dsa-postgres-backup':
247                                 description     => 'Allow postgress access',
248                                 rule            => '&SERVICE_RANGE(tcp, (5435 5436 5440), ( $HOST_PGBACKUPHOST_V4 ))'
249                         }
250                         @ferm::rule { 'dsa-postgres-backup6':
251                                 domain          => 'ip6',
252                                 description     => 'Allow postgress access',
253                                 rule            => '&SERVICE_RANGE(tcp, (5435 5436 5440), ( $HOST_PGBACKUPHOST_V6 ))'
254                         }
255
256                         @ferm::rule { 'dsa-postgres-dedup':
257                                 # ubc, wuit
258                                 description     => 'Allow postgress access',
259                                 rule            => '&SERVICE_RANGE(tcp, (5439), ( 5.153.231.17/32 ))'
260                         }
261                         @ferm::rule { 'dsa-postgres-dedup6':
262                                 domain          => 'ip6',
263                                 description     => 'Allow postgress access',
264                                 rule            => '&SERVICE_RANGE(tcp, (5439), ( 2001:41c8:1000:21::21:17/128 ))'
265                         }
266
267                         @ferm::rule { 'dsa-postgres-debsources':
268                                 description     => 'Allow postgress access',
269                                 rule            => '&SERVICE_RANGE(tcp, (5440), ( 5.153.231.38/32 ))'
270                         }
271                         @ferm::rule { 'dsa-postgres-debsources6':
272                                 domain          => 'ip6',
273                                 description     => 'Allow postgress access',
274                                 rule            => '&SERVICE_RANGE(tcp, (5440), ( 2001:41c8:1000:21::21:38/128 ))'
275                         }
276                 }
277                 danzi: {
278                         @ferm::rule { 'dsa-postgres-danzi':
279                                 # ubc, wuit
280                                 description     => 'Allow postgress access',
281                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 206.12.19.0/24 209.87.16.0/24 5.153.231.18/32 ))'
282                         }
283                         @ferm::rule { 'dsa-postgres-danzi6':
284                                 domain          => 'ip6',
285                                 description     => 'Allow postgress access',
286                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 2607:f8f0:610:4000::/64 2607:f8f0:614:1::/64 2001:41c8:1000:21::21:18/128 ))'
287                         }
288
289                         @ferm::rule { 'dsa-postgres2-danzi':
290                                 description     => 'Allow postgress access2',
291                                 rule            => '&SERVICE_RANGE(tcp, 5437, ( 206.12.19.0/24 209.87.16.0/24 ))'
292                         }
293                         @ferm::rule { 'dsa-postgres3-danzi':
294                                 description     => 'Allow postgress access3',
295                                 rule            => '&SERVICE_RANGE(tcp, 5436, ( 206.12.19.0/24 209.87.16.0/24 ))'
296                         }
297                         @ferm::rule { 'dsa-postgres4-danzi':
298                                 description     => 'Allow postgress access4',
299                                 rule            => '&SERVICE_RANGE(tcp, 5438, ( 206.12.19.0/24 209.87.16.0/24 ))'
300                         }
301
302                         @ferm::rule { 'dsa-postgres-backup':
303                                 description     => 'Allow postgress access',
304                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( $HOST_PGBACKUPHOST_V4 ))'
305                         }
306                         @ferm::rule { 'dsa-postgres-backup6':
307                                 domain          => 'ip6',
308                                 description     => 'Allow postgress access',
309                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( $HOST_PGBACKUPHOST_V6 ))'
310                         }
311                 }
312                 seger: {
313                         @ferm::rule { 'dsa-postgres-backup':
314                                 description     => 'Allow postgress access',
315                                 rule            => '&SERVICE_RANGE(tcp, 5432, ( $HOST_PGBACKUPHOST_V4 ))'
316                         }
317                         @ferm::rule { 'dsa-postgres-backup6':
318                                 domain          => 'ip6',
319                                 description     => 'Allow postgress access',
320                                 rule            => '&SERVICE_RANGE(tcp, 5432, ( $HOST_PGBACKUPHOST_V6 ))'
321                         }
322                 }
323                 sibelius: {
324                         @ferm::rule { 'dsa-postgres-backup':
325                                 description     => 'Allow postgress access',
326                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( $HOST_PGBACKUPHOST_V4 ))'
327                         }
328                         @ferm::rule { 'dsa-postgres-backup6':
329                                 domain          => 'ip6',
330                                 description     => 'Allow postgress access',
331                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( $HOST_PGBACKUPHOST_V6 ))'
332                         }
333                         @ferm::rule { 'dsa-postgres-replication':
334                                 description     => 'Allow postgress access',
335                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 185.17.185.187/32 ))'
336                         }
337                         @ferm::rule { 'dsa-postgres-replication6':
338                                 domain          => 'ip6',
339                                 description     => 'Allow postgress access',
340                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 2001:1af8:4020:b030:deb::187/128 ))'
341                         }
342                 }
343                 lw07: {
344                         @ferm::rule { 'dsa-postgres-snapshot':
345                                 description     => 'Allow postgress access',
346                                 rule            => '&SERVICE_RANGE(tcp, 5439, ( 185.17.185.176/28 ))'
347                         }
348                         @ferm::rule { 'dsa-postgres-snapshot6':
349                                 domain          => 'ip6',
350                                 description     => 'Allow postgress access',
351                                 rule            => '&SERVICE_RANGE(tcp, 5439, ( 2001:1af8:4020:b030::/64 ))'
352                         }
353                 }
354                 melartin,vittoria: {
355                         @ferm::rule { 'dsa-postgres-backup':
356                                 description     => 'Allow postgress access',
357                                 rule            => '&SERVICE_RANGE(tcp, 5432, ( $HOST_PGBACKUPHOST_V4 ))'
358                         }
359                         @ferm::rule { 'dsa-postgres-backup6':
360                                 domain          => 'ip6',
361                                 description     => 'Allow postgress access',
362                                 rule            => '&SERVICE_RANGE(tcp, 5432, ( $HOST_PGBACKUPHOST_V6 ))'
363                         }
364                 }
365                 buxtehude: {
366                         @ferm::rule { 'dsa-postgres-backup':
367                                 description     => 'Allow postgress access',
368                                 rule            => '&SERVICE_RANGE(tcp, (5433 5441), ( $HOST_PGBACKUPHOST_V4 ))'
369                         }
370                         @ferm::rule { 'dsa-postgres-backup6':
371                                 domain          => 'ip6',
372                                 description     => 'Allow postgress access',
373                                 rule            => '&SERVICE_RANGE(tcp, (5433 5441), ( $HOST_PGBACKUPHOST_V6 ))'
374                         }
375                 }
376                 default: {}
377         }
378         # vpn fu
379         case $::hostname {
380                 draghi: {
381                         @ferm::rule { 'dsa-vpn':
382                                 description     => 'Allow openvpn access',
383                                 rule            => '&SERVICE(udp, 17257)'
384                         }
385                         @ferm::rule { 'dsa-routing':
386                                 description     => 'forward chain',
387                                 chain           => 'FORWARD',
388                                 rule            => 'policy ACCEPT;
389 mod state state (ESTABLISHED RELATED) ACCEPT;
390 interface tun+ ACCEPT;
391 REJECT reject-with icmp-admin-prohibited
392 '
393                         }
394                         @ferm::rule { 'dsa-vpn-mark':
395                                 table           => 'mangle',
396                                 chain           => 'PREROUTING',
397                                 rule            => 'interface tun+ MARK set-mark 1',
398                         }
399                         @ferm::rule { 'dsa-vpn-nat':
400                                 table           => 'nat',
401                                 chain           => 'POSTROUTING',
402                                 rule            => 'outerface !tun+ mod mark mark 1 MASQUERADE',
403                         }
404                 }
405                 ubc-enc2bl01,ubc-enc2bl02,ubc-enc2bl09,ubc-enc2bl10: {
406                         @ferm::rule { 'dsa-luca-fixme':
407                                 description     => 'Allow ssh access from mnt and vpn networks',
408                                 rule            => '&SERVICE_RANGE(tcp, 22, ( 172.29.40.0/22 172.29.203.0/24 ))',
409                         }
410                 }
411                 default: {}
412         }
413         # tftp
414         case $::hostname {
415                 abel: {
416                         @ferm::rule { 'dsa-tftp':
417                                 description     => 'Allow tftp access',
418                                 rule            => '&SERVICE_RANGE(udp, 69, ( 172.28.17.0/24 ))'
419                         }
420                 }
421                 master: {
422                         @ferm::rule { 'dsa-tftp':
423                                 description     => 'Allow tftp access',
424                                 rule            => '&SERVICE_RANGE(udp, 69, ( 82.195.75.64/26 192.168.43.0/24 ))'
425                         }
426                 }
427         }
428 }