Đầu tiên một số lưu ý; Tôi đã đạt đến giới hạn XP của StackExchange vì vậy đây là một câu trả lời bị bỏ qua; sử dụng một cách khôn ngoan ;-)
Các thuật ngữ này được sử dụng thay thế cho nhau và có các thuật ngữ khác mà các loại thiết lập này được gọi, tôi sẽ cố gắng sử dụng các thuật ngữ Whonix cho hầu hết các điều khoản sau đây.
Những gì bạn có thể đang tìm kiếm được giới thiệu là cầu nối giữa hoặc cầu riêng cho thiết bị cổng và ứng dụng khách ( trans-proxy
) của bạn, nhóm RaspberryPi tại Adafbean đang lưu trữ một hướng dẫn cụ thể khá rõ ràng về cách thiết lập cách ly vật lý với các cấu hình torrc
và iptables
phép thuật tùy chỉnh . Các yêu cầu cho cổng của bạn sẽ là nó có hai giao diện mạng, điều này có thể eth0
và eth1
hoặc usb0
hoặc ppp0
máy trạm (máy khách) của bạn chỉ nên có một giao diện mạng phyisical; tốt hơn eth0
hoặc usb0
cố gắng tránhwlan0
vì nó hấp dẫn, bạn sẽ bỏ ngỏ cho các cuộc tấn công phi lý hơn và động cơ không đơn giản để giảm thiểu và dễ dàng tấn công. Các hướng dẫn này cũng có tên là "Điểm nóng Tor WiFi" vì vậy có thể mở rộng các câu hỏi tìm kiếm của bạn sang Linux nói chung và Tor một cách rõ ràng. Mặc dù tôi sẽ không khuyên bạn nên sử dụng WiFi các hướng dẫn mà bao gồm các chủ đề có thể dễ dàng được sửa đổi thông qua giao dịch wlan0
cho eth1
trên cửa ngõ của bạn và wlan0
cho eth0
vào máy trạm của bạn.
Tôi đã viết một gói kịch bản cho quãng đường này, ngày may mắn của bạn , bởi vì tôi vừa xuất bản bản thảo đầu tiên của gói kịch bản mà khi hoàn thành cũng sẽ cho phép kiểm tra bảo mật cấu hình của bạn. Xem qua mã nguồn trên GitHub và xem /functions/tor/torrc_writers/torrc_bridge_configs.sh
tệp cho các cấu hình verias có sẵn. Nếu có một tập lệnh / chức năng mà không có tài liệu rõ ràng ở phía dưới, hãy mở một vấn đề và tôi sẽ cố gắng có lần đẩy tiếp theo bao gồm thêm thông tin. Tôi sẽ thêm các tính năng và gỡ lỗi trong vài ngày tới nhưng đây là một ví dụ về tệp biến đơn giản để tải nếu bạn muốn thử nghiệm nó.
_application_list="tor"
_enable_ipv6="no"
#_external_ipv4=""
#_external_ipv6=""
_install_method="safe"
#_nat_ipv4=""
#_nat_ipv6=""
_temp_dir="/tmp"
_tor_user="debian-tor"
_tor_directory="/etc"
_bridge_types="private"
_tor_or_port="443"
Sau đó gọi tập lệnh với tệp biến ở trên với các mục sau
bash /home/${USER}/Downloads/Perinoid_Linux_Project/sandcastle.sh --var-file="/path/to/bridge_variables.sh"
và nếu nó hoạt động (hầu hết các phép thuật được tạo sẵn trong /functions/shared/arg_checker.sh
chức năng nếu bạn đang thắc mắc) thì nó sẽ cấu hình cổng như bạn muốn và với các tập lệnh khởi động / dừng riêng biệt của nó, để bắt đầu dịch vụ cầu nối trên thiết bị cổng sẽ dễ dàng như vậy như;
sudo /etc/init.d/tor-bridge restart
Đối với máy trạm, có thể sử dụng cầu nối của cổng trên thiết bị cổng. Tường lửa vẫn chưa được viết kịch bản nhưng tôi đã cung cấp một nơi bắt đầu để lọc và chuyển tiếp iptables trong /firewall
thư mục mà bạn có thể muốn xem qua.
~~~
Mã sửa đổi để trả lời câu hỏi spiciffic đã hỏi
~~~
Đây là một phiên bản sửa đổi (chỉ cần lấy các bit liên tục từ mã được liên kết ở trên và sửa đổi nó để cho thấy mã này có thể được tái sử dụng dễ dàng như thế nào) có thể được sử dụng trên bất kỳ nhà tù chroot dựa trên debian hoặc nhà tù đạo đức. Nó sẽ chạy sudo
nội bộ để nhắc nhở mật khẩu sẽ xảy ra, điều đó là bình thường và phiên bản này hy vọng rằng Tor đã được cài đặt.
Sử dụng bash
để chạy phiên bản này tức là bash bridge_tor_script.sh
để các biến và chức năng hoạt động đúng. Đoạn mã sau chỉ dành cho thiết bị cổng, bạn vẫn sẽ phải thiết lập mạng cầu nối và chuyển tiếp đến thiết bị máy trạm và khóa máy trạm sao cho nó chỉ sử dụng IP do cổng cung cấp.
Write_tor_bridge_configs(){
## Modify the stuff between quotes if non-standerd installation paths where used
Activate_torrc_nonclient "debian-tor" "bridge"
Write_tor_init_nonclient "/etc" "debian-tor" "bridge" "bridge" "/etc"
Torrc_bridge_configs "/etc" "bridge" "debian-tor" "443" "192.168.1.3"
}
Torrc_bridge_configs(){
_tor_dir="${1:-/etc}/tor"
_tor_node_name="${2:-bridge}"
_tor_user="${3:-debian-tor}"
_tor_or_port="${4:-443}"
_bridge_type="${5:-private}"
_nat_ipv4="${6:?Error no local NAT IP passed to Torrc_bridge_configs function}"
_external_ipv4="${7:?Error no external IP passed to Torrc_bridge_configs function}
echo "## Attention [Torrc_bridge_configs] function writing general configuration lines to [${_tor_dir}/torrc-bridge] file"
echo "User ${_tor_user}" | sudo tee -a ${_tor_dir}/torrc-${_tor_node_name}
echo 'RunAsDaemon 1' | sudo tee -a ${_tor_dir}/torrc-${_tor_node_name}
echo "DataDirectory /var/lib/tor_${_tor_node_name}" | sudo tee -a ${_tor_dir}/torrc-${_tor_node_name}
echo "PidFile /var/run/tor_${_tor_node_name}.pid" | sudo tee -a ${_tor_dir}/torrc-${_tor_node_name}
echo 'AvoidDiskWrites 1' | sudo tee -a ${_tor_dir}/torrc-${_tor_node_name}
echo 'BridgeRelay 1' | sudo tee -a ${_tor_dir}/torrc-${_tor_node_name}
echo "RelayBandwidthRate 100 Kbytes" | sudo tee -a ${_tor_dir}/torrc-${_tor_node_name}
echo "RelayBandwidthBurst 200 Kbytes" | sudo tee -a ${_tor_dir}/torrc-${_tor_node_name}
echo "BandwidthRate 300 Kbytes" | sudo tee -a ${_tor_dir}/torrc-${_tor_node_name}
echo "BandwidthBurst 350 Kbytes" | sudo tee -a ${_tor_dir}/torrc-${_tor_node_name}
echo 'AccountingStart month 1 00:00' | sudo tee -a ${_tor_dir}/torrc-${_tor_node_name}
echo "AccountingMax 80 GB" | sudo tee -a ${_tor_dir}/torrc-${_tor_node_name}
echo "ORPort ${_tor_or_port:-443}" | sudo tee -a ${_tor_dir}/torrc-${_tor_node_name}
echo 'ClientOnly 0' | sudo tee -a ${_torrc_dir}/torrc-${_tor_node_name}
echo 'ExcludeSingleHopRelays 1' | sudo tee -a ${_torrc_dir}/torrc-${_tor_node_name}
echo 'Exitpolicy reject *:*' | sudo tee -a ${_tor_dir}/torrc-${_tor_node_name}
echo "## Only uncomment next line if geoip support is confermed" | sudo tee -a ${_tor_dir}/torrc-${_tor_node_name}
echo "#GeoIPFile ${_tor_dir}/geoip" | sudo tee -a ${_tor_dir}/torrc-${_tor_node_name}
echo "## Notice [Torrc_bridge_configs] function writing spicific configuration lines to [${_tor_dir}/torrc-bridge] file"
echo "# based on arguments passed via [-T] and [-B] and [-vf] arguments."
for _node_type in ${_bridge_type//,/ }; do
case $_node_type in
private)
echo 'PublishServerDescriptor 0' | sudo tee -a ${_tor_dir}/torrc-${_tor_node_name}
echo "Address ${_nat_ipv4}" | sudo tee -a ${_tor_dir}/torrc-${_tor_node_name}
echo "ORListenAddress ${_nat_ipv4}:${_tor_or_port:-443}" | sudo tee -a ${_tor_dir}/torrc-${_tor_node_name}
echo 'VirtualAddrNetwork 10.192.0.0/10' | sudo tee -a ${_tor_dir}/torrc-${_tor_node_name}
echo 'AutomapHostsOnResolve 1' | sudo tee -a ${_tor_dir}/torrc-${_tor_node_name}
echo 'TransPort 9040' | sudo tee -a ${_tor_dir}/torrc-${_tor_node_name}
echo 'DNSPort 9053' | sudo tee -a ${_tor_dir}/torrc-${_tor_node_name}
echo "TransListenAddress ${_nat_ipv4}" | sudo tee -a ${_tor_dir}/torrc-${_tor_node_name}
echo "DNSPort 9053" | sudo tee -a ${_tor_dir}/torrc-${_tor_node_name}
echo "DNSListenAddress ${_nat_ipv4}" | sudo tee -a ${_torrc_dir}/torrc-${_tor_node_name}
;;
public)
echo 'PublishServerDescriptor 1' | sudo tee -a ${_tor_dir}/torrc-${_tor_node_name}
echo "Address ${_external_ipv4}" | sudo tee -a ${_tor_dir}/torrc-${_tor_node_name}
echo "OutboundBindAddress ${_external_ipv4}" | sudo tee -a ${_tor_dir}/torrc-${_tor_node_name}
echo "ORListenAddress ${_external_ipv4}:${_tor_or_port:-443}" | sudo tee -a ${_tor_dir}/torrc-${_tor_node_name}
echo 'SocksPort 0' | sudo tee -a ${_tor_dir}/torrc-${_tor_node_name}
;;
authoritative)
echo 'AuthoritativeDirectory 1' | sudo tee -a ${_tor_dir}/torrc-${_tor_node_name}
echo 'BridgeAuthoritativeDir 1' | sudo tee -a ${_tor_dir}/torrc-${_tor_node_name}
;;
esac
done
}
Write_tor_init_nonclient(){
_tor_dir="${1:-/etc}"
_tor_node_user="${2:-debian-tor}"
_tor_node_nickname="${3:?}"
_tor_node_type="${4:?}"
_init_dir="${5:-/etc}/init.d"
echo "## Attention [Write_tor_init] function now writing init script with assigned variables"
echo "# to [${_init_dir}/tor_${_tor_node_type}] file for node [${_tor_node_nickname}] nickname..."
echo '#!/bin/bash' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo '### BEGIN INIT INFO' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo "# Provides: tor ${_tor_node_nickname}" | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo '# Required-Start: $local_fs $remote_fs $network $named $time' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo '# Required-Stop: $local_fs $remote_fs $network $named $time' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo '# Should-Start: $syslog' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo '# Should-Stop: $syslog' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo '# Default-Start: 2 3 4 5' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo '# Default-Stop: 0 1 6' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo '# Short-Description: Starts The Onion Router daemon processes' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo '# Description: Starts The Onion Router, a TCP overlay' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo '# network client that provides anonymous' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo '# trasport. See following link for source' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo '# of this script' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo '# https://terminal28.com/anonymity-online-how-to-install-and-configure-squid3-tor-privoxy-debian-ubuntu-linux/' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo '### END INIT INFO' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo '' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo 'set -e' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo 'PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
## Note if installing from source some of these file path
# variables may need changed
echo 'DAEMON=/usr/sbin/tor' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo "NAME=tor" | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo 'DESC="tor daemon"' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo "CONFDIR=${_tor_dir:-/etc}/tor" | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo "TORPIDDIR=/var/run/tor_${_tor_node_nickname}" | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo "TORPID=\$TORPIDDIR/tor_${_tor_node_nickname}" | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo "DEFAULTSFILE=${_tor_dir:-/etc}/defaults/\$NAME" | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo 'WAITFORDEAMON=60' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo "ARGS=\"--quiet -f\"\$CONFDIR/torrc-${_tor_node_nickname}\"" | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo '# Set sane defaults' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo 'if [ -r /proc/sys/fs/file-max ]; then' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' system_max=`cat /proc/sys/fs/file-max`' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' if [ "$system_max" -gt "80000" ]; then' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' MAX_FILEDESCRIPTORS=32768' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' elif [ "$system_max" -gt "40000" ]; then' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' MAX_FILEDESCRIPTORS=16384' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' elif [ "$system_max" -gt "10000" ]; then' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' MAX_FILEDESCRIPTORS=8192' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' else' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' MAX_FILEDESCRIPTORS=1024' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' cat << EOF' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo 'Warning: Your system has very few filedescriptors available in total' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo "Maybe you should try rassing that by adding 'fs.file-max=10000' to your" | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo '/etc/sysctl.conf file. Feel free to pick any number that you deem appropriate.' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo "Then run 'sysctl -p'. See /proc/sys/fs/file-max for the current value, and" | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo 'file-nr in the same directory for how many of those are sed at the moment' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo '' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo 'EOF' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' fi' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo 'else' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' MAX_FILEDESCRIPTORS=8192' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo 'fi' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo '' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo 'NICE=""' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo '' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo 'test -x $DEAMON || exit 0' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo '# Include tor defaults if available' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo 'if [ -f $DEFAULTSFILE ]; then' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' . $DEFAULTSFILE' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo 'fi' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo '' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo 'wait_for_deaddaemon () {' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' pid=$1' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' sleep 1' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' if test -n "$pid"' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' then' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' if kill -0 $pid 2>/dev/null' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' then' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' echo -n "."' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' cnt=0' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' while kill -0 $pid 2>/dev/null' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' do' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' cnt=`expr $cnt + 1`' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' if [ $cnt -gt $WAITFORDAEMON ]; then' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' echo "still running"' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' exit 1' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' fi' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' sleep 1' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' echo -n "."' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' done' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' fi' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' fi' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' return 0' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo '}' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo 'check_torpiddir () {' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' if test ! -d $TORPIDDIR' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' then' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' echo "There is no $TORPIDDIR directory. Creating one for you."' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' mkdir -m 02750 "$TORPIDDIR"' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo " chown ${_tor_node_user:-debian-tor}:${_tor_node_user:-debian-tor} \"\$TORPIDDIR\"" | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' fi' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' if test ! -x $TORPIDDIR' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' then' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' echo "Cannot access $TORPIDDIR directory, are you root?" >&2' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' exit 1' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' fi' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo '}' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo '' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo 'check_config () {' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' if ! $DAEMON --verify-config > /dev/null' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' then' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' echo "ABORTED: Tor configuration invalid" >&2' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' $DAEMON --verify-config >&2' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' exit 1' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' fi' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo '}' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo 'check_torlogdir () {' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' if ! [ -d "$TORLOGDIR" ]; then' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' mkdir -m 02750 "$TORLOGDIR"' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo " chown ${_tor_node_user:-debian-tor}:adm \"\$TORLOGDIR\"" | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' ! [ -x /sbin/restorecon ] || /sbin/restorecon \"$TORLOGDIR\"' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' fi' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo '}' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo 'case "$1" in ' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' start)' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' if [ "$RUN_DAEMON" != "yes" ]; then' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' echo "Not starting $DESC (Dissabled in $DEFAULTSFILE)."' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' exit 0' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' fi' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' if [ -n "$MAX_FILEDESCRIPTORS" ]; then' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' echo -n "Raising maximum number of filedescriptors (ulimit -n) to $MAX_FILEDESCRIPTORS"' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' if ulimit -n "$MAX_FILEDESCRIPTORS"' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' then' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' echo "."' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' else' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' echo ": FAILED."' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' fi' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' fi' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' check_torpiddir' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' check_torlogdir' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' echo "Starting $DESC: $NAME..."' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' check_config' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' echo "Starting $DESC: $NAME..."' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
## Notice 1 : This is where firejail should be added if used,
# otherwise try another "Sandbox" utility for keeping unknown
# vunerabilities from easily infecting the rest of your system
## Notice 2 : This is also one of the places to modify if installing
# app-amore from source, if you expect the next [if] statment
# to find the app-armor exicutables
## Notice 3 : Additionally this is where calls to chroot should
# be preformed if running in chroot jail.
echo ' if start-stop-daemon --stop --signal 0 --quiet --pidfile $TORPID --exec $DAEMON; then' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' echo "$NAME already running"' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' else' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' if [ "$USE_AA_EXEC" = "yes" ] && [ -x /usr/sbin/aa-status ] && [ -x /usr/sbin/aa-exec ] && [ -e /etc/apparmor.d/system_tor ] && /usr/sbin/aa-status --enabled ; then' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' AA_EXEC="--startas /usr/sbin/aa-exec"' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' AA_EXEC_ARGS="--profile=system_tor -- $DAEMON"' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' else' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' AA_EXEC=""' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' AA_EXEC_ARGS=""' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' fi' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' if start-stop-daemon --start --quiet --pidfile $TORPID $NICE $AA_EXEC --exec $DAEMON -- $AA_EXEC_ARGS $DEFAULT_ARGS $ARGS; then' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' echo "$NAME done"' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' else' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' echo "Error starting $NAME"' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' return 1' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' fi' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' fi' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' ;;' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' stop)' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' echo -n "Stopping $DESC: "' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' pid=$(cat $TORPID 2>/dev/null) || true' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' if ! test -f $TORPID -o -z "$pid"; then' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' echo "not running"' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' return 0' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' fi' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' if start-stop-daemon --stop --signal INT --quite --pidfile $TORPID --exec $DAEMON; then' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' wait_for_deaddaemon $pid' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' elif kill -0 $pid 2>/dev/null; then' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' echo "Is $pid not $NAME? Is $DAEMON a different binary now?"' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' return 1' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' else' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' echo "$DAEMON died: process $pid not running; or permission denied"' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' return 1' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' fi' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' ;;' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
## End of nessisary edits section
echo ' reload|force-reload)' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' check_config' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' echo "Reloading $DESC configuration"' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' pid=$(cat $TORPID 2>/dev/null) || true' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' if test ! -f $TORPID -o -z "$pid"; then' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' echo "not running - there is no $TORPID"' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' return 1' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' fi' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' if start-stop-daemon --stop --signal 1 --quiet --pidfile $TORPID --exec $DAEMON' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' then' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' echo "done"' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' elif kill -0 $pid 2>/dev/null; then' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' echo "Is $pid not $NAME? Is $DAEMON a different binary now?"' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' return 1' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' else' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' echo "$DAEMON died: process $pid not running; or permission denied"' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' return 1' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' fi' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' ;;' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' restart)' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' check_config' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' $0 stop' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' sleep 1' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' $0 start' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' ;;' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' status)' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' if test ! -r $(dirname $TORPID); then' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' echo "cannot read PID file $TORPID"' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' return 4' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' fi' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' pid=$(cat $TORPID 2>/dev/null) || true' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' if test ! -f $TORPID -o -z "$pid"; then' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' echo "$NAME is not running"' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' return 3' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' fi' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' if ps "$pid" >/dev/null 2>&1; then' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' echo "$NAME is running"' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' return 0' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' else' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' echo "$NAME is not running"' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' return 1' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' fi' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' ;;' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' *)' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' echo "Usage: $0 (start|stop|restart|reload|force-reload|status)"' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' return 1' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo ' ;;' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo 'esac' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo 'exit 0' | sudo tee -a ${_init_dir}/tor_${_tor_node_type}
echo "## Attention [Write_tor_init] function finished writing init file for [${_tor_node_type}]]"
echo "# now providing [${_init_dir}/tor_${_tor_node_type}] exicutable permissions"
sudo chmod +x ${_init_dir}/tor_${_tor_node_type}
}
Activate_torrc_nonclient(){
_tor_node_user="${1:-debian-tor}"
_tor_node_name="${2:?}"
echo "## Activating configs for [torrc-${_tor_node_name}] now."
echo "# With lib file path under [/var/lib/tor_${_tor_node_name}]"
sudo install -o ${_tor_user:-debian-tor} -g ${_tor_user:-debian-tor} -m 700 /var/lib/tor_${_tor_node_name:-service} || Arg_checker --help='Activate_torrc_nonclient' --exit='# [sudo install -o ${_tor_user:-debian-tor} -g ${_tor_user:-debian-tor} -m 700 /var/lib/tor_${_tor_node_name}] # Failed'
}
Write_tor_bridge_configs
~~~
Kết thúc ví dụ kịch bản
~~~
Những điều trên sẽ giúp bạn tiến gần hơn đến mục tiêu của mình, như đã nêu trước đây tôi sẽ gỡ lỗi gói tập lệnh chính và thêm các tính năng để thoải mái thực hiện các yêu cầu thông qua hệ thống theo dõi của GitHub, vào cuối tháng (cung cấp sức khỏe và thời gian) Tôi sẽ thêm các trình cài đặt cho Whonix nhưng sẽ giúp kiểm tra vì tất cả các hệ thống của tôi dường như chiến đấu với cài đặt KVM
và VMWare
các yêu cầu trước của tôi .