From 9edc6a799889c746811346ba4e614e001fd536bd Mon Sep 17 00:00:00 2001 From: oxeo0 Date: Tue, 18 Feb 2025 21:54:17 +0100 Subject: [PATCH] edit mysql replication guide - scp over tor, local mkp224o generation, better showcasing --- opsec/mysqlmastermaster/7.png | Bin 0 -> 45890 bytes opsec/mysqlmastermaster/8.png | Bin 0 -> 46870 bytes opsec/mysqlmastermaster/index.html | 255 ++++++++++++++--------------- opsec/torwebsite/index.html | 2 +- 4 files changed, 124 insertions(+), 133 deletions(-) create mode 100644 opsec/mysqlmastermaster/7.png create mode 100644 opsec/mysqlmastermaster/8.png diff --git a/opsec/mysqlmastermaster/7.png b/opsec/mysqlmastermaster/7.png new file mode 100644 index 0000000000000000000000000000000000000000..981e70d0943baea15ae2ef04984575eb5b8d4588 GIT binary patch literal 45890 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%0A8nOTc_xz$!TR0@POM0@FL?bZCnB*u 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 X&i`fQy9s_kH4(?+~ev3U4D6sisu literal 0 HcmV?d00001 diff --git a/opsec/mysqlmastermaster/index.html b/opsec/mysqlmastermaster/index.html index 91f790f..0674129 100644 --- a/opsec/mysqlmastermaster/index.html +++ b/opsec/mysqlmastermaster/index.html @@ -127,6 +127,14 @@ We will synchronize databases automatically between our two hidden services. If The MariaDB server running on each machine will connect to an onion address using socat as a background service configured with systemd, since it cannot utilize the socks5 proxy provided by the Tor client directly.

+

For each server, we will later generate two onion v3 vanity URLs:
+

    +
  • Public Hidden Service URL - This is used for accessing the hidden service as a client. Place this URL in your NGINX configuration to expose the vegetable shop service at port 80.

  • +
  • Internal Hidden Service URL - Used exclusively for inter-service communication.
  • +

+ +

Note that you can use only numbers 2-7 in the onion URL, as they are not part of the base32 alphabet used for encoding onion URLs. In this guide, I use words like one and two instead.

+

Below is a table showing what ports and services will be active on each server:

@@ -174,7 +182,6 @@ Below is a table showing what ports and services will be active on each server: -

* The Internal Hidden Service is used exclusively for inter-server communication, and its URL should remain private.

@@ -204,20 +211,12 @@ If using Proxmox, after setting up the vegetable store once, you can clone it to

-

You also need socat installed on both servers:

+

Ensure you have socat installed on both servers:

oxeo@serverN:~$ sudo apt update
 oxeo@serverN:~$ sudo apt install socat
 
-

For each server, generate two onion vanity URLs:
-

    -
  • Public Hidden Service URL: This is used for accessing the hidden service as a client. Place this URL in your NGINX configuration to expose the vegetable shop service at port 80.

  • -
  • Internal Hidden Service URL: Used exclusively for inter-service communication.
  • -

- -

Note that you can use only numbers 2-7 in the onion URL, as they are not part of the base32 alphabet used for encoding onion URLs. In this guide, I use words like one and two instead.

- @@ -227,10 +226,10 @@ oxeo@serverN:~$ sudo apt install socat
-

Part 1

+

Part 1

-

The steps listed below should be executed on your first server. The second part of this guide will include commands for the second server with slight modifications, but they are mostly the same.
-This part contains explanations of how things work; the second part is primarily a list of commands.

+

The steps listed below should be executed on your first server. The second part of this guide will include commands for the second server with slight modifications, but they are mostly the same.
+This part contains explanations of how things work; the second part is primarily a list of commands.

@@ -314,14 +313,7 @@ Add a replication user on the first server using MySQL shell.

oxeo@server1:~$ sudo mysql
-Welcome to the MariaDB monitor.  Commands end with ; or \g.
-Your MariaDB connection id is 56
-Server version: 10.11.6-MariaDB-0+deb12u1-log Debian 12
-
-Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
-
-Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
-
+[...]
 MariaDB [(none)]> CREATE USER 'repl'@'%' IDENTIFIED BY 'YOUR_GENERATED_SLAVE_PASSWORD';
 Query OK, 0 rows affected (0.001 sec)
 
@@ -353,7 +345,8 @@ Replace YOUR_GENERATED_SLAVE_PASSWORD with the generated password and not
           

Tor Configuration

-To make our MySQL instance accessible to the second server, create another hidden service in /etc/tor/torrc. You should have two hidden services: one public and one internal. +To make our MySQL instance accessible to the second server, create another hidden service in /etc/tor/torrc. You should have two hidden services: one public and one internal.
+On the internal hidden service, we will also expose SSH which will come handy later.

HiddenServiceDir /var/lib/tor/veggie_service/
@@ -361,6 +354,7 @@ HiddenServicePort 80 127.0.0.1:4440
 
 HiddenServiceDir /var/lib/tor/internal_service/
 HiddenServicePort 33061 127.0.0.1:3306
+HiddenServicePort 22 127.0.0.1:22
 

@@ -385,54 +379,13 @@ drwx--S--- 2 debian-tor debian-tor 2 Feb 16 17:23 authorized_clients

-Of course automatically generated hidden service hostname will be random so in order to use your generated vanity URLs, you need to put the appropriate keys in this directory.
-In my case I have generated vanity addresses on my computer so I tarred them (onions.tar) and transfered using scp: +Of course automatically generated hidden service hostname will be random so you need to generate vanity URLs for srvone[...].onion and intone[...].onion and copy appropriate keys to /var/lib/tor/veggie_service and /var/lib/tor/internal_service respectively.

-
oxeo@main-pc:~$ scp onions.tar oxeo@server1:/tmp
-onions.tar                                    100%   20KB   4.9MB/s   00:00
-
- -

-Now extract the archive on a remote server and copy keys to the hidden service directory. -

- -
oxeo@server1:~$ cd /tmp
-oxeo@server1:/tmp$ tar xvf onions.tar 
-srvone4oj33rvnykz252tf2holi5ae6pz5w62znumesgmzg7mjbnhtyd.onion/
-srvone4oj33rvnykz252tf2holi5ae6pz5w62znumesgmzg7mjbnhtyd.onion/hs_ed25519_public_key
-srvone4oj33rvnykz252tf2holi5ae6pz5w62znumesgmzg7mjbnhtyd.onion/hs_ed25519_secret_key
-srvone4oj33rvnykz252tf2holi5ae6pz5w62znumesgmzg7mjbnhtyd.onion/hostname
-srvtwo7a3ddvt5kncimkh5esstmzomdjx2fr7o73q66fzdrsbtnexhyd.onion/
-srvtwo7a3ddvt5kncimkh5esstmzomdjx2fr7o73q66fzdrsbtnexhyd.onion/hostname
-srvtwo7a3ddvt5kncimkh5esstmzomdjx2fr7o73q66fzdrsbtnexhyd.onion/hs_ed25519_public_key
-srvtwo7a3ddvt5kncimkh5esstmzomdjx2fr7o73q66fzdrsbtnexhyd.onion/hs_ed25519_secret_key
-inttwo6kfloukru2ggozocyhce25fnomlx76du7rugbnj5v46iydtdqd.onion/
-inttwo6kfloukru2ggozocyhce25fnomlx76du7rugbnj5v46iydtdqd.onion/hs_ed25519_secret_key
-inttwo6kfloukru2ggozocyhce25fnomlx76du7rugbnj5v46iydtdqd.onion/hs_ed25519_public_key
-inttwo6kfloukru2ggozocyhce25fnomlx76du7rugbnj5v46iydtdqd.onion/hostname
-intone74u43zmapi3a3k3vesrvyhcfmqp6alzgzwhv6oz32bn63jjbad.onion/
-intone74u43zmapi3a3k3vesrvyhcfmqp6alzgzwhv6oz32bn63jjbad.onion/hs_ed25519_secret_key
-intone74u43zmapi3a3k3vesrvyhcfmqp6alzgzwhv6oz32bn63jjbad.onion/hostname
-intone74u43zmapi3a3k3vesrvyhcfmqp6alzgzwhv6oz32bn63jjbad.onion/hs_ed25519_public_key
-
-oxeo@server1:/tmp$ sudo cp -v srvone*/* /var/lib/tor/veggie_service 
-'srvone4oj33rvnykz252tf2holi5ae6pz5w62znumesgmzg7mjbnhtyd.onion/hostname' -> '/var/lib/tor/veggie_service/hostname'
-'srvone4oj33rvnykz252tf2holi5ae6pz5w62znumesgmzg7mjbnhtyd.onion/hs_ed25519_public_key' -> '/var/lib/tor/veggie_service/hs_ed25519_public_key'
-'srvone4oj33rvnykz252tf2holi5ae6pz5w62znumesgmzg7mjbnhtyd.onion/hs_ed25519_secret_key' -> '/var/lib/tor/veggie_service/hs_ed25519_secret_key'
-
-oxeo@server1:/tmp$ sudo cp -v intone*/* /var/lib/tor/internal_service
-'intone74u43zmapi3a3k3vesrvyhcfmqp6alzgzwhv6oz32bn63jjbad.onion/hostname' -> '/var/lib/tor/internal_service/hostname'
-'intone74u43zmapi3a3k3vesrvyhcfmqp6alzgzwhv6oz32bn63jjbad.onion/hs_ed25519_public_key' -> '/var/lib/tor/internal_service/hs_ed25519_public_key'
-'intone74u43zmapi3a3k3vesrvyhcfmqp6alzgzwhv6oz32bn63jjbad.onion/hs_ed25519_secret_key' -> '/var/lib/tor/internal_service/hs_ed25519_secret_key'
-
-oxeo@server1:/tmp$ sudo rm -rv onions.tar *.onion
-
-

If you haven't already, update the server_name also in /etc/nginx/sites-available/veggie-shop.conf:

server {
-    listen 4440;
+    listen 127.0.0.1:4440;
     server_name srvone4oj33rvnykz252tf2holi5ae6pz5w62znumesgmzg7mjbnhtyd.onion;
     root /srv/shop/;
     index index.php;
@@ -514,10 +467,10 @@ oxeo@server1:~$ sudo systemctl enable --now socat-tor
 	  
-

Part 2

+

Part 2

-Now log into your 2nd server and run the commands listed below. They're mostly the same with very slight differences. When you need to change something I will add a note but generally, if you get stuck on something, you should look it up in the first part. +Now log into your 2nd server and run the commands listed below. They're mostly the same with very slight differences. When you need to change something I will add a note but generally, if you get stuck on something, you should look it up in the first part.

@@ -570,13 +523,7 @@ Now you can open MySQL shell on the first server and add replication user.

oxeo@server2:~$ sudo mysql
-Welcome to the MariaDB monitor.  Commands end with ; or \g.
-Your MariaDB connection id is 56
-Server version: 10.11.6-MariaDB-0+deb12u1-log Debian 12
-
-Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
-
-Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
+[...]
 
 MariaDB [(none)]> CREATE USER 'repl'@'%' IDENTIFIED BY 'YOUR_GENERATED_SLAVE_PASSWORD';
 Query OK, 0 rows affected (0.001 sec)
@@ -609,6 +556,7 @@ HiddenServicePort 80 127.0.0.1:4440
 
 HiddenServiceDir /var/lib/tor/internal_service/
 HiddenServicePort 33062 127.0.0.1:3306
+HiddenServicePort 22 127.0.0.1:22
 
oxeo@server2:~$ sudo systemctl restart tor
@@ -624,47 +572,14 @@ drwx--S--- 2 debian-tor debian-tor  2 Feb 16 17:23 authorized_clients
 -rw------- 1 debian-tor debian-tor 96 Feb 16 17:23 hs_ed25519_secret_key
 
-
oxeo@main-pc:~$ scp onions.tar oxeo@server2:/tmp
-oxeo@server2's password: 
-onions.tar                                    100%   20KB   4.9MB/s   00:00
-
- -
oxeo@server2:~$ cd /tmp
-oxeo@server2:/tmp$ tar xvf onions.tar 
-srvone4oj33rvnykz252tf2holi5ae6pz5w62znumesgmzg7mjbnhtyd.onion/
-srvone4oj33rvnykz252tf2holi5ae6pz5w62znumesgmzg7mjbnhtyd.onion/hs_ed25519_public_key
-srvone4oj33rvnykz252tf2holi5ae6pz5w62znumesgmzg7mjbnhtyd.onion/hs_ed25519_secret_key
-srvone4oj33rvnykz252tf2holi5ae6pz5w62znumesgmzg7mjbnhtyd.onion/hostname
-srvtwo7a3ddvt5kncimkh5esstmzomdjx2fr7o73q66fzdrsbtnexhyd.onion/
-srvtwo7a3ddvt5kncimkh5esstmzomdjx2fr7o73q66fzdrsbtnexhyd.onion/hostname
-srvtwo7a3ddvt5kncimkh5esstmzomdjx2fr7o73q66fzdrsbtnexhyd.onion/hs_ed25519_public_key
-srvtwo7a3ddvt5kncimkh5esstmzomdjx2fr7o73q66fzdrsbtnexhyd.onion/hs_ed25519_secret_key
-inttwo6kfloukru2ggozocyhce25fnomlx76du7rugbnj5v46iydtdqd.onion/
-inttwo6kfloukru2ggozocyhce25fnomlx76du7rugbnj5v46iydtdqd.onion/hs_ed25519_secret_key
-inttwo6kfloukru2ggozocyhce25fnomlx76du7rugbnj5v46iydtdqd.onion/hs_ed25519_public_key
-inttwo6kfloukru2ggozocyhce25fnomlx76du7rugbnj5v46iydtdqd.onion/hostname
-intone74u43zmapi3a3k3vesrvyhcfmqp6alzgzwhv6oz32bn63jjbad.onion/
-intone74u43zmapi3a3k3vesrvyhcfmqp6alzgzwhv6oz32bn63jjbad.onion/hs_ed25519_secret_key
-intone74u43zmapi3a3k3vesrvyhcfmqp6alzgzwhv6oz32bn63jjbad.onion/hostname
-intone74u43zmapi3a3k3vesrvyhcfmqp6alzgzwhv6oz32bn63jjbad.onion/hs_ed25519_public_key
-
-oxeo@server2:/tmp$ sudo cp -v srvtwo*/* /var/lib/tor/veggie_service 
-'srvtwo7a3ddvt5kncimkh5esstmzomdjx2fr7o73q66fzdrsbtnexhyd.onion/hostname' -> '/var/lib/tor/veggie_service/hostname'
-'srvtwo7a3ddvt5kncimkh5esstmzomdjx2fr7o73q66fzdrsbtnexhyd.onion/hs_ed25519_public_key' -> '/var/lib/tor/veggie_service/hs_ed25519_public_key'
-'srvtwo7a3ddvt5kncimkh5esstmzomdjx2fr7o73q66fzdrsbtnexhyd.onion/hs_ed25519_secret_key' -> '/var/lib/tor/veggie_service/hs_ed25519_secret_key'
-
-oxeo@server2:/tmp$ sudo cp -v inttwo*/* /var/lib/tor/internal_service
-'inttwo6kfloukru2ggozocyhce25fnomlx76du7rugbnj5v46iydtdqd.onion/hostname' -> '/var/lib/tor/internal_service/hostname'
-'inttwo6kfloukru2ggozocyhce25fnomlx76du7rugbnj5v46iydtdqd.onion/hs_ed25519_public_key' -> '/var/lib/tor/internal_service/hs_ed25519_public_key'
-'inttwo6kfloukru2ggozocyhce25fnomlx76du7rugbnj5v46iydtdqd.onion/hs_ed25519_secret_key' -> '/var/lib/tor/internal_service/hs_ed25519_secret_key'
-
-oxeo@server2:/tmp$ sudo rm -rv onions.tar *.onion
-
+

+Generate vanity URLs for srvtwo[...].onion and inttwo[...].onion and copy appropriate keys to /var/lib/tor/veggie_service and /var/lib/tor/internal_service respectively. +

/etc/nginx/sites-available/veggie-shop.conf:

server {
-    listen 4440;
+    listen 127.0.0.1:4440;
     server_name srvtwo7a3ddvt5kncimkh5esstmzomdjx2fr7o73q66fzdrsbtnexhyd.onion;
     root /srv/shop/;
     index index.php;
@@ -745,16 +660,19 @@ oxeo@server1:~$ md5sum master1dump.sql
 40c3cfa7e778cc276b6a3b670a3823a6
 
-

Transfer the dump to your second server using scp. First, transfer from the first server to your computer:

+

Transfer the dump to your second server using SCP (a wrapper over SSH enabling file transfer). To not reveal your public IP address, we will connect via the internal hidden service with torsocks. Remember to replace int[...].onion URLs with ones you generated. +

-
oxeo@main-pc:~$ scp oxeo@server1:/home/oxeo/master1dump.sql /tmp/master1dump.sql
-master1dump.sql                                       100% 2428KB 245.1MB/s   00:00
+

First, transfer from the first server to your computer:

+ +
oxeo@main-pc:~$ torsocks scp oxeo@intone74u43zmapi3a3k3vesrvyhcfmqp6alzgzwhv6oz32bn63jjbad.onion:/home/oxeo/master1dump.sql /tmp/master1dump.sql
+master1dump.sql                                       100% 2428KB 1.1MB/s   00:03
 

Then, transfer from your computer to the second server:

-
oxeo@main-pc:~$ scp /tmp/master1dump.sql oxeo@server2:/home/oxeo/master1dump.sql
-master1dump.sql                                       100% 2428KB 176.3MB/s   00:00 
+
oxeo@main-pc:~$ torsocks scp /tmp/master1dump.sql oxeo@inttwo6kfloukru2ggozocyhce25fnomlx76du7rugbnj5v46iydtdqd.onion:/home/oxeo/master1dump.sql
+master1dump.sql                                       100% 2428KB 1.4MB/s   00:02 
 

Verify the MD5 checksum on the second server and restore the database if it matches:

@@ -769,13 +687,7 @@ Finally, enable the Master role on each database. Here are the commands f

oxeo@server1:~$ sudo mysql
-Welcome to the MariaDB monitor.  Commands end with ; or \g.
-Your MariaDB connection id is 56
-Server version: 10.11.6-MariaDB-0+deb12u1-log Debian 12
-
-Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
-
-Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
+[...]
 
 MariaDB [(none)]> STOP SLAVE;
 Query OK, 0 rows affected (0.001 sec)
@@ -800,13 +712,7 @@ And on the second server:
 

oxeo@server2:~$ sudo mysql
-Welcome to the MariaDB monitor.  Commands end with ; or \g.
-Your MariaDB connection id is 53
-Server version: 10.11.6-MariaDB-0+deb12u1-log Debian 12
-
-Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
-
-Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
+[...]
 
 MariaDB [(none)]> STOP SLAVE;
 Query OK, 0 rows affected (0.001 sec)
@@ -853,6 +759,91 @@ Now a breakdown of what they do:
 	  
+
+
+
+
+

Testing Replication

+ +

+Now to test if both databases are synchronized, we will modify the data directly on one database and verify that both services are updated after reloading the site. +

+ +
oxeo@server1:~$ sudo mysql
+[...]
+
+MariaDB [(none)]> USE veggie_shop;
+Database changed
+MariaDB [veggie_shop]> INSERT INTO products (name, price, quantity) VALUES ('Pear', 0.65, 10);
+Query OK, 1 row affected (0.005 sec)
+
+ + + +
+
+ +

+Changes to the second database should be replicated as well so we'll test it by updating the number of pears. +

+ +
oxeo@server2:~$ sudo mysql
+[...]
+
+MariaDB [(none)]> USE veggie_shop;
+Database changed
+MariaDB [veggie_shop]> UPDATE products SET quantity = 42 WHERE name = 'Pear';
+Query OK, 1 row affected (0.002 sec)
+Rows matched: 1  Changed: 1  Warnings: 0
+
+ + + +
+
+
+
+ +
+
+
+
+

Troubleshooting

+ +

+If for whatever reason your replication works only in one way or doesn't work at all, you can check the system journal: +

+ +
oxeo@server1:~$ sudo journalctl -xe
+[...]
+Feb 16 20:27:55 server1 /etc/mysql/debian-start[392]: Upgrading MySQL tables if necessary.
+Feb 16 20:27:55 server1 /etc/mysql/debian-start[433]: Triggering myisam-recover for all MyISAM tables and aria-recover for all Aria tables
+Feb 16 20:27:58 server1 mariadbd[311]: 2025-02-16 20:27:58 5 [Note] Slave I/O thread: connected to master 'repl@127.0.0.1:33062',replication started in log 'mysql-bin.000003' at position 682
+Feb 16 20:29:57 server1 mariadbd[311]: 2025-02-16 20:29:57 38 [Note] Start binlog_dump to slave_server(2), pos(mysql-bin.000003, 1022), using_gtid(0), gtid('')
+[...]
+
+ +

+You can also check the listening ports using the ss command. Here's how it should look like: +

+ +
oxeo@server1:~$ sudo ss -tulp
+Netid  State   Recv-Q  Send-Q     Local Address:Port       Peer Address:Port  Process                                                                           
+udp    UNCONN  0       0                0.0.0.0:bootpc          0.0.0.0:*      users:(("dhclient",pid=93,fd=7))                                                 
+tcp    LISTEN  0       5              127.0.0.1:33062           0.0.0.0:*      users:(("socat",pid=156,fd=5))                                                   
+tcp    LISTEN  0       100            127.0.0.1:smtp            0.0.0.0:*      users:(("master",pid=445,fd=13))                                                 
+tcp    LISTEN  0       80             127.0.0.1:mysql           0.0.0.0:*      users:(("mariadbd",pid=311,fd=25))                                               
+tcp    LISTEN  0       511            127.0.0.1:4440            0.0.0.0:*      users:(("nginx",pid=9278,fd=5),("nginx",pid=9277,fd=5),("nginx",pid=9276,fd=5))  
+tcp    LISTEN  0       4096           127.0.0.1:9050            0.0.0.0:*      users:(("tor",pid=187,fd=6))                                                     
+tcp    LISTEN  0       100                [::1]:smtp               [::]:*      users:(("master",pid=445,fd=14))                                                 
+tcp    LISTEN  0       4096                   *:ssh                   *:*      users:(("sshd",pid=175,fd=3),("systemd",pid=1,fd=39))
+
+ +
+
+
+
+
@@ -864,11 +855,11 @@ Now a breakdown of what they do:

-If you need even more security for inter-server communication, you cloud configure Client Authorization. Nowadays it shouldn't be necessary unless your internal onion URL has been compromised. It provides additional protection by requiring a private key approved by your Hidden Service to access internal services. +If you need even more security for inter-server communication, you could configure Client Authorization. Nowadays it shouldn't be necessary unless your internal onion URL has been compromised. It provides additional protection by requiring a private key approved by your Hidden Service to access internal services.

-In the next tutorial of this series, we will configure Onionbalance - a service that automatically distributes requests over multiple backends on the same onion URL. +In the next tutorial of this series, we will configure Onionbalance - a service that automatically distributes requests over multiple backends on the same onion URL.

diff --git a/opsec/torwebsite/index.html b/opsec/torwebsite/index.html index 18644d9..d1a4b84 100644 --- a/opsec/torwebsite/index.html +++ b/opsec/torwebsite/index.html @@ -103,7 +103,7 @@ curl ifconfig.me 194.127.199.92

-

Once done, install tor and compute your Tor domain:

+

Once done, install tor and compute your Tor domain:


 [ nowhere.moe ] [ /dev/pts/11 ] [/srv]
 → apt install gcc libc6-dev libsodium-dev make autoconf tor nginx -y