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