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