48 lines
806 B
Bash
Executable File
48 lines
806 B
Bash
Executable File
# TODO
|
|
# 1. Read server pubkey from file
|
|
|
|
wg
|
|
|
|
echo -n 'Client Name: '
|
|
read name
|
|
echo -n 'Last digit of client IP \(10.10.0.?\): '
|
|
read ip
|
|
echo -n 'Server PubKey: '
|
|
read server_pubkey
|
|
|
|
mkdir $name
|
|
cd $name
|
|
export PRIVKEY=$(wg genkey)
|
|
echo $PRIVKEY | tee $name"_privkey"
|
|
export PUBKEY=$(echo $PRIVKEY | wg pubkey)
|
|
echo $PUBKEY | tee $name"_pubkey"
|
|
|
|
cat > $name".conf" <<EOF
|
|
[Interface]
|
|
PrivateKey = $PRIVKEY
|
|
Address = 10.10.0.$ip/32, fd86:ea04:1111::$ip/128
|
|
DNS = 10.10.0.1
|
|
|
|
[Peer]
|
|
PublicKey = $server_pubkey
|
|
Endpoint = wireguard.reeseapps.com:51820
|
|
AllowedIPs = 0.0.0.0/0, ::/0
|
|
EOF
|
|
|
|
cat >> /etc/wireguard/wg0.conf <<EOF
|
|
|
|
# $name
|
|
[Peer]
|
|
PublicKey = $PUBKEY
|
|
AllowedIPs = 10.10.0.$ip/32
|
|
EOF
|
|
|
|
wg set wg0 peer $PUBKEY allowed-ips 10.10.0.$ip/32
|
|
|
|
qrencode -t ansiutf8 < $name".conf"
|
|
|
|
cd ..
|
|
chmod -R 600 $name
|
|
|
|
wg
|