]> git.donarmstrong.com Git - dsa-puppet.git/blob - modules/ferm/manifests/per-host.pp
udd db access from couper instead of coincy
[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                 ullmann: {
22                         @ferm::rule { 'dsa-postgres-udd':
23                                 description     => 'Allow postgress access',
24                                 # quantz, wagner, master, couper
25                                 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 ))'
26                         }
27                         @ferm::rule { 'dsa-postgres-udd6':
28                                 domain          => '(ip6)',
29                                 description     => 'Allow postgress access',
30                                 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 ))'
31                         }
32                 }
33                 czerny,clementi: {
34                         @ferm::rule { 'dsa-upsmon':
35                                 description     => 'Allow upsmon access',
36                                 rule            => '&SERVICE_RANGE(tcp, 3493, ( 82.195.75.64/26 192.168.43.0/24 ))'
37                         }
38                 }
39                 bendel: {
40                         @ferm::rule { 'listmaster-ontp-in':
41                                 description     => 'ONTP has a broken mail setup',
42                                 table           => 'filter',
43                                 chain           => 'INPUT',
44                                 rule            => 'source 188.165.23.89/32 proto tcp dport 25 jump DROP',
45                         }
46                         @ferm::rule { 'listmaster-ontp-out':
47                                 description     => 'ONTP has a broken mail setup',
48                                 table           => 'filter',
49                                 chain           => 'OUTPUT',
50                                 rule            => 'destination 78.8.208.246/32 proto tcp dport 25 jump DROP',
51                         }
52                 }
53                 abel,alwyn,rietz: {
54                         @ferm::rule { 'dsa-tftp':
55                                 description     => 'Allow tftp access',
56                                 rule            => '&SERVICE(udp, 69)'
57                         }
58                 }
59                 paganini: {
60                         @ferm::rule { 'dsa-dhcp':
61                                 description     => 'Allow dhcp access',
62                                 rule            => '&SERVICE(udp, 67)'
63                         }
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-bind':
96                         #    domain          => '(ip ip6)',
97                         #    description     => 'Allow nameserver access',
98                         #    rule            => '&TCP_UDP_SERVICE(53)'
99                         #}
100                         @ferm::rule { 'dsa-finger':
101                                 domain          => '(ip ip6)',
102                                 description     => 'Allow finger access',
103                                 rule            => '&SERVICE(tcp, 79)'
104                         }
105                         @ferm::rule { 'dsa-ldap':
106                                 domain          => '(ip ip6)',
107                                 description     => 'Allow ldap access',
108                                 rule            => '&SERVICE(tcp, 389)'
109                         }
110                         @ferm::rule { 'dsa-ldaps':
111                                 domain          => '(ip ip6)',
112                                 description     => 'Allow ldaps access',
113                                 rule            => '&SERVICE(tcp, 636)'
114                         }
115                 }
116                 cilea: {
117                         ferm::module { 'nf_conntrack_sip': }
118                         ferm::module { 'nf_conntrack_h323': }
119
120                         @ferm::rule { 'dsa-sip':
121                                 domain          => '(ip ip6)',
122                                 description     => 'Allow sip access',
123                                 rule            => '&TCP_UDP_SERVICE(5060)'
124                         }
125                         @ferm::rule { 'dsa-sipx':
126                                 domain          => '(ip ip6)',
127                                 description     => 'Allow sipx access',
128                                 rule            => '&TCP_UDP_SERVICE(5080)'
129                         }
130                 }
131                 unger: {
132                         @ferm::rule { 'dsa-notrack-dns-diamond-in':
133                                 domain      => 'ip',
134                                 description => 'NOTRACK for nameserver traffic',
135                                 table       => 'raw',
136                                 chain       => 'PREROUTING',
137                                 rule        => 'destination 82.195.75.108 proto (tcp udp) dport 53 jump NOTRACK'
138                         }
139                         @ferm::rule { 'dsa-notrack-dns-diamond-out':
140                                 domain      => 'ip',
141                                 description => 'NOTRACK for nameserver traffic',
142                                 table       => 'raw',
143                                 chain       => 'PREROUTING',
144                                 rule        => 'source 82.195.75.108 proto (tcp udp) sport 53 jump NOTRACK'
145                         }
146                 }
147                 sonntag: {
148                         @ferm::rule { 'dsa-bugs-search':
149                                 description  => 'port 1978 for bugs-search from bug web frontends',
150                                 rule         => '&SERVICE_RANGE(tcp, 1978, ( 140.211.166.26 206.12.19.140 ))'
151                         }
152                 }
153                 default: {}
154         }
155
156         if $::hostname in [rautavaara] {
157                 @ferm::rule { 'dsa-from-mgmt':
158                         description     => 'Traffic routed from mgmt net vlan/bridge',
159                         chain           => 'INPUT',
160                         rule            => 'interface eth1 ACCEPT'
161                 }
162                 @ferm::rule { 'dsa-mgmt-mark':
163                         table           => 'mangle',
164                         chain           => 'PREROUTING',
165                         rule            => 'interface eth1 MARK set-mark 1',
166                 }
167                 @ferm::rule { 'dsa-mgmt-nat':
168                         table           => 'nat',
169                         chain           => 'POSTROUTING',
170                         rule            => 'outerface eth1 mod mark mark 1 MASQUERADE',
171                 }
172         }
173
174         # redirect snapshot into varnish
175         case $::hostname {
176                 sibelius: {
177                         @ferm::rule { 'dsa-snapshot-varnish':
178                                 rule            => '&SERVICE(tcp, 6081)',
179                         }
180                         @ferm::rule { 'dsa-nat-snapshot-varnish':
181                                 table           => 'nat',
182                                 chain           => 'PREROUTING',
183                                 rule            => 'proto tcp daddr 193.62.202.30 dport 80 REDIRECT to-ports 6081',
184                         }
185                 }
186                 stabile: {
187                         @ferm::rule { 'dsa-snapshot-varnish':
188                                 rule            => '&SERVICE(tcp, 6081)',
189                         }
190                         @ferm::rule { 'dsa-nat-snapshot-varnish':
191                                 table           => 'nat',
192                                 chain           => 'PREROUTING',
193                                 rule            => 'proto tcp daddr 206.12.19.150 dport 80 REDIRECT to-ports 6081',
194                         }
195                 }
196                 default: {}
197         }
198         case $::hostname {
199                 bm-bl1,bm-bl2: {
200                         @ferm::rule { 'dsa-vrrp':
201                                 rule            => 'proto vrrp daddr 224.0.0.18 jump ACCEPT',
202                         }
203                         @ferm::rule { 'dsa-conntrackd':
204                                 rule            => 'interface vlan2 daddr 225.0.0.50 jump ACCEPT',
205                         }
206                 }
207                 default: {}
208         }
209
210         # postgres stuff
211         case $::hostname {
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-dak':
236                                 description     => 'Allow postgress access',
237                                 rule            => '&SERVICE_RANGE(tcp, 5434, ( 5.153.231.11/32 206.12.19.0/24 ))'
238                         }
239                         @ferm::rule { 'dsa-postgres-dak6':
240                                 domain          => 'ip6',
241                                 description     => 'Allow postgress access',
242                                 rule            => '&SERVICE_RANGE(tcp, 5434, ( 2001:41c8:1000:21::21:11/128 2607:f8f0:610:4000::/64 ))'
243                         }
244                 }
245                 danzi: {
246                         @ferm::rule { 'dsa-postgres-danzi':
247                                 description     => 'Allow postgress access',
248                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 206.12.19.0/24 194.177.211.200/32 ))'
249                         }
250                         @ferm::rule { 'dsa-postgres-danzi6':
251                                 domain          => 'ip6',
252                                 description     => 'Allow postgress access',
253                                 rule            => '&SERVICE_RANGE(tcp, 5433, ( 2607:f8f0:610:4000::/64 2001:648:2ffc:deb:214:22ff:fe74:1fa/128 ))'
254                         }
255
256                         @ferm::rule { 'dsa-postgres2-danzi':
257                                 description     => 'Allow postgress access2',
258                                 rule            => '&SERVICE_RANGE(tcp, 5437, ( 206.12.19.0/24 ))'
259                         }
260                         @ferm::rule { 'dsa-postgres3-danzi':
261                                 description     => 'Allow postgress access3',
262                                 rule            => '&SERVICE_RANGE(tcp, 5436, ( 206.12.19.0/24 ))'
263                         }
264                         @ferm::rule { 'dsa-postgres4-danzi':
265                                 description     => 'Allow postgress access4',
266                                 rule            => '&SERVICE_RANGE(tcp, 5438, ( 206.12.19.0/24 ))'
267                         }
268
269                         @ferm::rule { 'dsa-postgres-bacula-danzi':
270                                 description     => 'Allow postgress access1',
271                                 rule            => '&SERVICE_RANGE(tcp, 5434, ( 206.12.19.139/32 ))'
272                         }
273                         @ferm::rule { 'dsa-postgres-bacula-danzi6':
274                                 domain          => 'ip6',
275                                 description     => 'Allow postgress access1',
276                                 rule            => '&SERVICE_RANGE(tcp, 5434, ( 2607:f8f0:610:4000:6564:a62:ce0c:138b/128 ))'
277                         }
278                 }
279         }
280         # vpn fu
281         case $::hostname {
282                 draghi,eysler: {
283                         @ferm::rule { 'dsa-vpn':
284                                 description     => 'Allow openvpn access',
285                                 rule            => '&SERVICE(udp, 17257)'
286                         }
287                         @ferm::rule { 'dsa-routing':
288                                 description     => 'forward chain',
289                                 chain           => 'FORWARD',
290                                 rule            => 'policy ACCEPT;
291 mod state state (ESTABLISHED RELATED) ACCEPT;
292 interface tun+ ACCEPT;
293 REJECT reject-with icmp-admin-prohibited
294 '
295                         }
296                         @ferm::rule { 'dsa-vpn-mark':
297                                 table           => 'mangle',
298                                 chain           => 'PREROUTING',
299                                 rule            => 'interface tun+ MARK set-mark 1',
300                         }
301                         @ferm::rule { 'dsa-vpn-nat':
302                                 table           => 'nat',
303                                 chain           => 'POSTROUTING',
304                                 rule            => 'outerface !tun+ mod mark mark 1 MASQUERADE',
305                         }
306                 }
307         }
308 }