Skip to content

Instantly share code, notes, and snippets.

@1mm0rt41PC
Last active April 24, 2022 21:22

Revisions

  1. 1mm0rt41PC revised this gist Apr 24, 2022. 1 changed file with 4 additions and 2 deletions.
    6 changes: 4 additions & 2 deletions wireguard-generator.sh
    Original file line number Diff line number Diff line change
    @@ -13,24 +13,26 @@ export wg_pub=`echo -n $wg_key | wg pubkey`
    [ -z "$wg_endpoint" ] && export wg_endpoint='example.lo:1337'
    [ -z "$wg_rng" ] && export wg_rng='10.13.37'
    [ -z "$wg_dns" ] && export wg_dns='9.9.9.9'

    export wg_port=`echo -n $wg_endpoint | cut -d : -f 2`

    cat <<EOD > /etc/wireguard/wg0.conf
    [Interface]
    Address = ${wg_rng}.1/24
    ListenPort = `echo -n $wg_endpoint | cut -d : -f 2`
    ListenPort = $wg_port
    PrivateKey = $wg_key
    #PublicKey = $wg_pub
    PostUp = sysctl -w net.ipv4.ip_forward=1
    PostUp = sysctl -w net.ipv6.conf.all.forwarding=1
    PostUp = sysctl -w net.ipv4.conf.all.rp_filter=1
    PostUp = sysctl -w net.ipv4.conf.default.rp_filter=1
    PostUp = iptables -I INPUT 1 -i ${wg_eth} -p udp --dport ${wg_port} -j ACCEPT
    PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o $wg_eth -j MASQUERADE
    PostUp = ip6tables -A FORWARD -i %i -j ACCEPT; ip6tables -t nat -A POSTROUTING -o $wg_eth -j MASQUERADE
    PostDown = sysctl -w net.ipv4.ip_forward=0
    PostDown = sysctl -w net.ipv6.conf.all.forwarding=0
    PostDown = sysctl -w net.ipv4.conf.all.rp_filter=0
    PostDown = sysctl -w net.ipv4.conf.default.rp_filter=0
    PostDown = iptables -D INPUT -i ${wg_eth} -p udp --dport ${wg_port} -j ACCEPT
    PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o $wg_eth -j MASQUERADE
    PostDown = ip6tables -D FORWARD -i %i -j ACCEPT; ip6tables -t nat -D POSTROUTING -o $wg_eth -j MASQUERADE
  2. 1mm0rt41PC revised this gist Apr 24, 2022. 1 changed file with 2 additions and 1 deletion.
    3 changes: 2 additions & 1 deletion wireguard-generator.sh
    Original file line number Diff line number Diff line change
    @@ -4,7 +4,8 @@ modprobe wireguard
    lsmod | grep wireguard

    mkdir -p /etc/wireguard
    wg-quick down wg0
    wg-quick down wg0 2>&1 >/dev/null

    export wg_key=`wg genkey`
    export wg_psk=`wg genkey`
    export wg_pub=`echo -n $wg_key | wg pubkey`
  3. 1mm0rt41PC revised this gist Apr 24, 2022. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion wireguard-generator.sh
    Original file line number Diff line number Diff line change
    @@ -10,7 +10,7 @@ export wg_psk=`wg genkey`
    export wg_pub=`echo -n $wg_key | wg pubkey`
    [ -z "$wg_eth" ] && export wg_eth='ens3'
    [ -z "$wg_endpoint" ] && export wg_endpoint='example.lo:1337'
    [ -z "$wg_rng" ] && export wg_rng='10.13.37.'
    [ -z "$wg_rng" ] && export wg_rng='10.13.37'
    [ -z "$wg_dns" ] && export wg_dns='9.9.9.9'


  4. 1mm0rt41PC revised this gist Apr 24, 2022. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion wireguard-generator.sh
    Original file line number Diff line number Diff line change
    @@ -1,5 +1,5 @@
    #!/bin/bash
    apt install wireguard qrencode wireguard-dkms
    apt-get install wireguard qrencode wireguard-dkms -y
    modprobe wireguard
    lsmod | grep wireguard

  5. 1mm0rt41PC revised this gist Apr 24, 2022. 1 changed file with 0 additions and 4 deletions.
    4 changes: 0 additions & 4 deletions wireguard-generator.sh
    Original file line number Diff line number Diff line change
    @@ -23,17 +23,13 @@ PrivateKey = $wg_key
    PostUp = sysctl -w net.ipv4.ip_forward=1
    PostUp = sysctl -w net.ipv6.conf.all.forwarding=1
    PostUp = sysctl -w net.ipv4.conf.all.rp_filter=1
    PostUp = sysctl -w net.ipv6.conf.all.rp_filter=1
    PostUp = sysctl -w net.ipv4.conf.default.rp_filter=1
    PostUp = sysctl -w net.ipv6.conf.default.rp_filter=1
    PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o $wg_eth -j MASQUERADE
    PostUp = ip6tables -A FORWARD -i %i -j ACCEPT; ip6tables -t nat -A POSTROUTING -o $wg_eth -j MASQUERADE
    PostDown = sysctl -w net.ipv4.ip_forward=0
    PostDown = sysctl -w net.ipv6.conf.all.forwarding=0
    PostDown = sysctl -w net.ipv4.conf.all.rp_filter=0
    PostDown = sysctl -w net.ipv6.conf.all.rp_filter=0
    PostDown = sysctl -w net.ipv4.conf.default.rp_filter=0
    PostDown = sysctl -w net.ipv6.conf.default.rp_filter=0
    PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o $wg_eth -j MASQUERADE
    PostDown = ip6tables -D FORWARD -i %i -j ACCEPT; ip6tables -t nat -D POSTROUTING -o $wg_eth -j MASQUERADE
  6. 1mm0rt41PC revised this gist Apr 24, 2022. 1 changed file with 2 additions and 0 deletions.
    2 changes: 2 additions & 0 deletions wireguard-generator.sh
    Original file line number Diff line number Diff line change
    @@ -11,6 +11,7 @@ export wg_pub=`echo -n $wg_key | wg pubkey`
    [ -z "$wg_eth" ] && export wg_eth='ens3'
    [ -z "$wg_endpoint" ] && export wg_endpoint='example.lo:1337'
    [ -z "$wg_rng" ] && export wg_rng='10.13.37.'
    [ -z "$wg_dns" ] && export wg_dns='9.9.9.9'


    cat <<EOD > /etc/wireguard/wg0.conf
    @@ -54,6 +55,7 @@ EOD
    #PublicKey = $wg_pub_cli
    PrivateKey = $wg_key_cli
    Address = ${wg_rng}.$i/32
    DNS = $wg_dns
    [Peer]
    PublicKey = $wg_pub
  7. 1mm0rt41PC revised this gist Apr 24, 2022. 1 changed file with 11 additions and 3 deletions.
    14 changes: 11 additions & 3 deletions wireguard-generator.sh
    Original file line number Diff line number Diff line change
    @@ -20,13 +20,21 @@ ListenPort = `echo -n $wg_endpoint | cut -d : -f 2`
    PrivateKey = $wg_key
    #PublicKey = $wg_pub
    PostUp = sysctl -w net.ipv4.ip_forward=1
    PostUp = sysctl -w net.ipv6.conf.all.forwarding=1
    PostUp = sysctl -w net.ipv4.conf.all.rp_filter=1
    PostUp = sysctl -w net.ipv6.conf.all.rp_filter=1
    PostUp = sysctl -w net.ipv4.conf.default.rp_filter=1
    PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o $wg_eth -j MASQUERADE
    PostUp = sysctl -w net.ipv6.conf.default.rp_filter=1
    PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o $wg_eth -j MASQUERADE
    PostUp = ip6tables -A FORWARD -i %i -j ACCEPT; ip6tables -t nat -A POSTROUTING -o $wg_eth -j MASQUERADE
    PostDown = sysctl -w net.ipv4.ip_forward=0
    PostDown = sysctl -w net.ipv6.conf.all.forwarding=0
    PostDown = sysctl -w net.ipv4.conf.all.rp_filter=0
    PostDown = sysctl -w net.ipv6.conf.all.rp_filter=0
    PostDown = sysctl -w net.ipv4.conf.default.rp_filter=0
    PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o $wg_eth -j MASQUERADE
    PostDown = sysctl -w net.ipv6.conf.default.rp_filter=0
    PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o $wg_eth -j MASQUERADE
    PostDown = ip6tables -D FORWARD -i %i -j ACCEPT; ip6tables -t nat -D POSTROUTING -o $wg_eth -j MASQUERADE
    EOD

    @@ -45,7 +53,7 @@ EOD
    [Interface]
    #PublicKey = $wg_pub_cli
    PrivateKey = $wg_key_cli
    Address = ${wg_rng}.$i/24
    Address = ${wg_rng}.$i/32
    [Peer]
    PublicKey = $wg_pub
  8. 1mm0rt41PC revised this gist Apr 24, 2022. 1 changed file with 1 addition and 2 deletions.
    3 changes: 1 addition & 2 deletions wireguard-generator.sh
    Original file line number Diff line number Diff line change
    @@ -59,5 +59,4 @@ done
    chmod 600 /etc/wireguard/*

    wg-quick up wg0
    systemctl enable wg-quick@wg0
    wg setconf wg0 /etc/wireguard/wg0.conf
    systemctl enable wg-quick@wg0
  9. 1mm0rt41PC revised this gist Apr 24, 2022. 1 changed file with 8 additions and 5 deletions.
    13 changes: 8 additions & 5 deletions wireguard-generator.sh
    Original file line number Diff line number Diff line change
    @@ -15,7 +15,7 @@ export wg_pub=`echo -n $wg_key | wg pubkey`

    cat <<EOD > /etc/wireguard/wg0.conf
    [Interface]
    Address = $wg_rng.1/24
    Address = ${wg_rng}.1/24
    ListenPort = `echo -n $wg_endpoint | cut -d : -f 2`
    PrivateKey = $wg_key
    #PublicKey = $wg_pub
    @@ -32,20 +32,20 @@ EOD

    for i in `seq 2 3`; do
    export wg_key_cli=`wg genkey`
    export wg_pub_cli=`echo -n $wg_key | wg pubkey`
    export wg_pub_cli=`echo -n $wg_key_cli | wg pubkey`
    cat <<EOD >> /etc/wireguard/wg0.conf
    [Peer]
    # Name = Client $i
    PublicKey = $wg_pub_cli
    PresharedKey = $wg_psk
    AllowedIPs = $wg_rng.$i/32
    AllowedIPs = ${wg_rng}.$i/32
    PersistentKeepalive = 120
    EOD
    cat <<EOD > /etc/wireguard/wg0-cli$i.conf
    [Interface]
    #PublicKey = $wg_pub_cli
    PrivateKey = $wg_key_cli
    Address = $wg_rng.$i/24
    Address = ${wg_rng}.$i/24
    [Peer]
    PublicKey = $wg_pub
    @@ -56,5 +56,8 @@ EOD
    qrencode -t ansiutf8 < /etc/wireguard/wg0-cli$i.conf
    done

    chmod 600 /etc/wireguard/*

    wg-quick up wg0
    systemctl enable wg-quick@wg0
    systemctl enable wg-quick@wg0
    wg setconf wg0 /etc/wireguard/wg0.conf
  10. 1mm0rt41PC revised this gist Apr 24, 2022. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions wireguard-generator.sh
    Original file line number Diff line number Diff line change
    @@ -4,6 +4,7 @@ modprobe wireguard
    lsmod | grep wireguard

    mkdir -p /etc/wireguard
    wg-quick down wg0
    export wg_key=`wg genkey`
    export wg_psk=`wg genkey`
    export wg_pub=`echo -n $wg_key | wg pubkey`
  11. 1mm0rt41PC revised this gist Apr 24, 2022. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions wireguard-generator.sh
    Original file line number Diff line number Diff line change
    @@ -9,7 +9,7 @@ export wg_psk=`wg genkey`
    export wg_pub=`echo -n $wg_key | wg pubkey`
    [ -z "$wg_eth" ] && export wg_eth='ens3'
    [ -z "$wg_endpoint" ] && export wg_endpoint='example.lo:1337'
    [ -z "$wg_rng" ] && export wg_rng='10.13.37'
    [ -z "$wg_rng" ] && export wg_rng='10.13.37.'


    cat <<EOD > /etc/wireguard/wg0.conf
    @@ -35,7 +35,7 @@ for i in `seq 2 3`; do
    cat <<EOD >> /etc/wireguard/wg0.conf
    [Peer]
    # Name = Client $i
    PublicKey = $wg_key_cli
    PublicKey = $wg_pub_cli
    PresharedKey = $wg_psk
    AllowedIPs = $wg_rng.$i/32
    PersistentKeepalive = 120
  12. 1mm0rt41PC revised this gist Apr 24, 2022. 1 changed file with 7 additions and 3 deletions.
    10 changes: 7 additions & 3 deletions wireguard-generator.sh
    Original file line number Diff line number Diff line change
    @@ -1,12 +1,15 @@
    #!/bin/bash
    apt install wireguard qrencode
    apt install wireguard qrencode wireguard-dkms
    modprobe wireguard
    lsmod | grep wireguard

    mkdir -p /etc/wireguard
    export wg_key=`wg genkey`
    export wg_psk=`wg genkey`
    export wg_pub=`echo -n $wg_key | wg pubkey`
    [ -z "$wg_eth" ] && export wg_eth='ens3'
    [ -z "$wg_endpoint" ] && export wg_endpoint='example.lo:1337'
    [ -z "$wg_rng" ] && export wg_rng='10.13.37.'
    [ -z "$wg_rng" ] && export wg_rng='10.13.37'


    cat <<EOD > /etc/wireguard/wg0.conf
    @@ -52,4 +55,5 @@ EOD
    qrencode -t ansiutf8 < /etc/wireguard/wg0-cli$i.conf
    done

    wg-quick up wg0
    wg-quick up wg0
    systemctl enable wg-quick@wg0
  13. 1mm0rt41PC created this gist Apr 24, 2022.
    55 changes: 55 additions & 0 deletions wireguard-generator.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,55 @@
    #!/bin/bash
    apt install wireguard qrencode
    mkdir -p /etc/wireguard
    export wg_key=`wg genkey`
    export wg_psk=`wg genkey`
    export wg_pub=`echo -n $wg_key | wg pubkey`
    [ -z "$wg_eth" ] && export wg_eth='ens3'
    [ -z "$wg_endpoint" ] && export wg_endpoint='example.lo:1337'
    [ -z "$wg_rng" ] && export wg_rng='10.13.37.'


    cat <<EOD > /etc/wireguard/wg0.conf
    [Interface]
    Address = $wg_rng.1/24
    ListenPort = `echo -n $wg_endpoint | cut -d : -f 2`
    PrivateKey = $wg_key
    #PublicKey = $wg_pub
    PostUp = sysctl -w net.ipv4.ip_forward=1
    PostUp = sysctl -w net.ipv4.conf.all.rp_filter=1
    PostUp = sysctl -w net.ipv4.conf.default.rp_filter=1
    PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o $wg_eth -j MASQUERADE
    PostDown = sysctl -w net.ipv4.ip_forward=0
    PostDown = sysctl -w net.ipv4.conf.all.rp_filter=0
    PostDown = sysctl -w net.ipv4.conf.default.rp_filter=0
    PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o $wg_eth -j MASQUERADE
    EOD

    for i in `seq 2 3`; do
    export wg_key_cli=`wg genkey`
    export wg_pub_cli=`echo -n $wg_key | wg pubkey`
    cat <<EOD >> /etc/wireguard/wg0.conf
    [Peer]
    # Name = Client $i
    PublicKey = $wg_key_cli
    PresharedKey = $wg_psk
    AllowedIPs = $wg_rng.$i/32
    PersistentKeepalive = 120
    EOD
    cat <<EOD > /etc/wireguard/wg0-cli$i.conf
    [Interface]
    #PublicKey = $wg_pub_cli
    PrivateKey = $wg_key_cli
    Address = $wg_rng.$i/24
    [Peer]
    PublicKey = $wg_pub
    PresharedKey = $wg_psk
    AllowedIPs = 0.0.0.0/0
    Endpoint = $wg_endpoint
    EOD
    qrencode -t ansiutf8 < /etc/wireguard/wg0-cli$i.conf
    done

    wg-quick up wg0