Написать скрипт для поднятие double vpn Wireguard
1. развернуть ноду (entry, exit)
2. изолировать клиентов друг от друга (firewall/netmask)
3. при добавление новых клиентов не перезагрузить всех
топология
==== 1 =====
Каждый хост в цепочке будет иметь по 2 ip (один ip для входа, другой для выхода)
скрипт для конфигурации должен выглядеть так:
./create_node.sh --mode entry --inbound 75.7.7.13 --outbound 75.7.7.14
он должен делать:
- connect to ssh 75.7.7.13
- install wireguard components
- create interface wg0-server (bind only to 75.7.7.13)
- create interface wg0-client (bind only to 75.7.7.14) + add peer endpoint
- save local (interface,endpoint,pubkey) или можно сгенерировать все ключи для entry, exit и потом из списка вставлять нужный
- configure ip routing
- configure firewall
- connect to ssh 85.8.8.25
- install wireguard components
- create interface wg1-server (bind only to 85.8.8.25) + add peer from entry server
- configure routing (ip route add default via 85.8.8.1 src 85.8.8.26)
- configure firewall
===== 2 ====
Изолировать клиентов через firewall (allow only talk to gateway)
если получиться использовать разные подсети для каждого клиента
===== 3 ====
скрипт для добавление нового клиента
./add_client.sh --name client1563
он должен делать:
- сгенерировать ключи
- создать файл конфигурации client1563.conf
- connect to ssh 75.7.7.13
- добавить peer client1563 к wg0-server (не перезагрузить все сессий)
- сохранить в файл или DB (name, pubkey, время добавление)
./demon_check_expire.sh --backround
- будет проверять каждые 5 мин файл/DB
- если истекло время - удалить peer client1563 с wg0-server