setup tor bridge on vps
This commit is contained in:
parent
545e6f0b63
commit
dee29459a5
@ -8,6 +8,7 @@
|
|||||||
./network.nix
|
./network.nix
|
||||||
./nix.nix
|
./nix.nix
|
||||||
./services/dns.nix
|
./services/dns.nix
|
||||||
|
./services/tor-bridge.nix
|
||||||
./services/wireguard.nix
|
./services/wireguard.nix
|
||||||
./services/xtls.nix
|
./services/xtls.nix
|
||||||
|
|
||||||
|
@ -11,7 +11,6 @@ in {
|
|||||||
nftables.enable = true;
|
nftables.enable = true;
|
||||||
domain = "wg.ataraxiadev.com";
|
domain = "wg.ataraxiadev.com";
|
||||||
};
|
};
|
||||||
# enp0s18
|
|
||||||
systemd.network = with interfaces.main'; {
|
systemd.network = with interfaces.main'; {
|
||||||
enable = true;
|
enable = true;
|
||||||
wait-online.ignoredInterfaces = [ "lo" ];
|
wait-online.ignoredInterfaces = [ "lo" ];
|
||||||
|
43
machines/NixOS-VPS/services/tor-bridge.nix
Normal file
43
machines/NixOS-VPS/services/tor-bridge.nix
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
{ config, pkgs, lib, ... }:
|
||||||
|
let
|
||||||
|
inherit (import ./hardware/networks.nix) interfaces;
|
||||||
|
bridgeName = interfaces.main'.bridgeName;
|
||||||
|
obfs4Port = 18371;
|
||||||
|
in {
|
||||||
|
networking.firewall.interfaces.${bridgeName} = {
|
||||||
|
allowedTCPPorts = [ obfs4Port ];
|
||||||
|
};
|
||||||
|
|
||||||
|
# We can get bridge cert from file: /var/lib/tor/pt_state/obfs4_bridgeline.txt
|
||||||
|
# Fingerprint can be obtained from tor.service logs
|
||||||
|
services.tor = {
|
||||||
|
enable = true;
|
||||||
|
enableGeoIP = true;
|
||||||
|
client.enable = false;
|
||||||
|
relay.enable = true;
|
||||||
|
relay.role = "private-bridge";
|
||||||
|
settings = {
|
||||||
|
BridgeDistribution = "none";
|
||||||
|
BridgeRelay = true;
|
||||||
|
ContactInfo = "admin@ataraxiadev.com";
|
||||||
|
ORPort = [ 17429 ];
|
||||||
|
ServerTransportListenAddr = "obfs4 0.0.0.0:${toString obfs4Port}";
|
||||||
|
Nickname = "Ataraxia";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.networkd-dispatcher = {
|
||||||
|
enable = true;
|
||||||
|
rules."restart-tor" = {
|
||||||
|
onState = [ "routable" "off" ];
|
||||||
|
script = ''
|
||||||
|
#!${pkgs.runtimeShell}
|
||||||
|
if [[ $IFACE == "${bridgeName}" && $AdministrativeState == "configured" ]]; then
|
||||||
|
echo "Restarting Tor ..."
|
||||||
|
systemctl restart tor
|
||||||
|
fi
|
||||||
|
exit 0
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user