ソースを参照

Move tor bridge definitions to their own file

Bob Mottram 7 年 前
コミット
f3033b4d5c
共有1 個のファイルを変更した25 個の追加60 個の削除を含む
  1. 25
    60
      src/freedombone-utils-onion

+ 25
- 60
src/freedombone-utils-onion ファイルの表示

478
 
478
 
479
     apt-get -yq install obfs4proxy
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
     else
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
     fi
489
     fi
500
 
490
 
501
     systemctl restart tor
491
     systemctl restart tor
508
     if [[ "$bridge_ip_address" == *"."* ]]; then
498
     if [[ "$bridge_ip_address" == *"."* ]]; then
509
         bridge_str="Bridge $bridge_type ${bridge_ip_address}"
499
         bridge_str="Bridge $bridge_type ${bridge_ip_address}"
510
     else
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
             bridge_str=" ${bridge_ip_address}"
502
             bridge_str=" ${bridge_ip_address}"
513
         else
503
         else
514
             return
504
             return
515
         fi
505
         fi
516
     fi
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
     fi
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
     fi
514
     fi
530
 
515
 
531
     systemctl restart tor
516
     systemctl restart tor
534
 function tor_create_bridge_relay {
519
 function tor_create_bridge_relay {
535
     read_config_param 'TOR_BRIDGE_PORT'
520
     read_config_param 'TOR_BRIDGE_PORT'
536
     read_config_param 'TOR_BRIDGE_NICKNAME'
521
     read_config_param 'TOR_BRIDGE_NICKNAME'
522
+    read_config_param 'MY_EMAIL_ADDRESS'
523
+
537
     if [ ! "$TOR_BRIDGE_PORT" ]; then
524
     if [ ! "$TOR_BRIDGE_PORT" ]; then
538
         return
525
         return
539
     fi
526
     fi
546
 
533
 
547
     apt-get -yq install obfs4proxy
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
     firewall_add tor_bridge "$TOR_BRIDGE_PORT" tcp
542
     firewall_add tor_bridge "$TOR_BRIDGE_PORT" tcp
543
+
569
     systemctl restart tor
544
     systemctl restart tor
570
 }
545
 }
571
 
546
 
572
 function tor_remove_bridge_relay {
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
     fi
550
     fi
551
+
588
     read_config_param 'TOR_BRIDGE_PORT'
552
     read_config_param 'TOR_BRIDGE_PORT'
589
     firewall_remove "$TOR_BRIDGE_PORT" tcp
553
     firewall_remove "$TOR_BRIDGE_PORT" tcp
554
+
590
     systemctl restart tor
555
     systemctl restart tor
591
 }
556
 }
592
 
557