|
@@ -71,6 +71,33 @@ GPGIT_COMMIT='583dc76119f19420f8a33f606744faa7c8922738'
|
71
|
71
|
# refresh gpg keys every few hours
|
72
|
72
|
REFRESH_GPG_KEYS_HOURS=2
|
73
|
73
|
|
|
74
|
+exim_version='4.89'
|
|
75
|
+
|
|
76
|
+function rebuild_exim_with_socks {
|
|
77
|
+ # shellcheck disable=SC2154
|
|
78
|
+ if [ ! -d "$INSTALL_DIR" ]; then
|
|
79
|
+ mkdir -p "$INSTALL_DIR/exim4"
|
|
80
|
+ fi
|
|
81
|
+ cd "$INSTALL_DIR/exim4" || exit 3468356
|
|
82
|
+ rm -rf "$INSTALL_DIR/exim4/"*
|
|
83
|
+ apt-get source exim4-daemon-heavy
|
|
84
|
+ apt-get -qy build-dep exim4-daemon-heavy
|
|
85
|
+ cd "${INSTALL_DIR}/exim4/exim4-*" || exit 356835685
|
|
86
|
+ cp src/EDITME Local/Makefile
|
|
87
|
+ sed -i 's|# SUPPORT_SOCKS|SUPPORT_SOCKS|g' Local/Makefile
|
|
88
|
+ # TODO how to make this non-interactive
|
|
89
|
+ dpkg-source --commit . SOCKS
|
|
90
|
+ debuild -us -uc
|
|
91
|
+ cd "$INSTALL_DIR/exim4" || exit 3468356
|
|
92
|
+ mv exim4_${exim_version}-*.deb exim4_${exim_version}_all.deb
|
|
93
|
+ if [ ! -f exim4_${exim_version}_all.deb ]; then
|
|
94
|
+ ls -l "$INSTALL_DIR/exim4/"*.deb
|
|
95
|
+ echo "exim4_${exim_version}_all.deb not found"
|
|
96
|
+ exit 63857368
|
|
97
|
+ fi
|
|
98
|
+ dpkg -i exim4_${exim_version}_all.deb
|
|
99
|
+}
|
|
100
|
+
|
74
|
101
|
function email_create_template {
|
75
|
102
|
if [ ! -d /etc/skel/log ]; then
|
76
|
103
|
mkdir -m 700 /etc/skel/log
|
|
@@ -170,37 +197,38 @@ function configure_email_onion {
|
170
|
197
|
#echo "$DEFAULT_DOMAIN_NAME $onion_address" > /etc/exim4/onionrelay.txt
|
171
|
198
|
#cdb -m -c -t ~/onionrelay.tmp /etc/exim4/onionrelay.cdb /etc/exim4/onionrelay.txt
|
172
|
199
|
|
173
|
|
- #{ echo "perl_startup = do '/etc/exim4/perl-routines.pl'";
|
174
|
|
- # echo "perl_at_start"; } > /etc/exim4/conf.d/main/perl
|
175
|
|
-
|
176
|
|
- #{ echo "use Net::DNS::Resolver;";
|
177
|
|
- # echo "sub onionLookup {";
|
178
|
|
- # echo " my \$hostname = shift;";
|
179
|
|
- # echo " my \$res = Net::DNS::Resolver->new(nameservers => [qw(127.0.0.1)],);";
|
180
|
|
- # echo " \$res->port(5300);";
|
181
|
|
- # echo " my \$query = \$res->search(\$hostname);";
|
182
|
|
- # echo " foreach my \$rr (\$query->answer) {";
|
183
|
|
- # echo " next unless \$rr->type eq \"A\";";
|
184
|
|
- # echo " return \$rr->address;";
|
185
|
|
- # echo " }";
|
186
|
|
- # echo " return 'no_such_host';";
|
187
|
|
- # echo "}"; } > /etc/exim4/perl-routines.pl
|
|
200
|
+ { echo "perl_startup = do '/etc/exim4/perl-routines.pl'";
|
|
201
|
+ echo "perl_at_start"; } > /etc/exim4/conf.d/main/00_exim4-config_perl
|
|
202
|
+
|
|
203
|
+ { echo "use Net::DNS::Resolver;";
|
|
204
|
+ echo "sub onionLookup {";
|
|
205
|
+ echo " my \$hostname = shift;";
|
|
206
|
+ echo " my \$res = Net::DNS::Resolver->new(nameservers => [qw(127.0.0.1)],);";
|
|
207
|
+ echo " \$res->port(5300);";
|
|
208
|
+ echo " my \$query = \$res->search(\$hostname);";
|
|
209
|
+ echo " foreach my \$rr (\$query->answer) {";
|
|
210
|
+ echo " next unless \$rr->type eq \"A\";";
|
|
211
|
+ echo " return \$rr->address;";
|
|
212
|
+ echo " }";
|
|
213
|
+ echo " return 'no_such_host';";
|
|
214
|
+ echo "}"; } > /etc/exim4/perl-routines.pl
|
188
|
215
|
|
189
|
216
|
#{ echo "ONION_RELAYDB=/etc/exim4/onionrelay.cdb";
|
190
|
217
|
# echo "domainlist onion_relays = cdb;ONION_RELAYDB"; } > /etc/exim4/conf.d/main/48_exim4-config_onion_relays
|
191
|
218
|
|
192
|
219
|
{ echo "riseup:";
|
193
|
220
|
echo " driver = manualroute";
|
194
|
|
- echo " domains = riseup.net $RISEUP_EMAIL_ONION";
|
|
221
|
+ echo " domains = riseup.net";
|
195
|
222
|
echo " transport = onion_relay";
|
196
|
|
- echo " route_data = \${lookup dnsdb{a=$RISEUP_EMAIL_ONION}}";
|
|
223
|
+ echo " route_data = \${perl{onionLookup}{$RISEUP_EMAIL_ONION}}"
|
197
|
224
|
echo " no_more"; } > /etc/exim4/conf.d/router/049_exim4-config-riseup
|
198
|
225
|
|
199
|
226
|
{ echo "onionrelays:";
|
200
|
227
|
echo " driver = manualroute";
|
201
|
228
|
echo " domains = *.onion";
|
202
|
229
|
echo " transport = onion_relay";
|
203
|
|
- echo " route_data = \${lookup dnsdb{a=\$domain}}";
|
|
230
|
+ #echo " route_data = \${lookup dnsdb{a=\$domain}}";
|
|
231
|
+ echo " route_data = \${perl{onionLookup}{\$domain}}"
|
204
|
232
|
echo " no_more"; } > /etc/exim4/conf.d/router/050_exim4-config-onionrelays
|
205
|
233
|
|
206
|
234
|
{ echo "onion_relay:";
|