瀏覽代碼

Move tor bridge definitions to their own file

Bob Mottram 6 年之前
父節點
當前提交
f3033b4d5c
共有 1 個文件被更改,包括 25 次插入60 次删除
  1. 25
    60
      src/freedombone-utils-onion

+ 25
- 60
src/freedombone-utils-onion 查看文件

@@ -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