bugs-search no longer runs on sonntag
[mirror/dsa-puppet.git] / modules / ferm / manifests / per_host.pp
1 class ferm::per_host {
2         if $::hostname in [zandonai,zelenka] {
3                 include ferm::zivit
4         }
5
6         if (getfromhash($site::nodeinfo, 'hoster', 'name') == "aql") {
7                 include ferm::aql
8         }
9
10         case $::hostname {
11                 czerny,clementi: {
12                         @ferm::rule { 'dsa-upsmon':
13                                 description     => 'Allow upsmon access',
14                                 rule            => '&SERVICE_RANGE(tcp, 3493, ( 82.195.75.64/26 192.168.43.0/24 ))'
15                         }
16                 }
17                 lotti,lully,loghost-grnet-01: {
18                         @ferm::rule { 'dsa-syslog':
19                                 description     => 'Allow syslog access',
20                                 rule            => '&SERVICE_RANGE(tcp, 5140, $HOST_DEBIAN_V4)'
21                         }
22                         @ferm::rule { 'dsa-syslog-v6':
23                                 domain          => 'ip6',
24                                 description     => 'Allow syslog access',
25                                 rule            => '&SERVICE_RANGE(tcp, 5140, $HOST_DEBIAN_V6)'
26                         }
27                         @ferm::rule { 'fastly-syslog':
28                                 description     => 'Allow syslog access',
29                                 rule            => '&SERVICE_RANGE(tcp, 5141, $HOST_FASTLY)'
30                         }
31                 }
32                 kaufmann: {
33                         @ferm::rule { 'dsa-hkp':
34                                 domain          => '(ip ip6)',
35                                 description     => 'Allow hkp access',
36                                 rule            => '&SERVICE(tcp, 11371)'
37                         }
38                 }
39                 gombert: {
40                         @ferm::rule { 'dsa-infinoted':
41                                 domain          => '(ip ip6)',
42                                 description     => 'Allow infinoted access',
43                                 rule            => '&SERVICE(tcp, 6523)'
44                         }
45                 }
46                 draghi: {
47                         @ferm::rule { 'dsa-finger':
48                                 domain          => '(ip ip6)',
49                                 description     => 'Allow finger access',
50                                 rule            => '&SERVICE(tcp, 79)'
51                         }
52                         @ferm::rule { 'dsa-ldap':
53                                 domain          => '(ip ip6)',
54                                 description     => 'Allow ldap access',
55                                 rule            => '&SERVICE(tcp, 389)'
56                         }
57                         @ferm::rule { 'dsa-ldaps':
58                                 domain          => '(ip ip6)',
59                                 description     => 'Allow ldaps access',
60                                 rule            => '&SERVICE(tcp, 636)'
61                         }
62                 }
63                 default: {}
64         }
65
66         # redirect snapshot into varnish
67         case $::hostname {
68                 sibelius: {
69                         @ferm::rule { 'dsa-snapshot-varnish':
70                                 rule            => '&SERVICE(tcp, 6081)',
71                         }
72                         @ferm::rule { 'dsa-nat-snapshot-varnish':
73                                 table           => 'nat',
74                                 chain           => 'PREROUTING',
75                                 rule            => 'proto tcp daddr 193.62.202.30 dport 80 REDIRECT to-ports 6081',
76                         }
77                 }
78                 default: {}
79         }
80         case $::hostname {
81                 bm-bl1,bm-bl2: {
82                         @ferm::rule { 'dsa-vrrp':
83                                 rule            => 'proto vrrp daddr 224.0.0.18 jump ACCEPT',
84                         }
85                         @ferm::rule { 'dsa-bind-notrack-in':
86                                 domain      => 'ip',
87                                 description => 'NOTRACK for nameserver traffic',
88                                 table       => 'raw',
89                                 chain       => 'PREROUTING',
90                                 rule        => 'proto (tcp udp) daddr 5.153.231.24 dport 53 jump NOTRACK'
91                         }
92
93                         @ferm::rule { 'dsa-bind-notrack-out':
94                                 domain      => 'ip',
95                                 description => 'NOTRACK for nameserver traffic',
96                                 table       => 'raw',
97                                 chain       => 'OUTPUT',
98                                 rule        => 'proto (tcp udp) saddr 5.153.231.24 sport 53 jump NOTRACK'
99                         }
100
101                         @ferm::rule { 'dsa-bind-notrack-in6':
102                                 domain      => 'ip6',
103                                 description => 'NOTRACK for nameserver traffic',
104                                 table       => 'raw',
105                                 chain       => 'PREROUTING',
106                                 rule        => 'proto (tcp udp) daddr 2001:41c8:1000:21::21:24 dport 53 jump NOTRACK'
107                         }
108
109                         @ferm::rule { 'dsa-bind-notrack-out6':
110                                 domain      => 'ip6',
111                                 description => 'NOTRACK for nameserver traffic',
112                                 table       => 'raw',
113                                 chain       => 'OUTPUT',
114                                 rule        => 'proto (tcp udp) saddr 2001:41c8:1000:21::21:24 sport 53 jump NOTRACK'
115                         }
116                 }
117                 default: {}
118         }
119
120         # postgres stuff
121         case $::hostname {
122                 ullmann: {
123                         @ferm::rule { 'dsa-postgres-udd':
124                                 description     => 'Allow postgress access',
125                                 domain          => '(ip ip6)',
126                                 # quantz, master, coccia
127                                 rule            => @(EOF)
128                                         &SERVICE_RANGE(tcp, 5452, (
129                                                 5.153.231.28/32  2001:41c8:1000:21::21:28/128                   # quantz
130                                                 82.195.75.110/32 2001:41b8:202:deb:216:36ff:fe40:4001/128       # master
131                                                 5.153.231.11/32  2001:41c8:1000:21::21:11/128                   # coccia
132                                                 5.153.231.29/32  2001:41c8:1000:21::21:29/128                   # respighi
133                                         ))
134                                         | EOF
135                         }
136                 }
137                 fasolo: {
138                         @ferm::rule { 'dsa-postgres-fasolo':
139                                 description     => 'Allow postgress access',
140                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 5.153.231.10/32 ))'
141                         }
142                         @ferm::rule { 'dsa-postgres-fasolo6':
143                                 domain          => 'ip6',
144                                 description     => 'Allow postgress access',
145                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 2001:41c8:1000:21::21:10/128 ))'
146                         }
147
148                         @ferm::rule { 'dsa-postgres-backup':
149                                 description     => 'Allow postgress access',
150                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( $HOST_PGBACKUPHOST_V4 ))'
151                         }
152                         @ferm::rule { 'dsa-postgres-backup6':
153                                 domain          => 'ip6',
154                                 description     => 'Allow postgress access',
155                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( $HOST_PGBACKUPHOST_V6 ))'
156                         }
157                 }
158                 bmdb1: {
159                         @ferm::rule { 'dsa-postgres-main':
160                                 description     => 'Allow postgress access',
161                                 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 ))'
162                         }
163                         @ferm::rule { 'dsa-postgres-main6':
164                                 domain          => 'ip6',
165                                 description     => 'Allow postgress access',
166                                 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 ))'
167                         }
168                         @ferm::rule { 'dsa-postgres-dak':
169                                 description     => 'Allow postgress access',
170                                 rule            => '&SERVICE_RANGE(tcp, 5434, ( 5.153.231.11/32 5.153.231.28/32 209.87.16.26/32 5.153.231.18/32 5.153.231.29/32 128.31.0.69/32 ))'
171                         }
172                         @ferm::rule { 'dsa-postgres-dak6':
173                                 domain          => 'ip6',
174                                 description     => 'Allow postgress access',
175                                 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:18/128 2001:41c8:1000:21::21:29/128 ))'
176                         }
177                         @ferm::rule { 'dsa-postgres-wannabuild':
178                                 # wuiet, ullmann
179                                 description     => 'Allow postgress access',
180                                 rule            => '&SERVICE_RANGE(tcp, 5436, ( 5.153.231.18/32 209.87.16.38/32 ))'
181                         }
182                         @ferm::rule { 'dsa-postgres-wannabuild6':
183                                 domain          => 'ip6',
184                                 description     => 'Allow postgress access',
185                                 rule            => '&SERVICE_RANGE(tcp, 5436, ( 2001:41c8:1000:21::21:18/128 2607:f8f0:614:1::1274:38/128 ))'
186                         }
187                         @ferm::rule { 'dsa-postgres-bacula':
188                                 # dinis
189                                 description     => 'Allow postgress access1',
190                                 rule            => '&SERVICE_RANGE(tcp, 5437, ( 5.153.231.19/32 93.94.130.161/32 ))'
191                         }
192                         @ferm::rule { 'dsa-postgres-bacula6':
193                                 domain          => 'ip6',
194                                 description     => 'Allow postgress access1',
195                                 rule            => '&SERVICE_RANGE(tcp, 5437, ( 2001:41c8:1000:21::21:19/128 2a02:158:380:280::161/128 ))'
196                         }
197
198                         @ferm::rule { 'dsa-postgres-backup':
199                                 description     => 'Allow postgress access',
200                                 rule            => '&SERVICE_RANGE(tcp, (5435 5436 5440), ( $HOST_PGBACKUPHOST_V4 ))'
201                         }
202                         @ferm::rule { 'dsa-postgres-backup6':
203                                 domain          => 'ip6',
204                                 description     => 'Allow postgress access',
205                                 rule            => '&SERVICE_RANGE(tcp, (5435 5436 5440), ( $HOST_PGBACKUPHOST_V6 ))'
206                         }
207
208                         @ferm::rule { 'dsa-postgres-dedup':
209                                 # ubc, wuit
210                                 description     => 'Allow postgress access',
211                                 rule            => '&SERVICE_RANGE(tcp, (5439), ( 5.153.231.17/32 ))'
212                         }
213                         @ferm::rule { 'dsa-postgres-dedup6':
214                                 domain          => 'ip6',
215                                 description     => 'Allow postgress access',
216                                 rule            => '&SERVICE_RANGE(tcp, (5439), ( 2001:41c8:1000:21::21:17/128 ))'
217                         }
218
219                         @ferm::rule { 'dsa-postgres-debsources':
220                                 description     => 'Allow postgress access',
221                                 rule            => '&SERVICE_RANGE(tcp, (5440), ( 5.153.231.38/32 ))'
222                         }
223                         @ferm::rule { 'dsa-postgres-debsources6':
224                                 domain          => 'ip6',
225                                 description     => 'Allow postgress access',
226                                 rule            => '&SERVICE_RANGE(tcp, (5440), ( 2001:41c8:1000:21::21:38/128 ))'
227                         }
228                 }
229                 danzi: {
230                         @ferm::rule { 'dsa-postgres-danzi':
231                                 # ubc, wuiet
232                                 description     => 'Allow postgress access',
233                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 206.12.19.0/24 209.87.16.0/24 5.153.231.18/32 ))'
234                         }
235                         @ferm::rule { 'dsa-postgres-danzi6':
236                                 domain          => 'ip6',
237                                 description     => 'Allow postgress access',
238                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 2607:f8f0:610:4000::/64 2607:f8f0:614:1::/64 2001:41c8:1000:21::21:18/128 ))'
239                         }
240
241                         @ferm::rule { 'dsa-postgres2-danzi':
242                                 description     => 'Allow postgress access2',
243                                 rule            => '&SERVICE_RANGE(tcp, 5434, ( 209.87.16.0/24 ))'
244                         }
245                         @ferm::rule { 'dsa-postgres2-danzi6':
246                                 domain          => 'ip6',
247                                 description     => 'Allow postgress access2',
248                                 rule            => '&SERVICE_RANGE(tcp, 5434, ( 2607:f8f0:614:1::/64 ))'
249                         }
250                 }
251                 seger: {
252                         @ferm::rule { 'dsa-postgres-backup':
253                                 description     => 'Allow postgress access',
254                                 rule            => '&SERVICE_RANGE(tcp, 5432, ( $HOST_PGBACKUPHOST_V4 ))'
255                         }
256                         @ferm::rule { 'dsa-postgres-backup6':
257                                 domain          => 'ip6',
258                                 description     => 'Allow postgress access',
259                                 rule            => '&SERVICE_RANGE(tcp, 5432, ( $HOST_PGBACKUPHOST_V6 ))'
260                         }
261                 }
262                 sallinen: {
263                         @ferm::rule { 'dsa-postgres-backup':
264                                 description     => 'Allow postgress access',
265                                 rule            => '&SERVICE_RANGE(tcp, 5473, ( $HOST_PGBACKUPHOST_V4 ))'
266                         }
267                         @ferm::rule { 'dsa-postgres-backup6':
268                                 domain          => 'ip6',
269                                 description     => 'Allow postgress access',
270                                 rule            => '&SERVICE_RANGE(tcp, 5473, ( $HOST_PGBACKUPHOST_V6 ))'
271                         }
272                         @ferm::rule { 'dsa-postgres-replication':
273                                 description     => 'Allow postgress access',
274                                 rule            => '&SERVICE_RANGE(tcp, 5473, ( 185.17.185.187/32 ))'
275                         }
276                         @ferm::rule { 'dsa-postgres-replication6':
277                                 domain          => 'ip6',
278                                 description     => 'Allow postgress access',
279                                 rule            => '&SERVICE_RANGE(tcp, 5473, ( 2001:1af8:4020:b030:deb::187/128 ))'
280                         }
281                 }
282                 lw07: {
283                         @ferm::rule { 'dsa-postgres-snapshot':
284                                 description     => 'Allow postgress access',
285                                 rule            => '&SERVICE_RANGE(tcp, 5439, ( 185.17.185.176/28 ))'
286                         }
287                         @ferm::rule { 'dsa-postgres-snapshot6':
288                                 domain          => 'ip6',
289                                 description     => 'Allow postgress access',
290                                 rule            => '&SERVICE_RANGE(tcp, 5439, ( 2001:1af8:4020:b030::/64 ))'
291                         }
292                 }
293                 default: {}
294         }
295         # vpn fu
296         case $::hostname {
297                 draghi: {
298                         @ferm::rule { 'dsa-vpn':
299                                 description     => 'Allow openvpn access',
300                                 rule            => '&SERVICE(udp, 17257)'
301                         }
302                         @ferm::rule { 'dsa-routing':
303                                 description     => 'forward chain',
304                                 chain           => 'FORWARD',
305                                 rule            => 'policy ACCEPT;
306 mod state state (ESTABLISHED RELATED) ACCEPT;
307 interface tun+ ACCEPT;
308 REJECT reject-with icmp-admin-prohibited
309 '
310                         }
311                         @ferm::rule { 'dsa-vpn-mark':
312                                 table           => 'mangle',
313                                 chain           => 'PREROUTING',
314                                 rule            => 'interface tun+ MARK set-mark 1',
315                         }
316                         @ferm::rule { 'dsa-vpn-nat':
317                                 table           => 'nat',
318                                 chain           => 'POSTROUTING',
319                                 rule            => 'outerface !tun+ mod mark mark 1 MASQUERADE',
320                         }
321                 }
322                 ubc-enc2bl01,ubc-enc2bl02,ubc-enc2bl09,ubc-enc2bl10: {
323                         @ferm::rule { 'dsa-luca-fixme':
324                                 description     => 'Allow ssh access from mnt and vpn networks',
325                                 rule            => '&SERVICE_RANGE(tcp, 22, ( 172.29.40.0/22 172.29.203.0/24 ))',
326                         }
327                 }
328                 default: {}
329         }
330         # tftp
331         case $::hostname {
332                 abel: {
333                         @ferm::rule { 'dsa-tftp':
334                                 description     => 'Allow tftp access',
335                                 rule            => '&SERVICE_RANGE(udp, 69, ( 172.28.17.0/24 ))'
336                         }
337                 }
338                 master: {
339                         @ferm::rule { 'dsa-tftp':
340                                 description     => 'Allow tftp access',
341                                 rule            => '&SERVICE_RANGE(udp, 69, ( 82.195.75.64/26 192.168.43.0/24 ))'
342                         }
343                 }
344         }
345 }