]> Sergey Matveev's repositories - zdns.git/blob - rc.zsh
Initial commit
[zdns.git] / rc.zsh
1 NoSPF='"v=spf1 -all"'
2 ReSPF='"v=spf1 redirect=_spf.stargrave.org"'
3
4 GW4=91.211.5.21
5 GW6=2a03:e2c0:2663:1::1
6 VPS4=45.10.110.72
7 VPS6=2a04:ac00:a:146::25
8 Y6=21a:af91:8d0e:b05:9645:e4e9:12be:3c39
9
10 NS1=uz544mqwggqbf3z4utlhfqn45vpbpq78nc63hpg5u2ut29stkt0pkr.ns7.stargrave.org.
11 NS2=uz5nulnd504gp3s7sdmdl5l2gxc762hpw926t90k39ltxp67flbccn.ns5.stargrave.org.
12
13 SSHGW=8397b7a5602758bb302cf6fd1a26b9a027388687f80be269c8cb1e7bbab707f0
14 SSHVPS=35cf6677a0e85882ebf1deac20d4e9a87ae94d9599ea9db3786711268a4052b6
15
16 zone_start() {
17     local serial=$1
18     cat <<EOF
19 \$TTL 21600
20 \$ORIGIN ${DOMAIN}.
21 ${DOMAIN}. 21600 IN SOA $NS1 admin.${DOMAIN}. (
22         ${serial} ; Serial
23         12h ; Refresh
24         2h ; Retry
25         2w ; Expire
26         6h ; TTL
27 )
28 @ NS $NS1
29 @ NS $NS2
30 _dmarc TXT "v=DMARC1; p=none"
31 EOF
32 }
33
34 add_dane() {
35     local subdomain=$1
36     local domain=$2
37     local prefix=_${DANE_PORT:-443}._tcp
38     [[ $subdomain = "@" ]] || prefix=$prefix.$subdomain
39     print "$subdomain CAA 0 issue \"ca.cypherpunks.ru\""
40     print "$subdomain CAA 0 issue \"cagost.cypherpunks.ru\""
41     pushd ~/secure/ca
42     local hsh=$(~/work/zeasypki/zeasypki dane ee/ecdsa/ca.cypherpunks.ru/$domain)
43     print "$prefix TLSA 3 1 1 $hsh"
44     [[ -e ee/gost/cagost.cypherpunks.ru/$domain ]] && {
45         hsh=$(~/work/zeasypki/zeasypki dane ee/gost/cagost.cypherpunks.ru/$domain)
46         print "$prefix TLSA 3 1 1 $hsh"
47     }
48     popd
49 }
50
51 add_subdomain() {
52     local subdomain=$1
53     shift
54     for addr (${=1}) {
55         [[ $addr =~ : ]] && a=AAAA || a=A
56         print "$subdomain $a $addr"
57     }
58     shift
59     local flags=(${=@})
60     [[ ${flags[(I)tls]} -ne 0 ]] && {
61         add_dane $subdomain ${subdomain}.$DOMAIN
62     }
63     [[ ${flags[(I)nospf]} -eq 0 ]] && {
64         print "$subdomain TXT $NoSPF"
65     }
66     [[ ${flags[(I)y]} -ne 0 ]] && {
67         print "y.$subdomain AAAA $Y6"
68         print "y.$subdomain TXT $NoSPF"
69     }
70     return 0
71 }
72
73 add_mx() {
74     local subdomain=$1
75     cat <<EOF
76 $subdomain MX 10 mailfake0.stargrave.org.
77 $subdomain MX 20 mail2.stargrave.org.
78 $subdomain MX 30 mailfake1.stargrave.org.
79 $subdomain TXT $ReSPF
80 EOF
81 }
82
83 add_pgp() {
84     local uid=$1
85     gpg --export-options export-dane --export $uid |
86         sed -n '1,/^$/p'|
87         sed -n '2,$p' |
88         sed 's/ TYPE61/._openpgpkey TYPE61/'
89 }
90
91 add_ssh() {
92     print "$1 SSHFP 4 2 $2"
93 }