Initial commit

This commit is contained in:
Sun Knudsen 2020-06-18 10:59:51 -04:00
commit e00bbc972b
14 changed files with 3336 additions and 0 deletions

5
README.md Normal file
View file

@ -0,0 +1,5 @@
# Privacy guides reference material
Most [privacy guides](https://www.youtube.com/sunknudsen) episodes on YouTube dont need reference material, but when they do, it lands here.
Wish to contribute? Please submit an [issue](https://github.com/sunknudsen/privacy-guides/issues) or a [pull request](https://github.com/sunknudsen/privacy-guides/pulls).

View file

@ -0,0 +1,22 @@
<!--
Title: How to create a Signal account without using your personal phone number
Description: Learn how to create a Signal account without using your personal phone number.
Author: Sun Knudsen <https://github.com/sunknudsen>
Contributors: Sun Knudsen <https://github.com/sunknudsen>
Publication date: 2020-06-04T00:00:00.000Z
-->
# How to create a Signal account without using your personal phone number
[![How to create a Signal account without using your personal phone number - YouTube](how-to-create-a-signal-account-without-using-your-personal-phone-number.png)](https://www.youtube.com/watch?v=b9aMJZjZ4pw "How to create a Signal account without using your personal phone number - YouTube")
Dont forger to replace `+12345678901` with your mobile phone number.
```xml
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Message to="+12345678901">
{{From}}: {{Body}}
</Message>
</Response>
```

View file

@ -0,0 +1,177 @@
<!--
Title: How to encrypt, sign and decrypt messages using PGP on macOS (adding privacy to email)
Description: Learn how to encrypt, sign and decrypt messages using PGP on macOS (adding privacy to email).
Author: Sun Knudsen <https://github.com/sunknudsen>
Contributors: Sun Knudsen <https://github.com/sunknudsen>
Publication date: 2020-06-18T00:00:00.000Z
-->
# How to encrypt, sign and decrypt messages using PGP on macOS (adding privacy to email)
> WARNING: this is a getting started guide. For a hardened guide, see https://github.com/drduh/YubiKey-Guide.
## Installation guide
**Step 1: install Homebrew**
See https://brew.sh/
```shell
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
```
**Step 2: disable analytics**
```shell
brew analytics off
```
**Step 3: install GnuPG**
```shell
brew install gnupg
```
**Step 4: generate PGP key pair**
```shell
$ gpg --full-generate-key
gpg (GnuPG) 2.2.20; Copyright (C) 2020 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
gpg: directory '/Users/johndoe/.gnupg' created
gpg: keybox '/Users/johndoe/.gnupg/pubring.kbx' created
Please select what kind of key you want:
(1) RSA and RSA (default)
(2) DSA and Elgamal
(3) DSA (sign only)
(4) RSA (sign only)
(14) Existing key from card
Your selection? 1
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048) 4096
Requested keysize is 4096 bits
Please specify how long the key should be valid.
0 = key does not expire
<n> = key expires in n days
<n>w = key expires in n weeks
<n>m = key expires in n months
<n>y = key expires in n years
Key is valid for? (0) 0
Key does not expire at all
Is this correct? (y/N) y
GnuPG needs to construct a user ID to identify your key.
Real name: John Doe
Email address: john@example.net
Comment:
You selected this USER-ID:
"John Doe <john@example.net>"
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
gpg: /Users/johndoe/.gnupg/trustdb.gpg: trustdb created
gpg: key 1BDC94DFB97BE4D4 marked as ultimately trusted
gpg: directory '/Users/johndoe/.gnupg/openpgp-revocs.d' created
gpg: revocation certificate stored as '/Users/johndoe/.gnupg/openpgp-revocs.d/F365EDCF06F4D9F09BB7D4EB1BDC94DFB97BE4D4.rev'
public and secret key created and signed.
pub rsa4096 2020-06-16 [SC]
F365EDCF06F4D9F09BB7D4EB1BDC94DFB97BE4D4
uid John Doe <john@example.net>
sub rsa4096 2020-06-16 [E]
```
**Step 5: set default PGP key server to `hkps://keys.openpgp.org`**
```shell
echo "keyserver hkps://keys.openpgp.org" >> ~/.gnupg/dirmngr.conf
```
---
## Usage guide
**Export Johns PGP public key**
```shell
gpg --armor --export john@example.net > ~/Desktop/john.asc
```
**Import Suns PGP public key**
```shell
gpg --keyserver hkps://keys.openpgp.org --recv-keys 0xC1323A377DE14C8B
```
or
```shell
curl https://sunknudsen.com/sunknudsen.asc | gpg --import
```
**Confirm Suns PGP public key is legit using its fingerprint**
```shell
$ gpg --fingerprint hello@sunknudsen.com
gpg: checking the trustdb
gpg: marginals needed: 3 completes needed: 1 trust model: pgp
gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u
pub rsa4096 2019-10-17 [C]
C4FB DDC1 6A26 2672 920D 0A0F C132 3A37 7DE1 4C8B
uid [ unknown] Sun Knudsen <hello@sunknudsen.com>
sub rsa4096 2019-10-17 [A] [expires: 2020-10-16]
sub rsa4096 2019-10-17 [E] [expires: 2020-10-16]
sub rsa4096 2019-10-17 [S] [expires: 2020-10-16]
```
See https://sunknudsen.com/, https://github.com/sunknudsen/pgp-public-key and https://www.youtube.com/sunknudsen/about and make sure fingerprint `C4FB DDC1 6A26 2672 920D 0A0F C132 3A37 7DE1 4C8B` matches the one published.
👍
**Paste, encrypt and sign message (enter line break and use command `ctrl+d` to quit edit mode)**
```shell
$ gpg --encrypt --sign --armor --output ~/Desktop/encrypted.asc -r john@example.net -r hello@sunknudsen.com
gpg: 5574F4B0B0F67D7F: There is no assurance this key belongs to the named user
sub rsa4096/5574F4B0B0F67D7F 2019-10-17 Sun Knudsen <hello@sunknudsen.com>
Primary key fingerprint: C4FB DDC1 6A26 2672 920D 0A0F C132 3A37 7DE1 4C8B
Subkey fingerprint: 35A2 7551 E77C 3ED9 8527 032A 5574 F4B0 B0F6 7D7F
It is NOT certain that the key belongs to the person named
in the user ID. If you *really* know what you are doing,
you may answer the next question with yes.
Use this key anyway? (y/N) y
This is a test!
```
**Decrypt message to stdout and decode quoted-printable characters**
```shell
$ gpg --decrypt /Users/johndoe/Desktop/encrypted.asc | perl -MMIME::QuotedPrint -0777 -nle 'print decode_qp($_)'
gpg: encrypted with 4096-bit RSA key, ID 5574F4B0B0F67D7F, created 2019-10-17
"Sun Knudsen <hello@sunknudsen.com>"
gpg: encrypted with 4096-bit RSA key, ID 0DA22A1AC7DBA3F9, created 2020-06-16
"John Doe <john@example.net>"
gpg: Signature made Thu 18 Jun 10:45:04 2020 EDT
gpg: using RSA key F365EDCF06F4D9F09BB7D4EB1BDC94DFB97BE4D4
gpg: Good signature from "John Doe <john@example.net>" [ultimate]
This is a test!
```
**Clear passphrase from GnuPG cache**
```shell
gpg-connect-agent reloadagent /bye
```

View file

@ -0,0 +1,34 @@
<!--
Title: How to mitigate fingerprinting and IP leaks using Firefox advanced preferences
Description: Learn how to mitigate fingerprinting and IP leaks using Firefox advanced preferences.
Author: Sun Knudsen <https://github.com/sunknudsen>
Contributors: Sun Knudsen <https://github.com/sunknudsen>
Publication date: 2020-05-15T00:00:00.000Z
-->
# How to mitigate fingerprinting and IP leaks using Firefox advanced preferences
[![How to mitigate fingerprinting and IP leaks using Firefox advanced preferences - YouTube](how-to-mitigate-fingerprinting-and-ip-leaks-using-firefox-advanced-preferences.png)](https://www.youtube.com/watch?v=uYoJ7U0OMCY "How to mitigate fingerprinting and IP leaks using Firefox advanced preferences - YouTube")
**Step 1: make sure you are running the latest version of Firefox**
**Step 2: make sure you configured Firefox for privacy using [https://www.youtube.com/watch?v=NH4DdXC0RFw](https://www.youtube.com/watch?v=NH4DdXC0RFw)**
**Step 3: in `Privacy & Security`, disable `Deceptive Content and Dangerous Software Protection`**
**Step 4: open `about:config` and set the following**
```
dom.event.clipboardevents.enabled = false
geo.enabled = false
media.eme.enabled = false
media.navigator.enabled = false
media.peerconnection.enabled = false
network.dns.disablePrefetch = true
network.http.sendRefererHeader = 0
network.prefetch-next = false
privacy.firstparty.isolate = true
privacy.resistFingerprinting = true
privacy.trackingprotection.enabled = true
webgl.disabled = true
```

View file

@ -0,0 +1,37 @@
<!--
Title: How to protect Mac computers from cold boot attacks (also known as an evil maid attack)
Description: Learn how to protect Mac computers from cold boot attacks (also known as an evil maid attack).
Author: Sun Knudsen <https://github.com/sunknudsen>
Contributors: Sun Knudsen <https://github.com/sunknudsen>
Publication date: 2020-06-05T00:00:00.000Z
-->
# How to protect Mac computers from cold boot attacks (also known as an evil maid attack)
[![How to protect Mac computers from cold boot attacks (also known as an evil maid attack) - YouTube](<how-to-protect-mac-computers-from-cold-boot-attacks-(also-known-as-an-evil-maid-attack).png>)](https://www.youtube.com/watch?v=d_M18sq0TIQ "How to protect Mac computers from cold boot attacks (also known as an evil maid attack) - YouTube")
**Run the following `pmset` command using the Terminal.**
```shell
sudo pmset -a destroyfvkeyonstandby 1 hibernatemode 25 standbydelaylow 0 standbydelayhigh 0
```
`destroyfvkeyonstandby 1` tells macOS to destroy your password (override it with random data) when your computer goes to standby mode.
`hibernatemode 25` tells macOS to store the content of the RAM to the hard drive (which is encrypted using FileVault) and power off the RAM (which clears its data).
`standbydelaylow 0` tells macOS to enable standby mode immediately when your battery is low and you put your computer to sleep.
`standbydelayhigh 0` tells macOS to enable standby mode immediately when your battery is high and you put your computer to sleep.
See `man pmset` for more information.
---
## Want things back the way they were before following this guide? No problem!
**Run the following `pmset` command using the Terminal.**
```shell
sudo pmset -a destroyfvkeyonstandby 0 hibernatemode 3 standbydelaylow 10800 standbydelayhigh 86400
```

View file

@ -0,0 +1,220 @@
<!--
Title: How to spoof (anonymize) your MAC address and hostname automatically at boot on macOS
Description: Learn how to spoof (anonymize) your MAC address and hostname automatically at boot on macOS.
Author: Sun Knudsen <https://github.com/sunknudsen>
Contributors: Sun Knudsen <https://github.com/sunknudsen>
Publication date: 2020-05-19T00:00:00.000Z
-->
# How to spoof (anonymize) your MAC address and hostname automatically at boot on macOS
[![How to spoof (anonymize) your MAC address and hostname automatically at boot on macOS - YouTube](how-to-spoof-anonymize-your-mac-address-and-hostname-automatically-at-boot-on-macos.png)](https://www.youtube.com/watch?v=ASXANpr_zX8 "How to spoof (anonymize) your MAC address and hostname automatically at boot on macOS - YouTube")
> Heads up: unfortunately this guide does not work on Macs equipped with the new T2 chip running macOS Mojave. If thats your case, please consider upgrading to Catalina.
**Step 1: create `/usr/local/sbin` folder**
```shell
sudo mkdir /usr/local/sbin
sudo chown $(whoami):admin /usr/local/sbin/
```
**Step 2: create `spoof.sh` script**
**Pro tip 1: when copy/pasting commands that start with `cat << "EOF"`, select all lines (from `cat << "EOF"` to `EOF`) at once as they are part of the same (single) command**
```shell
cat << "EOF" > /usr/local/sbin/spoof.sh
#! /bin/sh
set -e
export LC_CTYPE=C
dirname=`dirname "${BASH_SOURCE}"`
# Spoof computer name
model_name=`system_profiler SPHardwareDataType | awk '/Model Name/ {$1=$2=""; print $0}' | sed -e 's/^[ ]*//'`
first_name=`sed "$(jot -r 1 1 2048)q;d" $dirname/first_names.txt | sed -e 's/[^a-zA-Z]//g'`
computer_name=`echo "$first_names $model_name"`
host_name=`echo $computer_name | sed -e 's///g' | sed -e 's/ /-/g'`
sudo scutil --set ComputerName "$computer_name"
sudo scutil --set LocalHostName "$host_name"
sudo scutil --set HostName "$host_name"
echo "Spoofed hostname to $host_name"
# Spoof MAC address of en0 interface
mac_address_prefix=`sed "$(jot -r 1 1 768)q;d" $dirname/mac_address_prefixes.txt | sed -e 's/[^A-F0-9:]//g'`
mac_address_suffix=`openssl rand -hex 3 | sed 's/\(..\)/\1:/g; s/.$//'`
mac_address=`echo "$mac_address_prefix:$mac_address_suffix" | awk '{print toupper($0)}'`
sudo ifconfig en0 ether "$mac_address"
echo "Spoofed MAC address of en0 interface to $mac_address"
EOF
```
Ok, a lot is happening here. Lets break it down into reviewable pieces.
```shell
set -e
```
Exit on error
```shell
export LC_CTYPE=C
```
Fix `sed: RE error: illegal byte sequence` [sed](https://en.wikipedia.org/wiki/Sed) error
```shell
dirname=`dirname "${BASH_SOURCE}"`
```
Set variable `dirname` to path of `spoof.sh`
```shell
model_name=`system_profiler SPHardwareDataType | awk '/Model Name/ {$1=$2=""; print $0}' | sed -e 's/^[ ]*//'`
```
Set variable `model_name` to the model of your Mac
```shell
first_name=`sed "$(jot -r 1 1 2048)q;d" $dirname/first_names.txt | sed -e 's/[^a-zA-Z]//g'`
```
Set variable `first_name` to random first name found in `first_names.txt`
```shell
computer_name=`echo "$first_names $model_name"`
host_name=`echo $computer_name | sed -e 's///g' | sed -e 's/ /-/g'`
```
Set variables `computer_name` and `host_name` using values from variables `first_name`, `model_name` and `computer_name`
```shell
sudo scutil --set ComputerName "$computer_name"
sudo scutil --set LocalHostName "$host_name"
sudo scutil --set HostName "$host_name"
echo "Spoofed hostname to $host_name"
```
Set `ComputerName`, `LocalHostName` and `HostName` using [scutil](https://ss64.com/osx/scutil.html) and echo spoofed computer name
```shell
mac_address_prefix=`sed "$(jot -r 1 1 768)q;d" $dirname/mac_address_prefixes.txt | sed -e 's/[^A-F0-9:]//g'`
```
Set variable `mac_address_prefix` to random Apple MAC address prefix found in `mac_address_prefixes.txt`
```shell
mac_address_suffix=`openssl rand -hex 3 | sed 's/\(..\)/\1:/g; s/.$//'`
```
Set variable `mac_address_suffix` to random value genereated by [OpenSSL](https://en.wikipedia.org/wiki/OpenSSL)
```shell
mac_address=`echo "$mac_address_prefix:$mac_address_suffix" | awk '{print toupper($0)}'`
```
Set variable `mac_address` using values from variables `mac_address_prefix` and `mac_address_suffix` and convert to upper case
```shell
sudo ifconfig en0 ether "$mac_address"
echo "Spoofed MAC address of en0 interface to $mac_address"x
```
Set spoofed MAC address using [ifconfig](https://en.wikipedia.org/wiki/Ifconfig) and echo spoofed MAC address
**Step 3: make `spoof.sh` executable**
```shell
chmod +x /usr/local/sbin/spoof.sh
```
**Step 4: download [first_names.txt](first_names.txt)**
This list includes the top 2048 most popular baby names from the [USA Social Security Administration](https://www.ssa.gov/oact/babynames/limits.html).
```shell
curl -o /usr/local/sbin/first_names.txt https://sunknudsen.com/static/media/privacy-guides/spoof-anonymize-your-mac-address-and-hostname-automatically-at-boot-on-macos/first_names.txt
```
**Step 5: download [mac_address_prefixes.txt](mac_address_prefixes.txt)**
This list includes 768 Apple MAC address prefixes.
```shell
curl -o /usr/local/sbin/mac_address_prefixes.txt https://sunknudsen.com/static/media/privacy-guides/spoof-anonymize-your-mac-address-and-hostname-automatically-at-boot-on-macos/mac_address_prefixes.txt
```
**Step 6: create `local.spoof.plist` launch daemon**
This step is responsible for running `spoof.sh` every time your Mac boots.
```shell
cat << "EOF" | sudo tee /Library/LaunchDaemons/local.spoof.plist > /dev/null
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>spoof.sh</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/sbin/spoof.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
EOF
```
**Step 7: reboot and confirm hostname and MAC address have been spoofed**
```shell
# Spoofed hostname
scutil --get HostName
# Spoofed MAC address
ifconfig en0 | grep ether | awk '{print $2}'
# Hardware MAC address
networksetup -listallhardwareports | awk -v RS= '/en0/{print $NF}'
```
"Spoofed hostname" is random and "Spoofed MAC address" doesnt match "Hardware MAC address"?
👍
---
## Want things back the way they were before following this guide? No problem!
**Step 1: set computer name, local hostname and hostname**
Replace `John Doe` with a value to your liking. Dont forget to replace empty spaces by `-` for `LocalHostName` and `HostName`.
```shell
sudo scutil --set ComputerName "John Doe"
sudo scutil --set LocalHostName "John-Doe"
sudo scutil --set HostName "John-Doe"
```
**Step 2: set MAC address to factory value**
Given MAC address spoofing is ephemeral, deleting the `/Library/LaunchDaemons/local.spoof.plist` launch daemon and rebooting will reset your MAC address to its factory value.
```shell
sudo rm /Library/LaunchDaemons/local.spoof.plist
```
**Step 3 (optional): delete script and datasets**
```shell
rm /usr/local/sbin/spoof.sh
rm /usr/local/sbin/first_names.txt
rm /usr/local/sbin/mac_address_prefixes.txt
```

View file

@ -0,0 +1,768 @@
60:8B:0E
88:B2:91
C4:2A:D0
CC:D2:81
10:40:F3
58:6B:14
BC:B8:63
44:E6:6E
C0:E8:62
F4:06:16
E4:B2:FB
4C:56:9D
38:53:9C
40:26:19
6C:E8:5C
F8:38:80
10:94:BB
F8:6F:C1
28:FF:3C
F0:99:B6
88:E9:FE
38:89:2C
74:9E:AF
94:BF:2D
40:CB:C0
C4:61:8B
08:E6:89
DC:56:E7
54:33:CB
34:08:BC
1C:36:BB
3C:2E:FF
24:F6:77
B0:CA:68
C8:3C:85
B8:63:4D
A4:E9:75
30:35:AD
84:41:67
98:00:C6
AC:1F:74
A8:5C:2C
00:DB:70
24:5B:A7
70:F0:87
B0:70:2D
6C:19:C0
2C:33:61
EC:AD:B8
98:01:A7
24:F0:94
08:6D:41
E0:C7:67
80:ED:2C
AC:61:EA
38:B5:4D
1C:5C:F2
28:ED:6A
A4:D1:8C
24:1E:EB
CC:25:EF
28:CF:E9
00:A0:40
3C:D0:F8
68:09:27
6C:C2:6B
44:D8:84
00:26:08
00:26:B0
00:26:BB
D4:9A:20
F8:1E:DF
C8:2A:14
3C:07:54
A4:B1:97
F0:B4:79
10:93:E9
44:2A:60
A4:D1:D2
28:CF:DA
00:30:65
00:14:51
00:1E:52
00:21:E9
CC:08:E0
04:54:53
F4:F9:51
C0:63:94
18:AF:8F
C8:B5:B7
90:B2:1F
30:F7:C5
40:B3:95
44:FB:42
E8:8D:28
94:94:26
20:7D:74
F4:F1:5A
C8:6F:1D
30:90:AB
8C:2D:AA
84:85:06
98:FE:94
D8:00:4D
64:20:0C
C8:33:4B
64:E6:82
B8:E8:56
D8:96:95
14:99:E2
B4:18:D1
9C:20:7B
B0:65:BD
54:26:96
64:A3:CB
90:3C:92
D8:1D:72
34:12:98
70:E7:2C
70:EC:E4
68:AE:20
AC:87:A3
D8:BB:2C
D0:4F:7E
20:78:F0
E0:AC:CB
A0:99:9B
24:24:0E
F0:DB:F8
48:74:6E
54:AE:27
FC:E9:98
0C:BC:9F
34:36:3B
D0:A6:37
78:9F:70
9C:F3:87
A8:5B:78
C8:F6:50
A8:8E:24
CC:20:E8
70:48:0F
F0:B0:E7
04:69:F8
40:70:F5
B0:35:B5
80:0C:67
90:81:2A
B8:7B:C5
10:29:59
E4:76:84
F0:5C:D5
70:EA:5A
B4:40:A4
48:B8:A3
F4:DB:E3
F8:87:F1
30:57:14
C8:B1:CD
14:60:CB
B8:F1:2A
80:4A:14
70:3C:69
14:C2:13
A4:D9:31
BC:FE:D9
80:82:23
BC:E1:43
64:70:33
84:68:78
C8:D0:83
60:30:D4
F8:95:EA
18:F1:D8
30:D9:D9
D0:81:7A
98:CA:33
68:AB:1E
70:EF:00
0C:15:39
D8:8F:76
40:9C:28
58:E2:8F
78:7B:8A
50:32:37
B0:48:1A
B4:9C:DF
48:BF:6B
9C:84:BF
00:B3:62
E4:E4:AB
60:33:4B
FC:D8:48
A8:60:B6
C4:B3:01
E0:5F:45
48:3B:38
1C:91:48
30:63:6B
A4:F1:E8
44:00:10
00:56:CD
00:CD:FE
E4:98:D6
F4:31:C3
64:A5:C3
00:23:32
00:23:6C
00:23:DF
00:25:00
00:25:BC
00:19:E3
00:1B:63
00:1E:C2
00:1F:F3
00:10:FA
00:50:E4
00:0D:93
7C:FA:DF
78:A3:E4
14:8F:C6
28:6A:B8
28:E0:2C
E0:B9:BA
00:C6:10
B8:F6:B1
8C:FA:BA
7C:D1:C3
F0:DC:E2
24:AB:81
E0:F8:47
28:E7:CF
E4:CE:8F
A8:20:66
BC:52:B7
5C:59:48
C8:BC:C8
E8:04:0B
14:5A:05
1C:AB:A7
C0:84:7A
34:15:9E
58:B0:35
DC:86:D8
90:B9:31
D0:E1:40
24:A2:E1
80:EA:96
60:03:08
04:F1:3E
98:F0:AB
78:31:C1
78:3A:84
5C:8D:4E
88:63:DF
88:1F:A1
C8:E0:EB
98:B8:E3
88:53:95
78:6C:1C
4C:8D:79
1C:E6:2B
0C:30:21
0C:3E:9F
FC:FC:48
9C:29:3F
08:74:02
94:F6:A3
98:E0:D9
CC:29:F5
28:5A:EB
F0:24:75
2C:1F:23
54:9F:13
F0:DB:E2
74:81:14
18:F6:43
A4:5E:60
A0:18:28
D0:03:4B
10:41:7F
A8:66:7F
D0:25:98
80:BE:05
24:A0:74
84:78:8B
58:7F:57
00:6D:52
B8:44:D9
14:87:6A
E0:B5:5F
F8:FF:C2
E0:EB:40
3C:BF:60
AC:15:F4
88:A4:79
04:72:95
D4:46:E1
78:D1:62
08:F8:BC
90:A2:5B
7C:AB:60
44:C6:5D
18:7E:B9
20:E8:74
D0:3F:AA
50:7A:C5
4C:6B:E8
8C:86:1E
54:2B:8D
44:18:FD
00:5B:94
E0:89:7E
64:C7:53
38:F9:D3
FC:18:3C
90:E1:7B
D8:1C:79
58:E6:BA
9C:E6:5E
C4:98:80
E0:33:8E
08:F6:9C
50:A6:7F
D4:61:DA
F0:18:98
88:19:08
5C:09:47
14:20:5E
B8:41:A4
D4:90:9C
E4:E0:A6
80:B0:3D
E4:9A:DC
AC:E4:B5
D0:D2:B0
8C:85:90
6C:96:CF
78:88:6D
20:EE:28
B4:F6:1C
08:F4:AB
D4:DC:CD
48:4B:AA
DC:A9:04
6C:AB:31
4C:74:BF
98:9E:63
88:6B:6E
50:82:D5
64:B0:A6
7C:04:D0
84:FC:AC
DC:0C:5C
70:70:0D
18:65:90
F8:62:14
78:4F:43
40:4D:7F
9C:8B:A0
CC:08:8D
60:9A:C1
74:8D:08
10:DD:B1
C0:1A:DA
68:FB:7E
84:A1:34
0C:51:01
2C:F0:A2
B4:4B:D2
DC:41:5F
F4:5C:89
20:76:8F
E8:B2:AC
E4:9A:79
38:CA:DA
34:AB:37
18:AF:61
5C:F9:38
6C:72:E7
74:1B:B2
CC:44:63
60:FE:C5
E4:25:E7
BC:92:6B
10:1C:0C
08:00:07
40:D3:2D
C4:2C:03
90:27:E4
10:9A:DD
58:1F:AA
88:C6:63
00:1F:5B
00:24:36
00:25:4B
00:16:CB
00:17:F2
7C:6D:62
20:C9:D0
68:96:7B
84:FC:FE
E4:8B:7F
00:88:65
BC:3B:AF
3C:E0:72
38:48:4C
A4:67:06
8C:58:77
7C:F0:5F
80:49:71
6C:3E:6D
BC:67:78
D8:D1:CB
A8:FA:D8
B8:17:C2
7C:11:BE
28:37:37
50:EA:D6
98:D6:BB
18:9E:FC
AC:CF:5C
80:00:6E
84:8E:0C
3C:15:C2
6C:70:9F
C0:F2:FB
24:E3:14
80:E6:50
90:FD:61
08:70:45
A8:88:08
A4:C3:61
2C:F0:EE
5C:97:F3
D4:F4:6F
64:76:BA
34:E2:FD
04:48:9A
F0:F6:1C
8C:29:37
B0:9F:BA
0C:4D:E9
E0:F5:C6
A0:ED:CD
5C:F5:DA
18:EE:69
64:9A:BE
F0:99:BF
94:E9:6A
AC:29:3A
9C:FC:01
9C:35:EB
48:43:7C
34:A3:95
78:7E:61
60:F8:1D
38:C9:86
D0:33:11
50:7A:55
20:9B:CD
F0:A3:5A
60:83:73
84:AD:8D
74:42:8B
28:77:F1
88:A9:B7
EC:CE:D7
AC:90:85
B8:90:47
90:9C:4A
90:8C:43
3C:7D:0A
18:55:E3
E4:50:EB
88:64:40
60:70:C0
F0:C3:71
94:16:25
34:A8:EB
A4:83:E7
F4:AF:E7
AC:88:FD
DC:08:0F
F8:E9:4E
EC:2C:E2
40:BC:60
E8:36:17
9C:64:8B
34:42:62
14:D0:0D
64:5A:ED
C0:B6:58
48:A9:1C
50:BC:96
FC:2A:9C
A0:56:F3
54:99:63
90:DD:5D
C4:84:66
34:7C:25
CC:2D:B7
E4:2B:34
3C:2E:F9
A0:4E:A7
F0:98:9D
B0:19:C6
38:66:F0
70:3E:AC
98:10:E8
C0:D0:12
BC:A9:20
48:A1:95
F8:03:77
DC:A4:CA
8C:8F:E9
2C:20:0B
88:66:A5
00:1C:B3
F0:79:60
A0:D7:95
B8:FF:61
90:C1:C6
70:A2:B3
F4:0F:24
4C:57:CA
48:E9:F1
1C:9E:46
C0:CC:F8
9C:4F:DA
84:89:AD
68:DB:CA
08:66:98
BC:54:36
04:4B:ED
6C:8D:C1
0C:D7:46
60:A3:7D
90:60:F1
B8:78:2E
00:05:02
00:0A:95
00:26:4A
04:1E:64
00:11:24
00:22:41
7C:C5:37
78:CA:39
18:E7:F4
70:CD:60
8C:7B:9D
D8:9E:3F
B8:C7:5D
0C:74:C2
40:30:04
84:29:99
74:E2:F5
E0:C9:7A
68:A8:6D
7C:C3:A1
70:73:CB
90:84:0D
E8:06:88
EC:85:2F
00:F4:B9
5C:95:AE
98:03:D8
60:C5:47
68:5B:35
2C:B4:3A
68:9C:70
38:0F:4A
30:10:E4
A8:86:DD
44:4C:0C
B4:F0:AB
80:92:9F
9C:04:EB
5C:96:9D
60:92:17
84:B1:53
E0:66:78
48:D7:05
04:15:52
CC:78:5F
88:CB:87
F0:C1:F1
84:38:35
8C:00:6D
A8:96:8A
F4:1B:A1
60:D9:C7
3C:AB:8E
F8:27:93
90:72:40
90:8D:6C
B8:09:8A
4C:7C:5F
68:64:4B
C8:1E:E7
A4:31:35
68:D9:3C
00:F7:6F
C8:85:50
70:14:A6
98:5A:EB
78:D7:5F
E0:B5:2D
6C:94:F8
C0:CE:CD
C8:69:CD
A4:B8:05
5C:AD:CF
BC:6C:21
54:4E:90
AC:BC:32
7C:A1:AE
3C:22:FB
94:0C:98
E8:FB:E9
38:EC:0D
E4:90:FD
D0:65:44
84:AB:1A
74:E1:B6
F4:0E:01
14:95:CE
50:DE:06
CC:66:0A
FC:1D:43
B8:B2:F8
98:46:0A
B8:5D:0A
7C:9A:1D
10:30:25
54:62:E2
14:9D:99
C0:9A:D0
94:B0:1F
94:F6:D6
F8:2D:7C
18:81:0E
60:8C:4A
74:B5:87
FC:B6:D8
24:1B:7A
8C:FE:57
C0:A6:00
00:03:93
1C:1A:C0
40:83:1D
DC:D3:A2
5C:1D:D9
88:AE:07
68:FE:F7
68:EF:43
D0:2B:20
2C:61:F6
D4:A3:3D
F0:76:6F
40:98:AD
6C:4D:73
78:67:D7
B8:C1:11
9C:E3:3F
A8:BE:27
C0:A5:3E
D4:61:9D
14:BD:61
7C:50:49
58:40:4E
D0:C5:F3
BC:9F:EF
20:AB:37
60:F4:45
88:E8:7F
9C:F4:8E
5C:F7:E6
B8:53:AC
20:3C:AE
A0:3B:E3
4C:32:75
D8:30:62
B8:8D:12
8C:8E:F2
90:B0:ED
04:D3:CF
B4:8B:19
BC:EC:5D
28:A0:2B
38:71:DE
70:81:EB
60:69:44
04:52:F3
60:FB:42
64:B9:E8
00:1D:4F
00:23:12
D8:A2:5E
00:0A:27
18:34:51
0C:77:1A
28:6A:BA
4C:B1:99
C0:9F:42
D0:23:DB
70:DE:E2
F0:CB:A1
18:20:32
40:3C:FC
48:60:BC
34:51:C9
40:6C:8F
58:55:CA
DC:2B:61
40:A6:D9
60:FA:CD
00:3E:E1
FC:25:3F
04:F7:E4
34:C0:59
F0:D1:A9
70:56:81
14:10:9F
04:0C:CE
54:EA:A8
28:E1:4C
E4:C6:3D
54:E4:3A
04:DB:56
AC:3C:0B
70:11:24
04:26:65
EC:35:86
78:FD:94
2C:BE:08
E8:80:2E
00:61:71
8C:7C:92
B0:34:95
F4:37:B7
AC:7F:3E
28:0B:5C
AC:FD:EC
DC:9B:9C
54:72:4F
D8:CF:9C
7C:6D:F8
04:E5:36
A8:BB:CF
6C:40:08
40:33:1A
CC:C7:60
BC:4C:C4
DC:37:14
20:A2:E4
28:F0:76
7C:01:91
80:D6:05
DC:2B:2A
08:2C:B6
F8:4E:73
F0:78:07
3C:CD:36
44:4A:DB
30:90:48
BC:09:63
D8:4C:90

View file

@ -0,0 +1,25 @@
<!--
Title: How to use multiple compartmentalized Firefox instances simultaneously using profiles
Description: Learn how to use multiple compartmentalized Firefox instances simultaneously using profiles.
Author: Sun Knudsen <https://github.com/sunknudsen>
Contributors: Sun Knudsen <https://github.com/sunknudsen>
Publication date: 2020-05-13T00:00:00.000Z
-->
# How to use multiple compartmentalized Firefox instances simultaneously using profiles
[![How to use multiple compartmentalized Firefox instances simultaneously using profiles - YouTube](how-to-use-multiple-compartmentalized-firefox-instances-simultaneously-using-profiles.png)](https://www.youtube.com/watch?v=Upib_vq_EB8 "How to use multiple compartmentalized Firefox instances simultaneously using profiles - YouTube")
**Step 1: create Firefox profile**
```shell
/Applications/Firefox.app/Contents/MacOS/firefox-bin -p
```
**Step 2: open Firefox profile**
**Heads-up:** in the following command, make sure you replace `work` by the name of your profile. If the name includes spaces, please use quotes (example: `-p "Work Profile"`).
```shell
nohup /Applications/Firefox.app/Contents/MacOS/firefox-bin -p work --no-remote > /dev/null 2>&1 &
```