]> git.donarmstrong.com Git - dsa-puppet.git/blob - modules/ferm/manifests/per-host.pp
bb459e381e1ee5ba40285e6a6da65ca24958dc48
[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                 samosa: {
16                         @ferm::rule { 'dsa-udd-stunnel':
17                                 description  => 'port 8080 for udd stunnel',
18                                 rule         => '&SERVICE_RANGE(tcp, http-alt, ( 192.25.206.16 70.103.162.29 217.196.43.134 ))'
19                         }
20                 }
21                 czerny,clementi: {
22                         @ferm::rule { 'dsa-upsmon':
23                                 description     => 'Allow upsmon access',
24                                 rule            => '&SERVICE_RANGE(tcp, 3493, ( 82.195.75.64/26 192.168.43.0/24 ))'
25                         }
26                 }
27                 bendel: {
28                         @ferm::rule { 'listmaster-ontp-in':
29                                 description     => 'ONTP has a broken mail setup',
30                                 table           => 'filter',
31                                 chain           => 'INPUT',
32                                 rule            => 'source 188.165.23.89/32 proto tcp dport 25 jump DROP',
33                         }
34                         @ferm::rule { 'listmaster-ontp-out':
35                                 description     => 'ONTP has a broken mail setup',
36                                 table           => 'filter',
37                                 chain           => 'OUTPUT',
38                                 rule            => 'destination 78.8.208.246/32 proto tcp dport 25 jump DROP',
39                         }
40                 }
41                 abel,alwyn,rietz: {
42                         @ferm::rule { 'dsa-tftp':
43                                 description     => 'Allow tftp access',
44                                 rule            => '&SERVICE(udp, 69)'
45                         }
46                 }
47                 paganini: {
48                         @ferm::rule { 'dsa-dhcp':
49                                 description     => 'Allow dhcp access',
50                                 rule            => '&SERVICE(udp, 67)'
51                         }
52                         @ferm::rule { 'dsa-tftp':
53                                 description     => 'Allow tftp access',
54                                 rule            => '&SERVICE(udp, 69)'
55                         }
56                 }
57                 lotti,lully: {
58                         @ferm::rule { 'dsa-syslog':
59                                 description     => 'Allow syslog access',
60                                 rule            => '&SERVICE_RANGE(tcp, 5140, $HOST_DEBIAN_V4)'
61                         }
62                         @ferm::rule { 'dsa-syslog-v6':
63                                 domain          => 'ip6',
64                                 description     => 'Allow syslog access',
65                                 rule            => '&SERVICE_RANGE(tcp, 5140, $HOST_DEBIAN_V6)'
66                         }
67                 }
68                 kaufmann: {
69                         @ferm::rule { 'dsa-hkp':
70                                 domain          => '(ip ip6)',
71                                 description     => 'Allow hkp access',
72                                 rule            => '&SERVICE(tcp, 11371)'
73                         }
74                 }
75                 gombert: {
76                         @ferm::rule { 'dsa-infinoted':
77                                 domain          => '(ip ip6)',
78                                 description     => 'Allow infinoted access',
79                                 rule            => '&SERVICE(tcp, 6523)'
80                         }
81                 }
82                 draghi: {
83                         #@ferm::rule { 'dsa-bind':
84                         #    domain          => '(ip ip6)',
85                         #    description     => 'Allow nameserver access',
86                         #    rule            => '&TCP_UDP_SERVICE(53)'
87                         #}
88                         @ferm::rule { 'dsa-finger':
89                                 domain          => '(ip ip6)',
90                                 description     => 'Allow finger access',
91                                 rule            => '&SERVICE(tcp, 79)'
92                         }
93                         @ferm::rule { 'dsa-ldap':
94                                 domain          => '(ip ip6)',
95                                 description     => 'Allow ldap access',
96                                 rule            => '&SERVICE(tcp, 389)'
97                         }
98                         @ferm::rule { 'dsa-ldaps':
99                                 domain          => '(ip ip6)',
100                                 description     => 'Allow ldaps access',
101                                 rule            => '&SERVICE(tcp, 636)'
102                         }
103                 }
104                 cilea: {
105                         ferm::module { 'nf_conntrack_sip': }
106                         ferm::module { 'nf_conntrack_h323': }
107
108                         @ferm::rule { 'dsa-sip':
109                                 domain          => '(ip ip6)',
110                                 description     => 'Allow sip access',
111                                 rule            => '&TCP_UDP_SERVICE(5060)'
112                         }
113                         @ferm::rule { 'dsa-sipx':
114                                 domain          => '(ip ip6)',
115                                 description     => 'Allow sipx access',
116                                 rule            => '&TCP_UDP_SERVICE(5080)'
117                         }
118                 }
119                 unger: {
120                         @ferm::rule { 'dsa-notrack-dns-diamond-in':
121                                 domain      => 'ip',
122                                 description => 'NOTRACK for nameserver traffic',
123                                 table       => 'raw',
124                                 chain       => 'PREROUTING',
125                                 rule        => 'destination 82.195.75.108 proto (tcp udp) dport 53 jump NOTRACK'
126                         }
127                         @ferm::rule { 'dsa-notrack-dns-diamond-out':
128                                 domain      => 'ip',
129                                 description => 'NOTRACK for nameserver traffic',
130                                 table       => 'raw',
131                                 chain       => 'PREROUTING',
132                                 rule        => 'source 82.195.75.108 proto (tcp udp) sport 53 jump NOTRACK'
133                         }
134                 }
135                 sonntag: {
136                         @ferm::rule { 'dsa-bugs-search':
137                                 description  => 'port 1978 for bugs-search from bug web frontends',
138                                 rule         => '&SERVICE_RANGE(tcp, 1978, ( 140.211.166.26 206.12.19.140 ))'
139                         }
140                 }
141                 default: {}
142         }
143
144         if $::hostname in [rautavaara] {
145                 @ferm::rule { 'dsa-from-mgmt':
146                         description     => 'Traffic routed from mgmt net vlan/bridge',
147                         chain           => 'INPUT',
148                         rule            => 'interface eth1 ACCEPT'
149                 }
150                 @ferm::rule { 'dsa-mgmt-mark':
151                         table           => 'mangle',
152                         chain           => 'PREROUTING',
153                         rule            => 'interface eth1 MARK set-mark 1',
154                 }
155                 @ferm::rule { 'dsa-mgmt-nat':
156                         table           => 'nat',
157                         chain           => 'POSTROUTING',
158                         rule            => 'outerface eth1 mod mark mark 1 MASQUERADE',
159                 }
160         }
161
162         # redirect snapshot into varnish
163         case $::hostname {
164                 sibelius: {
165                         @ferm::rule { 'dsa-snapshot-varnish':
166                                 rule            => '&SERVICE(tcp, 6081)',
167                         }
168                         @ferm::rule { 'dsa-nat-snapshot-varnish':
169                                 table           => 'nat',
170                                 chain           => 'PREROUTING',
171                                 rule            => 'proto tcp daddr 193.62.202.30 dport 80 REDIRECT to-ports 6081',
172                         }
173                 }
174                 stabile: {
175                         @ferm::rule { 'dsa-snapshot-varnish':
176                                 rule            => '&SERVICE(tcp, 6081)',
177                         }
178                         @ferm::rule { 'dsa-nat-snapshot-varnish':
179                                 table           => 'nat',
180                                 chain           => 'PREROUTING',
181                                 rule            => 'proto tcp daddr 206.12.19.150 dport 80 REDIRECT to-ports 6081',
182                         }
183                 }
184                 default: {}
185         }
186         case $::hostname {
187                 bm-bl1,bm-bl2: {
188                         @ferm::rule { 'dsa-vrrp':
189                                 rule            => 'proto vrrp daddr 224.0.0.18 jump ACCEPT',
190                         }
191                         @ferm::rule { 'dsa-conntrackd':
192                                 rule            => 'interface vlan2 daddr 225.0.0.50 jump ACCEPT',
193                         }
194                 }
195                 default: {}
196         }
197
198         # postgres stuff
199         case $::hostname {
200                 ullmann: {
201                         @ferm::rule { 'dsa-postgres-udd':
202                                 description     => 'Allow postgress access',
203                                 # quantz, wagner, master, couper, coccia, franck
204                                 rule            => '&SERVICE_RANGE(tcp, 5452, ( 206.12.19.122/32 217.196.43.134/32 217.196.43.132/32 82.195.75.110/32 5.153.231.14/32 5.153.231.11/32 138.16.160.12/32 ))'
205                         }
206                         @ferm::rule { 'dsa-postgres-udd6':
207                                 domain          => '(ip6)',
208                                 description     => 'Allow postgress access',
209                                 rule            => '&SERVICE_RANGE(tcp, 5452, ( 2607:f8f0:610:4000:216:36ff:fe40:3860/128 2001:41b8:202:deb:216:36ff:fe40:4001/128 2001:41c8:1000:21::21:14/128 2001:41c8:1000:21::21:11/32 ))'
210                         }
211                 }
212                 grieg: {
213                         @ferm::rule { 'dsa-postgres-ullmann':
214                                 description     => 'Allow postgress access',
215                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 206.12.19.141/32 ))'
216                         }
217                         @ferm::rule { 'dsa-postgres-ullmann6':
218                                 domain          => '(ip6)',
219                                 description     => 'Allow postgress access',
220                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 2607:f8f0:610:4000:6564:a62:ce0c:138d/128 ))'
221                         }
222                 }
223                 franck: {
224                         @ferm::rule { 'dsa-postgres-franck':
225                                 description     => 'Allow postgress access',
226                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 5.153.231.10/32 ))'
227                         }
228                         @ferm::rule { 'dsa-postgres-franck6':
229                                 domain          => 'ip6',
230                                 description     => 'Allow postgress access',
231                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 2001:41c8:1000:21::21:10/128 ))'
232                         }
233                 }
234                 bmdb1: {
235                         @ferm::rule { 'dsa-postgres-main':
236                                 description     => 'Allow postgress access',
237                                 rule            => '&SERVICE_RANGE(tcp, 5435, ( 5.153.231.14/32 ))'
238                         }
239                         @ferm::rule { 'dsa-postgres-main6':
240                                 domain          => 'ip6',
241                                 description     => 'Allow postgress access',
242                                 rule            => '&SERVICE_RANGE(tcp, 5435, ( 2001:41c8:1000:21::21:14/128 ))'
243                         }
244                         @ferm::rule { 'dsa-postgres-dak':
245                                 description     => 'Allow postgress access',
246                                 rule            => '&SERVICE_RANGE(tcp, 5434, ( 5.153.231.11/32 206.12.19.122/32 206.12.19.123/32 206.12.19.134/32 ))'
247                         }
248                         @ferm::rule { 'dsa-postgres-dak6':
249                                 domain          => 'ip6',
250                                 description     => 'Allow postgress access',
251                                 rule            => '&SERVICE_RANGE(tcp, 5434, ( 2001:41c8:1000:21::21:11/128 2607:f8f0:610:4000:216:36ff:fe40:3860/128 2607:f8f0:610:4000:216:36ff:fe40:3861/128 2607:f8f0:610:4000:6564:a62:ce0c:1386/128 ))'
252                         }
253                         @ferm::rule { 'dsa-postgres-wanna-build':
254                                 # wuiet, ullmann, franck
255                                 description     => 'Allow postgress access',
256                                 rule            => '&SERVICE_RANGE(tcp, 5436, ( 5.153.231.18/32 206.12.19.141/32 138.16.160.12/32 ))'
257                         }
258                         @ferm::rule { 'dsa-postgres-wanna-build6':
259                                 domain          => 'ip6',
260                                 description     => 'Allow postgress access',
261                                 rule            => '&SERVICE_RANGE(tcp, 5436, ( 2001:41c8:1000:21::21:18/128 2607:f8f0:610:4000:6564:a62:ce0c:138d/128 ))'
262                         }
263                         @ferm::rule { 'dsa-postgres-bacula':
264                                 # dinis
265                                 description     => 'Allow postgress access1',
266                                 rule            => '&SERVICE_RANGE(tcp, 5437, ( 5.153.231.19/32 ))'
267                         }
268                         @ferm::rule { 'dsa-postgres-bacula6':
269                                 domain          => 'ip6',
270                                 description     => 'Allow postgress access1',
271                                 rule            => '&SERVICE_RANGE(tcp, 5437, ( 2001:41c8:1000:21::21:19/128 ))'
272                         }
273                 }
274                 danzi: {
275                         @ferm::rule { 'dsa-postgres-danzi':
276                                 # ubc, wuit
277                                 description     => 'Allow postgress access',
278                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 206.12.19.0/24 5.153.231.18/32 ))'
279                         }
280                         @ferm::rule { 'dsa-postgres-danzi6':
281                                 domain          => 'ip6',
282                                 description     => 'Allow postgress access',
283                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 2607:f8f0:610:4000::/64 2001:41c8:1000:21::21:18/128 ))'
284                         }
285
286                         @ferm::rule { 'dsa-postgres2-danzi':
287                                 description     => 'Allow postgress access2',
288                                 rule            => '&SERVICE_RANGE(tcp, 5437, ( 206.12.19.0/24 ))'
289                         }
290                         @ferm::rule { 'dsa-postgres3-danzi':
291                                 description     => 'Allow postgress access3',
292                                 rule            => '&SERVICE_RANGE(tcp, 5436, ( 206.12.19.0/24 ))'
293                         }
294                         @ferm::rule { 'dsa-postgres4-danzi':
295                                 description     => 'Allow postgress access4',
296                                 rule            => '&SERVICE_RANGE(tcp, 5438, ( 206.12.19.0/24 ))'
297                         }
298
299                 }
300         }
301         # vpn fu
302         case $::hostname {
303                 draghi,eysler: {
304                         @ferm::rule { 'dsa-vpn':
305                                 description     => 'Allow openvpn access',
306                                 rule            => '&SERVICE(udp, 17257)'
307                         }
308                         @ferm::rule { 'dsa-routing':
309                                 description     => 'forward chain',
310                                 chain           => 'FORWARD',
311                                 rule            => 'policy ACCEPT;
312 mod state state (ESTABLISHED RELATED) ACCEPT;
313 interface tun+ ACCEPT;
314 REJECT reject-with icmp-admin-prohibited
315 '
316                         }
317                         @ferm::rule { 'dsa-vpn-mark':
318                                 table           => 'mangle',
319                                 chain           => 'PREROUTING',
320                                 rule            => 'interface tun+ MARK set-mark 1',
321                         }
322                         @ferm::rule { 'dsa-vpn-nat':
323                                 table           => 'nat',
324                                 chain           => 'POSTROUTING',
325                                 rule            => 'outerface !tun+ mod mark mark 1 MASQUERADE',
326                         }
327                 }
328         }
329 }