From 9ce5bfc9395792ea427ceb8e3498c4183e0e6beb Mon Sep 17 00:00:00 2001 From: "reaction.la" Date: Thu, 22 Dec 2022 06:02:01 +0800 Subject: [PATCH] miscellaneoud edits --- docs/images/gpt_partitioned_linux_disk.webp | Bin 0 -> 30668 bytes docs/images/msdos_linux_partition.webp | Bin 0 -> 19410 bytes docs/libraries.md | 20 +- docs/pandoc_templates/vscode.css | 2 +- docs/setup/contributor_code_of_conduct.md | 7 + docs/setup/set_up_build_environments.md | 256 +++++++++++++++----- docs/setup/wireguard.md | 153 ++++++++++-- docs/social_networking.md | 20 ++ 8 files changed, 369 insertions(+), 89 deletions(-) create mode 100644 docs/images/gpt_partitioned_linux_disk.webp create mode 100644 docs/images/msdos_linux_partition.webp diff --git a/docs/images/gpt_partitioned_linux_disk.webp b/docs/images/gpt_partitioned_linux_disk.webp new file mode 100644 index 0000000000000000000000000000000000000000..7d1a05e2f948c77fd4e45f29564813d410e6ea7d GIT binary patch literal 30668 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

3E1I&r3-zP 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%0DXv>~UnUl4T8vOv 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 is not highlighted, hit tab. Press `ENTER` to continue. The default option is **Internet Site**, which is preselected on the following screen: -![Config Selection Screen](./images/postfix_cfg2.webp){width=100%} +![Config Selection Screen](../images/postfix_cfg2.webp){width=100%} Press `ENTER` to continue. After that, you’ll get another window to set the domain name of the site that is sending the email: -![System Mail Name Selection](./images/postfix_cfg3.webp){width=100%} +![System Mail Name Selection](../images/postfix_cfg3.webp){width=100%} The `System mail name` should be the same as the name you assigned to the server when you were creating it. When you’ve finished, press `TAB`, then `ENTER`. You now have Postfix installed and are ready to modify its configuration settings. @@ -2871,7 +3005,7 @@ when your subkey expires. ```bash save gpg --list-keys --with-subkey-fingerprints --with-keygrip «master key» -gpg -a --export-keys «master key» +gpg -a --export «master key» gpg -a --export-secret-keys «master key» ``` diff --git a/docs/setup/wireguard.md b/docs/setup/wireguard.md index a984539..b68c515 100644 --- a/docs/setup/wireguard.md +++ b/docs/setup/wireguard.md @@ -155,6 +155,8 @@ sudo chmod 600 /etc/wireguard/ -R ## Create WireGuard Server Configuration File +This configuration file is for two clients, one of which is a bitcoin peer for which port forwarding is provided, and to provide them a nat translated IPv4 address, and an IPv6 address on a random /112 subnet of the vpn servers /64 subnet. Adjust to taste. IPv6 is tricky. + Use a command-line text editor like Nano to create a WireGuard configuration file on the Debian server. `wg0` will be the network interface name. ```bash @@ -165,6 +167,30 @@ Copy the following text and paste it to your configuration file. You need to use The curly braces mean that you do not copy the text inside the curly braces, which is only there for example. You have to substitute your own private key (since everyone now knows this private key), and your own client public key., mutas mutandis. +```default +[Interface] +# public key = CHRh92zutofXTapxNRKxYEpxzwKhp3FfwUfRYzmGHR4= +Address = 10.10.10.1/24, 2405:4200:f001:13f6:7ae3:6c54:61ab:0001/112 +ListenPort = 115 +PrivateKey = iOdkQoqm5oyFgnCbP5+6wMw99PxDb7pTs509BD6+AE8= + +[Peer] +PublicKey = rtPdw1xDwYjJnDNM2eY2waANgBV4ejhHEwjP/BysljA= +AllowedIPs = 10.10.10.4/32, 2405:4200:f001:13f6:7ae3:6c54:61ab:0009/128 + +[Peer] +PublicKey = YvBwFyAeL50uvRq05Lv6MSSEFGlxx+L6VlgZoWA/Ulo= +AllowedIPs = 10.10.10.8/32, 2405:4200:f001:13f6:7ae3:6c54:61ab:0019/128 + +[Peer] +PublicKey = XpT68TnsSMFoZ3vy/fVvayvrQjTRQ3mrM7dmyjoWJgw= +AllowedIPs = 10.10.10.12/32, 2405:4200:f001:13f6:7ae3:6c54:61ab:0029/128 + +[Peer] +PublicKey = f2m6KRH+GWAcCuPk/TChzD01fAr9fHFpOMbAcyo3t2U= +AllowedIPs = 10.10.10.16/32, 2405:4200:f001:13f6:7ae3:6c54:61ab:0039/128 +``` + ```default [Interface] Address = 10.10.10.1/24 @@ -278,7 +304,7 @@ The above lines will append `-A` a rule to the end of the`POSTROUTING` chain of Like your home router, it means your client system behind the nat has no open ports. -If you want to open some ports, for example the bitcoin port 8333 so that you can run bitcoin core +If you want to open some ports, for example the bitcoin port 8333 so that you can run bitcoin core and the monaro ports. ```terminal_image NAT table rules @@ -286,8 +312,11 @@ NAT table rules :PREROUTING ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] -A POSTROUTING -o eth0 -j MASQUERADE --A PREROUTING -d «123.45.67.89»/32 -i eth0 -p tcp --dport 8333 -j DNAT --to-destination 10.10.10.2:8333 --A PREROUTING -d «123.45.67.89»/32 -i eth0 -p udp --dport 8333 -j DNAT --to-destination 10.10.10.2:8333 +-A PREROUTING -d «123.45.67.89»/32 -i eth0 -p tcp --dport 8333 -j DNAT --to-destination 10.10.10.«5»:8333 +-A PREROUTING -d «123.45.67.89»/32 -i eth0 -p udp --dport 8333 -j DNAT --to-destination 10.10.10.«5»:8333 +-A PREROUTING -d «123.45.67.89»/32 -i eth0 -p tcp --dport 18080 -j DNAT --to-destination 10.10.10.«5»:18080 +-A PREROUTING -d «123.45.67.89»/32 -i eth0 -p tcp --dport 18089 -j DNAT --to-destination 10.10.10.«5»:18089 + COMMIT ``` @@ -296,20 +325,28 @@ Then open the corresponding ports in ufw ```bash ufw allow in 8333 ufw enable +ufw status verbose ``` +If you have made an error in `/etc/ufw/before6.rules` enable will fail. + If you have enabled UFW before, then you can use systemctl to restart UFW. ## Configure forwarding on the Server +### Allow routing + By default, UFW forbids packet forwarding. We can allow forwarding for our private network, mutas mutandis. ```bash ufw route allow in on wg0 ufw route allow out on wg0 ufw allow in on wg0 +ufw allow in from 10.10.10.0/24 +ufw allow in from 2405:4200:f001:13f6:7ae3:6c54:61ab:0001/112 ufw allow «51820»/udp -ufw allow to «2405:4200:f001:13f6:7ae3:6c54:61ab:1/112» +ufw allow to 10.10.10.1/24 +ufw allow to 2405:4200:f001:13f6:7ae3:6c54:61ab:0001/112 ``` As always «...» means that this is an example value, and you need to substitute your actual value. "_Mutas mutandis_" means "changing that which should be changed", in other words, watch out for those «...» . @@ -326,6 +363,7 @@ windows, mac, and android clients in the part that is not open. `wg0` is the virtual network card that `wg0.conf` specifies. If you called it `«your name».conf` then mutatis mutandis. +### Enable routing You just told ufw to allow your vpn clients to see each other on the internet, but allowing routing does not in itself result in any routing. @@ -341,6 +379,12 @@ net.ipv4.ip_forward=1 net.ipv6.conf.all.forwarding=1 ``` +For these changes to take effect: + +```bash +sysctl -p +``` + Now if you list the rules in the POSTROUTING chain of the NAT table by using the following command: ```bash @@ -374,15 +418,26 @@ Sample output: ```terminal_image :~$ systemctl status bind9 ● named.service - BIND Domain Name Server - Loaded: loaded (/lib/systemd/system/named.service; enabled; vendor preset: enabled) - Active: active (running) since Sun 2020-05-17 08:11:26 UTC; 37s ago - Docs: man:named(8) - Main PID: 13820 (named) - Tasks: 5 (limit: 1074) - Memory: 14.3M - CPU: 8.709s - CGroup: /system.slice/named.service - └─13820 /usr/sbin/named -f -u bind + Loaded: loaded (/lib/systemd/system/named.service; enabled; vendor preset: enabled) + Active: active (running) since Wed 2022-09-21 20:14:33 EDT; 6min ago + Docs: man:named(8) + Main PID: 1079 (named) + Tasks: 5 (limit: 1132) + Memory: 16.7M + CPU: 86ms + CGroup: /system.slice/named.service + └─1079 /usr/sbin/named -f -u bind + +Sep 21 20:14:33 rho.la named[1079]: command channel listening on ::1#953 +Sep 21 20:14:33 rho.la named[1079]: managed-keys-zone: loaded serial 0 +Sep 21 20:14:33 rho.la named[1079]: zone 0.in-addr.arpa/IN: loaded serial 1 +Sep 21 20:14:33 rho.la named[1079]: zone 127.in-addr.arpa/IN: loaded serial 1 +Sep 21 20:14:33 rho.la named[1079]: zone 255.in-addr.arpa/IN: loaded serial 1 +Sep 21 20:14:33 rho.la named[1079]: zone localhost/IN: loaded serial 2 +Sep 21 20:14:33 rho.la named[1079]: all zones loaded +Sep 21 20:14:33 rho.la named[1079]: running +Sep 21 20:14:33 rho.la named[1079]: managed-keys-zone: Initializing automatic trust anchor management for zone '.'; > +Sep 21 20:14:33 rho.la named[1079]: resolver priming query complete ``` If it’s not running, start it with: @@ -391,31 +446,74 @@ If it’s not running, start it with: systemctl start bind9 ``` +Check that lookups still work: + +```bash +curl -6 icanhazip.com +curl -4 icanhazip.com +``` + +See what dns server you are in fact using + +```bash +dig icanhazip.com +``` + +You will notice you are not using your own bind9 + Edit the BIND DNS server’s configuration file. ```bash nano /etc/bind/named.conf.options ``` -Add the following line to allow VPN clients to send recursive DNS queries. +Add some acls above the options block, one for your networks, and one for potential attackers. -```default -allow-recursion { 127.0.0.1; 10.10.10.0/24; ::1/128; }; -``` +Add some real forwarders + +And add allow recursion for your subnets. + +After which it should look something like this: -Save and close the file. ```terminal_image :~# cat /etc/bind/named.conf.options | tail -n 9 - //======================================================================== - // If BIND logs error messages about the root key being expired, - // you will need to update your keys. See https://www.isc.org/bind-keys - //======================================================================== - dnssec-validation auto; - - listen-on-v6 { any; }; -allow-recursion { 127.0.0.1; 10.10.10.0/24; ::1/128; }; +acl bogusnets { + 0.0.0.0/8; 192.0.2.0/24; 224.0.0.0/3; + 10.0.0.0/8; 172.16.0.0/12; 192.168.0.0/16; }; + +acl my_net { + 127.0.0.1; + ::1; + 116.251.216.176; + 10.10.10.0/24; + 2405:4200:f001:13f6::/64; +}; + +options { + directory "/var/cache/bind"; + forwarders { + 2a02:6b8::feed:0ff; + 2a02:6b8:0:1::feed:0ff; + 77.88.8.8; + 77.88.8.1; + }; + + //========================== + // If BIND logs error messages about the + // root key being expired, + // you will need to update your keys. + // See https://www.isc.org/bind-keys + //========================== + + dnssec-validation auto; + + listen-on-v6 { any; }; + + allow-recursion { my_net; }; + blackhole { bogusnets; }; + }; ``` Then edit the `/etc/default/named` files. @@ -439,10 +537,13 @@ Restart `bind9` for the changes to take effect. ```bash systemctl restart bind9 +systemctl status bind9 +dig -t txt -c chaos VERSION.BIND @127.0.0.1 ``` Your ufw firewall will allow vpn clients to access `bind9` because you earlier allowed everything from `wg0` in. + ## Start WireGuard on the server Run the following command on the server to start WireGuard. diff --git a/docs/social_networking.md b/docs/social_networking.md index 55b06f3..24dea7d 100644 --- a/docs/social_networking.md +++ b/docs/social_networking.md @@ -5,10 +5,29 @@ title: >- ... # the crisis of censorship +If we have a mechanism capable of securely handling arbitrary free form +metadata about transactions, it can handle arbitrary free form information +about anything, and people are likely to use it for information the +government does not like. It is not only transaction data that the +government wants to control. + We have a crisis of censorship. Every uncensored medium of public discussion is getting the treatment. +In a world where truth and reality is massively suppressed, forbidden truth +should migrate to a platform resistant to Global American Empire domination. + +The Global American Empire is at war with truth and reality. A +communications platform should support truth and reality, thus must be at +war with the Global American Empire. A crypto currency needs what +Urbit was supposed to be, its own communications and publishing +protocol, in order that you can have transaction metadata protected, and +thus needs its own truth and reality system. And thus it needs to be willing +to be at war with the Global American Empire. Its developers need to +figure on a significant probability of being arrested, murdered or forced to +flee, as Satoshi figured. + We need a pseudonymous social network on which it is possible to safely discuss forbidden topics. @@ -264,6 +283,7 @@ of a million shills, scammers, and spammers. So, you can navigate to whole world’s public conversation through approved links and reply-to links – but not every spammer, scammer, and shill in the world can fill your feed with garbage. + ## Algorithm and data structure for Zooko name network address For this to work, the underlying structure needs to be something based on