Unix SSH Tunnel and DNS over HTTPS

Unix SSH Tunnel and DNS over HTTPS


# Part I


1. Поднимаем Linux виртуалку на azure/aws, прописываем все необходимые рулы для того, чтобы порт 22 был доступен с вашего IP (или вообще со всех IP).


2. Получаем свой ssh ключ, либо нагенериваем и подкладываем на свою машину.


4. Далее устанавливаем на свою машину:


* sshuttle - Transparent proxy server that works as a poor man's VPN. Forwards over ssh. Doesn't require admin. Works with Linux and MacOS. Supports DNS tunneling.


```bash

- Ubuntu 16.04 or later:

apt-get install sshuttle

- Debian stretch or later:

apt-get install sshuttle

- Arch Linux:

pacman -S sshuttle

- Fedora:

dnf install sshuttle

- NixOS:

nix-env -iA nixos.sshuttle

- From PyPI:

sudo pip install sshuttle

- Clone:

git clone https://github.com/sshuttle/sshuttle.git

cd sshuttle

sudo ./setup.py install

- FreeBSD:

# ports

cd /usr/ports/net/py-sshuttle && make install clean

# pkg

pkg install py36-sshuttle

It is also possible to install into a virtualenv as a non-root user.

- From PyPI:

virtualenv -p python3 /tmp/sshuttle

. /tmp/sshuttle/bin/activate

pip install sshuttle

- Clone:

virtualenv -p python3 /tmp/sshuttle

. /tmp/sshuttle/bin/activate

git clone https://github.com/sshuttle/sshuttle.git

cd sshuttle

./setup.py install

- Homebrew:

brew install sshuttle

- Nix:

nix-env -iA nixpkgs.sshuttle

```


5. Проверяем, что есть доступ по SSH: ssh -i ~/.ssh/root.pem -p 22 ec2-user@1.1.1.1

* ~/.ssh/root.pem - путь к твоему ключу, 22 - порт, ec2-user - имя пользователя, 1.1.1.1 - IP виртуалки.


> 22 порт может быть доступен (пока). Скоро и у БТК(byfly) может отвалиться.


6. На своей машине: sudo sshuttle --ssh-cmd 'ssh -i /Users/ramzay/.ssh/root.pem -p 22' -r ec2-user@1.1.1.1 0.0.0.0/0


* macOS: /Users/{username}/.ssh/root.pem - полный путь к твоему ключу.

* Linux: /home/{username}/.ssh/root.pem - полный путь к твоему ключу.


* 0.0.0.0/0 - не менять.


# Part II




DNS over HTTPS (Catalina)


1. Скачиваем:


```bash

brew install dnscrypt-proxy

```


2. Тестируем, что резолвится сайт по имени:


```

dnscrypt-proxy -resolve {name_of_site_for_test}

```


3. Если всё ок - запускаем сервис


```bash

brew services start dnscrypt-proxy

```


4. Прописываем только что поднятый dns:

1. Apple

2. System preferences

3. Advanced...

4. DNS

5. "+" слева снизу

6. 127.0.0.1


Report Page