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