|
@@ -478,24 +478,14 @@ function tor_add_bridge {
|
478
|
478
|
|
479
|
479
|
apt-get -yq install obfs4proxy
|
480
|
480
|
|
481
|
|
- if grep -q "ClientTransportPlugin" /etc/tor/torrc; then
|
482
|
|
- sed -i 's|#ClientTransportPlugin|ClientTransportPlugin|g' /etc/tor/torrc
|
483
|
|
- sed -i 's|# ClientTransportPlugin|ClientTransportPlugin|g' /etc/tor/torrc
|
484
|
|
- sed -i 's|ClientTransportPlugin.*|ClientTransportPlugin obfs4 exec /usr/bin/obfs4proxy managed|g' /etc/tor/torrc
|
|
481
|
+ if [ ! -f /etc/torrc.d/bridges ]; then
|
|
482
|
+ { echo 'ClientTransportPlugin obfs4 exec /usr/bin/obfs4proxy managed';
|
|
483
|
+ echo 'UseBridges 1';
|
|
484
|
+ echo "Bridge $bridge_type ${bridge_ip_address}:${bridge_port} ${bridge_key}"; } > /etc/torrc.d/bridges
|
485
|
485
|
else
|
486
|
|
- echo 'ClientTransportPlugin obfs4 exec /usr/bin/obfs4proxy managed' >> /etc/tor/torrc
|
487
|
|
- fi
|
488
|
|
- if grep -q "UseBridges" /etc/tor/torrc; then
|
489
|
|
- sed -i 's|#UseBridges|UseBridges|g' /etc/tor/torrc
|
490
|
|
- sed -i 's|# UseBridges|UseBridges|g' /etc/tor/torrc
|
491
|
|
- sed -i 's|UseBridges.*|UseBridges 1|g' /etc/tor/torrc
|
492
|
|
- else
|
493
|
|
- echo 'UseBridges 1' >> /etc/tor/torrc
|
494
|
|
- fi
|
495
|
|
-
|
496
|
|
- bridge_str="Bridge $bridge_type ${bridge_ip_address}:${bridge_port} ${bridge_key}"
|
497
|
|
- if ! grep -q "${bridge_str}" /etc/tor/torrc; then
|
498
|
|
- sed -i "/UseBridges/a ${bridge_str}" >> /etc/tor/torrc
|
|
486
|
+ if ! grep -q "Bridge $bridge_type ${bridge_ip_address}:${bridge_port} ${bridge_key}" /etc/torrc.d/bridges; then
|
|
487
|
+ echo "Bridge $bridge_type ${bridge_ip_address}:${bridge_port} ${bridge_key}" >> /etc/torrc.d/bridges
|
|
488
|
+ fi
|
499
|
489
|
fi
|
500
|
490
|
|
501
|
491
|
systemctl restart tor
|
|
@@ -508,24 +498,19 @@ function tor_remove_bridge {
|
508
|
498
|
if [[ "$bridge_ip_address" == *"."* ]]; then
|
509
|
499
|
bridge_str="Bridge $bridge_type ${bridge_ip_address}"
|
510
|
500
|
else
|
511
|
|
- if grep -q " ${bridge_ip_address}" /etc/tor/torrc; then
|
|
501
|
+ if grep -q " ${bridge_ip_address}" /etc/torrc.d/bridges; then
|
512
|
502
|
bridge_str=" ${bridge_ip_address}"
|
513
|
503
|
else
|
514
|
504
|
return
|
515
|
505
|
fi
|
516
|
506
|
fi
|
517
|
|
- if grep -q "${bridge_str}" /etc/tor/torrc; then
|
518
|
|
- sed -i "/${bridge_str}/d" /etc/tor/torrc
|
|
507
|
+ if grep -q "${bridge_str}" /etc/torrc.d/bridges; then
|
|
508
|
+ sed -i "/${bridge_str}/d" /etc/torrc.d/bridges
|
519
|
509
|
fi
|
520
|
510
|
|
521
|
|
- # If there are no bridges remaining then remove UseBridges
|
522
|
|
- if ! grep -q "Bridge " /etc/tor/torrc; then
|
523
|
|
- if ! grep -q "#UseBridges" /etc/tor/torrc; then
|
524
|
|
- sed -i 's|UseBridges|#UseBridges|g' /etc/tor/torrc
|
525
|
|
- fi
|
526
|
|
- if ! grep -q "#ClientTransportPlugin" /etc/tor/torrc; then
|
527
|
|
- sed -i 's|ClientTransportPlugin|#ClientTransportPlugin|g' /etc/tor/torrc
|
528
|
|
- fi
|
|
511
|
+ # If there are no bridges remaining then remove the file
|
|
512
|
+ if ! grep -q "Bridge " /etc/torrc.d/bridges; then
|
|
513
|
+ rm /etc/torrc.d/bridges
|
529
|
514
|
fi
|
530
|
515
|
|
531
|
516
|
systemctl restart tor
|
|
@@ -534,6 +519,8 @@ function tor_remove_bridge {
|
534
|
519
|
function tor_create_bridge_relay {
|
535
|
520
|
read_config_param 'TOR_BRIDGE_PORT'
|
536
|
521
|
read_config_param 'TOR_BRIDGE_NICKNAME'
|
|
522
|
+ read_config_param 'MY_EMAIL_ADDRESS'
|
|
523
|
+
|
537
|
524
|
if [ ! "$TOR_BRIDGE_PORT" ]; then
|
538
|
525
|
return
|
539
|
526
|
fi
|
|
@@ -546,47 +533,25 @@ function tor_create_bridge_relay {
|
546
|
533
|
|
547
|
534
|
apt-get -yq install obfs4proxy
|
548
|
535
|
|
549
|
|
- sed -i 's|#BridgeRelay.*|BridgeRelay 1|g' /etc/tor/torrc
|
550
|
|
- sed -i 's|BridgeRelay.*|BridgeRelay 1|g' /etc/tor/torrc
|
551
|
|
- sed -i 's|#ServerTransportPlugin.*|ServerTransportPlugin obfs4 exec /usr/bin/obfs4proxy|g' /etc/tor/torrc
|
552
|
|
- sed -i 's|ServerTransportPlugin.*|ServerTransportPlugin obfs4 exec /usr/bin/obfs4proxy|g' /etc/tor/torrc
|
553
|
|
-
|
554
|
|
- if ! grep -q 'ExtORPort ' /etc/tor/torrc; then
|
555
|
|
- echo "ExtORPort $TOR_BRIDGE_PORT" >> /etc/tor/torrc
|
556
|
|
- else
|
557
|
|
- sed -i "s|#ExtORPort .*|ExtORPort $TOR_BRIDGE_PORT|g" /etc/tor/torrc
|
558
|
|
- sed -i "s|ExtORPort .*|ExtORPort $TOR_BRIDGE_PORT|g" /etc/tor/torrc
|
559
|
|
- fi
|
560
|
|
-
|
561
|
|
- read_config_param 'MY_EMAIL_ADDRESS'
|
|
536
|
+ { echo 'BridgeRelay 1';
|
|
537
|
+ echo 'ServerTransportPlugin obfs4 exec /usr/bin/obfs4proxy';
|
|
538
|
+ echo "ExtORPort $TOR_BRIDGE_PORT";
|
|
539
|
+ echo "ContactInfo $MY_EMAIL_ADDRESS";
|
|
540
|
+ echo "Nickname $TOR_BRIDGE_NICKNAME"; } > /etc/torrc.d/bridgerelay
|
562
|
541
|
|
563
|
|
- sed -i "s|#ContactInfo.*|ContactInfo $MY_EMAIL_ADDRESS|g" /etc/tor/torrc
|
564
|
|
- if [ "$TOR_BRIDGE_NICKNAME" ]; then
|
565
|
|
- sed -i "s|#Nickname.*|Nickname $TOR_BRIDGE_NICKNAME|g" /etc/tor/torrc
|
566
|
|
- sed -i "s|Nickname.*|Nickname $TOR_BRIDGE_NICKNAME|g" /etc/tor/torrc
|
567
|
|
- fi
|
568
|
542
|
firewall_add tor_bridge "$TOR_BRIDGE_PORT" tcp
|
|
543
|
+
|
569
|
544
|
systemctl restart tor
|
570
|
545
|
}
|
571
|
546
|
|
572
|
547
|
function tor_remove_bridge_relay {
|
573
|
|
- if ! grep -q '#BridgeRelay ' /etc/tor/torrc; then
|
574
|
|
- sed -i 's|BridgeRelay |#BridgeRelay |g' /etc/tor/torrc
|
575
|
|
- fi
|
576
|
|
- if ! grep -q '#ServerTransportPlugin ' /etc/tor/torrc; then
|
577
|
|
- sed -i 's|ServerTransportPlugin |#ServerTransportPlugin |g' /etc/tor/torrc
|
578
|
|
- fi
|
579
|
|
- if ! grep -q '#ExtORPort ' /etc/tor/torrc; then
|
580
|
|
- sed -i 's|ExtORPort |#ExtORPort |g' /etc/tor/torrc
|
581
|
|
- fi
|
582
|
|
- if ! grep -q '#ContactInfo ' /etc/tor/torrc; then
|
583
|
|
- sed -i "s|ContactInfo |#ContactInfo |g" /etc/tor/torrc
|
584
|
|
- fi
|
585
|
|
- if ! grep -q '#Nickname ' /etc/tor/torrc; then
|
586
|
|
- sed -i "s|Nickname |#Nickname |g" /etc/tor/torrc
|
|
548
|
+ if [ -f /etc/torrc.d/bridgerelay ]; then
|
|
549
|
+ rm /etc/torrc.d/bridgerelay
|
587
|
550
|
fi
|
|
551
|
+
|
588
|
552
|
read_config_param 'TOR_BRIDGE_PORT'
|
589
|
553
|
firewall_remove "$TOR_BRIDGE_PORT" tcp
|
|
554
|
+
|
590
|
555
|
systemctl restart tor
|
591
|
556
|
}
|
592
|
557
|
|