]> git.donarmstrong.com Git - dsa-puppet.git/blob - modules/ferm/manifests/per-host.pp
ferm: allow debsources access
[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 $::hostname in [glinka,klecker,ravel,rietz,senfl,sibelius] {
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                 bm-bl9: {
16                         @ferm::rule { 'dsa-iscsi':
17                                 description     => 'Allow iscsi access',
18                                 rule            => '&SERVICE_RANGE(tcp, 3260, ( 5.153.231.240/27 172.29.123.0/24 ))'
19                         }
20                 }
21                 oyens: {
22                         @ferm::rule { 'dsa-spice':
23                                 description     => 'Allow spice-console access',
24                                 rule            => '&SERVICE(tcp, 6082)'
25                         }
26                         @ferm::rule { 'dsa-memcache':
27                                 description     => 'Allow memcache access',
28                                 rule            => '&SERVICE_RANGE(tcp, 11211, ( 5.153.231.240/27 172.29.123.0/24 ))'
29                         }
30                         @ferm::rule { 'dsa-amqp':
31                                 description     => 'Allow rabbitmq access',
32                                 rule            => '&SERVICE_RANGE(tcp, 5672, ( 5.153.231.240/27 172.29.123.0/24 ))'
33                         }
34                         @ferm::rule { 'dsa-keystone':
35                                 description     => 'Allow keystone access',
36                                 rule            => '&SERVICE_RANGE(tcp, 5000, ( 5.153.231.240/27 172.29.123.0/24 ))'
37                         }
38                         @ferm::rule { 'dsa-keystone-admin':
39                                 description     => 'Allow keystone access',
40                                 rule            => '&SERVICE_RANGE(tcp, 35357, ( 5.153.231.240/27 172.29.123.0/24 ))'
41                         }
42                         @ferm::rule { 'dsa-glance-api':
43                                 description     => 'Allow glance access',
44                                 rule            => '&SERVICE_RANGE(tcp, 9292, ( 5.153.231.240/27 172.29.123.0/24 ))'
45                         }
46                         @ferm::rule { 'dsa-glance-registry':
47                                 description     => 'Allow glance access',
48                                 rule            => '&SERVICE_RANGE(tcp, 9191, ( 5.153.231.240/27 172.29.123.0/24 ))'
49                         }
50                         @ferm::rule { 'dsa-neutron':
51                                 description     => 'Allow glance access',
52                                 rule            => '&SERVICE_RANGE(tcp, 9696, ( 5.153.231.240/27 172.29.123.0/24 ))'
53                         }
54                         @ferm::rule { 'dsa-nova-ec2':
55                                 description     => 'Allow nova access',
56                                 rule            => '&SERVICE_RANGE(tcp, 8773, ( 5.153.231.240/27 172.29.123.0/24 ))'
57                         }
58                         @ferm::rule { 'dsa-nova2':
59                                 description     => 'Allow nova access',
60                                 rule            => '&SERVICE_RANGE(tcp, 8774, ( 5.153.231.240/27 172.29.123.0/24 ))'
61                         }
62                         @ferm::rule { 'dsa-nova-metadata':
63                                 description     => 'Allow nova access',
64                                 rule            => '&SERVICE_RANGE(tcp, 8775, ( 5.153.231.240/27 172.29.123.0/24 ))'
65                         }
66                         @ferm::rule { 'dsa-cinder':
67                                 description     => 'Allow nova access',
68                                 rule            => '&SERVICE_RANGE(tcp, 8776, ( 5.153.231.240/27 172.29.123.0/24 ))'
69                         }
70                 }
71         }
72         case $::hostname {
73                 czerny,clementi: {
74                         @ferm::rule { 'dsa-upsmon':
75                                 description     => 'Allow upsmon access',
76                                 rule            => '&SERVICE_RANGE(tcp, 3493, ( 82.195.75.64/26 192.168.43.0/24 ))'
77                         }
78                 }
79                 bendel: {
80                         @ferm::rule { 'listmaster-ontp-in':
81                                 description => 'ONTP has a broken mail setup',
82                                 table       => 'filter',
83                                 chain       => 'INPUT',
84                                 rule        => 'source 188.165.23.89/32 proto tcp dport 25 jump DROP',
85                         }
86                         @ferm::rule { 'listmaster-ontp-out':
87                                 description => 'ONTP has a broken mail setup',
88                                 table       => 'filter',
89                                 chain       => 'OUTPUT',
90                                 rule        => 'destination 78.8.208.246/32 proto tcp dport 25 jump DROP',
91                         }
92                 }
93                 lotti,lully,loghost-grnet-01: {
94                         @ferm::rule { 'dsa-syslog':
95                                 description     => 'Allow syslog access',
96                                 rule            => '&SERVICE_RANGE(tcp, 5140, $HOST_DEBIAN_V4)'
97                         }
98                         @ferm::rule { 'dsa-syslog-v6':
99                                 domain          => 'ip6',
100                                 description     => 'Allow syslog access',
101                                 rule            => '&SERVICE_RANGE(tcp, 5140, $HOST_DEBIAN_V6)'
102                         }
103                 }
104                 kaufmann: {
105                         @ferm::rule { 'dsa-hkp':
106                                 domain          => '(ip ip6)',
107                                 description     => 'Allow hkp access',
108                                 rule            => '&SERVICE(tcp, 11371)'
109                         }
110                 }
111                 gombert: {
112                         @ferm::rule { 'dsa-infinoted':
113                                 domain          => '(ip ip6)',
114                                 description     => 'Allow infinoted access',
115                                 rule            => '&SERVICE(tcp, 6523)'
116                         }
117                 }
118                 draghi: {
119                         @ferm::rule { 'dsa-finger':
120                                 domain          => '(ip ip6)',
121                                 description     => 'Allow finger access',
122                                 rule            => '&SERVICE(tcp, 79)'
123                         }
124                         @ferm::rule { 'dsa-ldap':
125                                 domain          => '(ip ip6)',
126                                 description     => 'Allow ldap access',
127                                 rule            => '&SERVICE(tcp, 389)'
128                         }
129                         @ferm::rule { 'dsa-ldaps':
130                                 domain          => '(ip ip6)',
131                                 description     => 'Allow ldaps access',
132                                 rule            => '&SERVICE(tcp, 636)'
133                         }
134                 }
135                 sonntag: {
136                         @ferm::rule { 'dsa-bugs-search':
137                                 description  => 'port 1978 for bugs-search from bug web frontends',
138                                 rule         => '&SERVICE_RANGE(tcp, 1978, ( 140.211.166.26 206.12.19.140 ))'
139                         }
140                 }
141                 default: {}
142         }
143
144         # redirect snapshot into varnish
145         case $::hostname {
146                 sibelius: {
147                         @ferm::rule { 'dsa-snapshot-varnish':
148                                 rule            => '&SERVICE(tcp, 6081)',
149                         }
150                         @ferm::rule { 'dsa-nat-snapshot-varnish':
151                                 table           => 'nat',
152                                 chain           => 'PREROUTING',
153                                 rule            => 'proto tcp daddr 193.62.202.30 dport 80 REDIRECT to-ports 6081',
154                         }
155                 }
156                 lw07: {
157                         @ferm::rule { 'dsa-snapshot-varnish':
158                                 rule            => '&SERVICE(tcp, 6081)',
159                         }
160                         @ferm::rule { 'dsa-nat-snapshot-varnish':
161                                 table           => 'nat',
162                                 chain           => 'PREROUTING',
163                                 rule            => 'proto tcp daddr 185.17.185.185 dport 80 REDIRECT to-ports 6081',
164                         }
165                 }
166                 default: {}
167         }
168         case $::hostname {
169                 bm-bl1,bm-bl2: {
170                         @ferm::rule { 'dsa-vrrp':
171                                 rule            => 'proto vrrp daddr 224.0.0.18 jump ACCEPT',
172                         }
173                         @ferm::rule { 'dsa-conntrackd':
174                                 rule            => 'interface vlan2 daddr 225.0.0.50 jump ACCEPT',
175                         }
176                         @ferm::rule { 'dsa-bind-notrack-in':
177                                 domain      => 'ip',
178                                 description => 'NOTRACK for nameserver traffic',
179                                 table       => 'raw',
180                                 chain       => 'PREROUTING',
181                                 rule        => 'proto (tcp udp) daddr 5.153.231.24 dport 53 jump NOTRACK'
182                         }
183
184                         @ferm::rule { 'dsa-bind-notrack-out':
185                                 domain      => 'ip',
186                                 description => 'NOTRACK for nameserver traffic',
187                                 table       => 'raw',
188                                 chain       => 'OUTPUT',
189                                 rule        => 'proto (tcp udp) saddr 5.153.231.24 sport 53 jump NOTRACK'
190                         }
191
192                         @ferm::rule { 'dsa-bind-notrack-in6':
193                                 domain      => 'ip6',
194                                 description => 'NOTRACK for nameserver traffic',
195                                 table       => 'raw',
196                                 chain       => 'PREROUTING',
197                                 rule        => 'proto (tcp udp) daddr 2001:41c8:1000:21::21:24 dport 53 jump NOTRACK'
198                         }
199
200                         @ferm::rule { 'dsa-bind-notrack-out6':
201                                 domain      => 'ip6',
202                                 description => 'NOTRACK for nameserver traffic',
203                                 table       => 'raw',
204                                 chain       => 'OUTPUT',
205                                 rule        => 'proto (tcp udp) saddr 2001:41c8:1000:21::21:24 sport 53 jump NOTRACK'
206                         }
207                 }
208                 default: {}
209         }
210
211         # solr stuff
212         case $::hostname {
213                 stockhausen: {
214                         @ferm::rule { 'dsa-solr-jetty':
215                                 description     => 'Allow jetty access',
216                                 rule            => '&SERVICE_RANGE(tcp, 8080, ( 82.195.75.100/32 ))'
217                         }
218                 }
219         }
220
221         # postgres stuff
222         case $::hostname {
223                 ullmann: {
224                         @ferm::rule { 'dsa-postgres-udd':
225                                 description     => 'Allow postgress access',
226                                 # quantz, moszumanska, master, couper, coccia, franck
227                                 rule            => '&SERVICE_RANGE(tcp, 5452, ( 5.153.231.28/32 5.153.231.21/32 82.195.75.110/32 5.153.231.14/32 5.153.231.11/32 138.16.160.12/32 ))'
228                         }
229                         @ferm::rule { 'dsa-postgres-udd6':
230                                 domain          => '(ip6)',
231                                 description     => 'Allow postgress access',
232                                 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:14/128 2001:41c8:1000:21::21:11/32 2001:41c8:1000:21::21:21/128 ))'
233                         }
234                 }
235                 franck: {
236                         @ferm::rule { 'dsa-postgres-franck':
237                                 description     => 'Allow postgress access',
238                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 5.153.231.10/32 ))'
239                         }
240                         @ferm::rule { 'dsa-postgres-franck6':
241                                 domain          => 'ip6',
242                                 description     => 'Allow postgress access',
243                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 2001:41c8:1000:21::21:10/128 ))'
244                         }
245
246                         @ferm::rule { 'dsa-postgres-backup':
247                                 description     => 'Allow postgress access',
248                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( $HOST_PGBACKUPHOST_V4 ))'
249                         }
250                         @ferm::rule { 'dsa-postgres-backup6':
251                                 domain          => 'ip6',
252                                 description     => 'Allow postgress access',
253                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( $HOST_PGBACKUPHOST_V6 ))'
254                         }
255                 }
256                 bmdb1: {
257                         @ferm::rule { 'dsa-postgres-main':
258                                 description     => 'Allow postgress access',
259                                 rule            => '&SERVICE_RANGE(tcp, 5435, ( 5.153.231.14/32 5.153.231.23/32 5.153.231.25/32 206.12.19.141/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))'
260                         }
261                         @ferm::rule { 'dsa-postgres-main6':
262                                 domain          => 'ip6',
263                                 description     => 'Allow postgress access',
264                                 rule            => '&SERVICE_RANGE(tcp, 5435, ( 2001:41c8:1000:21::21:14/128 2001:41c8:1000:21::21:23/128 2001:41c8:1000:21::21:25/128 2607:f8f0:610:4000:6564:a62:ce0c:138d/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))'
265                         }
266                         @ferm::rule { 'dsa-postgres-dak':
267                                 description     => 'Allow postgress access',
268                                 rule            => '&SERVICE_RANGE(tcp, 5434, ( 5.153.231.11/32 5.153.231.28/32 206.12.19.123/32 206.12.19.134/32 5.153.231.21/32 5.153.231.18/32 ))'
269                         }
270                         @ferm::rule { 'dsa-postgres-dak6':
271                                 domain          => 'ip6',
272                                 description     => 'Allow postgress access',
273                                 rule            => '&SERVICE_RANGE(tcp, 5434, ( 2001:41c8:1000:21::21:11/128 2001:41c8:1000:21::21:28/128 2607:f8f0:610:4000:216:36ff:fe40:3861/128 2607:f8f0:610:4000:6564:a62:ce0c:1386/128 2001:41c8:1000:21::21:21/128 2001:41c8:1000:21::21:18/128 ))'
274                         }
275                         @ferm::rule { 'dsa-postgres-wanna-build':
276                                 # wuiet, ullmann, franck
277                                 description     => 'Allow postgress access',
278                                 rule            => '&SERVICE_RANGE(tcp, 5436, ( 5.153.231.18/32 206.12.19.141/32 138.16.160.12/32 ))'
279                         }
280                         @ferm::rule { 'dsa-postgres-wanna-build6':
281                                 domain          => 'ip6',
282                                 description     => 'Allow postgress access',
283                                 rule            => '&SERVICE_RANGE(tcp, 5436, ( 2001:41c8:1000:21::21:18/128 2607:f8f0:610:4000:6564:a62:ce0c:138d/128 ))'
284                         }
285                         @ferm::rule { 'dsa-postgres-wanna-build-ports':
286                                 # portman
287                                 description     => 'Allow postgress access',
288                                 rule            => '&SERVICE_RANGE(tcp, 5436, ( 5.153.231.29/32 ))'
289                         }
290                         @ferm::rule { 'dsa-postgres-wanna-build-ports6':
291                                 domain          => 'ip6',
292                                 description     => 'Allow postgress access',
293                                 rule            => '&SERVICE_RANGE(tcp, 5436, ( 2001:41c8:1000:21::21:29/128 ))'
294                         }
295                         @ferm::rule { 'dsa-postgres-bacula':
296                                 # dinis
297                                 description     => 'Allow postgress access1',
298                                 rule            => '&SERVICE_RANGE(tcp, 5437, ( 5.153.231.19/32 ))'
299                         }
300                         @ferm::rule { 'dsa-postgres-bacula6':
301                                 domain          => 'ip6',
302                                 description     => 'Allow postgress access1',
303                                 rule            => '&SERVICE_RANGE(tcp, 5437, ( 2001:41c8:1000:21::21:19/128 ))'
304                         }
305
306                         @ferm::rule { 'dsa-postgres-backup':
307                                 # ubc, wuit
308                                 description     => 'Allow postgress access',
309                                 rule            => '&SERVICE_RANGE(tcp, (5435 5436), ( $HOST_PGBACKUPHOST_V4 ))'
310                         }
311                         @ferm::rule { 'dsa-postgres-backup6':
312                                 domain          => 'ip6',
313                                 description     => 'Allow postgress access',
314                                 rule            => '&SERVICE_RANGE(tcp, (5435 5436), ( $HOST_PGBACKUPHOST_V6 ))'
315                         }
316
317                         @ferm::rule { 'dsa-postgres-dedup':
318                                 # ubc, wuit
319                                 description     => 'Allow postgress access',
320                                 rule            => '&SERVICE_RANGE(tcp, (5439), ( 5.153.231.17/32 ))'
321                         }
322                         @ferm::rule { 'dsa-postgres-dedup6':
323                                 domain          => 'ip6',
324                                 description     => 'Allow postgress access',
325                                 rule            => '&SERVICE_RANGE(tcp, (5439), ( 2001:41c8:1000:21::21:17/128 ))'
326                         }
327
328                         @ferm::rule { 'dsa-postgres-debsources':
329                                 description     => 'Allow postgress access',
330                                 rule            => '&SERVICE_RANGE(tcp, (5440), ( 5.153.231.38/32 ))'
331                         }
332                         @ferm::rule { 'dsa-postgres-debsources6':
333                                 domain          => 'ip6',
334                                 description     => 'Allow postgress access',
335                                 rule            => '&SERVICE_RANGE(tcp, (5440), ( 2001:41c8:1000:21::21:38/128 ))'
336                         }
337                 }
338                 danzi: {
339                         @ferm::rule { 'dsa-postgres-danzi':
340                                 # ubc, wuit
341                                 description     => 'Allow postgress access',
342                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 206.12.19.0/24 5.153.231.18/32 ))'
343                         }
344                         @ferm::rule { 'dsa-postgres-danzi6':
345                                 domain          => 'ip6',
346                                 description     => 'Allow postgress access',
347                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 2607:f8f0:610:4000::/64 2001:41c8:1000:21::21:18/128 ))'
348                         }
349
350                         @ferm::rule { 'dsa-postgres2-danzi':
351                                 description     => 'Allow postgress access2',
352                                 rule            => '&SERVICE_RANGE(tcp, 5437, ( 206.12.19.0/24 ))'
353                         }
354                         @ferm::rule { 'dsa-postgres3-danzi':
355                                 description     => 'Allow postgress access3',
356                                 rule            => '&SERVICE_RANGE(tcp, 5436, ( 206.12.19.0/24 ))'
357                         }
358                         @ferm::rule { 'dsa-postgres4-danzi':
359                                 description     => 'Allow postgress access4',
360                                 rule            => '&SERVICE_RANGE(tcp, 5438, ( 206.12.19.0/24 ))'
361                         }
362
363                         @ferm::rule { 'dsa-postgres-backup':
364                                 description     => 'Allow postgress access',
365                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( $HOST_PGBACKUPHOST_V4 ))'
366                         }
367                         @ferm::rule { 'dsa-postgres-backup6':
368                                 domain          => 'ip6',
369                                 description     => 'Allow postgress access',
370                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( $HOST_PGBACKUPHOST_V6 ))'
371                         }
372                 }
373                 chopin: {
374                         @ferm::rule { 'dsa-postgres-backup':
375                                 description     => 'Allow postgress access',
376                                 rule            => '&SERVICE_RANGE(tcp, 5432, ( $HOST_PGBACKUPHOST_V4 ))'
377                         }
378                         @ferm::rule { 'dsa-postgres-backup6':
379                                 domain          => 'ip6',
380                                 description     => 'Allow postgress access',
381                                 rule            => '&SERVICE_RANGE(tcp, 5432, ( $HOST_PGBACKUPHOST_V6 ))'
382                         }
383                 }
384                 sibelius: {
385                         @ferm::rule { 'dsa-postgres-backup':
386                                 description     => 'Allow postgress access',
387                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( $HOST_PGBACKUPHOST_V4 ))'
388                         }
389                         @ferm::rule { 'dsa-postgres-backup6':
390                                 domain          => 'ip6',
391                                 description     => 'Allow postgress access',
392                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( $HOST_PGBACKUPHOST_V6 ))'
393                         }
394                         @ferm::rule { 'dsa-postgres-replication':
395                                 description     => 'Allow postgress access',
396                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 185.17.185.187/32 ))'
397                         }
398                         @ferm::rule { 'dsa-postgres-replication6':
399                                 domain          => 'ip6',
400                                 description     => 'Allow postgress access',
401                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 2001:1af8:4020:b030:deb::187/128 ))'
402                         }
403                 }
404                 lw07: {
405                         @ferm::rule { 'dsa-postgres-snapshot':
406                                 description     => 'Allow postgress access',
407                                 rule            => '&SERVICE_RANGE(tcp, 5439, ( 185.17.185.176/28 ))'
408                         }
409                         @ferm::rule { 'dsa-postgres-snapshot6':
410                                 domain          => 'ip6',
411                                 description     => 'Allow postgress access',
412                                 rule            => '&SERVICE_RANGE(tcp, 5439, ( 2001:1af8:4020:b030::/64 ))'
413                         }
414                 }
415                 default: {}
416         }
417         # vpn fu
418         case $::hostname {
419                 draghi,eysler: {
420                         @ferm::rule { 'dsa-vpn':
421                                 description     => 'Allow openvpn access',
422                                 rule            => '&SERVICE(udp, 17257)'
423                         }
424                         @ferm::rule { 'dsa-routing':
425                                 description     => 'forward chain',
426                                 chain           => 'FORWARD',
427                                 rule            => 'policy ACCEPT;
428 mod state state (ESTABLISHED RELATED) ACCEPT;
429 interface tun+ ACCEPT;
430 REJECT reject-with icmp-admin-prohibited
431 '
432                         }
433                         @ferm::rule { 'dsa-vpn-mark':
434                                 table           => 'mangle',
435                                 chain           => 'PREROUTING',
436                                 rule            => 'interface tun+ MARK set-mark 1',
437                         }
438                         @ferm::rule { 'dsa-vpn-nat':
439                                 table           => 'nat',
440                                 chain           => 'POSTROUTING',
441                                 rule            => 'outerface !tun+ mod mark mark 1 MASQUERADE',
442                         }
443                 }
444                 default: {}
445         }
446         # tftp
447         case $::hostname {
448                 abel: {
449                         @ferm::rule { 'dsa-tftp':
450                                 description     => 'Allow tftp access',
451                                 rule            => '&SERVICE_RANGE(udp, 69, ( 172.28.17.0/24 ))'
452                         }
453                 }
454                 jenkins: {
455                         @ferm::rule { 'dsa-tftp':
456                                 description     => 'Allow tftp access',
457                                 rule            => '&SERVICE_RANGE(udp, 69, ( 192.168.2.0/24 206.12.19.0/24 ))'
458                         }
459                 }
460                 master: {
461                         @ferm::rule { 'dsa-tftp':
462                                 description     => 'Allow tftp access',
463                                 rule            => '&SERVICE_RANGE(udp, 69, ( 82.195.75.64/26 192.168.43.0/24 ))'
464                         }
465                 }
466         }
467 }